루트킷 탐지
루트킷 탐지(Rootkit Detection) 툴을 설명하려면 먼저 루트킷이 무엇이고 얼마나 많이 퍼지고 있으면 루트킷
만 탐지하는 툴이 따로 나왔을가하는 점을 먼저 이해해야 한다.
루트킷은 해커들이 컴퓨터나 네트워크에 침입한 사실을 숨긴 채 관리자용 접근권한을 획득하는데 사용하는
도구,즉 프로그램의 모음이다. 칩입자는 먼저 알려져 있는 시스템 취약점을 찾아내거나 암호를 크래킹하는 등의
방법으로 사용자용 접근 권한을 획득한뒤, 컴퓨터에 루트킷을 설치한다. 루트킷은 네트워크 상의 다른 컴퓨터에 있는
사용자 ID와 암호들을 수집함으로써, 해커에게 루트 권한이나 기타 특수한 접근 권한을 제공한다.
루트킷은 또한 해킹 탐지를 교묘하게 회피하기 위해 다음과 같은 일을 하는 유틸리티 프로그램들로 구성
될 수 있다.
* 트래픽이나 키스트로크를 감시
*해커가 이용할 목적으로 시스템 내에 백도어를 만듦
*로그 파일 수정
*네트워크상의 다른 컴퓨터들을 공격
*기존 시스템 도구들을 수정
kit이라는 이름이 붙었다고 해서 특별히 어떤 구성이 정해져 있는 것은 아니다.
루트킷 분야만 가지고도 상당히 범위가 넓으므로 여기서는 루트킷을 탐지'제거하는 툴 소개 정도로 정리하
려고 한다. 책에서 소개하는 루트킷 외에도 다른 툴들은 많이 있다. 각각 의 툴들은 보유한 패턴들이 다르므
로 필요할 때가 있을 수 있으니 알아두도록 하자.
IceSword
IceSword는 한국말로 하면 얼음 칼이며, 대단히 강력한 안티 루트킷이다. 제작자가 중국인인데, 외국의
한 기사에서 자신이 루트킷에 걸려서 곤란했던 적이 있어서 스스로 치료해보자는 의미로 만든 것이라고 한다.
IceSword는 실제 경험에 의한 루트킷 분석을 목적으로 만들어졌기 때문에 타 업체에서 만든 루트킷과는
다른성격을 가지고 있다. 기업에서 제작된 안티 루트킷과는 달리 파일을스캔하는 과정이 없으며, 대신에 다양한
시스템 상태 보기를 제공함으로써 루트킷의 제거를 유도한다. 물론 이것을 다 알고 처리하기 위해서는 많은
학습이 선행되어야 하며 별도의 백업을 하는 방법이 존재하지 않기 때문에 특히 더 많은 주의가 필요하다.
중국 개발자가 자신의 블로그에서 배포중인 툴인 만큼 기업체에서 제공하는 패턴처럼 자주 업데이트가 되지
는 않지만, 루트킷 탐지 분야에서는 최고의 툴로 찬사를 받고 있는 툴이다.
매우 강력한 삭데와 접근 방법 제공을 통해 자동 스캔하는 것 그 이상의 성과를 얻을 수 있도록 구성
되어있다. 간략하게 각각의 기능에 대해서 알아보자.
Process : 현재 실행 중인 프로세스 목록을 보여주며, 장치 관리자에서는 볼 수 없는 숨겨진 프로세서
까지 볼수 있다.
Port : 네트워크의 연결 상태를 보여준다. 연결된 포트들을 확인하여 기본적으로 허용한 포트가 아니라면,
이를 통해 어느 위치에 문제의 파일이 작동중인지 알 수 있다.
Kernel Module : 실행 파일에 의해 로드된 시스템파일(.SYS)이나 동적 라이브러리 파일(.DLL)의 목록을 보여준다.
대부분의 루트킷은 자신을 은폐하기 위해 SYS나 dll파일을 몇개 심는데, 그 목록을 볼 수 있게 해준다.
Startup : 실행 파일에 있는 목록을 보여주며, 시작 지점에 있는 레지스트리의 목록을 보여준다.
Win32 Services : 서비스로 실행되는 프로세스 목록을 보여준다. 유명한 루트킷의 경우에는 IceWord가 자동으로
빨강색으로강조하고, 일부 루트킷의 경우에는 자동 탐지가 안되므로 사용자가 직접 판단을 해야한다.
SPI(Service Provider Interface) : 네트워크 드라이버에 로딩되거나 영향을 미치는 부분을 보여준다.일부
루트킷의 경우 winsock을 이용하여 특정 네트워크 패킷을 캡쳐하는 기능을 갖고 있기 때문에 이에 대한 점검
방법으로 사용할 수 있다. ARP가 이상한 시스템의 경우 대부분 이곳에 문제가 있는 시스템이 많다.
BHO : 브라우저나 시스템의 쉘 실행시 로딩되는 DLL들의 목록이다. 이부분읜 Iceword가 아닌 툴들도 비슷한 결과를
얻을 수 있다.
SSDT : 시스템의 메모리를 참고할 수 있게끔 하는 부분이다. 이미 다른 곳에서 결과를 얻을 수 있기 때문에
자주 볼 필요는 없지만, 앞에서 나열한 모든 기능으로 잡을 수 없는 경우 이곳에서 실행중인 메모리를 봄으로써 답을 찾는 경우가 있다.
Message Hooks : 프로그램 동작시 입출력 장치의 반응을 보여준다. 이역시 자주 쓰인 다고는 할 수없지만,
키 로거가 의심되는 경우 이곳에서 손쉽게 잡을 수 있다.
Log process/ Therad Cration : 어떤 프로세서가 어떤 것을 실행하는지를 보여주는 부분으로 IceWord가 실행중인 경우에만 프로세서
의 기록을 남기며, 주로 주기적인 프로그램이 돈다고 의심될 때 이부분을 확인하면 유용하다.
scan Modules Hooks : 모듈들을 검사하여 특정 프로세서나 파일을 모니터링 할 수 있다. 이기능을 사용하면
꽤 많은 부하가 잇으므로 사용에 주의가 필요하다.
Registry : 윈도우의 일반 레지스트리 편집기인 regdit.exe로는 접근할 수 없는 부분까지 아무 제재 없이 접근이
가능하다.
File : 파일 탐색기로써 숨긴 폴더 ' 파일을 포함하여 시스템 폴더 ' 파일까지 모두 볼 수 있으며, 강제 삭제도 가능하다.
어떤 제재도 가하지 않고 접근이 가능하므로 사용시 주의하기 바란다.