1. 서 론
해커는 기업, 사용자의 개인정보를 취득하기 위해 끊임없이 노력하고 있다. 사이버 보안업체 트러스트 웨이브에 따르면 주요 웹사이트의 비밀번호를 포함한 개인정보 200만 건이 지난해 10월 21일부터 ‘키로깅(keylogging)’ 소프트웨어를 통해 해킹되었다고 한다[1]. 이에 따라 많은 보안전문가들은 최신 백신 프로그램과 보안패치를 설치하고 안전한 사이트가 아니면 접속을 자제하라고 권고하고 있다. 하지만 파밍(Pharming) 사이트의 경우 악성프로그램이 강제로 설치되는 사이트로 접속된다. 또한 웹사이트의 Plug-in 기능은 사용자 의도와 관계없이 악성프로그램을 설치하기도 한다. 최신 백신프로그램 설치 권고의 경우 모든 악성프로그램에 대한 탐지 및 차단을 하지 않기에 보안전문가들의 권고사항이 무용지물이 되고 있는 실정이다.
대부분의 백신프로그램 및 보안 솔루션은 바이러스가 시스템으로 침투하거나 사용자 컴퓨터에 설치가 되어 있을 경우에만 삭제 또는 치료기능을 수행한다. 그러나 사용자 의도와 관계없이 시스템 내부의 정보가 유출되는 것을 탐지하는 기능은 거의 없다. 그래서 많은 기업에서 내부의 정보가 유출되는 것을 막기 위해 DLP(Data Loss Prevention)솔루션을 사용한다.
DLP솔루션은 출력물 워터마트 삽입, 기밀파일 업로드 제한, 외장형 하드웨어로 파일 복사 제한 등 다양한 기능을 지원한다. 하지만 대부분이 기업용이라 일반 사용자가 접하기 힘들다.
본 논문에서는 키로깅 공격 등 의해 사용자의 의도와 관계없이 사용자가 지정한 데이터가 외부로 전송되는 것을 탐지하고 알려주는 보안 솔루션을 설계하고 구현하였다. 제안하는 솔루션은 사용자가 지정한 특정 정보가 유출되는 것을 탐지하기 위해 외부로 전송되는 패킷의 페이로드 영역을 추출하여 판단한다. 그리고 솔루션의 패킷 감시 동작으로 인해 패킷 전송 지연 시간이 증가하는 것을 줄일 수 있도록 솔루션 동작을 설계하였다. 또한 일반 사용자들도 쉽게 사용할 수 있도록 인터페이스는 편이성을 중심으로 디자인하였다. 키로깅 공격으로 메일과 FTP로 사용자 정보가 전송되면 사용자에게 경고 메시지를 띄워 사용자가 정보유출 상황을 실시간으로 확인 할 수 있도록 하였다.
본 논문의 구성은 다음과 같다. 2장에서 키로깅 공격과 기존의 내부정보유출 방지 솔루션인 DLP 시스템에 대해 설명하고 3장에서 제안하는 솔루션의 설계 및 구현에 대해 설명한다. 4장에서는 테스트베드 상에서의 제안 솔루션의 동작을 테스트하고 마지막으로 5장에서 결론을 맺는다.
2. 키로깅 공격 및 기존 정보유출 보안 솔루션
키로깅(Keylogging)이란 키스트로크로깅(Keystroke logging)으로도 불리며 사용자가 키보드로 PC에 입력하는 내용을 가로채어 특정 파일 등에 기록하는 행위를 말한다. 키로깅은 하드웨어, 소프트웨어를 활용한 방법, 마이크녹음, 웹캠 촬영 등 다양한 키로깅 방법이 존재한다. 키로킹 프로그램이 설치되어 있으면 사용자 PC에서 생성되는 기밀정보문서, 인터넷 사이트 로그인 정보 등 키보드로 입력한 모든 정보를 알 수 있다. 키로깅은 사용자가 키로깅 프로그램 감염 사실을 알아채기 어렵고, 오랜 기간 동안 지속적으로 다양한 개인정보 및 기밀정보 유출 사고로 이어질 수 있기에 가볍게 생각하고 넘겨서는 안된다[2].
정보유출과 관련한 통계 정보 및 사고를 다루는 OSF의 DATALABDB 통계자료에 따르면, 2006년 이후 매년 400건 이상의 정보유출 사고가 있었다는 것을 확인할 수 있다. 그 중 외부자로 인한 것이 64%, 내부자로 인한 것이 31%로 파악되고 있다[3]. 뿐만 아니라 IT 폴리시 컴플라이언스그룹(IT Policy Compliance Group)에 따르면 기업의 20%가 연간 22건 이상의 중요 정보 손실로 피해를 입고 있다. 그래서 많은 기업들은 내부의 데이터를 안전하게 지키고, 외부로 유출되는 것을 막기 위해서 DLP(Data Loss Prevention) 솔루션을 사용한다[4-9].
DLP 솔루션은 많은 고객 정보를 다루는 금융 및 보험 산업 분야에서 가장 먼저 도입되어 사용되었으며 점점 많은 산업 분야에서 사용되고 있다. DLP 솔루션은 관리자가 웹페이지로 Endpoint와 서버 관리를 할 수 있도록 지원한다. 전자메일, 메신저, 웹 하드, 웹 게시판 등에서 업로드 하는 파일‧대용량 첨부 파일 차단 기능이 있다. 뿐만 아니라 PC에서 출력되는 출력물에 워터마크 삽입, USB 등 외부 디스크로 유출되는 파일 차단 기능도 있다. 관리자가 특정 파일을 기밀 파일로 지정하는 경우에는 관리자의 승인 없이는 출력, 메일전송, USB에 파일 복사와 같은 모든 기능이 제한된다[10].
본 논문에서는 키보드 값을 저장하여 메일로 보내는 키로깅 악성프로그램으로 인해 PC 내부의 데이터 유출 여부와 유출된 데이터 중 자신이 지정한 정보의 유출 여부를 체크한다. DLP 솔루션의 경우 특정 파일을 업로드 할 때 업로드를 차단한다. 키로깅 악성 프로그램의 경우, 파일명이 임의로 생성되기 때문에 DLP 솔루션만으로는 한계가 따른다. 또한, 일반 사용자가 DLP 솔루션을 이용하기에는 경제적인 부담과 기능의 복잡성으로 인해 사용하기 힘들다는 단점이 있다.
3. 솔루션 설계 및 구현
사용자들이 인식하지 못하는 동안 자신의 주요한 정보가 유출되는 것을 탐지해 주는 것이 본 논문에서 설계하고 구현한 보안 솔루션의 목적이다. 따라서 시스템에서 외부로 전송되는 패킷들에 대한 검사 기능과, 패킷의 페이로드 부분에 주요 데이터가 있는지 여부를 검사하는 기능이 있어야 한다. 그 외에 비전문가들이 사용하기 쉬운 사용자 인터페이스가 제공되어야 한다. 본 논문에서는 이러한 요구를 충족시키는 보안 솔루션을 설계하고 구현하였다. Fig. 1은 본 논문에서 설계 및 구현한 보안 솔루션의 구현 구조를 나타내고 있다.
Fig. 1.Implementation Architecture of Proposed Solution.
가장 먼저, 네트워크 카드를 통해 통신되는 데이터를 Packet Capture Module에서 캡처한다. 해당 모듈에서는 키로깅 공격에서 주로 사용되는 FTP, Telnet, Mail, Web 서비스에 해당하는 패킷을 캡처한다. 정보 유출 가능성이 있는 패킷만 캡처함으로써 시스템 부하를 줄이는 것이다. 캡처 후에는 필요한 부분을 추출하여 Data Matching Module로 전달한다.
Data Matching Module은 Packet Capture Module로부터 받은 데이터에서 사용자가 지정한 문자열과 동일한 문자열을 찾는다. 동일한 문자열이 있다면 정보유출이 된 것으로 간주하고 사용자에게 즉각 알린다. 사용자가 정상적으로 외부 서버에 로그인 하는 경우도 있을 수 있으며 키로깅과 같은 악성 코드에 의해 유출될 수도 있다. 제안 솔루션은 사용자의 상황을 모르기 때문에 정보유출이 탐지되면 항상 사용자에게 그 사실을 알려준다.
User Interface Module은 Data Matching Module로부터 정보유출 탐지 이벤트가 전달되면 사용자에게 전달하는 기능과, 사용자가 중요하다고 판단하는 정보 입력 및 편집 기능을 지원한다. User Interface Module의 설계는 비전문가들이 직관적으로 알 수 있도록 최소한의 기능만을 표현하였으며 알림 또한 비전문가들도 쉽게 인지할 수 있도록 설계하였다.
3.1 Packet Capture Module
Packet Capture Module은 지정한 정보의 외부 유출 여부를 탐지하기 위해 아웃바운드 Packet을 검사한다. 시스템 부하를 줄이기 위해 전체 패킷 중에 정보유출 가능성이 있는 패킷만 필터링하여 검사하도록 하였다. 키로깅 공격의 경우 메일, Telnet, FTP를 이용해 정보를 유출시킴으로 해당 패킷들을 탐지 대상으로 하였다. 패킷을 검사하는 방법은 패킷을 훅킹해서 검사하는 방법과 복사해서 검사하는 방법 두 가지가 있다. 전자의 경우 Netfilter를 사용하는 경우인데 이 방법은 해당 모듈에서 패킷 검사가 완료되어야 다음 정상 동작을 수행할 수 있으므로 패킷 처리시간이 지연되는 단점이 있다. 패킷 복사 방법은 Libpcap 라이브러리를 사용하는 경우인데 이 방법은 패킷 처리와 분리되어 동작하므로 패킷 처리 시간에 영향을 주지 않고 동작시킬 수 있다는 장점이 있다. 본 논문에서는 윈도우 환경에서 Libpcap 라이브러리를 지원하도록 만든 Winpcap 라이브러리를 사용하여 구현하였다. Fig. 2는 Packet Capture Module 구현 구조이다.
Fig. 2.Implementation Architecture of Packet Capture Module.
Packet Capture Module은 외부로 전송되는 패킷을 복사한 다음 패킷의 검사 여부를 먼저 판단한다. Packet Filtering을 거쳐 Mail, FTP, WEB, Telnet 패킷일 경우 패킷의 페이로드 부분을 추출한다. 다음으로 첨부파일 존재 여부를 판단하고 첨부파일이 있는 경우에는 저장장치에서 해당 파일의 위치를 파악한다. 또한 서비스 별로 로그인 정보가 전송되는 경우 전송된 로그인 정보나 첨부파일 정보를 Data Matching Module로 전달한다. 특히 Telnet 서비스의 경우 데이터가 바이트단위로 전송이 되기 때문에 데이터를 재결합시키는 과정이 필요하다.
3.2 Data Matching Module
Fig. 3은 Data Matching Module의 구현 구조이다. Packet Capture Module로부터 전달받은 정보를 사용자 입력 데이터와 비교하는 동작을 수행한다. 솔루션의 가장 중요한 기능인 Data Matching Module은 사용자가 지정한 문자열이 외부로 전달되는 패킷에 있는지를 판단하는 기능이다. 외부로의 정보유출은 바이트 단위로 유출되는 경우, 파일 내에 포함이 되어 유출되는 경우 그리고 WEB을 통해 유출되는 경우 등 다양한 방식으로 이루어진다. 따라서 현재 이루어지고 있는 키로깅 공격의 형태를 분석하여 정보유출 방식에 따른 정보유출 탐지 동작을 구현하였다.
Fig. 3.Implementation Architecture of Data Matching Module.
Data Matching Module은 Packet Capture Module에서 전달받은 파일이름을 통해 저장장치를 검색하고, 파일이 존재하면 파일의 절대경로를 획득한다. 그리고 획득한 절대경로를 이용해 파일의 내용과 데이터베이스에 저장된 사용자의 문자열을 비교한다. 만일, 사용자가 지정한 문자열과 동일한 문자열이 해당 파일에 존재한다면, User Interface Module에 해당 문자열과 목적지 주소 정보를 전달한다.
대부분의 키로깅 공격은 입력키 정보를 특정 파일로 저장했다가 메일, FTP로 전송하는 방법을 사용한다. 이 경우 저장하는 파일이 공격에 따라 변경이 될 수 있어 특정 파일에 대한 유출 탐지로는 근본적인 보안이 이루어지기 어렵다. 따라서 사용자가 유출이 되면 곤란한 정보들을 미리 저장했다가 해당 정보가 유출되는지 여부를 판단하는 것이 효과적인 방법이라 할 수 있다.
3.3 User Interface Module
Fig. 4는 제안 솔루션 실행 화면이다. 사용자가 비전문가이더라도 사용하기 편리하도록 구현하였다. 사용자는 ‘문자열 지정’ 버튼을 눌러 개인정보, 로그인 정보 등의 문자열과 해당 문자열에 대한 키워드를 입력할 수 있으며 입력되는 정보는 데이터베이스에 보관된다. 키워드는 사용자가 지정한 문자열이 유출되었을 때 문자열과 함께 키워드를 보여줌으로써, 어떤 정보가 유출되었는지 사용자가 자세히 알 수 있도록 구현하였다.
Fig. 4.Execution Screen Shot of Solution.
본 프로그램은 사용자의 PC에서 실행 파일 형태로 존재하기 때문에 누군가가 프로그램을 실행시켜 사용자의 개인정보(문자열)를 볼 수 없도록 문자열 중 2글자만 정상글자로 보여주고 나머지 글자는 ‘ * ’로 처리하였다. 해당 문자열의 수정할 때에도 문자열의 일부만 보이도록 하여 사용자의 개인정보를 보호하였다.
4. 솔루션 동작 테스트
본 논문에서 제안한 보안 솔루션의 동작 및 기능 검증을 위해 테스트베드를 구축하였다. 테스트베드는 일반 클라이언트 호스트, 웹서버, FTP 서버, Telnet 서버, Mail 서버로 구성하였다. 서버 환경은 윈도우7 운영체제에 FTP, Mail, Telnet 서버를 설치하였다. 일반사용자 환경의 경우, 윈도우7 운영체제에 키로깅 악성코드를 설치해두었다. 키로깅 악성코드에는 해커의 FTP 서버주소, 포트번호, 아이디, 패스워드, E-mail 주소 등 모두 설정되어있다. 설치한 키로깅 프로그램으로 생성되는 입력키 정보를 다양한 방법으로 외부로 유출시키면서 솔루션의 동작을 테스트하였다.
본 논문에서 테스트를 위해 사용한 툴은 Actual Keylogger로 PC에서 입력되는 Keystrokes 값을 기록하고 리포트를 생성하여 FTP, E-mail, local network IP로 일정 시간마다 전송한다. 해당 툴과 동일한 기능을 가진 프로그램으로 Refog Keylogger, Free Keylogger, GhostKeylogger 등 이 있다. 본 논문에서 테스트 한 툴의 경우, 리포트 파일의 전송을 메일과 FTP로 전송한다. 따라서 설정한 서버로 파일이 전송될 때, 제안하는 솔루션의 정상 작동 여부를 확인하였다. 테스트 내용은 파일이 업로드 될 때 파일 이름과 파일의 절대경로 획득 여부, 파일내용 중 사용자가 지정한 패턴의 존재 유무 확인 그리고 부가적으로 FTP, Web 로그인 여부에 대해 확인하였다.
Fig. 5는 키로거 프로그램에서 설정된 FTP와 웹 메일로 리포트 파일이 업로드 되었을 때를 캡처한 것이다. 업로드 된 파일명뿐만 아니라 FTP 서버에 로그인한 사용자의 정보도 확인할 수 있다. 그림에서 박스로 구분한 “com.txt"가 유출된 파일 이름을 나타낸다. Fig. 5에서 획득한 파일 이름을 통해 Data Matching Module은 저장장치에서 파일의 절대경로를 획득하였다. Fig. 6은 실제 전송된 파일의 내용이다. Space, Enter, 방향키 등 키보드로 입력되는 모든 내용을 KeyStrokes에 저장된 것을 확인할 수 있다. Data Matching Module에서는 파일의 내용을 읽어 사용자가 지정한 패턴과 일치하는 데이터를 검색하고 User Interface Module에 탐지된 데이터를 전달한다.
Fig. 5.Captured Screen Shot of File Upload.
Fig. 6.Information of com.txt File.
Fig. 7은 파일 유출 경고 메시지창이다. Data Matching Module에서 com.txt 내용 중 사용자가 지정한 패턴과 일치하는 문자열을 찾고 나면 Fig. 7과 같이 User Interface Module을 통해 사용자에게 경고 메시지 창을 통해 유출 정보를 실시간으로 알려준다.
Fig. 7.Warning Message of File Leakage.
키로깅은 사용자 PC의 키보드 값을 입력받아 파일 형태로 저장 후 메일이나 FTP로 해당 파일을 전송한다. 이때 지정된 서버의 주소, 웹 메일로 로그인을 수행한 후 파일을 전송한다. 이에 따라 본 솔루션은 파일 유출 실시간 탐지 이외에 FTP, 웹 사이트 로그인 여부도 실시간으로 탐지할 수 있도록 구현하였다. 동작 방식은 파일 업로드 탐지와 동일한 방식으로 진행된다. 해커가 설정한 웹 사이트, FTP 서버에서 로그인 되면 Packet Capture Module에서 서버 주소와 아이디, 패스워드 정보를 저장하고, Data Matching Module이 패턴 매칭을 진행한다. 일치하는 문자열이 존재할 경우 User Interface Module에서 Fig. 8과 같이 경고 메시지를 사용자 PC 화면에 띄워준다.
Fig. 8.Warning Message of FTP and WEB login.
본 논문에서 제안하는 보안 솔루션의 동작을 검증하기 위해 테스트베드를 구축하여 실험해본 결과 우리가 의도한대로 정확하게 동작함을 알 수 있었다. 외부로 전송되는 패킷에 대한 검사를 통해 얻을 수 있는 정보는 매우 많을 것이라 예상한다. 이러한 정보들이 보안 솔루션에 사용될 경우 사용자들은 지금보다 훨씬 더 안전한 네트워크 서비스를 받을 수 있을 것이다.
5. 결 론
본 논문에서는 키로깅 공격을 통한 정보유출을 실시간으로 탐지하고 사용자에게 알림을 주는 솔루션을 설계하고 구현하였다. 제안한 솔루션은 패킷의 페이로드 부분을 추출하여 로그인 정보, 업로드 파일정보, 파일의 내용을 실시간으로 탐지한다. 전송되는 패킷 혹은 첨부 파일에 사용자가 지정한 패턴과 일치하는 내용이 있다면 경고 메시지 창을 이용하여 해당 정보가 사용 중임을 사용자에게 알려준다. 부가적으로, 파일을 업로드 할 때 로그인을 수행한다는 점을 이용하여 FTP와 웹 사이트에서의 로그인 상황을 실시간으로 탐지하고 사용자에게 알릴 수 있는 기능도 구현하였다. 보안 솔루션의 기능 검증을 위해 테스트 베드를 구축하여 솔루션의 동작을 테스트 하였다. 웹서버, 해커 호스트, 일반 클라이언트 호스트를 동일 네트워크에 구성하여 일반 클라이언트 호스트에 키로깅 프로그램을 설치하였다. 일반 클라이언트 호스트에서 키로깅 정보가 유출될 때 제안 솔루션이 탐지하고 사용자에게 알리는 것을 확인할 수 있었다.
어려운 문제라고 해법 또한 어려운 것은 아니다. 지금까지 키로깅과 같이 사용자가 인식하지 못하는 사이에 중요한 정보가 유출이 되는 것을 효과적으로 탐지해 주는 솔루션이 없었던 것이 사실이다. 본 논문에서는 이러한 문제를 아주 간단하게 해결해 줄 수 있는 보안 솔루션을 제안하였다. 다만 데이터가 응용 단계에서부터 암호화 되어 전송이 되는 경우에는 본 솔루션이 탐지할 수가 없었다. 향후 이러한 한계를 극복할 수 있는 솔루션에 대한 연구를 지속할 것이다.
기존의 보안 프로그램에서 탐지하지 못했던 것을 본 솔루션에서 해결해 줌으로써 사용자들이 보다 안전하게 네트워크 서비스를 사용할 수 있을 것이라 기대한다. 또한 키로깅 공격뿐만 아니라 다양한 분야에 적용할 수 있도록 확장 가능하리라 예상한다.
References
- 2013 Trustwave Global Security Report(2013), https://www.trustwave.com (accessed Aug, 04, 2014).
- G.H. Kim, "Keylogging," http://blogsabo.ahnlab.com/m/post/1827 (accessed Aug, 01, 2014).
- H.J Kim, J.H Kim, A. Lee, "Consideration from the Point of View of Personal Information Protection Trends and Detection Technology of Information Leakage," Korea Information Processing Society, Vol. 17, No. 2, pp. 52-58, 2010.
- G.H Nam, H.S Kang, J.H Gil, and S.I Kim, "Data Loss Prevention(DLP) Technology Trends," National IT Industry Promotion Agency, Vol. 1413, pp. 1-9, 2009.
- McAfee DLP Prevent(2013), http://www.mcafee.com/mx/resources/data-sheets/dsdlp-prevent.pdf (accessed Jul, 17, 2014).
- Endpoint DLP/Discovery(2014), http://www.somansa.com/dlp/dlp_03.asp (accessed Jul, 20, 2014).
- Symantec Data Loss Prevention(2014), http://www.symantec.com/ko/kr/data-loss-prevention (accessed Aug, 01, 2014).
- K.K. Lee, Required of Information Leak Prevention Security Solution DLP , Network Times, pp. 178-182, 2012.
- Concert Security Consumer Report(2011), http://www.concert.or.kr/Security_Consumer_Report.pdf (accessed Jul, 22, 2014).
- E. Kim, Y.S. Lee, M.S. Jung, "Design and Implementation of anAuthentication System for Anti-Forgery using the Smart Card," Joutnal of Korea Multimedia Society Vol. 14, No. 2, pp. 249-257 Feb. 2011. https://doi.org/10.9717/kmms.2011.14.2.249