수많은 백신과 안티멀웨어 프로그램을 설치했는데도 개인 데이터가 유출된 경험이 있으신가요? 보안 소프트웨어조차 침입자를 잡아내지 못했다면 어떨까요? 실제로 이런 상황은 충분히 일어날 수 있습니다. 바이러스나 일반 멀웨어보다 훨씬 교활하고 은밀한 위협, 바로 '루트킷(Rootkit)'이 존재하기 때문입니다.
루트킷은 운영체제의 필수 프로그램인 것처럼 위장하면서 공격자에게 관리자(Administrator) 수준의 접근 권한을 넘겨주는 악성 프로그램입니다. 이름의 유래도 흥미로운데, '루트(root)'는 UNIX 계열 시스템에서 최고 권한을 지닌 계정을, '킷(kit)'은 도구 모음을 의미합니다. 루트킷은 자기 자신을 숨기는 데 그치지 않고, 다른 악성 파일들이 백신 소프트웨어의 탐지를 피하도록 엄호 역할까지 수행합니다.

이미지 출처: pondurance.com
루트킷은 어떻게 존재를 숨길까?
루트킷은 운영체제의 기반 계층을 이용해 자신의 흔적을 감춥니다. 응용 프로그램 인터페이스(API)를 활용하거나, 함수 리디렉션, 문서화되지 않은(non-documented) 함수를 이용하는 방식이 대표적입니다. 또한 정상적인 응용 프로그램처럼 행동하면서 내부적으로는 공격자에게 시스템 전체 권한을 넘겨줍니다. 한 번 침투에 성공하면 공격자는 호스트 컴퓨터에서 실행 파일을 구동하고 시스템 설정을 마음대로 조작할 수 있습니다.

이미지 출처: spywareinfoforum.com
루트킷 탐지, 왜 그렇게 어려운가
컴퓨터에서 루트킷을 직접 찾는 것은 건초 더미에서 바늘 찾기에 비유됩니다. 뛰어난 위장 능력 때문에 대부분의 백신과 안티멀웨어는 탐지나 격리에 실패합니다. 심지어 고급·표준화된 보안 제품조차 루트킷을 잡아내지 못하는 경우가 보고됩니다.
그렇다면 보안 프로그램 외에 감염 여부를 알 수 있는 방법은 없을까요? 컴퓨터의 '행동 변화'를 관찰하는 것이 중요한 단서가 됩니다. Windows 설정이 이유 없이 바뀌거나, 인터넷 속도가 현저히 느려지고, 잦은 지연(lag)과 시스템 크래시가 반복된다면 루트킷이 활동 중일 가능성을 의심해봐야 합니다.

이미지 출처: newpctricks.net
사용자 모드 vs 커널 모드: 탐지 확률의 갈림길
루트킷이 사용자 모드(user mode)에 머물러 있는 동안에는 발견될 가능성이 비교적 높습니다. 그러나 운영체제의 핵심인 커널(kernel)로 침투하면 상황이 급변합니다. OS 커널은 운영체제와 백신이 구동되는 기본 플랫폼이기 때문에, 악성 코드가 커널 모드에 진입하는 순간 복구 가능성은 급격히 낮아집니다.
루트킷이 커널 모드에 도달하면 운영체제 자체를 더 이상 신뢰할 수 없게 됩니다. 이 단계에서 루트킷은 관리자급 권한을 확보하고 마스터 부트 레코드(MBR)를 장악해, 시스템 부팅 시 함께 실행되도록 자신을 등록할 수 있습니다. 이른바 '부트킷(Bootkit)' 단계에 이르면 하드디스크를 포맷하는 것마저 무의미해집니다.
해결책은 '예방'뿐
루트킷에는 치료보다 예방이 훨씬 효과적입니다. 대부분의 보안 소프트웨어는 루트킷조차 탐지하지 못하기 때문에, 비싼 제품을 구입하는 것만으로는 안전을 담보할 수 없습니다. 가장 확실한 방어책은 자신의 검색·다운로드 습관을 되돌아보는 것입니다. 아이러니하게도 루트킷 개발자들은 사용자의 인터넷 이용 패턴을 분석해 악성 코드를 설계하기 때문에, 인터넷을 사용할 때 각별한 주의가 필요합니다.
종합하면, 루트킷은 컴퓨터가 감염될 수 있는 최악의 위협 중 하나입니다. 보안이 취약한 웹사이트 방문을 삼가고, 출처 불명의 파일 다운로드를 자제하는 것이 최선의 보습입니다. 나아가 신뢰할 수 있는 백신·안티멀웨어 프로그램으로 PC를 철저히 보호해 이러한 위협에 미리 대비해야 합니다.