1. 개요
keylogger컴퓨터가 받아들이는 입력 정보의 기록, 그 중에서도 주로 키보드를 통한 입력의 데이터를 중간에 가로채는 해킹을 말한다. 대개 사용자의 동의 없이 기록을 만들고 전송하는 방식의 크래킹 도구로 쓰인다. 은행이나 금융사이트는 마우스로 비밀번호를 입력하도록 되어있는데 바로 키로깅문제 때문이다.
2. 상세
크게 둘로 나눠 소프트웨어 형식과 하드웨어 형식이 있는데 많이 사용되는 것은 소프트웨어 형식 키로거이다.2.1. 소프트웨어 키로거
시스템 애플리케이션과 유사한 EXE 파일 이름[1]으로 메모리에 상주하며, 자판이나 마우스 입력를 읽어 문서 파일로 저장하거나 주기적으로 전송하는 프로그램이다.특정 게임의 암호만을 빼내는 키로거도 있다. 이러한 소프트웨어 키로거는 흔히 구할 수 있으며 안티 바이러스 애플리케이션의 주요 검출 대상이므로 일단 백신 프로그램이 깔려있는 곳에서는 어느 정도 키로거의 위협으로부터 안심할 수 있다.
소프트웨어 키로거 중에서 드라이버로 커널 모드에서 동작하며 하드웨어 키로거를 에뮬레이션하는 녀석도 있는데, 커널에 붙어있는지라 지라 탐지가 극히 어렵다고 한다. 대표적으로 Darkhotel이 이런 키로거를 사용해서 화제가 되었다. 해당 키로거를 분석한 카스퍼스키의 Costin Raiu의 평가는 NSA급 배경지식이 있는 게 아니고서야 시도할 엄두조차 못낼 정도로 복잡하다고. 이런 괴악한 물건이 나온 이유는 해당 키로거가 원래 한국에 만연한 액티브X계열 보안프로그램을 속이고 돌아가기 위한 목적으로 개인이 개발하던 물건을 쓱싹해다가 개조한 물건이라서다. 원본은 키로거 주제에 트로이목마로 분류된다!
2.1.1. 방식
컴퓨터에서 문자를 입력하는 과정은 단순하다.먼저 키보드에서 키를 누르면 발생하는 키 입력 이벤트가 운영체제의 메시지 큐에 추가되고 운영체제는 이를 프로그램의 메시지 큐로 옮긴다. 그러면 프로그램은 자신의 메시지 큐에 생긴 키 입력 이벤트를 처리하여 문자가 입력된다.
키로거는 이 과정을 캡처하여 누른 키의 문자를 알아보는 방법이다. 먼저 중간에 가로채서 키 입력 이벤트를 확인하여 문자를 알아본 후 원래의 프로그램에 전달한다.
윈도우에서는 재미있게도 Windows API에서 관련 함수가 존재하며 이들 함수는 SetWindowsHookEx, UnhookWindowsHookEx이다. 대상 프로그램에 후크 프로시저를 설치하여 해당 프로그램에 발생하는 이벤트를 확인한다. 다만 한글 등 알파벳 외의 글자를 가져오려면 IME도 후킹해야 한다.
2.2. 하드웨어 키로깅
하드웨어적인 방식이므로 백신 프로그램에서 잡을 수 없다. 하드웨어 키로거는 키보드 입력을 메모리에 기록하며 특정 문자열을 입력해야만 이동식 디스크로 인식하여 볼 수 있다. 여러모로 소프트웨어 방식보다 무서운 장치. 미국의 이베이나 아마존닷컴에서 쉽게 구할 수 있다.다만 소프트웨어 방식에 비해 입력 정보 탈취에 하드웨어 키로거를 사용하는 사례는 거의 없다. 우선 직접 대상 컴퓨터에 연결해야 하고 본체 앞 USB 포트가 아닌 뒤 본체 USB 포트에 연결해야 한다. 그리고 그걸로 끝나는게 아니라 사용하고 나서는 로그를 보기 위해 직접 대상 컴퓨터에서 가져와야 한다. 보안 부서에서 전자기기 검사에 들어가면 그대로 걸릴 수 있기 때문이다.
3. 기타
2011년경 한 파워블로거가 미국에서 판매되는 삼성 노트북 컴퓨터에 Starlogger라는 키로거 프로그램이 설치되어 있다는 제보를 하여 떠들썩했던 적이 있다. 실제로는 당연히 그런 거 없었으며 그 블로거가 사용한 보안용 프로그램이 윈도 서브폴더인 SL 폴더를 Starlogger 폴더로 오인하여 생긴 일.2016년 말에 한국의 한 네티즌이 랜섬웨어[2]에 감염되어 해커에게 협박을 당하고 있었는데, 해커에게 자신의 파일이 정말 무사한지 확인해보고 싶다고 메일을 보냈더니 해커가 정 원한다면 TeamViewer를 이용해 원격으로 파일을 복호화하는 것을 보여주겠다는 답장을 받았다. 그 뒤 네티즌은 컴퓨터에 키로거를 설치하여 해커가 입력한 복호화 암호를 알아낼 수 있었고 해커에게 메일로 "인생은 실전이야 좆만아"를 보내 역관광을 선사하는 일도 있었다. #