2009. 10. 15. 18:00ㆍ해킹의 기초이해
해킹은 갈수록 형태와 모습이 변화해 가고 또 진화해 나갑니다.
이러한 해킹은 크고 작은 피해를 입힘과 동시에 또한 이것에 대한 호기심과 궁금증 역시 날로 늘어가는 것 같습니다. 제가 가진 허접한 기술과 지식, 이론으로는 많은 내용을 전달해 드리기는 힘들 것 같지만, 그래도 다소의 궁금증을 해결해 드리는 자리를 만들어보고자 이렇게 글을 써보려 합니다.
이번 시간에는 해킹의 한 종류인 키로그(Keylog)에 대해서 알아보도록 하겠습니다.
(마치 다음에 또 할것인 것 마냥써놨으나 시간이나 여유에 따라 쓸수도 있고 안쓸수도 있습니다.)
키로그(Keylog)란 무엇인가?
- 영어 철자에서 가볍게 볼 수 있듯이 키(Key) 의 흔적(Log) 를 기록하는 프로그램을 의미합니다.
키로그(Keylog)가 일으킬 수 있는 피해가 무엇인가?
- 자신이 입력한 키의 기록이 단순히 자신안의 선에서 종료된다면 그것은 큰 무제가 되지 않습니다. 하지만 이 키 입력들의 기록이 타인에게 들어갔을 경우에는 정보를 노출시키는 기록이 될 수 있다는 점이 문제가 되는 부분 입니다.
키로그(Keylog)가 주는 피해의 예(사례)
- 사례1. // 자신이 작성한 게시물이 삭제된 A 씨
- 인터넷 웹 서핑을 즐기던 A 씨는 어느날 문뜩 자신이 작성해 놓았던 글들이 일제히 삭제되어 있는 것을 확인 했습니다. 자신의 기억으로는 해당 게시물을 삭제한 기억이 없는데 이유없이 갑작스레 해당 글들이 사라져 있었고, 같은 ID 와 PW를 사용하는 모든 웹상의 작성 게시물 역시 일제히 삭제되는 경험을 하였습니다.
- 사례2. // 게임 케릭터를 털린 B 씨
- 평소 온라인 게임을 즐기는 B 씨는 평소와 다름없이 게임을 즐기다가 아무렇지 않게 컴퓨터를 종료하고 일상생활을 하다가 다음 날, 게임에 접속을 하였습니다. 그런데 이상하게도 자신의 케릭터가 알몸인 상태로 아이템과 모든 자산이 사라진 채 방치되어 있는 모습을 확인하였습니다.
- 사유 // 입력했던 키들의 기록의 노출
- 키로그(Keylog)는 입력한 값들을 저장합니다. 이것은 특정한 대상을 노리는 것이 아닌 입력하는 모든 값이 기록으로 저장될 수 있음을 주의해야합니다. 즉 자신이 입력한 ID(아이디) 와 PW(패스워드) 모두 해당 기록에는 입력이 되 있을 수 있다는 이야기가 됩니다. 사례 A와 B는 이 기록 속에서 해당 ID(아이디) 와 PW(패스워드) 가 노출되어 악의적으로 이용한 제 3자에게 피해를 입은 것이라고 볼 수 있겠습니다.
자 위에서 허접하지나마 제가 작성한 글을 통해 키로그(Keylog) 가 무엇이고, 어떠한 결과를 가져올 수 있는지에 대하여 가벼운 예를 접해 볼 수 있었습니다.
그럼 키로그는 어떠한 방식으로 동작을 하는 것일까요?
- 우리가 흔히 사용하는 키보드. 우리가 이 키보드 버튼을 누름으로 인해서 키보드와 컴퓨터 사이간의 어떠한 값이 전달이 됩니다. 그리고 컴퓨터는 받아들인 그 값을 바탕으로 해당되는 기능을 호출하고 작동합니다. 키로그는 바로 이 전달값을 중간에 가로채서 기록을 하는 원리로 돌아갑니다.
이야기로만 듣기보다는 가벼운 예제를 통해 직접 눈으로 보는것이 좋겠지요.
다음은 제가 C# 언어로 직접 작성한 단순한 키보드키 1가지를 누르면 어떤 값이 왔는지 확인하는 프로그램 입니다.
자 이렇게 제가 아주 간단하게 작성한 프로그램 하나를 바탕으로 s 라는 키를 눌러보겠습니다.
화면에 메세지 박스로 s 라는 값이 화면에 출력되었습니다.
자 그럼 이번에는 쉬프트를 누른 채 대문자 S 를 입력하는 것처럼 버튼을 눌러보겠습니다.
앞에 보았던 소문자 s 가 아닌 대문자 S 가 메세지 박스를 통해 출력된 화면이 보이실 겁니다.
보다 궁금하신 분은 실제 테스트용으로 제작한 프로그램을 첨부하니 다운로드 받아서 확인해 보시면 되겠습니다.
*더불어 폼 위에서만 실행되기 때문에 피해를 입히는 기능은 첨부하지 않았습니다.
*.Net Framework 2.0 이상에서 작동합니다.
위에서는 가볍게 해당 프로그램이 활성화(해당 윈도우를 사용중인 상태) 에서 키를 누른 것에 대해서 "알림" 기능을 하도록 제작해서 보여드렸습니다.
여기서 "알림" 기능이 사라지고 파일로 만들어 기록하는 기능으로 바뀐다면 그때는 입력된 키(Key)를 기록(log)하는 프로그램으로서 키로그의 기본 뼈대라고도 할 수 있는 녀석이 만들어지는 것입니다.
이번에도 직접 화면으로 보여드리기 위해 일부 프로그램을 좀더 변형시켜보았습니다.
이번에는 메세지를 출력하는 것 뿐만이 아니라 Testlog.txt 파일에 기록까지 한다고 친절하게 써놓았습니다. :)
그래서 Kinesis 를 순차적으로 눌러보았습니다.
마지막 글자 s 까지 누르고 나니 해당 값을 Testlog.txt 파일에 기록하였다는 메세지를 보여주었습니다.
폴더를 확인해보니, Testlog.txt 파일이 생성되어 있음이 눈에 들어옵니다.
Testlog.txt 를 열어보니 제가 순서대로 입력했던 Kinesis 라는 글이 기록되어 있음이 보입니다.
해당 프로그램도 마찬가지로 직접 확인 해보실 수 있도록 첨부하여 올렸으니,
키로그에 대해 어떤방식인지 궁금하신 분은 다운받아 확인 해 보셔도 좋습니다.
*더불어 폼 위에서만 실행되기 때문에 고의적인 피해를 입히는 기능은 첨부하지 않았습니다.
*.Net Framework 2.0 이상에서 작동합니다.
기본적으로 키로그는 이와 같은 기능으로 입력된 값을 얻어와 기록하고, 해당 기록을 가져가서 악용하는 식으로 이용됩니다. 이러한 프로그램은 특히 PC 방 같은 환경. 다수가 하나의 컴퓨터를 이용하는 환경에서 특히 설치되거나 이용될 가능성과 확률이 높습니다.
이번에 보여드린 것은 키로그의 방식을 이해하기 위한 테스트 예제 프로그램만을 작성했고, 또 확인 하실 수 있게끔 악의적인 코드가 삽입되지 않은 상태로 제공하여 드렸습니다만, 실상 해킹에 이용되는 키로그는 제가 보여드린 기본 방식에 특수한 기능을 추가하여 사용되게 됩니다.
이 글을 보신분들 중 몇몇분들은 제가 작성한 프로그램에서 만들어진 Log는 직접 보내지지 않는 이상 피해를 줄 수 없다는 것과, 해당 프로그램을 활성화 시킨 상태에서만 동작한다는 부분을 눈치 채셨으리라 생각됩니다.
실제 키로그는 프로그램을 숨기는 루트킷(이라는 기능이 있습니다), 경우에 따라서는 어떤 프로그램이 실행되었는지 프로그램 실행을 기록하는 로그 기능, 인터넷이 연결되어 있는 상태라면 조건에 맞춰 특정 사이트나 주소로 로그 파일을 전송하는 기능 등 다양한 기술이 접목되어 사용됩니다.
따라서 이 글을 통해 키로그가 작동되는 원리를 이해하시고, 이러한 피해를 당하지 않게끔 주의를 갖게되는 시간이 되셨기를 진심으로 바래 봅니다.
읽어주셔서 감사합니다 by Kinesis
'해킹의 기초이해' 카테고리의 다른 글
게임 플레이 중 빈번하게 이뤄지는 IP 협박 어디까지가 사실일까? (3) | 2010.02.09 |
---|---|
해킹의 기초 이해 - 해커(Hacker) 와 크래커(Cracker) (5) | 2009.10.18 |