랜섬웨어의 정의와 감염 경로 그리고 보호대책

Posted by taeho Tae-Ho
2017.02.11 16:21 정보보호

랜섬웨어란 무엇인가?

랜섬웨어는 "사용자의 동의 없이 컴퓨터에 불법으로 설치되어 사용자의 파일을 임의로 암호화한 뒤 복호화하기 위해서는 금전을 제공할 것을 강요하는데 이용되는 악성 프로그램"을 총칭하는 이름입니다.  우리나라에는 2015년을 전후하여 몇몇 유명한 커뮤니티를 통해 전파되어 큰 이슈가 되기도 하였습니다.   (관련 포스트 보러가기 : http://blogger.pe.kr/483)


랜섬웨어의 감염경로

제가 근무하던 직장이 보안 회사임에도 불구하고 2016년 말과 2017년 초 두 차례나 임직원의 PC에 랜섬웨어가 감염되어 문서파일들과 스프레드시트 파일, 이미지 파일 그리고 심지어 아웃룩 데이터파일까지 암호화 되어 있는 것을 목격하였을 만큼 최근의 랜섬웨어로 인한 피해는 상상을 초월하는 듯 합니다. 


하지만 두 사건 모두 피해자의 공통적인 답변은 "난 아무것도 한게 없다" 입니다. 의심스런 메일에서 파일을 다운로드 받거나 첨부된 URL을 클릭한 것도 아니고 P2P나 파일 다운로드 사이트에서 의심스런 파일을 다운로드 받아 실행한 적도 없다는 것입니다. 그런데도 랜섬웨어는 컴퓨터에 침입하여 중요한 정보가 담긴 파일들을 암호화하고 돈을 요구하는 팝업창을 띄웁니다.


랜섬웨어에 의해 암호화된 파일들랜섬웨어에 의해 암호화된 파일들



랜섬웨어가 감염되는 경로를 알아보면 다음과 같습니다.


1. 웹 서핑


최근 가장 흔한 경우 입니다. 이 경우 피해자는 "난 아무것도 한게 없다"고 말할 수 밖에 없습니다. 그리고 그 말은 사실일 수도 아닐 수도 있습니다. 단지 웹 서핑을 했을 뿐 파일을 다운로드 받지도 의심스런 URL을 클릭한 적도 없습니다. 그냥 뉴스를 보거나 커뮤니티에서 재미난 글들을 보고 있었을 뿐입니다.


이런 경우는 모두 "Drive-by Download" 라는 공격기법에 의해 랜섬웨어가 PC에 다운로드 되고 실행된 것이라고 봐야 합니다. "드라이브 바이 다운로드" 공격은 악성코드가 담긴 웹페이지를 보기만 해도 악성코드가 PC에 생성되거나 다운로드 됩니다. 


원인은 1. 브라우저 자체의 취약점 혹은 2. 브라우저에서 실행되는 플러그인의 취약점 입니다. 플러그인 이라함은 브라우저에서 실행되는 어도비 플래시 플레이어와 같은 플러그인 또는 ActiveX 컨트롤 등을 모두 포함합니다.

인터넷익스플로러(IE), 크롬(Chrome), 파이어폭스(FireFox) 등은 HTML, Java Script, 플러그인 등이 실행되는 하나의 운영체제와 같습니다. 때문에 많은 버그를 갖고 있으며 특정 버그는 보안상 취약점으로 악용되기도 합니다. 이 보안 취약점을 악용하면 브라우저나 브라우저 위에서 실행되는 플러그인(ActiveX 포함)에서 공격자(해커)가 원하는 악성코드(실행코드)를 실행시킬 수 있습니다. 1차로 브라우저나 플러그인을 공격하는 악성코드는 2차로 PC에 랜섬웨어나 다른 멀웨어(Malware)를 다운로드 받게 하거나 직접 생성할 수 있습니다.


2. 첨부 URL 클릭


이메일이나 네이트온이나 카카오톡과 같은 메신저 혹은 트위터나 페이스북 같은 SNS에 올려져 있는 URL을 클릭하는 순간 악성코드를 다운로드 받게되고 그 다운로드 받은 파일을 여는 순간 랜섬웨어나 멀웨어에 감염됩니다.


3. 파일 다운로드 및 실행


이 경우 또한 이메일이나 메신저 혹은 SNS에 첨부되어 있는 파일을 다운로드 받고 실행하거나 특정 유틸리티가 필요해 P2P나 파일공유사이트에서 파일을 다운로드 받고 설치하면서 악성코드가 함께 설치되는 경우입니다.


실제로 2번과 3번의 경우 많은 사람들이 위험성을 알고 있기 때문에 주의하는 반면 1번 웹서핑 중 사용자도 모르게 랜섬웨어나 멀웨어에 감염되는 경우에는 황당할 수 밖에 없습니다. 그래서 피해자들이 하나같이 "나는 아무것도 안했다"는 거짓말 아닌 거짓말을 하게 되는 것입니다.


랜섬웨어의 특징과 증상

많은 분들이 랜섬웨어에 대해 잘 알고 있는 듯 하지만 실제로는 잘 모르는 경우가 많습니다. 랜섬웨어의 특징을 몇가지 살펴보도록 하겠습니다.


1. 랜섬웨어는 백신에서 차단할 수 없다.


백신을 설치하면 랜섬웨어도 차단할 수 있다고 알고 있는 사람들이 많습니다. 하지만 이것은 80% 쯤은 거짓입니다. 오래된 랜섬웨어는 랜섬웨어 파일의 Hash 정보를 이용해 랜섬웨어가 실행되면 탐지하고 차단할 수 있지만 백신에 의해 차단될 때 쯤엔 변형된 새로운 랜섬웨어가 유행합니다. 랜섬웨어는 컴퓨터 바이러스나 자기복제형, 기생형 등 악성코드가 갖고 있는 악성코드의 특징을 거의 갖고 있지 않습니다. 그저 문서파일과 이미지파일 아웃룩 데이터파일 등을 찾아 암호화할 뿐입니다. 따라서 백신들이 자랑하는 알려지지 않은 악성코드를 차단하는 기능들로도 차단할 수 없습니다.


오히려 FireEye와 같이 샌드박싱 기술을 통해 웹에서 혹은 이메일에서 다운로드 받는 파일을 검사하는 것이 탐지를 용이하게 해줍니다. 하지만 이 또한 완전하지 않은데 그 이유는 In-Line 방식으로 다운로드를 잡아둘 수 없기 때문입니다. FireEye에서 랜섬웨어 임을 탐지하는 순간 이미 사용자 컴퓨터의 파일들은 모두 암호화된 이후일 가능성이 매우 높기 때문입니다. 반면 이메일의 경우 차단할 수 있는 가능성이 조금 더 높습니다. 이메일에 첨부된 랜섬웨어는 FireEye 혹은 메일게이트웨이 솔루션인 웹센스(WebSense)와 같은 메일게이트웨이에서 잠시나마 잡아둘 수 있기 때문에 첨부파일을 분석하고 차단할 수 있는 시간을 벌 수 있기 때문입니다.


2. 랜섬웨어는 스스로를 네트워크에 전파하지 않는다.


랜섬웨어는 앞에서도 말했든 대부분의 악성코드가 갖고 있는 특징적인 행위들을 하지 않습니다. 때문에 한대에 감염된 랜섬웨어는 내부 네트워크를 통해 전파되지 않습니다. (아직까지는....)  다만 A라는 컴퓨터에 랜섬웨어가 감염되면 컴퓨터 A의 디스크에 저장된 파일들을 암호화하고 컴퓨터 A에서 접근가능한 컴퓨터들 중 "공유폴더"가 있다면 그 공유폴더의 파일들도 암호화 합니다.  다만 그 공유폴더의 파일들이 "읽기"만 가능한 모드라면 암호화하지 못합니다. 만약 조직의 컴퓨터들 중 두대가 랜섬웨어에 의해 피해를 입었다면 두 사용자가 각각 따로 따로 랜섬웨어에 감염되었다고 생각해야 합니다. 랜섬웨어는 아직까지 스스로를 다른 컴퓨터에 감염시킨 사례가 보고된 적은 없습니다.


3. 랜섬웨어는 다양한 파일을 암호화한다.


랜섬웨어는 일단 컴퓨터에 설치되고 실행되면 주로 문서파일, 이미지파일, 아웃룩 파일 등 데이터가 담긴 파일들을 "확장자" 기준으로 검색하여 암호화 합니다. 그리고 실행된 컴퓨터에서 접근 가능한 네트워크 상의 "공유폴더"를 찾아 그 안의 파일들도 암호화를 시도합니다.

그리고 안티 랜섬웨어 기능들이 백신에 포함되어 있는데 최근에는 이 안티 랜섬웨어 기능을 우회하는 랜섬웨어들이 대부분입니다. 


* 안티랜섬웨어 기능


초기에는 드라이브의 최상위 폴더에 특수문자로 시작되는 폴더를 만들고 그 안에 미끼가 되는 문서파일과 이미지 파일을 만들고 이 파일들을 건드리는 프로그램이 있다면 랜섬웨어로 판단하고 차단하는 기능으로 시작하였으나 이후 랜섬웨어들이 이러한 미끼 폴더에 대해 우회하는 기능을 추가하였고 이에 따라 백신에서는 브라우저나 이메일클라이언트에서 다운로드되는 파일을 격리하고 샌드박스 및 클라우드 분석을 수행하는 등 진화하고 있으나 아직은 미완의 기능으로 보임.


랜섬웨어가 창궐하는 이유

최근 2~3년 사이에 랜섬웨어가 창궐하는 이유는 랜섬웨어가 변종을 만들기가 쉽기 때문이며 가장 큰 이유는 바로 비트코인 때문입니다. 


랜섬웨어는 사용자 몰래 파일을 암호화하고 사용자를 협박하여 복호화할 수 있는 툴을 판매하기 위한 악성 프로그램입니다. 하지만 비트코인 이전에는 피해자로부터 금전을 안전하게 수취하는 것이 쉽지 않았습니다. 일반 은행계좌의 경우 해커의 신분이 노출되는 것은 시간문제이며 직접 만나 금전을 받을 수도 없었습니다.


그런데 비트코인이 등장하면서 익명성을 내세워 비트코인으로 금전을 안전하게 수취할 수 있게 되었습니다. 실제로도 피해자와 해커의 중간에서 중계를 해주는 브로커가 인터넷에서 활동하고 있을 정도이며 브로커를 통해 돈을 주고 문서를 복구하는 사례도 일반에 알려진것 보다 많은 것으로 보입니다.


랜섬웨어의 예방법

랜섬웨어는 일단 감염되어 파일이 암호화되면 해커에게 돈을 지불하지 않고는 복호화할 수 없으며 파일 복구 업체들도 복구하지 못한다고 봐야합니다. 따라서 "예방"이 최선의 방법입니다.


다음과 같은 예방 수칙을 준수한다면 랜섬웨어 감염 가능성을 최소화 할 수 있으며 감염되더라도 안전하게 복구할 수 있습니다.


1. 출처가 불명확한 이메일과 URL 링크는 실행하지 말 것


보낸 사람의 이메일 주소가 처음보거나 모르는 사람일 경우 메일에 첨부된 파일을 클릭하거나 또는 URL 링크를 클릭하지 말 것. 이메일을 통해 랜섬웨어가 유포되고 있어 실행 주의 필요


2. 파일 공유 사이트 등에서 파일 다운로드 및 실행하지 말 것


파일공유 사이트 또는 중소규모 커뮤니티, 인터넷 카페 등 신뢰할 수 없는 사이트를 통한 파일 다운로드 및 실행 주의 필요


3. 보다 안전한 웹 브라우저 사용


흔히 사용하는 IE 브라우저는 크롬, 파이어폭스 등과 비교하여 보안성이 떨어지며 특정 웹사이트 접속을 위해 보안 수준을 최저 수준으로 낮춰 사용하는 경우가 빈번함. 그로인해 IE 브라우저를 통해 웹서핑을 할 경우 웹사이트를 통해 전파되는 악성코드에 감염될 가능성이 매우 높음.


따라서 불편하더라도 크롬, 파이어폭스 등을 브라우저로 사용하고 그룹웨어, 인터넷 뱅킹, 조달청 등의 접속시에만 IE를 사용할 것을 권장 


4. 중요 자료는 정기적으로 백업


·  중요문서(hwp, 사진, 오피스문서, 아웃룩 이메일파일 등) 주기적 백업

·  외부 저장장치(외장하드, USB 등)등을 이용한 중요 문서를 외부에 별도 저장

·  운영체제에서 제공하는 ‘사용자 파일백업 및 복원기능’을 이용하고, 외부 저장소에 이중백업 권장

·  PC 및 네트워크에서의 “공유 폴더” 사용 주의 (부득이하게 공유폴더를 타 사용자에게 제공해야한다면 "읽기 전용"으로 제공


5. PC에서 사용중인 소프트웨어는 정기적으로 최신 버전으로 업데이트


·  운영체제(OS)와 응용 프로그램(SW)은 최신 보안 업데이트 상태로 인터넷 접속

·  Flash Player의 주기적인 업데이트 : 설정/제어판 → Flash Player 설정 관리자 → 업데이트 탭 → 

   ‘Adobe가 업데이트를 설치할 수 있도록 허용(권장)’ 선택, 혹은 ‘지금 확인’버튼을 눌러서 직접 업데이트

·  Java의 주기적인 업데이트 : 설정/제어판 → JAVA 제어판 →업데이트 탭 → ‘자동업데이트 확인’ 선택, 

   혹은 ‘지금 업데이트’ 버튼을 눌러서 직접 업데이트

·  기타 응용프로그램들도 제품상의 최신 업데이트 기능 활용하여 업데이트


신고
이 댓글을 비밀 댓글로
  1. 덕분에 랜섬웨어가 감염되는 경로를
    알게 되었고~
    랜섬웨어 예방법을 평소에 열심히
    실천해야겠습니다. ^^
      • 2017.02.14 23:26
      비밀댓글입니다

RSA 알고리즘 (PKI : 공개키 기반 구조) 이해와 실습

Posted by taeho Tae-Ho
2016.11.18 16:00 정보보호

앞의 포스트에서 디피-헬만 키 교환 알고리즘을 알아보았다. 디피-헬만 알고리즘은 송신자가 주체가 되어 송신자와 수신자 상호간의 암호키 전송없이 실제 송수신할 데이터의 암호화와 복호화를 할 수 있는 공통의 비밀키(대칭키)를 교환(실제로는 송신자와 수신자가 각자 생성)하는 키 교환 알고리즘이다. 그 이후의 데이터 암복호화는 생성된 대칭키(비밀키)를 이용하여 별도의 대칭키 암호화 알고리즘을 사용하면 된다. 그래서 디피-헬만 키 교환 알고리즘은 SSL(Secure Socket Layer) 통신 시 암호키를 생성하고 교환하는 목적으로 사용된다. 또한 SSL 통신 규약 상 주기적으로 암호키를 변경해야하기 때문에 디피헬만 키 교환 알고리즘은 주기적으로 호출된다.


즉, PKI(공개키 암호화 알고리즘)은 아니다.


PKI(Public Key Infrastructure) : 비대칭키 암호 시스템


PKI는 그대로 번역하면 "공개 키 기반구조" 쯤이 된다. 쉽게 "공개키 암호 시스템" 정도로 이해하면 된다. 하지만 이 이름에는 사실 중요한 단어가 빠졌다. "공개키/개인키 암호 시스템" 이 진짜~ 이름이 되겠다. 공개키 암호 시스템은 비대칭키 암호 시스템과 같은 용어다. 암호화 키와 복호화 키가 다르기 때문에 암호키가 비대칭이라는 의미다.


그래서 평문(데이터)를 공개키로 암호화하면 개인키로만 복호화가 되며 반대로 개인키로 암호화하면 공개키로만 복호화가 가능한 방식이다. 처음엔 어떻게 이런게 가능하지?라고 매우 신기하게 생각했다.


그리고 디피헬만 알고리즘과 같이 PKI에서도 키를 생성하는 과정은 필수다. 그리고 그 키는 두개가 된다. 주변에 공개할 즉, 유출되어도 상관없는 공개키와 나만이 갖고 있어야 하며 외부에 공개되어서는 안되는 개인키 두 개가 존재하게 된다. 그리고 이 공개키와 개인키를 담고 있으면서 소유자를 증명하는 것이 바로 PKI인증서다.


PKI인증서는 통신주체는 모두 갖고 있어야 한다. 만약 뽀로로와 패티가 안전하게 통신을 하고자 하면 적어도 둘 다 공개키와 개인키가 담겨져 있는 PKI인증서를 갖고 있어야 한다. (단순히 통신만 생각한다면 공개키와 개인키만 있으면 되겠지만)


기본적인 비대칭키 암호화알고리즘을 이용하여 암호화 통신을 수행하는 과정은 아래와 같다.


  • 먼저 뽀로로와 패티는 서로의 공개키를 교환한다. 즉 뽀로로는 패티에게 , 패티는 뽀로로에게 자신의 공개키를 알려준다. 공개키는 원래 공개를 목적으로 하는 암호키다.
  • 뽀로로는 데이터를 패티의 공개키로 암호화하여 패티에게 보낸다.
  • 패티는 자신의 개인키로 데이터를 복호화한다.
  • 패티는 뽀로로에게서 받은 뽀로로의 공개키로 데이터를 암호하하여 뽀로로에게 보낸다.
  • 뽀로로는 자신의 비밀키로 데이터를 복호화한다.


그렇다면 비대칭키 암호화 통신에서 사용되는 공개키와 개인키는 어떻게 만들어지는 것일까???


RSA (Ribest Shamir Adelman)


RSA의 세 글자는 RSA 알고리즘을 만든 세명의 이름 첫글자를 다온 알고리즘이다. RSA는 완전한 공개키기반구조(PKI)를 제공한다. 그리고 그 핵심은 PKI의 기본이 되는 공개키와 개인키를 만드는 키 생성 알고리즘이다. 

RSA는 소인수분해의 어려움에 기반하며 공개되는 공개키를 가지고는 개인키를 유추하는 것이 어렵다. 아래에 RSA의 키 생성과정에서 최초 선택되는 두 소수 (P, Q)가 클 수록 공개키를 이용해 개인키를 유추하는 것이 어려우며 일정 크기를 넘어가면 현재 존재하는 컴퓨터로는 개인키를 해킹하는 것이 불가능에 가깝다고 한다.


다음은 RSA의 키 생성 과정을 설명해본다. 하지만 디피헬만보다 훨씬 어렵다. 수학에 소질이 있다면 이해가 쉬울 수도 있다. 


  • 뽀로로와 패티가 비밀연애를 위해 암호화된 연애편지를 주고 받으려 한다면...
  • 뽀로로는 서로 다른 두 소수 (P, Q)를 선택한다.
  • P와 Q를 곱해 N 을 구한다.  (N=PxQ)
  • 오일러 피 함수에 해당되는 φ(N) = (P-1)(Q-1)을 구한다.

  • φ(N) 보다는 작으면서 φ(N)와 서로소인 정수 e를 찾는다.  (1 < e < φ(N)) 

  • 확장된 유클리드 호제법을 이용해 (d x e)/φ(N) 일 때 나머지가 1인 정수 d 를 구한다. 

  • 처음에 선택한 두 소수 (P, Q)는 유출되면 안되므로 삭제한다.

  • 패티도 동일한 과정을 거친다.


위의 과정에서 등장하는 식을 만족하는 숫자들 중에 공개키와 개인키가 존재한다.


먼저 뽀로로의 공개키는 [N , e] 이고 개인키는 [N, d] 이다. 마찬가지로 패티도 패티의 공개키와 개인키를 만들었을 것이다.


뽀로로는 뽀로로의 공개키인 [N, e]를 패티에게 보내고 패티도 마찬가지로 패티의 공개키를 뽀로로에게 보낸다. 이후 두사람은 상대방에게 보낼 연애편지를 상대방에게서 받은 공개키를 이용해 암호화하여 보낸다. 암호화된 연애편지를 받은 뽀로로와 패티는 각자 자신의 개인키로 연애편지를 복호화하여 읽게 된다.


RSA의 암호화와 복호화


위에서 생성한 공개키를 이용해 암호화 할 때는 다음의 식에 따라 암호화 한다.



또한 개인키를 이용해 복호화 할 때는 다음의 식에 따라 복호화 한다.



RSA의 예제


위에 설명한 과정에 따라 키를 만들고 공개키로 암호화하고 개인키로 복호화하는 과정을 실습해보자.


먼저 키를 만든다.


두 소수는  P = 3,  Q = 11 로 정한다.   따라서 N은  33 이다.     ( P = 3,  Q = 11,  N = 33 )


φ(N)을 구하면 ( 3 - 1 ) x ( 11 - 1) 이므로 20 이다.    ( φ(N) = 20 )


따라서 1 보다 크고 20보다 작으면서 20과는 서로소인 e를 구하면 몇개가 나오는데 그중에 7을 선택한다. ( e = 7 )


이젠  (d x e)/φ(N) 일 때 나머지가 1인 정수 d 를 구해야한다. 즉  (d x 7) / 20을 계산했을 때 나머지가 1 이어야 한다.

음... 수학에 소질이 없다보니 막 대입하는 방법밖엔 떠오르지 않는다.  막 대입하다 보니 3을 넣었을 때 나머지가 1이 나온다.


즉 d = 3 이다.   ( d = 3 )


이제 키에 필요한 계산은 다 했다.


즉 공개키는 [ 33, 7 ] 이고 개인키는 [ 33, 3 ] 이다.


이제 공개키로 암호화를 해본다. 암호화 대상은 9 이라는 숫자다.   ( M = 9 )


먼저 9를 공개키의 e승, 즉 7제곱하면 4782969 이고 4782969 mod 33 을 계산하면 15가 나온다. 

즉 9를 RSA로 암호화하면 15가 나오는 것이다. 


9는 평문(M : Message)이고 15는 암호문(C : Ciphertext)이다.


그럼 15를 RSA로 복호화 해본다.


일단 15의 d 승 즉 15의 3승을 계산하면 3375가 나온다. 


다음은 3375 mod 33을 계산한다. 정확하게 처음 메시지인 9가 나온다.


오...신기하다.


신고
이 댓글을 비밀 댓글로

디피-헬만 키교환 알고리즘 (Diffie-Helman Key Exchange)

Posted by taeho Tae-Ho
2016.11.17 12:00 정보보호

암호학은 어렵다.


아마도 나 처럼 수학에 약한 사람들은 암호학의 수식만 봐도 머리가 어지러워지기 시작한다. 하지만 암호학 전문가가 보안전문가라는데 나는 동의하고 싶지 않다. 정보보안에 필요한 한 수학의 한 분야일 뿐이기 때문이다. 하지만 그 원리에 대한 기초적인 이해는 보안 전문가라면 반드시 필요하다. 


데이터를 암호화하는 기술은 사람들이 "비밀"을 갖게 된 시점부터 그 필요성이 대두되었고 사람들이 모인 조직이 만들어지면서 조직내의 비밀을 유지하기 위해 데이터를 암호화하는...일명 "암호학"이 발전하기 시작하였다. 


대칭키 암호화 알고리즘의 문제점

암호학은 비밀을 공유할 사람들만이 암호화하는데 사용할 "키(Key)"를 이용해 데이터를 암화화와 복호화(암호화 데이터를 원상태의 평문으로 변환하는 과정)하는 방향으로 발전하였다. 당연히 초기에는 암호화와 복호화에 동일한 키를 사용하였는데 이렇게 암호화 키와 복호화 키가 같은 암호화 방식을 "대칭키 암호화"라고 부른다.


하지만 대칭키 암호화 알고리즘의 키는 항상 유출의 가능성이 존재하고 암호키 유출 시 암호화된 모든 통신은 노출된다. 이렇게 한번 암호키가 노출되면 이후 주고받을 암호키도 노출되기 때문에 매우 치명적이다. 그래서 데이터를 대칭키로 암복호화하여 송수신할 때 송신자와 수신자가 암호키를 안전하게 주고 받는 암호키 분배 과정의 보안을 위해 사용하는 암호알고리즘이 비대칭키 암호알고리즘이다.


비대칭키 암호화

공개키 암호알고리즘이라고도 불리는 비대칭키 암호화는 말 그대로 암호화 키와 복호화 키가 비대칭, 즉 서로 다른 암호알고리즘이다. 대칭키 키 암호화 알고리즘을 완전하게 대치할 수 있는 완성된 암호알고리즘이지만 속도와 편의성 등의 문제로 인해 현재까지는 모든 평문을 암호화하는 형태로는 많이 사용되지 않고 데이터의 크기가 작은 대칭키 암호화에 사용할 암호키의 안전한 키교환 혹은 금융거래 등에서만 사용되고 있다.  


디피-헬만 키교환 알고리즘 (Diffie-Helman Key Exchange)

 흔히 디피-헬만 알고리즘을 암호알고리즘이라고 말하는 경우가 있는데 그건 아니다. 디피-헬만 알고리즘은 송신자와 수신자가 안전하게 통신할 대칭키 알고리즘에 사용할 암호키를 생성하는 종단간 키 교환 알고리즘이다. 하지만 이름과는 다르게 암호키 자체를 송신자와 수신자가 통신을 통해 주고 받지 않으며 암호화 알고리즘은 아니다.


먼저 Diffie-Helman의 키 생성 방식을 보면..


  • 송신자, 수신자, 해커가 있다.
  • 송신자가 임의로 선택한 소수 P와 정수 G (1부터 P-1까지 중 하나) 를 수신자에게 보낸다. (해커는 이 정보를 가로채 알 수 있다.)
  • 송신자는 임의로 정수 A를 선택한다. (수신자와 해커는 알 수 없다.)
  • 수신자도 임의로 정수 B를 선택한다. (송신자와 해커는 알 수 없다.)
  • 송신자는 G의 A제곱을 P로 나눈 결과값 a를 구한다. (
  • 수신자도 G의 B제곱을 P로 나눈 결과값 b를 구한다.
  • 송신자와 수신자는 서로 a와 b를 교환한다. (해커는 이 정보를 가로챌 수 있다.)
  • 송신자는 b를 받아 b의 A제곱을 P로 나눈 나머지 BB를 구한다.
  • 수신자는 a를 받아 a의 B제곱을 P로 나눈 나머지 AA를 구한다.


마지막에 송신자와 수신자가 수학적 공식에 의해 구한 BB와 AA가 이후의 통신에 사용할 암호키(대칭키)이며 BB와 AA는 동일한 값을 갖는다. 즉 AA == BB라는 이야기이며 송신자와 수신자가 안전하게 데이터 암호화에 사용할 대칭키(비밀키)를 교환(실제로는 암호키를 주고받는 것은 아님)하는 키 교환 알고리즘 중 하나이다.


알고리즘 설명

디피헬만의 알고리즘 설명은 생략한다. 다만 위키백과에서 아주 쉽게 실제 사례를 들어 설명해주고 있는 페이지가 있다.

참고하기 바란다.


위키백과의 디피-헬만 키 교환


신고
이 댓글을 비밀 댓글로

root 와 Administrator 그리고 Information Security

Posted by taeho Tae-Ho
2016.02.05 16:12 정보보호

요즘 심심치 않게 ISMS인증 또는 PCI/DSS 인증 등 여러 정보보안 관련 인증심사에 대비하는 기업이나 기관으로 부터 RedCastle SecureOS와 AuthCastle 등의 제품소개를 요청받는 경우가 있습니다.  왜냐하면 ISMS 등 심사에서 인증기준으로 삼는 수 많은 통제항목 중 "서버"에 관련된 심사항목은 많을 수 밖에 없고 운영체제의 보안설정이나 취약점제거 만으로는 해당 통제항목의 요구사항을 충족하기 어려울 뿐만아니라 통합관리가 어렵기 때문입니다.


서버에 대한 접근통제, 중요 감사로그 파일에 대한 위변조 차단, 소스파일에 대한 보호, 서버의 패스워드 통제 그리고 중요한 암호화키 및 중요 데이터가 저장된 파일에 대한 읽기/수정/삭제 통제와 무결성 보장 등 다수의 서버에 대한 정보보호 수준을 높이기 위한 활동은 무척 어려운 사안일 수 밖에 없습니다. 


하지만 그러한 서버의 보안수준을 높이기 위해 무엇보다 먼저 시행해야 하는 것은 서버에 접속하는 개발자 및 관리자들에 대한 1인1계정 부여입니다. 즉, 내부통제 강화죠.

무시되는 Unix/Linux 서버에서의 1인 1계정

Unix/Linux 서버는 기본적으로 다중사용자를 지원하는 서버 운영체제입니다. 그래서 서버의 운영자가 웬만큼 많지 않고서는 서버의 보안강화를 위한 "1인1계정" 원칙을 지켜 서버에 로그인 해야하는 개발자와 운영자에게 각각 개인 계정을 발급해도 전혀 문제가 되지 않습니다.



하지만 실제 서버의 운용 상황은 그렇지 않습니다. 실제 수많은 기업이나 금융기관 혹은 공공기관에서 운용하는 서버에 접속해 보면 root와 같은 서버 운영체제의 수퍼유저 계정과 oracle, jeus 등 별도의 계정이 필요한 시스템SW와 데이터베이스 관리자 계정 이외의 개발자나 서버운영자의 개인계정은 찾아보기 힘듭니다.


실제로 하나의 서버에 Telnet, SSH 등을 통해 접속하는 개발자나 운영자는 적게는 두세명에서 많게는 10여명이 넘기도 합니다. 여러사람이 root, oracle, jeus 등의 매우 크리티컬한 계정으로 직접 로그인하여 권한의 분리를 수행하지 않는게 현실입니다. 그리고 이러한 행위를 "통제"하거나 "제한"할 만한 서버 운영체제에 대한 보안적 지식을 갖고 있는 사람이 없는 것 또한 현실입니다. 조직의 보안관리자나 경영진은 서버 운영체제에 대한 지식이 부족한 경우가 태반이기 때문에 서버의 운영조직에서 "그렇게 해야한다"고 하면 "OK"하는 경우가 대부분입니다.


하지만 보안 관점에서 다수의 개발자나 운영자가 공용계정으로 직접 로그인하는 것은 매우 큰 위협요인 입니다.


사고가 발생해도 누가 언제 서버에 로그인하여 사고의 원인이 되는 작업을 수행했는지 실제 작업자를 식별할 수 없습니다. 그리고 사고를 인지하는 것은 사고의 원인이 된 행위가 발생한지 오랜 시간이 지난 뒤인 경우가 많기 때문에 이미 꽤 긴 시간이 흘러 실제 누가 로그인했는지 확인하기 어려운 경우가 대부분입니다. 특히 개인정보의 유출과 같은 사고는 더욱 그러합니다.


그럼에도 불구하고 서버에 계정이 많으면 "시스템이 느려진다", "작업이 너무 어렵다", "서비스 운영이 안된다", "계정 관리가 어렵다" 등 설득력 부족한 이유를 들어 모든 개발자나 운영자의 root  또는 oracle 계정의 직접 접속을 고집하는 경우가 많습니다.


(Windows서버는 구조적으로 더 큰 문제를 안고 있습니다. 보안이 조금이라도 중요한 서비스를 Windows 서버에 구현하는 것은 솔직히 보안 관점에서 권하고 싶지 않습니다.)


1인 1계정의 장점

Unix나 Linux 서버에서 서버 운영자, 개발자의 개인계정을 생성하여 운영하는 것은 정보보안 측면 뿐만아니라 시스템의 효율적이고 안정적인 운영에 큰 도움이 됩니다. 


먼저 서버의 보안이 강화됩니다.


서버 개발자나 운영자가 개인계정으로 접속하여 su 명령을 통해 한번 더 root 비밀번호를 입력해야 하므로 2단계의 인증을 거치게 됩니다. 또한 root 계정으로의 직접 접속을 원천적으로 차단할 수 있기 때문에 보안성은 높아집니다. 그래서 서버 운영체제에서도 기본적으로 root 계정으로의 접속을 차단하는 기능을 제공하는 것입니다. 


그리고 sudo 명령의 사용은 권장되지 않습니다. 흔히 개인계정으로 접속한 뒤 sudo - 명령으로 root 권한으로 넘어가게 하는 경우가 있는데... 세부적인 명령어 통제까지 수행하지 않으면 오히려 보안성이 낮아지는 부작용이 생깁니다.


그리고 1인 1계정을 사용하면 책임추적성을 확보할 수 있습니다. 


서버 운영체제는 각 계정으로 접속하는 시점에 누가 어느 IP에서 접속했고 언제 접속을 끊었는지에 대한 기록을 남깁니다. 그런데 모든 접속이 root, oracle 등으로 남게 되면 실제 해당 세션이 누가 접속한 것인지 확인이 불가능합니다. 하지만 1인 1계정 원칙을 지키면 실제 접속자가 누구인지를 오랜시간이 지난 뒤에도 추적할 수 있게 됩니다. 게다가 누가 언제 su 명령을 통해 root 계정으로 전환했는지 실제 사용자를 시간이 지난 뒤에도 확인할 수 있습니다.


또한 서버의 파일시스템 정리가 용이해지고 깨끗해집니다.


서버에 파일을 업로드 할 때 root 계정으로 파일을 업로드하면 업로드 된 파일들이 여기저기 흩어져 남게 됩니다. 임시 디렉토리도 root 계정으로 생성되고 삭제되지 않은채 남게 되는 경우가 많습니다. 그리고 시간이 흐르면 그 파일들이 서비스 운영에 필요한 파일인지 식별하기 어렵습니다. 하지만 1인1계정 원칙을 지키면 작업을 위해 최초로 업로드하는 파일은 개인의 홈디렉토리에 업로드됩니다. 그리고 압축을 풀고 준비과정을 거친 뒤 root 계정이나 SW 관리자 계정으로 넘어가 시스템에 적용됩니다. (물론 작업 과정은 한두과정을 더 거치게 됩니다만 그리 긴 시간이 더 걸리지는 않습니다.)

때문에 작업 후에도 개인계정의 소유자로 생성된 파일들은 서비스에 관련되지 않은 파일이기 때문에 삭제해도 서비스 운영에 문제가 없습니다. 당연히 서버는 깨끗해지는 효과를 얻을 수 있습니다.


공용계정 (root, oracle 등)의 치명적인 단점 - Super User 계정이라는 것..!!

root 계정은 Super User 계정입니다. oracle과 같은 어플리케이션 관리자 계정은 해당 어플리케이션의 Super User 계정입니다. Super User 계정은 서버 내에서는 전지전능한 계정입니다. 다른 계정으로 비밀번호 없이도 이동이 가능하고 root에서 접근을 차단해 둔 파일에도 차단을 해제하고 접근할 수 있습니다. 심지어 보안 정책으로 규정한 비밀번호 복잡성 규칙마저도 무시할 수 있는 전지전능한 계정입니다.


이렇듯 서버 운영체제와 서버에 설치된 수 많은 애플리케이션 그리고 데이터베이스 입장에서 root 계정과 oracle 등의 계정은 "전지전능"의 능력을 가진 계정입니다. 때문에 root 계정이나 데이터베이스 관리자 계정인 oracle과 같은 계정을 별다른 통제 없이 여러 사람이 무차별적으로 사용하는 것은 생선을 고양이 여러마리에게 지키도록 한 것과 같습니다. 말 잘듣는 착한 고양이가 배가 부를 때는 문제가 없지만 배가 고픈 상태가 되면 언제 생선을 먹어치워도 전혀 이상한 일이 아닙니다. root 비밀번호를 알고 직접 접속할 수 있는 사용자가 악의적 목적을 갖는 범죄자로 변신하는 것 또한 전혀 이상한 일이 아닙니다 사람이 나쁜게 아니라 사람이 나쁘게 변할 수 있도록 방치하는 것 또한 "방관"의 범죄를 저지르는 것 일 수 있습니다.


보호대책

사실 이러한 취약성과 위협에 대응할 수 있는 솔루션은 SecureOS가 유일합니다. 일부 응용단에서 키보드 입력을 가로채 명령어 통제와 행위 감사를 수행하는 솔루션이나 네트워크 수준에서 동작하는 게이트웨이 방식의 솔루션이 있지만 그 기술적 수준이 낮기 때문에 얼마든지 우회가 가능합니다. 심지어 그런 홀(hole)이 있기 때문에 도입하여 사용하고 있다는 웃지못할 이야기까지도 들리죠. (엔지니어들은 우회방법을 알기 때문에 불편함 없이 서버에 접속하여 작업할 수 있다는 이야기... -.-) 


보안그룹과 등급에 따른 계정 이동(SU) 통제 정책을 수립하고 root 계정에서도 해제할 수 없는 비밀번호 규칙 설정과 중요 파일에 대한 무결성 보장 및 명령어 실행 통제를 수행하면 됩니다. 또한 응용 수준에서의 행위감사 추적과 커널 수준에서의 행위 추적 그리고 서버 접근통제 및 파일 위변조 통제 기능 등을 통해 보안을 강화할 수 있습니다.


다른 여러 보안 솔루션을 통해 서버의 보안을 강화하려는 기업이나 기관이 많지만 SecureOS를 도입하여 사용하는 것이 서버를 운용하는 조지에서 선택할 수 있는 가장 현명한 보호대책이 아닐까 생각됩니다.

신고
이 댓글을 비밀 댓글로
  1. 1인 1계정도 요즘은 자리잡고는 있는데 옛사람이라 그런지 아직도 계정을 같이 쓰던 시절이 편했던것 같습니다.
    그래도 과거와는 비교도 안되게 보안이 중요해진 시대이니 잘 지켜야 겠지요 ^^
    새해 복 많이 받으시고 즐거운 명절 되세요~
    • 감사합니다~ 지후대디님도 가족과 함께 즐거운 설연휴 보내셨기를 바랍니다~

취약점 진단 도구 네서스(Nessus) 설치하기

Posted by taeho Tae-Ho
2015.12.29 14:11 정보보호

Nessus는 매우 유명한 보안 취약점 점검 도구 입니다. 원래는 무료버전으로 제공이 되었었는데 기능이 강화되면서 유료로도 판매를 하고 있을만큼 유명한 보안 취약점 점검도구 입니다. 


오늘은 칼리 리눅스에 네서스를 설치하는 과정을 기록해두고자 이 포스트를 작성합니다. 칼리리눅스에는 아쉽게도 네서스가 포함되어 있지 않습니다. 그래서 별도로 설치를 해야합니다. 


먼저 네서스 홈페이지에서 설치 파일을 다운로드 받습니다. 설치할 운영체제의 종류와 버전에 따라 다운로드 받습니다. 전 칼리리눅스이기 때문에 Debian 버전을 받습니다. 칼리리눅스는 데비안 리눅스를 기반으로 만들어져 있기 때문입니다.



아래 화면에 Nessus-6.5.4-debian6_amd64.deb 파일이 설치파일입니다.

dpkg 명령으로 설치합니다.



아래 화면과 같이 dpkg 명령으로 설치가 되었습니다.



웹 인터페이스를 제공하는 Nessus 서비스 대몬을 구동합니다.

정상적으로 설치되었다면 /etc/init.d 디렉토리에 서비스를 구동하는 nessusd 라는 스크립트가 있습니다.



칼리리눅스에 포함되어 있는 파이어폭스 브라우저를 이용해 아래와 같이 접속합니다.

127.0.0.1 은 칼리리눅스 자신의 localhost 를 의미합니다. 8834는 네서스가 서비스되는 웹서비스 포트번호입니다.



접속하면 다음과 같이 환영메시지가 보입니다.



위 화면에서 Continue 버튼을 누르면 계정을 생성합니다. 헷갈리니까...칼리리눅스의 root 계정과 동일하게 ID를 만들었습니다.



음...등록하라고 나옵니다. 프리웨어지만 tanable 웹사이트에서 무료 라이센스 키를 받아야 합니다. 아래 화면 중간에 있는 "Registering this scanner" 링크를 눌러 키를 발급받는 페이지로 연결합니다.



세가지가 보입니다. 당연히 무료버전을 설치할 것이기에 Free~의 "Register Now"를 선택합니다. 기업에서 업무용으로 사용하거나 보안컨설팅의 취약점 점검 목적이라면 더 편리한 기능을 제공하므로 유료라이센스를 구입하는 것이 더 적합합니다.



라이센스 발급을 위한 정보를 입력하라고 요구합니다.

라이센스는 여기에서 입력한 이메일 주소로 전송되어 옵니다.



이메일로 전송되었다는 메시지 입니다.



이메일로 전송되어 온 라이센스 키(Activation Code)를 입력합니다.



그런데 최종 단계인 초기화 단계에서 아래 처럼 Download Failed 에러가 납니다. 원인은 알 수 없었습니다만..

화면 하단에 메시지가 보입니다. 


수동으로 'nessuscil update' 명령을 실행하라고 합니다. 



그런데 nessuscli 명령은 PATH에 포함되어 있지 않습니다. 그래서 find 명령으로 찾았습니다.

그리고 nessuscli update 명령을 실행합니다.  일정시간 0% 메시지가 나오더니 다운로드를 받기 시작합니다. 네트워크 상태에 따라 조금 시간이 걸릴 수 있습니다.



드디어 정상적으로 update 되었습니다.



이제 nessusd 서비스를 재기동 해야 합니다. 아래와 같이 재기동 합니다.



그리고 브라우저를 실행하여 다시 Nessus 서비스에 접속합니다. 이 단계에서 시간이 매우 오래걸렸습니다. 이 칼리리눅스 머신은 i5 노트북에서 VMWare를 이용하여 가상머신으로 설치하였습니다. 메모리는 2G를 설정했는데 메모리를 Full로 사용합니다. 다행스럽게 무한정 메모리를 할당받지는 않아서 다운되지는 않았습니다. 약 15분 이상 걸린 것으로 기억이 되네요.

하여튼 기다리면...완료되었습니다.



앞에서 생성한 계정으로 로그인합니다.



정상적으로 로그인이 되었습니다.



설치가 완료되었습니다.


설치된 기념으로 웹 취약점 점검을 실행시켜봤습니다.

취약점이 꽤...나오네요... 오래된 아파치라 그런가 봅니다.



포스트를 마칩니다.


신고
이 댓글을 비밀 댓글로
  1. 즐거운 신년 연휴 보내셨는지요?
    작년에 얼굴도 한번 뵙고 우연히 인연을 이어가게 된것 같습니다.
    새해에도 만사형통 하시고 복 많이 받으세요~
    • ㅎㅎ 네.. 앞으로도 좋은 인연 이어갔으면 하는 바램입니다. 좋은 친구가 되었으면 합니다. ^^
      지후대디님과 가족분들 모두 복 많이 받으시길 기원합니다~

hping3를 이용한 포트스캔 및 DOS Attack

Posted by taeho Tae-Ho
2015.12.22 13:26 정보보호

hping은 TCP/IP 프로토콜을 사용하는 서버 및 네트워크 환경을 분석하거나 공격할 수 있는 패킷 생성기이자 분석도구다. 몇몇 버전이 있지만 현재 사용되는 최신 버전은 hping3다.


hping3의 사용법을 몇가지 정리해 본다.


1. icmp ping

hping3는 ping 명령어 처럼 icmp 프로토콜을 이용해 특정 IP에 대해 장비가 살아있는지...죽어 있는지를 확인할 수 있다. 


root@kali:~# hping3 -1 -c 3 211.xxx.xxx.xxx

HPING 211.xxx.xxx.xxx (eth0 211.xxx.xxx.xxx): icmp mode set, 28 headers + 0 data bytes

len=46 ip=211.xxx.xxx.xxx ttl=128 id=65246 icmp_seq=0 rtt=3.4 ms

len=46 ip=211.xxx.xxx.xxx ttl=128 id=65247 icmp_seq=1 rtt=2.3 ms

len=46 ip=211.xxx.xxx.xxx ttl=128 id=65248 icmp_seq=2 rtt=6.0 ms


--- 211.xxx.xxx.xxx hping statistic ---

3 packets transmitted, 3 packets received, 0% packet loss

round-trip min/avg/max = 2.3/3.9/6.0 ms

root@kali:~# 

root@kali:~# ping 211.xxx.xxx.xxx

PING 211.xxx.xxx.xxx (211.xxx.xxx.xxx) 56(84) bytes of data.

64 bytes from 211.xxx.xxx.xxx: icmp_seq=1 ttl=128 time=1.97 ms

64 bytes from 211.xxx.xxx.xxx: icmp_seq=2 ttl=128 time=2.26 ms

64 bytes from 211.xxx.xxx.xxx: icmp_seq=3 ttl=128 time=2.20 ms

--- 211.xxx.xxx.xxx ping statistics ---

10 packets transmitted, 10 received, 0% packet loss, time 9017ms

rtt min/avg/max/mdev = 1.972/2.182/2.282/0.095 ms

root@kali:~# 


2. 특정 IP에 대한 포트스캔(port scan)

hping3는 특정 IP에서 리스닝(Listening) 중인 포트를 확인할 수 있는 포트스캔(port scan) 기능을 지원한다.


root@kali:~# hping3 --scan 1-1024 -S 211.xxx.xxx.xxx

Scanning 211.xxx.xxx.xxx (211.xxx.xxx.xxx), port 1-1024

1024 ports to scan, use -V to see all the replies

+----+-----------+---------+---+-----+-----+-----+

|port| serv name |  flags  |ttl| id  | win | len |

+----+-----------+---------+---+-----+-----+-----+

   80 http       : .S..A... 128 61950 64240    46

All replies received. Done.

Not responding ports: (1 tcpmux) (2 nbp) (3 ) (4 echo) (5 ) (6 zip) (7 echo) (8 ) (9 discard) (10 ) (11 systat) (12 ) (13 daytime) (14 ) (15 netstat) (16 ) (17 qotd) (18 msp) (19 chargen) (20 ftp-data) (21 ftp) (22 ssh) (23 telnet) (24 ) (25 smtp) (26 ) (27 ) (28 ) (29 ) (30 ) (31 ) (32 ) (33 ) (34 ) (35 ) (36 ) (37 time) (38 ) (39 rlp) (40 ) (41 ) (42 nameserver) (43 whois) (44 ) (45 ) (46 ) (47 ) (48 ) (49 tacacs) (50 re-mail-ck) (51 ) (52 ) (53 domain) (54 ) (55 ) (56 ) (57 mtp) (58 ) (59 ) (60 ) (61 ) (62 ) (63 ) (64 ) (65 tacacs-ds) (66 ) (67 bootps) (68 bootpc) (69 tftp) (70 gopher) (71 ) (72 ) (73 ) (74 ) (75 ) (76 ) (77 rje) (78 ) (79 finger) (81 ) (82 ) (83 ) (84 ) (85 ) (86 ) (87 link) (88 kerberos) (89 ) (90 ) (91 ) (92 ) (93 ) (94 ) (95 supdup) (96 ) (97 ) (98 linuxconf) (99 ) 


위의 예는 특정 ip에 대하여 포트스캔(--scan)을 1번에서 1024번 TCP 포트까지 Syn Flag를 세팅하여(-S) 수행하는 경우다. (TCP Syn Scan)

이 경우 RedCastle과 같은 SecureOS를 적용하여 통제가 수행될 경우 혹은 네트워크 방화벽이 구축되어 있는 경우 감사로그를 보면 출발지IP를 바로 잡아낼 수 있다. 


[ Sync Scan이 탐지되고 차단된 로그 : RedCastle SecureOS]


3. Syn Flooding Attack 및 Land Attack

이러한 Syn Scan을 응용한 것이 TCP Syn Flooding 공격이다. hping3는 출발지 IP를 랜덤하게 바꿔가며 특정 IP의 특정 port에 무차별적으로 Syn 패킷을 보낼 수 있다. 분명히 말해두지만 그런 행위는 범법행위다.


hping3 -S -d 64 111.222.111.222 -p 80 --flood --rand-source


-S : syn 패킷을 보낸다.

-d 64 : 패킷의 데이터사이즈

111.222.111.222 : 공격대상 서버IP

-p 80 : 공격대상 서버의 공격대상 포트

--flood : 최대한 많은 패킷을 전송

-- rand-source : 출발지 IP를 무작위로 하여 공격자IP를 감춤


한가지 주의할 것은 공격자가 사설IP를 사용할 경우 그리고 공격 대상서버가 인터넷을 통해 공인망을 통과할 경우 피해자가 공격자 IP를 알아낼 수 있다. 왜냐하면 공격자가 사설IP를 사용한 다는 것은 공격자가 피해자에게 보낸 패킷의 출발지 IP를 게이트웨이가 자신(게이트웨이)의 IP로 바꾸어 보내기 때문에 게이트웨이 주소를 통해 공격자의 위치를 대략적으로 파악할 수 있기 때문이다.


만약 Land Attack을 하고자 한다면 다음과 같은 명령을 사용하면 된다.


hping3 -1 -a 10.10.10.10 -d 65000 10.10.10.10


-1 : ICMP 모드 (-2는 UDP모드, 안써주면 TCP)

-a 10.10.10.10 : 변조할 출발지 IP 즉 스푸핑할 IP. 공격대상 IP와 동일하게 써준다.

-d 65000 : ICMP 패킷사이즈. 크게 준다. 크면 Fragmentation하여 전송하게 된다.

10.10.10.10 : 목적지 IP. 즉 공격 대상 IP




이외에도 hping3를 이용하면 다양한 DOS 공격을 수행할 수 있다. 쉘스크립트 및 펄 스크립트를 이용해 내부적으로 hping3를 사용하는 스크립트를 작성하면 smurf attack, boink attack, udp fragmentation, udp flooding 등 대부분의 패킷을 조작하여 할 수 있는 TCP/IP 수준의 공격을 테스트해 볼 수 있다.


참 유용하면서도 위험한 명령어다. 참고로 이러한 공격은 라우터나 스위치 혹은 서버의 네트워크 설정에서 대부분 방어할 수 있기도 하다. 인터넷엔 이미 창봐 방패가 모두 공개되어 있다. 


신고
이 댓글을 비밀 댓글로
  1. 사실 접속 테스트 때문에 telnet이나 ping은 많이 사용하는데 이런 툴도 있었군요 ^^ 노트해 두어야 겠습니다
    • 저도 매번 옵션 지정하는 방법을 잊어버려서... ^^
      쉽게 찾을 수 있게 기록하는게 참 어렵습니다..

칼리리눅스의 원격접속 설정(xrdp 와 xfce4를 이용)

Posted by taeho Tae-Ho
2015.12.14 11:35 정보보호

칼리리눅스(Kali Linux) 2.0 릴리즈

얼마 전 백트랙의 후속으로 발표된 칼리리눅스가 몇번의 작은 업데이트를 거쳐 2.0 으로 새롭게 릴리즈되었습니다. 칼리리눅스는 서버의 모의해킹과 취약점 점검에 활용되는 대표적인 도구인데 많은 화이트해커들에게 애용되고 있는 도구입니다. 당연히 저도 이따금씩 서버에 대한 보안점검을 할 때 사용하곤 합니다. 


칼리리눅스는 다음의 주소에서 다운받으면 됩니다. ISO 이미지를 받아 vmware 같은 가상머신 솔루션에서 원하는 대로 설치해서 사용해도 되고 가상머신 이미지를 받아 설치 과정없이 사용해도 됩니다. 다만 이 포스트에서 설명할 한글설정이나 원격데스크탑을 이용한 접속을 사용하려면 전자의 방식으로 설치를 하는 것이 좋습니다.


칼리리눅스 공식 다운로드 페이지 : https://www.kali.org/downloads/


칼리리눅스 2.0의 한글깨짐 문제

칼리리눅스 2.0은 어떤 원인인지는 모르겠지만 한글폰트가 포함되어 있지 않습니다. 그래서 설치 중 언어와 로케일을 맞춰줘도 한글이 표시되지 않고 다음처럼 깨져서 보입니다.



이 문제는 apt-get 을 이용해 원격 리포지토리에서 한글폰트를 설치하면 됩니다. 이 문제 해결과 관련된 내용은 구글링을 해보면 많이 나오기 때문에 자세히 설명하진 않겠습니다. 참고로 IT보안을 취미로 하신다는 분의 블로그를 소개할테니 방문하여 따라하면 됩니다. (여기로~)

덤으로 VMWare를 사용한다면 VMWareToos 설치까지 나와 있으니 함께 설치하여도 좋습니다.


다만 apt-get 명령으로 설치 중 /var/lib/dpkg/lock 파일과 /var/cache/apt/archives/lock 파일이 이미 있어 아래 화면과 같이 Lock을 걸 수 없다는 에러가 발생하는 경우가 있습니다. 이런 경우 두개의 lock 파일을 지우고 다시 실행하면 됩니다. kali Linux 설치 중 해당 파일이 지워져야 하는데 지워져 있지 않아 발생하는 문제로 보입니다. Unix나 Linux와 같은 멀티유저 멀티태스킹 환경의 운영체제는 서로 다른 두 사람이 동시에 패키지를 설치하거나 수정하는 것을 방지하기 위해 Lock을 걸어야만 해당 작업이 수행되도록 하고 있습니다.



원격 접속을 위한 xrdp 및 xfce4 설치

윈도의 원격접속도구인 mstsc.exe를 이용해 XWindow에 접속하려면 두개의 패키지를 설치해야 합니다. MS의 원격접속 프로토콜인 RDP(Remote Desktop Protocol)과 XWindow의 접속 프로토콜의 프로토콜게이트웨이 역할을 하는 xrdp가 XWindow 환경을 인식하도록 해주는 xfce4 를 설치해야 합니다.


다음 순서대로 따라하면 됩니다.


1. xrdp 설치



2. xrdp 대몬 실행



3. xfce4 설치



5. startwm.sh 파일 위치로 이동



6. startwm.sh 수정



7. xrdp 대몬 재실행 (/etc/init.d 로 이동 후)



8.  원격 데스크톱 연결 실행 후 ip 입력



9. 세션의 종류 선택 (sesman-Xvnc 선택)



10. 접속 성공한 화면.



여기까지 잘 실행되면 이제 콘솔 접속은 필요없습니다.


만약 해상도가 위 10번의 화면처럼 고해상도로 나오지 않는다면 콘솔에서 접속하여 설정메뉴로 들어간 뒤 해상도를 지정해주면 원격 접속시에도 해당 해상도로 나오게 됩니다. (단, 칼리리눅스를 VMWare에 설치했다면 VMWaretools를 설치해야 고해상도 지정이 가능할 수 있습니다. VMWaretools없이 고해상도가 지정되는지는 아직 해보지 않아서 잘 모르겠습니다. 해보신 분이 계시다면 댓글달아주시면 좋겠네요.)



신고
이 댓글을 비밀 댓글로

랜섬웨어 유포자가 검거되면 랜섬웨어로 인한 피해가 줄어들까?

Posted by taeho Tae-Ho
2015.11.25 11:03 정보보호

2015년 4월... 거대 커뮤니티로 부터 랜섬웨어가 유포되어 많은 피해자가 발생했습니다. PC는 물론 공유폴더 형태로 연결된 NAS나 외장스토리지에 저장된 Word(.doc), PPT(Power Point), Excel(.xls) 등의 문서파일들이 암호화되어 버리는 피해가 발생한 것이죠. (관련 사건 보러 가기)


랜섬웨어란?


랜섬웨어는 몸값을 뜻하는 ransome과 ware가 합성된 단어로서 컴퓨터 사용자의 동의없이 불법적으로 컴퓨터에 침입하여 문서, 이미지 등의 데이터파일을 무작위로 암호화 한 뒤 해당 컴퓨터 사용자에게 암호화 된 문서나 이미지를 복구하려면 돈을 내놓으라고 요구하는 악성 프로그램을 말한다.


랜섬웨어 유포자 검거

올해(2015년) 세계적으로 악명을 떨친 랜섬웨어는 CoinVault라는 랜섬웨어와 BitCryptor입니다. 우리나라는 물론 요즘은 제 주변에서도 PC에 감염되어 파일들이 암호화되는 피해가 속출하고 있는 형편이죠. 그런데 최근 네델란드에서 이들 랜섬웨어를 만들어 유포한 해커가 검거되었다고 합니다.


이 해커를 검거하는데는 카스퍼스키와 네델란드의 국립하이테크범죄수사부서가 공동으로 활약했다고 합니다. 그리고 이 해커의 C&C서버에서 1만5천여개의 암호화키를 획득하여 피해자들의 파일을 복호화하는 서비스를 카스퍼스키에서 시행하고 있습니다. (대칭키 암호화를 사용하므로 암호화키 자체가 복호화키가 됩니다.)


랜섬웨어의 공포는 사라진 것인가?

절대 그렇지 않습니다.



앞에서 언급한 클리앙 및 우리나라에서 피해를 일으킨 크립토라커(CryptorLocker)는 이번에 검거된 해커가 만든 랜섬웨어는 아닌 것으로 추측됩니다. 게다가 초기에는 암호화알고리즘을 해독해 암호키를 알아내는데 성공해서 복구 서비스를 했지만 변종이 많아지면서 더 이상 복구 서비스를 하는 곳이 없습니다.


게다가 암호화 알고리즘은 매우 다양하고 약간의 변형만 주어도 변종을 만들 수 있기 때문에 하나하나 대응하는 것은 불가능합니다. 그렇기 때문에 랜섬웨어의 공포는 현재 진행형입니다. 제 아무리 강력한 백신을 PC에 설치해도 일단 새로운 랜섬웨어가 PC로 침투하면 대응방법이 없습니다.


결국 사용자가 위험한 웹사이트에 방문하지 않거나 불필요한 파일이나 의심스런 파일을 다운로드 받지 않는 방법밖에는 없다고 보여집니다.


그렇다면 과연 랜섬웨어에 대응하는 방법은 없을까요?


랜섬웨어에 대응하기 위한 보안 솔루션의 개발은 가능하다.

아직 랜섬웨어에 효과적으로 대응하기 위한 솔루션은 없습니다만 개발은 충분히 가능합니다. 커널 수준에서 보호해야할 파일, 즉 .doc, .ppt, .xls, .hwp와 같은 문서파일에 각각 대응되는 프로세스 즉 msword.exe, hwp.exe, excel.exe 등만 접근하도록 허용하고 그 외의 프로그램들은 읽기만 가능하도록 통제하면 가능합니다.


매우 쉬운 아이디어지만 이 아이디어를 실제로 구현하는 것은 그리 간단하지는 않습니다. 실제로 이런 보안 정책을 지원하는 제품이 서버보안SW인 RedCastle인데 아쉽게도 RedCastle은 Windows 2003 Server 이상의 Windows 서버와 Linux, Unix에서만 그 동작을 보증합니다.


간혹 Windows 7에도 설치하고 테스트를 하는 경우가 있습니다만 개인 PC용 운영체제에 대한 기술보증은 하고 있지 않아 아쉽습니다.



신고
이 댓글을 비밀 댓글로

개인정보보호법과 정보통신망 이용촉진 및 정보보호등에 관한 법률의 비교

Posted by taeho Tae-Ho
2015.10.02 13:16 정보보호

얼마전에 편입한 학교에서 첫 레포트 과제가 나왔습니다. 얼마만에 써보는 학교 레포트인지 모르겠네요.ㅎㅎ 평소 정리가 필요하다고 생각했던 부분이었는데 과제로 나오니 겸사겸사 두 법률의 문구 하나 하나를 세심하게 보면서 유사항목들을 비교하고 어떤 차이가 있는지를 볼 수 있는 기회가 되었습니다.


평소 미뤄왔던 일을 하게 해주신 좋은 기회를 주신 조태희 교수님께 감사해야할 듯 합니다. ^^


그럼..들어갑니다....


1. 개요


우리나라는 개인의 자유와 권리를 보호하고 나아가 개인의 존엄과 가치를 구현하기 위한 입법취지를 갖는 『개인정보보호법』과 정보통신망의 이용을 촉진하고 정보통신서비스를 이용하는 개인의 개인정보를 보호함과 아울러 정보통신망을 건전하고 안전하게 이용할 수 있는 환경을 조성하기 위해 제정된  『정보통신망 이용촉진 및 정보보호 등에 관한 법률』(이하 정보통신망법)을 제정하여 시행하고 있습니다.


이에 두 법률을 비교/분석함으로써 전반적인 개인정보보호의 국가적 기준을 쉽게 이해할 수 있도록 하기 위해 작성하였습니다.


본 문서에서는『개인정보보호법』을 기준으로 『정보통신망법』의 동일 혹은 유사한 법령이 있는 경우 해당 규정을 비교하였습니다.


2. 일반사항 비교


개인정보보호법과 정보통신망법은 다음과 같이 제정 시기 및 주관부서의 차이를 갖고 있습니다.

구분

개인정보보호법

정보통신망법

제정

시기

2011년 3월 29일

(시행은 6개월 뒤인 2011년 9월 30일부터)

1999년 2월 8일

(이전의 『전산망보급확장과 이용촉진에 관한 법률』이 전면 개정되어 탄생 – 개인정보보호규정 추가됨)

주관

부처

행정자치부(개인정보보호정책과)

미래창조과학부/방송통신위원회

하위

규정

개인정보보호법 시행령

[별표 1]전문인력의 자격기준(제37조 제1항 제2호)

[별표 1의2] 과징금의 부과기준(제40조2 제1항)

[별표 2] 과태료의 부과기준(제63조)

정보통신망 이용촉진 및 정보보호 등에 관한 법률 시행령

개인정보의 기술적.관리적 보호조치 기준

정보보호조치에 관한 지침

정보보호 사전점검에 관한 고시

집적정보 통신시설 보호지침

정보보호 관리체계 인증 등에 관한 고시


3. 주요 법령 비교

가. 총칙

비교 기준 항목

개인정보보호법

정보통신망법

정의

“개인정보”, “정보주체”, “개인정보파일”, “개인정보처리자” 등 다양한 개인정보 관련 용어에 대한 정의 제시

또한 “처리”라는 용어로 개인정보의 수집, 이용 및 보관, 파기까지의 개인정보처리의 전반적인 라이프사이클을 명시하고 있음. (제2조)

“개인정보”에 대한 정의는 개인정보보호법과 동일한 의미로 정의하고 있음.

“개인정보처리자”를 명시하지 않고 ”정보통신서비스 제공자“ 및 ”통신과금서비스 제공자“, ”이용자“등으로 개인정보처리자 및 정보주체를 명시하고 있음. (제2조)

개인정보 보호원칙 및 정보주체의 권리

개인정보를 수집/이용하는 개인정보처리자의 책무와 개인정보 보호활동 및 정보주체의 권리에 대해 명확하게 명시하고 있음.

(제3조 및 4조)

정보통신서비스 제공자의 개인정보보호에 대한 책무를 간략히 명시하고 있음. (제3조)

미래창조과학부 장관 및 방송통신위원회가 개인정보를 위한 시책을 마련해야함을 명시함 (제4조)

타 법률과의 관계

개인정보에 관하여 타 법률에 특별한 규정이 있는 경우를 제외하고는 개인정보보호법에 따름. (제6조)

타 법률에서 특별히 규정된 경우 이외에는 정보통신망법을 따른다. 단 통신과금서비스에 관하여 전자금융거래법과 경함하는 때에는 정보통신망법을 우선 적용한다. (제5조)


나. 개인정보 보호정책의 수립

개인정보보호를 정책 수립 및 보호위원회

대통령 직속의 “개인정보 보호위원회”(위원장 1명을 포함한 15인의 위원회)를 두고 개인정보 보호와 관련된 정책, 제도 및 법령을 심의 의결하도록 명시함. (제7조 및 8조)

 

별도의 위원회 및 기구 설립에 대해 언급하지 않고 있으며 “미래창조과학부 장관” 또는 “방송통신위원회”가 개인정보 보호를 위한 시책을 마련해야 한다고 명시함. (제4조)

정보보호 기본계획

행정자치부 장관은 3년마다 개인정보 보호 기본계획을 보호위원회에 제출하고 심의 의결을 거쳐 시행하여야 한다고 명시함. (제9조)

 


다. 개인정보의 수집, 이용, 제공 등

개인정보의 수집 이용 동의

1. 개인정보의 수집.이용 목적

2. 수집하려는 개인정보의 항목

3. 개인정보의 보유 및 이용 기간

4. 동의를 거부할 권리가 있다는 사실 및 동의 거부에 따른 불이익 내용   (제15조 2항)

1. 개인정보의 수집.이용 목적

2. 수집하는 개인정보의 항목

3. 개인정보의 보유.이용 기간

(제22조 1항)

미동의 수집 가능한 예외 항목

1. 법률에 특별한 규정이 있거나 법령상 의무를 준수하기 위하여 불가피한 경우

2. 공공기관이 법령 등에서 정하는 소관 업무의 수행을 위하여 불가피한 경우

3. 정보주체와의 계약의 체결 및 이행을 위하여 불가피하게 필요한 경우

4. 정보주체 또는 그 법정대리인이 의사를 표시할 수 없는 상태에 있거나 주소불명 등으로 사전 동의를 받을 수 없는 경우로서 명백히 정보주체 또는 제3자의 급박한 생명, 신체, 재산의 이익을 위하여 필요하다고 인정되는 경우

(제15조 1항)

1. 정보통신서비스의 제공에 관한 계약을 이행하기 위하여 필요한 개인정보로서 경제적.기술적 사유로 통상적인 동의를 받는 것이 뚜렷하게 곤란한 경우

2. 정보통신서비스이 제공에 따른 요금 정산을 위해 필요한 경우

3. 이 법 또는 다른 법률에 특별한 규정이 있는 경우

(제22조 2항)

개인정보의 수집 허용 범위 및 제한 사항

서비스의 제공에 필요한 최소한의 개인정보만을 수집하여야 한다는 원칙을 제시하고 있으며 최소한의 개인정보 이외의 개인정보 수집에 동의하지 아니한다는 이유로 서비스의 제공을 거부할 수 없음을 명시하고 있음.

(제16조)

개인정보보호법과 마찬가지로 서비스의 제공을 위하여 필요한 최소한의 범위에서 개인정보를 수집해야함을 명시하고 있음. 또한 서비스의 제공에 필요한 최소한의 개인정보 이외의 개인정보를 제공하지 아니한다하여 서비스의 제공을 거부해서는 안된다고 명시하고 있음.

(제23조)

개인정보의 3자 제공 및 취급 위탁에 관한 사항

개인정보처리자는 수집한 개인정보를 제3자에게 제공하기 위해서는 정보주체의 동의를 받아야 하며 제공받는 자의 개인정보 이용 목적 및 항목, 보유기간 등을 정보주체에게 알리고 동의를 받아야 함을 명시하고 있음.

(제18조)

개인정보를 수집한 정보통신서비스 제공자는 제3자에게 개인정보 처리 업무를 위탁하거나 개인정보를 제공할 수 있으며 그 경우 위탁자(제공받는 자), 위탁업무의 내용(개인정보 이용 목적), 위탁(제공)하는 개인정보의 항목 등을 이용자에게 알리고 동의를 받아야 함을 명시하고 있음.

(제24조, 25조)

개인 정보의 수집 목적 외 이용.제공의 제한에 관한 사항

개인정보보호법에서는 “개인정보의 수집.이용 목적(제15조 1항)”의 범위를 초과하여 이용하거나 제3자에게 제공(제17조 1항 및 3항)하면 안된다고 명시하고 있음.

예외적으로 정보주체로부터 별도의 동의를 받거나 타 법률에 규정이 있는 경우 등 9가지의 항목의 경우에만 가능하다고 명시하고 있음. (제18조 2항)

또한 최초의 개인정보 수집.이용 목적을 초과하여 개인정보를 이용하고자 할 때에는 정보주체에게 별도의 이용동의를 받도록 명시하고 있다. (제18조 3항, 제19조)

정보통신서비스 제공자는 제22조 및 제23조 제1항의 단서에 따라 수집한 개인정보를 이용자로부터 동의받은 목적이나 제22조 제2항 각 호에서 정한 목적과 다른 목적으로 이용해서는 안된다고 명시하고 있음.

(제24조 및 제24조의 2 2항)

개인정보의 파기

개인정보처리자는 보유기간의 경과, 개인정보의 처리목적 달성 등 개인정보가 불필요하게 되었을 경우 지체없이 파기하도록 명시하고 있음.

또한 파기시 복구 또는 재생이 불가능하도록 조치하여야 함을 명시함.

(제21조)

정보통신서비스 제공자는 이용자로부터 동의 받은 개인정보의 수집.이용 목적을 달성하였거나 보유 및 이용기간이 끝난 경우, 사업을 폐업하는 경우 지체없이 해당 개인정보를 복구.재생할 수 없도록 파기하여야 한다고 명시하고 있음.

(제29조)


라. 개인정보의 처리 제한

민감정보의 처리 제한

개인정보 처리자는 사상, 정치활동, 건강정보 등 정보주체의 사생활을 현저히 침해할 우려가 있는 개인의 민감정보(대통령령으로 정함)를 “처리”하여서는 안된다고 명시하고 있음.

단, 별도의 동의를 받거나 법령에서 민감정보의 처리를 요구하거나 허용하는 경우에는 가능하다. (제23조)

정보통신서비스 제공자는 사상, 가족관계, 병력 등 개인의 이익이나 사생활을 뚜렷하게 침해할 우려가 있는 개인정보를 수집해서는 안된다고 명시하고 있음.

단, 이용자의 동의를 받거나 다른 볍률에 따라 특별히 수집 대상 개인정보로 허용된 경우에는 최소한의 범위에서 수집이 가능함.

(제23조)

이용자는 사생활 침해 또는 명예훼손 등 타인의 권리를 침해하는 정보를 정보통신망에 유통시켜서는 안된다고 명시하여 정보통신서비스 제공자 뿐만 아니라 일반 이용자에 대해서도 타의 민감정보에 대한 유통을 금지하고 있으며 방송통신위원회는 정보통신망을 통한 사생활 침해 및 명예훼손 등을 방지하기 위한 기술개발, 교육, 홍보 등에 대한 시책을 마련하고 정보통신서비스 제공자에게 권고할 수 있다고 명시하고 있음

(제44조)

고유식별정보의 처리 제한

개인을 고유하게 구별하기 위하여 부여된 식별정보로서 별도의 대통령령으로 정하는 정보(이하 “고유식별정보”)는 다음의 경우 이외에는 처리할 수 없다고 명시되어 있음.

1. 제15조 2항 및 제17조 2항 각 호의 사항을 알리고 별도의 동의를 받은 경우

2. 법령에서 구체적으로 고유식별정보의 처리를 요구하거나 허용하는 경우

또한 고유식별정보를 처리하는 경우 암호화 등 안전성 확보에 필요한 조치를 해야 함.

(제24조)

정보통신망법에서는 “주민등록번호” 이외의 개인을 식별할 수 있는 고유식별정보에 대한 수집/이용 제한 규정이 명시되어 있지 않음.

주민등록번호의 처리 제한

개인정보처리자는 제24조 1항의 정보주체의 동의를 받았거나, 법령에서 허용하는 경우에도 불구하고 다음 각 호의 어느 하나에 해당하는 경우를 제외하고는 주민등록 번호를 처리할 수 없다.

1. 법령에서 구체적으로 주민등록번호의 처리를 요구하거나 허용한 경우

2. 정보주체 또는 제3자의 급박한 생명, 신체, 재산의 이익을 위하여 명백히 필요하다고 인정되는 경우

3. 앞의 두 항목에 준하여 주민등록번호의 처리가 필요하며 안전행정부령으로 정하는 경우 (제24조의2 1항)

 

이 경우에도 주민등록번호를 처리하는 경우 암호화 등 안전성을 확보해야 함. (제24조 2항)

 

또한 개인정보처리자는 위의 경우에도 정보주체가 인터넷을 통하여 회원으로 가입하는 단계에서는 주민등록번호를 사용하지 아니하고도 회원으로 가입할 수 있는 방법을 제공하도록 명시하고 있음. (제24조의2)

정보통신서비스 제공자는 다음의 각호에 해당되는 경우를 제외하고는 이용자의 주민등록 번호를 수집.이용할 수 없다고 명시하고 있음.

1. 동법 제23조의3에 따라 본인확인기관으로 지정받은 경우

2. 법령에서 이용자의 주민등록번호의 수집.이용을 허용하는 경우

3. 영업상 목적을 위하여 이용자의 주민등록번호 수집.이용이 불가피한 정보통신서비스 제공자로서 방송통신위원회가 고시하는 경우

 

또한 위의 경우에도 이용자의 주민등록번호를 사용하지 아니하고 본인을 확인할 수 있는 방법(대체수단)을 제공하여야 한다고 명시하고 있음. (제23조의2)

 

개인정보취급자에 대한 감독 및 교육

개인정보처리자는 개인정보취급자에 대한 적절한 관리.감독과 안전한 개인정보의 취급을 위해 개인정보취급자에게 정기적으로 필요한 교육을 실시하여야 함을 명시하고 있음. (제28조)

정보통신망법에서는 정보통신서비스의 이용자 권익보호와 개인정보보호를 위해 노력해야함을 명시하고 있음. (제3조)


마. 개인정보의 안전한 관리

안전조치의무

개인정보보호법에서는 개인정보처리자가 개인정보의 분실.도난.유출.변조 또는 훼손의 방지를 위해 내부관리계획의 수립 등 대통령령으로 정하는바에 따라 안전성 확보에 필요한 기술적.관리적 및 물리적 조치를 취해야함을 명시하고 있음. (제29조 및 개인정보의 안전성 확보조치 기준 : 행정자치부고시 제2014-7호)

정보통신망법에서는 이용자의 개인정보를 보호하기위해 대통령령으로 정하는 기준에 따라 개인정보관리책임자를 지정하여야 하며 그 밖의 지정에 필요한 사항은 대통령령으로 정하도록 규정하고 있음 (제27조)

개인정보 처리방침의 수립 및 공개

개인정보처리자는 다음의 각호를 포함하는 개인정보처리방침을 수립하고 공개하여야 한다.

1. 개인정보의 처리 목적

2. 개인정보의 처리 및 보유기간

3. 개인정보의 제3자 제공에 관한사항(해당되는 경우)

4. 개인정보처리의 위탁에 관한 사항(해당되는 경우)

5. 정보주체의 권리.의무 및 그 행사방법에 관한 사항

6. 그 밖에 개인정보 처리에 관하여 대통령령으로 정한 사항

(제30조)

 

정보통신서비스제공자는 이용자의 개인정보취급방침을 정하여 이용자가 언제든지 쉽게 확인할 숭 ᅟᅵᆻ도록 대통령령으로 정하는 방법에 따라 공개하여야 한다.

1. 개인정보의 수집.이용 목적, 수집하는 개인정보의 항목 및 수집방법

2. 개인정보를 제3자에게 제공하는 경우 제공받는자의 성명(법인명), 제공받는 자의 이용 목적과 제공하는 개인정보의 항목

3. 개인정보의 보유 및 이용기간, 개인정보의 파기 절차 및 파기방법

4. 개인정보 취급위탁을 하는 업무의 내용 및 수탁자

5. 이용자 및 법정대리인의 권리와 그 행사방법

6. 인터넷 접속정보파일 등 개인정보를 자동으로 수집하는 장치의 설치.운영 및 관련 고충사항을 처리하는 부서의 명칭과 그 전화번호 등 연락처

(제27조의2)

개인정보 보호책임자의 지정 및 역할 규정

개인정보처리자는 개인정보의 처리에 관한 업무를 총괄하여 책임질 개인정보 보호책임자를 지정하여야 함을 규정하고 있음.

개인정보 보호책임자는 다음의 업무를 수행하여야 함.

1. 개인정보 보호 계획의 수립 및 시행

2. 개인정보 처리 실태 및 관행의 정기적인 조사 및 개선

3. 개인정보 처리와 관련한 불만의 처리 및 피해 구제

4. 개인정보 유출 및 오용ᆞ남용 방지를 위한 내부통제시스템의 구축

5. 개인정보 보호 교육 계획의 수립 및 시행

6. 개인정보파일의 보호 및 관리ᆞ감독

7. 그 밖에 개인정보의 적절한 처리를 위하여 대통령령으로 정한 업무

(제31조)

정보통신서비스 제공자 등은 이용자의 개인정보를 보호하고 개인정보와 관련한 이용자의 고충을 처리하기 위하여 개인정보 관리책임자를 지정하여야 한다. 다만, 종업원 수, 이용자 수 등이 대통령령으로 정하는 기준에 해당하는 정보통신서비스 제공자등의 경우에는 지정하지 아니할 수 있다고 규정하고 있음.

단, 개인정보 관리 책임자를 지정하지 아니할 경우 그 사업주 또는 대표자가 개인정보 관리책임자가 된다고 규정하고 있음.

(제27조)

개인정보 유출 통지 등

개인정보처리자는 개인정보가 유출되었음을 알게 되었을 때에는 지체 없이 해당 정보주체에게 다음 각 호의 사실을 알려야 한다.

1. 유출된 개인정보의 항목

2. 유출된 시점과 그 경위

3. 유출로 인하여 발생할 수 있는 피해를 최소화하기 위하여 정보주체가 할 수 있는 방법 등에 관한 정보

4. 개인정보처리자의 대응조치 및 피해 구제절차

5. 정보주체에게 피해가 발생한 경우 신고 등을 접수할 수 있는 담당부서 및 연락처

 

또한 개인정보가 유출된 경우 그 피해를 최소화하기 위한 대책을 마련하고 필요한 조치를 취하여야 하며 대통령령으로 정한 규모 이상의 개인정보가 유출된 경우에는 위의 5가지 내용과 피해 최소화 대책을 지체 없이 행정자치부 장관 또는 대통령령으로 정하는 전문기관에 신고하여야 함을 명시하고 있음. (제34조)

정보통신서비스 제공자등은 개인정보의 분실.도난.누출 사실을 안 때에는 지체없이 다음 각호의 사항을 이용자에게 알리고 방송통신위원회 또는 한국인터넷진흥원에 특별한 사유가 없을 경우 24시간 이내에 신고하여야 함. 다만 이용자의 연락처를 알 수 없는 정당한 사유가 있을 경우에는 대통령령으로 정하는 바에 따라 통지를 갈음할 수 있다.

1. 누출등이 된 개인정보 항목

2. 누출등이 발생한 시점

3. 이용자가 취할 수 있는 조치

4. 정보통신서비스 제공자 등의 대응 조치

5. 이용자가 상담할 수 있는 부서 및 연락처

 

또한 서비스제공자등은 개인정보 누출등에 대한 대책을 마련하고 그 피해를 최소화할 수 있는 조치를 강구하여야 함을 명시하고 있음. (제27조의3)



바. 처벌

과징금 및 과태료 부과

행정자치부 장관은 개인정보처리자가 처리하는 주민등록번호가 분실.도난.유출.변조 또는 훼손된 경우에는 5억원 이하의 과징금을 부과.징수할 수 있으나 개인정보처리자가 24조 제3항에 따른 안전성 확보에 필요한 조치를 다한 경우에는 그러하지 아니하다고 규정하고 있음.

 

과징금 부과시에는 다음의 사항을 고려하도록 하고 있음.

1. 제24조 3항에 따른 안전성 확보에 필요한 조치 이행 노력 정도

2. 분실.도난.유출.변조 또는 훼손된 주민등록번호의 정도

3. 피해확산 방지를 위한 후속조치 이행 여부

(제34조2)

 

다음 각 호의 의무를 다하지 않은 자에게는 5천만원 이하의 과태료를 부과하도록 규정하고 있음.

1. 제15조 제1항을 위반하여 개인정보를 수집한 자

2. 제22조 제5항을 위반하여 법정대리인의 동의를 받지 아니한 자

3. 제25조 제2항을 위반하여 영상정보처리기기를 설치.운영한 자

 

이외에도 13개의 3천만원 이하의 과태료 부과처분 대상과 11개의 1천만원 이하의 과태료 부과 처분 대상에 대해서도 명시하고 있음. (제75조)

방송통신위원회는 다음과 같은 행위를 한 정보통신서비스 제공자등에게 위반행위와 관련한 매출액의 100분의 3 이하에 해당하는 금액을 과징금으로 부과할 수 있음을 명시하고 있음.

1. 제22조 제1항을 위반하여 이용자의 동의를 받지 않고 개인정보를 수집한 경우

2. 제23조 제1항을 위반하여 이용자의 동의를 받지 아니하고 개인의 권리.이익이나 사생활을 뚜렷하게 침해할 우려가 있는 개인정보르 수집한 경우

3. 제24조를 위반하여 개인정보를 이용한 경우

4. 제24조의2를 위반하여 개인정보를 제3자에게 제공한 경우

5. 제25조 제1항을 위반하여 이용자의 동의를 받지 아니하고 개인정보 취급위탁을 한 경우. 제25조 제4항에 따른 관리.감독을 소홀히 하여 수탁자가 제4장의 규정을 위반한 경우

6. 이용자의 개인정보를 분실.도난.누출.변조 또는 훼손한 경우로서 제28조 제1항 제2호부터 제5호까지의 조치를 하지 아니한 경우

7. 제31조 제1항을 위반하여 법정대리인의 동의를 받지 아니하고 만 14세 미만인 아동의 개인정보를 수집한 경우

 

또한 방송통신위원회가 과징금을 산정할 때 다음의 사항을 고려하도록 하고 있음.

1. 위반행위의 내용 및 정도

2. 위반행위의 기간 및 횟수

3. 위반행위로 인하여 취득한 이익의 규모

(제64조의3)

 

이외에도 정보통신망법에서는 정보통신서비스 제공자가 아닌 경우에도 정보통신망을 통하여 비방할 목적의 사실적시, 명예훼손에 대한 벌금형 처벌규정이 있음. (제70조)

 

또한 개인정보 수집, 처리, 취급의 위탁, 법규 위반을 통해 개인정보를 제공하거나 제공받은 자, 악성 프로그램 유포자, 악의적 행위로 정보통신망의 장애를 유발한 자 등에 대한 처벌규정이 명시되어 있음. (제71조, 제72조)

 

개인정보보호를 위한 기술적.관리적 조치를 취하지 아니하여 개인정보를 분실.도난.누출.변조 또는 훼손한 자와 개인정보 파기 규정을 위반한 ㅈ 등에 대해서 2년이상의 징역 또는 2천만원 이하의 벌금형에 처하도록 규정하고 있음. (제73조)


신고
이 댓글을 비밀 댓글로
  1. 학업을 시작하셨군요 벌써 뭔가 새로운걸 배운다는게 두려워 지는데 대단하신것 같습니다 ^^
    • 어쩌다 보니 하게 됐습니다. 2년 동안 꼼짝마입니다.. ^^

ISMS 인증의 인증기준 변경 (2013)

Posted by taeho Tae-Ho
2015.09.05 16:32 정보보호
ISMS는 "정보보호관리체계(Information Security Management System)"이다. 즉 조직(기업 혹은 공공기관 등)의 정보서비스를 수행하는 시스템과 정보(Information 혹은 Data)를 보호하기 위한 전체적인 정보보호시스템을 체계적으로 구축하고 문서화하고 운용하기 위한 체계다.


그리고 ISMS 인증은 독립된 제3자가 조직의 정보보호관리체계를 평가하고 그 수준이 만족스러울 경우 정보보호관리체계가 잘 운용되고 있음을 인증해주는 제도다.


그렇다면 당연히 정보보호관리체계를 평가하기 위한 인증 기준이 존재할 것이다. 그리고 이 기준은 정보보안의 전반적인 이슈와 ISMS의 여러 요소들에 대한 중요도에 따라 변경이 일어나는 것이 당연하다.


그리고 ISMS 인증에 대해 공부를 하면서 이 기준이 최근에 일부 변경되었음을 알게 되었다. 어떤 자료에서는 137개 통제항목 및 446개 세부 점검항목이라고도 하고 어떤 문서에서는 104개 통제항목에 253개 세부 점검항목이라고 기록되어 있는 바람에 "도대체 뭐가 맞는거지?"라는 의구심을 가질 수 밖에 없었다.


그리고 KISA의 2013년 10월 자료인 "정보보호관리체계(ISMS)_인증_제도_안내서(13.10.8)"를 보고 인증 기준에 변경이 있었기 때문이라는 것을 알게 되었다.


정보보호관리체계 인증 기준의 변경

정보보호관리체계는 5단계의 정보보호관리과정과 13개 분야의 정보보호대책으로 이루어진다. (변경된 인증기준) 하지만 변경 전과 비교해보면 그 수가 조금 다름을 알 수 있었다.



"정보보호관리체계(ISMS)_인증_제도_안내서(13.10.8)"의 37페이지에 정답이 있었다. 관리과정이 5단계 14개항목에서 5단계 12개 항목으로 통폐합되었고 문서과정 3개 항목은 삭제 되었다. 그리고 정보보호대책도 120개 에서 92개로 통폐합 되었다.


인증기준의 주요 변경 내용은 다음과 같다.



아무래도 정보보안을 위한 경영진의 마인드가 아직은 부족하다보니 인증 기준 자체에 경영진의 책임을 강화하여 경영진의 참여를 유도하기 위해 "경영진의 책임"을 명시하고 정보보안관련 법규와 보조를 맞춰 임원금의 정보보호책임자 지정을 의무화한 것으로 보인다.


그리고 기업이나 공공기관에서 사용하는 서비스 애플리케이션의 데이터 입력에서 부터 출력, 그리고 데이터 검증은 현실적으로 인증심사원들이 짧은 기간동안 검증하기가 쉽지 않기 때문에(사실 직접 검증할 수 있는 심사원도 얼마 되지 않는다고 본다.) 삭제한 것으로 보인다.


그리고 이렇게 변경된 인증심사기준의 적용 시기도 명시하고 있었다.



변경된 인증기준을 즉각적으로 적용할 경우 구 기준에 따라 인증심사를 통과한 기업이나 조직의 어려움을 고려해 일정기간 유예를 시킨 것으로 보인다. 하지만 ISMS인증의 유효기간이 3년이고 유효기간이 만료될 경우 최초심사와 같은 갱신심사를 받아야 하므로 그 시점부터 새로운 인증기준을 적용하게 될 것 같다.


세부적인 인증 기준의 점검항목의 변화는 다음과 같다.



이걸 달달달~외워야 하는 걸까???


신고
이 댓글을 비밀 댓글로
  1. 정보보호관리체계 인증기준이 변경되었군요.^^
    오랜만에 인사드립니다.
    오늘 블로그로 돌아왔습니다.ㅎㅎ
    일교차에 건강 조심하시고 좋은 하루 보내세요!
  2. 제가디니는 회사도 매년 이 인증을 받고 있습니다. 솔직한 감상은 바쁠때 찾아와 괴롭히는 분들 ^^