IRP Hook을 이용한 Rootkit 분석
월간 마이크로소프트웨어 2008년 3월호
[실전강의실|Reverse Engineering]
IRP Hook을 이용한 Rootkit 분석
강병탁 window31@nexon.co.kr, www.window31.com | 바이너리 취약점 분석 업무를 하고 있다. 안티 크래킹/안티 디버깅 엔진 개발을 다년간 해왔으며 시스템 프로그래밍과 리버스 엔지니어링에 관심이 많다. 악성 코드나 해킹툴이 내부에 담고 있는 천재적인 알고리즘에 감탄하며 오늘도 IDA를 돌린다.
루트킷을 개발하는 데에 있어 최고의 희열감은 무엇일까? 그것은 내가 만든 루트킷을 사람들이 알아채지 못하고 발견하지 못한다는 데에 있다. 은밀함이라는 주제는 루트킷의 메인 생명력이자 기술 그 자체이기도 하다. 루트킷도 종류가 다양해지고 구현 방법 역시 많아지고 있는 현재의 해킹/보안 풍토에서 최신 루트킷 트렌드를 찾는 것은 매우 중요하다. 그중에서 IRP Hook을 이용한 루트킷은 얼마만큼의 가치가 있으며 어느 정도의 효용성이 있는지 그리고 그것을 무력화 할 수 있는 방법은 어떤 것이 있는지 생각해보자.
연재 가이드
운영체제| 윈도우2000/XP
사용도구| Visual Studio, IDA, WinDBG
기초지식| C/C++, ASM, Win32 API, DDK
응용분야| 리버스 엔지니어링/시스템 프로그래밍/해킹/보안
루트킷으로써의 가치
투명인간이라는 존재의 목적은 나의 존재를 남들에게 알리지 않는 것에 있다. 그렇다면 남들에게 나의 존재를 알리지 않기 위한 목적은 무엇일까? 당연히 남들 몰래 무언가를 행하고 싶어서일 것이다. 따라서 투명인간은 아무도 몰래 자신이 원하는 행동을 달성하기 위해 생겨난 개념이다. 남들 몰래 무언가를 행한다는 것은 참으로 매력적인 일이다. 몰래 선행을 베풀 때에도 그렇고 몰래 나쁜 행동을 할 때에도 그렇다. 좋은 의미건 나쁜 의미건 투명인간은 은밀함이라는 명제로부터 출발된다.
따라서 이 같은 투명인간이 되기 위한 전제조건은 당연히 아무에게도 발견되지 않아야 한다는 것이다. 만약 투명인간을 발견할 수 있는 대응책이나 솔루션이 범람해 있다면 그 투명인간은 더 이상 은밀함으로서의 가치가 없어진 상태라 할 수 있다. 따라서 투명인간은 그 은밀함이 쉽게 발견되지 않아야 하며 그 기술은 남들이 금방 알아차리지 못하는 것이어야 한다. 루트킷도 마찬가지다.
루트킷과 투명인간은 은밀함이라는 1차적 목표에서부터 가치가 부합한다. 그리고 기술론적인 부분도 역시 마찬가지다. 현재 루트킷을 만들기 위한 현재 굉장히 많은 방법론이 알려져 있다. 하지만 그에 따라 루트킷을 진단할 수 있는 많은 기법이나 솔루션도 많이 등장해 있는 상황이다. 따라서 투명인간의 은밀함과 마찬가지로, 루트킷 그 본연의 가치를 더욱 발산시키기 위해서는 아무도 알고 있지 못하는 기술로 루트킷을 구현해야 한다. 물론 소수가 알고 있는 기술이라 하더라도 대중에게 알려져 있지 않은 기술, 그리고 그에 대한 대응 솔루션이 없는 기술로 구현해야 하는 것이 필수적이다. 또한 그래야만 더욱 루트킷으로써의 완벽에 다가갈 수 있다.
pdf 다운로드
http://imaso.co.kr/?doc=articledb/pdf_index.html&v2=1&keywords=%B8%B6%BC%D2DB%3BPDF+%BC%AD%BA%F1%BD%BA
목차)
1. 루트킷으로써의 가치
2. SDT Hook은 이미 구식 기술
3. IRP Hook의 르네상스
4. IRP Hook을 사용한 악성 코드 분석
5. IRP Hook을 무력화 시켜 보자
6. 보안 관계자의 자세
