루트킷 탐지 (Rootkit Detection)
쉽게 풀면
루트킷은 집안에 몰래 들어와 자신의 발자국까지 지우는 침입자와 비슷합니다. 일반적인 백신 프로그램이 파일 목록을 확인할 때도, 루트킷은 운영체제의 응답 자체를 조작해서 자기 자신을 목록에서 빼버립니다. 그래서 겉보기에는 아무 이상이 없어 보여도 시스템 안쪽에서는 공격자가 활동하고 있을 수 있습니다. 루트킷 탐지는 이런 은폐 기법을 뚫고 숨겨진 흔적을 찾아내는 작업입니다. 마치 거짓말을 하는 사람의 표정과 실제 상황을 대조해서 모순을 찾아내는 것과 비슷합니다.
왜 중요한가
루트킷은 시스템의 가장 깊은 곳에 자리 잡기 때문에 탐지가 실패하면 장기간 발각되지 않고 정보 유출이나 추가 공격의 거점으로 악용될 수 있습니다. 이 때문에 정보보안학에서는 커널 수준의 무결성 검증, 크로스뷰 비교(cross-view comparison) 등 다양한 탐지 방법론이 꾸준히 연구되고 있습니다. 또한 클라우드와 가상화 환경이 확산되면서 하이퍼바이저 기반 탐지 기법의 중요성도 함께 커지고 있습니다.
논문에서는 이렇게 쓰입니다
운영체제의 핵심 메모리 영역이 변조되었는지를 검사해서 루트킷을 찾아내는 방법을 다루고 있으며, 정상 프로그램을 잘못 탐지하는 비율을 함께 살펴봤다는 뜻입니다.
가상화 환경에서는 루트킷이 숨으려는 대상인 운영체제 바깥에서 감시할 수 있어 은폐 기법을 우회하기 쉽다는 설명입니다.
조금 더 깊게 보면
루트킷 탐지 기법은 크게 서명 기반 탐지, 행위 기반 탐지, 크로스뷰 비교 방식으로 나뉩니다. 크로스뷰 비교는 운영체제 API를 통해 얻은 정보와 디스크·메모리를 직접 읽어 얻은 정보를 비교해서 차이가 나는 부분을 의심하는 방식입니다. 커널 모드에서 동작하는 루트킷은 시스템 콜 테이블이나 커널 객체를 조작하기 때문에, 이를 탐지하려면 커널보다 더 낮은 계층에서 관찰하는 것이 유리합니다.
주의할 점
루트킷 탐지 도구 자체도 루트킷에 의해 무력화되거나 속을 수 있기 때문에, 단일 기법만으로는 완전한 탐지를 보장하기 어렵습니다. 따라서 여러 계층의 탐지 기법을 함께 사용하는 것이 일반적입니다.