데이터보안

루트킷 도대체 무엇인가 ?

거미손 노랑이 2009. 5. 21. 11:55
루트킷 도대체 무엇인가 ?

루트킷(Rootkit)은, 쉽게 말하면 바이러스(Virus) 개발자들이 백신 진단을 우회하기 위하여 사용자 PC에 설치하는 악성코드의 일종으로, Rootkit이라는 이름은 '리눅스에서 Root 권한을 취득한 후, 다음에 또 쉽게 루트 권한을 딸 수 있게 하는 도구…' 라는
유래에서 생겨났습니다. 요즘 대부분의 바이러스와 악성코드들은 루트킷을 시스템에 설치하여 프로세스와 파일 등을 보호합니다.
루트킷은 백신의 자체 보호 기능과 비슷한 원리로 동작하므로 사실상 백신을 우회하는 것도 이론상 가능한 일입니다. 루트킷은 주로 후킹(Hooking) 이라 불리는 방식으로 동작하는데요. 후킹의 개념은 대략 이렇습니다.
윈도우에서 프로그래밍하는 프로그래머들은 특정 기능을 구현하기 위해 '함수'라는 것을 만들거나 사용하고, 윈도우에서는 몇몇 시스템 기능을 가진 '함수'라는 개념을 API라는 이름으로 기본 제공하고 있습니다.
API을 사용하는 것을 루트킷이 가로챈다면, 원하는 작업을 달성할 수 있을 것입니다.
예를 들어 작업 관리자 프로그램이 프로세스 목록을 뽑아오기 위해 ProcessList 라는 함수를 사용한다면, 루트킷은 이 함수를 가로채어(Hooking) 마치 자신의 프로세스가 없었던 것처럼 결과를 조작하여 속입니다.
지금까지의 루트킷 중 가장 무서운 루트킷은 세가지로 압축될 수 있는데요.
Rustock 루트킷과 MBR 루트킷, 가상화 루트킷이 바로 그 예입니다.