Chapter 1. 루트킷이란?
ㄴ 루트킷의 의미
Chapter 2. 루트킷의 동작원리
Chapter 3. 후킹기술 소개
ㄴ Import Address Table (IAT) 후킹
ㄴ Inline 함수 후킹
ㄴ DLL 인젝션 기법 소개
ㄴ 커널 후킹 기술 알아보기
Chapter 4. 루트킷 탐지기술 소개
ㄴ 후킹 탐지기법과 메모리 스캐닝 기법 소개
ㄴ HIPS(행동 탐지) 기반 탐지 기법 소개
ㄴ 루트킷 탐지툴(RootkitRevealer)의 작동원리 소개
전 챕터(바로가기)에서 살펴보았던 것 처럼 루트킷은 사용하기에 따라 시스템의 중요한 보안이 될수도 있고 중대한 위협요소가 될 수도 있음을 확인하였다. 오늘은 사용하기에 따라서, 프로그래머의 목적에 따라서 컴퓨터를 좌지우지 할 수 있는 루트킷이 어떻게 동작하는가에 대해 알아보는 시간이다.
또, 왜 루트킷이 바이러스나 일반 멀웨어처럼 탐지해내기 힘든지에 대해서도 알아보고자 한다. 이 사실을 알고가기 전 한가지 짚고 넘어가야 할 것이 있다.
"루트킷"은 커널에서만 동작하고 커널 레벨에서 제작한것이라고 생각하는 분들이 계시는데 이는 큰 오산이다. ring 3. 즉, 루트킷은 유저 레벨에서도 가능하다. 루트킷을 전문적으로 다루는 최대 커뮤니티 사이트인 www.rootkit.com 에서는 사실 커널 레벨의 루트킷보다 유저 레벨의 루트킷의 테크닉과 자료가 양으로만 따지면 훨씬 방대하다. 이 곳은 세계 최고 레벨 수준의 해커, 크래커들이 있는 사이트로써 프로그래머들이 시스템 프로그래밍 지식을 한층 더 높이고 공부하는데 충분히 도움되는 사이트이다. 필자의 아이디는
유저 레벨에서도 충분히 구현 가능한 기술이고 CPU 및 메모리등의 하드웨어 지식을 많이 필요로 하는 커널 레벨에서의 루트킷 구현보다 ring 3에서 구현하는 것이 훨씬 쉽고 간단한 것도 자료가 많고 방대한 이유 중 하나이다.
그러나 커널 레벨 루트킷에 비해 유저 레벨 루트킷이 탐지가 쉽다는 것에 대해서는 두 말할 필요가 없다. 프로그래머들 말고도 보안 전문가들도 자주 사용하는 icesword라는 프로그램으로도 유저 레벨 루트킷은 쉽게 탐지 된다.
프로그램 하나로 탐지된다는 것은 이미 루트킷 본연의 기능을 상실했다고 봐야하는 것일까?
사실, 루트킷은 "기술"이기 때문에 이 기술을 어떻게 응용하고 어떤 목적으로, 어떤곳에 사용하느냐에 따라서 그것이 유용한 것이 될수도 있고 유용하지 못한 것이 될수도 있다. 기술이라는 것은 수학공식처럼 정해지지 않은, 사용자들의 장난감이기 때문에 언제나 호불호가 있기 마련이라 필자는 단지 "무조건, 어느 누구한테도 들키지 않고 숨어있어야 한다"라는 명제가 기준이 되지 않는한 은닉을 요구하는 자체만으로도 루트킷의 기술을 십분 백보 잘 활용한 것이라 생각한다.
사실 쳅터3. 유저 레벨 루트킷에서 나올 후킹기술이 벌써부터 소개가 되었다. 이번 챕터에서 후킹 기술에 대해서는 더 이상 언급은 없을것이고 이론적인 부분은 역시 다음 챕터에서부터 시작하도록 하겠다.
'분석의 묘미' 카테고리의 다른 글
Chapter 1. 루트킷이란? (루트킷의 의미) (2) | 2008.07.28 |
---|---|
PE File Format에 좀 더 자세히 접근해보자! (1) | 2008.07.28 |
PE File Format에 대해 알아보기 (2) | 2008.07.28 |