Computer >> 컴퓨터 >  >> 문제 해결 >> 컴퓨터 유지 보수

루트킷이란 무엇이며, 어떻게 제거할 수 있을까? 완벽 가이드

루트킷(Rootkit)이란 무엇인가?

루트킷은 컴퓨터나 기타 소프트웨어에 무단으로 접근할 수 있도록 설계된 악성 소프트웨어입니다. 루트킷은 탐지가 매우 어렵고, 감염된 시스템 내부에 자신의 존재를 은닉할 수 있습니다. 해커는 루트킷 악성코드를 이용해 원격으로 컴퓨터에 접속하고, 시스템을 조작하며, 데이터를 탈취합니다.

루트킷이 시스템에 자리 잡으면 컴퓨터는 마치 좀비 PC처럼 작동하게 되며, 해커는 원격 접속을 통해 사용자의 기기를 완전히 통제할 수 있습니다. 바로 이 점이 루트킷을 강력한 위협으로 만드는 핵심 요소입니다.

파일리스 악성코드(fileless malware)가 흔적을 남기지 않고 정상 프로그램을 악용하는 것과 유사하게, 루트킷 역시 정상적인 프로그램처럼 위장될 수 있습니다. 해커가 시스템 파일과 프로세스에 대한 최고 권한을 확보하기 때문입니다. 루트킷은 사용자의 컴퓨터가 거짓말을 하도록 만들며, 경우에 따라 백신이나 보안 소프트웨어마저 속일 수 있습니다.

루트킷은 어떤 일을 하는가?

루트킷은 악성 코드가 기기 안에 숨어 있을 수 있게 해줍니다. 루트킷 공격이 성공하면 운영체제에 대한 원격 관리자 권한을 획득하면서 동시에 탐지를 회피합니다.

그렇다면 루트킷은 무엇을 수정할 수 있을까요? 루트킷의 목표는 관리자 수준의 특권 접근 권한을 얻는 것이므로, 관리자가 할 수 있는 모든 작업을 루트킷도 수행할 수 있습니다. 루트킷이 할 수 있는 주요 행위를 정리하면 다음과 같습니다.

  • 악성코드 은폐: 루트킷은 다른 종류의 악성코드를 기기 안에 숨기고, 해당 악성코드의 제거를 더욱 어렵게 만듭니다.
  • 원격 접속 확보: 탐지를 피하면서 운영체제에 대한 원격 접근 통로를 열어줍니다. 최근에는 원격 접속 사기와 연계되는 사례도 늘고 있습니다.
  • 보안 프로그램 조작 또는 비활성화: 일부 루트킷은 보안 프로그램의 눈을 피해 스스로를 숨기거나, 아예 보안 프로그램을 꺼버려 악성코드의 탐지와 제거를 방해합니다.
  • 데이터 탈취: 사이버 범죄자들이 루트킷을 사용하는 가장 큰 목적은 데이터 도용입니다. 개인을 표적으로 삼아 신원 도용이나 금융 사기를 위한 개인정보를 빼내기도 하고, 기업을 노려 산업 스파이 활동이나 범죄에 악용하기도 합니다.
  • 영구적인 '백도어' 생성: 일부 루트킷은 시스템에 사이버 보안 백도어를 만들어 두어, 해커가 언제든 다시 침입할 수 있게 합니다.
  • 도청: 루트킷은 감시 도구로 활용될 수 있으며, 해커가 사용자를 몰래 엿들을 수 있게 합니다.
  • 사생활 침해: 루트킷에 감염되면 해커가 인터넷 트래픽을 가로채고, 키 입력을 추적하며, 심지어 이메일까지 열람할 수 있습니다.

루트킷 제거 방법

루트킷 제거는 결코 쉽지 않습니다. 루트킷은 운영체제 깊숙이 숨어들기 때문에 존재 자체를 알아차리기조차 어렵습니다. 하지만 감염 사실을 확인했다면, 좀비가 된 컴퓨터를 구하기 위해 신속하게 조치를 취하는 것이 중요합니다.

1단계: 루트킷 전용 제거 소프트웨어 실행

Windows Defender 같은 기본 보안 기능만 믿어서는 안 됩니다. 대부분의 루트킷은 기본적인 보호 장치를 무력화할 수 있기 때문입니다. 완벽한 보호를 위해서는 전문 백신 소프트웨어를 사용하는 것이 좋습니다. 예를 들어 Avast One은 세계 최대 규모의 위협 탐지 네트워크와 머신러닝 기반 악성코드 차단 기술을 하나의 가벼운 도구에 담아, 루트킷을 탐지·제거하고 향후 각종 온라인 위협으로부터 기기를 지켜 줍니다.

Avast One은 루트킷 바이러스를 제거하는 방법과 재감염을 막는 방법을 모두 알고 있습니다. 해커가 데이터를 훔치거나 컴퓨터에 대한 특권 접근 권한을 얻기 전에, 전문 백신 스캔으로 악성코드를 완전히 제거하세요.

2단계: 부팅 시간 검사(Boot-time Scan) 실행

현대의 악성코드는 백신 제품의 탐지를 피하기 위해 정교한 기술을 사용합니다. 운영체제가 실행된 상태에서는 기기에 존재하는 루트킷이 자동화된 백신 검사를 속일 수 있습니다.

백신 프로그램이 운영체제에 특정 악성 파일을 열라고 요청하면, 루트킷은 정보 흐름을 바꿔 무해한 파일을 대신 열어 보여줄 수 있습니다. 또한 악성 파일의 정보 저장·공유에 사용되는 열거 코드를 변경하여, 검사 대상에서 아예 제외되도록 만들기도 합니다.

바로 그래서 부팅 시간 검사가 강력합니다. 부팅 시간 검사는 컴퓨터 시작 과정에서 실행되어, 루트킷이 활동을 시작하기 전에 잡아냅니다. 이 단계에서는 대개 루트킷이 아직 휴면 상태이므로 시스템 안에 자신을 숨길 수 없다는 것이 가장 큰 장점입니다.

3단계: 기기 초기화 및 운영체제 재설치

백신 검사와 부팅 시간 검사로도 루트킷을 제거하지 못했다면, 데이터를 백업한 뒤 기기를 포맷하고 클린 설치를 진행해야 합니다. 루트킷이 부팅 영역, 펌웨어, 하이퍼바이저 수준에서 작동하고 있다면 때때로 이것이 유일한 해결책입니다.

먼저 하드 드라이브를 포맷하고, 중요한 파일을 백업하기 위해 드라이브를 복제하는 방법을 알아야 합니다. 메인 C: 드라이브는 초기화해야 할 수 있지만, 대부분의 데이터는 보존할 수 있습니다. 이것은 루트킷 제거의 최후의 수단입니다.

애초에 루트킷 감염을 예방하는 방법

루트킷 바이러스를 제거하는 가장 좋은 방법은 애초에 감염되지 않는 것입니다. 지금 당장 실천할 수 있는 몇 가지 습관만으로도 '루트킷 제거'라는 고민에서 멀어질 수 있습니다.

  • 출처 불명의 파일 경계하기: 신뢰하는 지인에게서 받은 파일이라도 열기 전에 꼼꼼히 확인하세요. 발신자를 알 수 없는 첨부 파일은 절대 열지 않는 것이 좋으며, 이는 피싱 공격일 가능성이 있습니다. 전용 보안 브라우저를 사용하면 피싱 등 온라인 위협에 대한 추가 방어막을 갖출 수 있습니다.
  • 신뢰할 수 있는 곳에서만 소프트웨어 다운로드: 이상적으로는 제조사 공식 사이트나 App Store, Google Play 스토어에서 직접 받으세요. 이용약관을 꼼꼼히 살펴 누군가 루트킷을 몰래 심으려 하는지 확인하는 습관도 중요합니다.
  • 시스템 업데이트 즉시 설치: 업데이트에는 해커가 기기 침입에 악용할 수 있는 최근 발견된 취약점을 막는 패치가 포함된 경우가 많습니다.

루트킷을 식별하고 찾아내는 방법

루트킷이 제 역할을 하고 있다면 사용자는 그 존재를 눈치채지 못합니다. 루트킷을 찾고 탐지하는 가장 확실한 방법은 루트킷 스캐너 겸 제거 도구를 사용하는 것입니다. 이런 도구는 기기에 설치된 루트킷을 찾아 제거할 뿐 아니라, 미래의 감염까지 예방해 줍니다.

직접 루트킷을 찾아내고 싶은 분들을 위해 대안적인 방법도 소개합니다. 최고의 무료 백신을 고르는 것만큼 쉽지는 않고, 혼자 루트킷을 발견하더라도 제거하지 못할 수 있지만, 참고할 만한 지표들은 분명 있습니다.

루트킷 공격의 징후

다음과 같은 경고 신호가 나타난다면 기기에 루트킷이 존재할 가능성을 의심해 볼 수 있습니다.

  • 시스템이 평소와 다르게 작동: 루트킷은 해커가 운영체제를 조작할 수 있게 해줍니다. 컴퓨터가 이상하게 굴어진다면 루트킷을 통한 해커의 개입일 수 있습니다.
  • 설정 값 변경: 원칙적으로 컴퓨터는 사용자의 지시 없이 스스로 움직여서는 안 됩니다. 루트킷을 통한 원격 접속으로 누군가 설정과 구성을 함부로 바꾸고 있을 수 있습니다. 뭔가 달라졌다면 경계해야 합니다.
  • 웹 페이지·네트워크 활동 불안정: 인터넷 연결이 갑자기 평소보다 불안정해졌다면 단순한 서비스 문제 이상일 수 있습니다. 해커가 루트킷을 이용해 컴퓨터로 대량의 트래픽을 주고받는다면 인터넷 속도가 느려질 수 있습니다.

루트킷을 직접 찾는 방법

감염이 의심된다면 다음 기법들이 루트킷을 찾는 데 도움이 될 수 있습니다.

  • 시그니처 검사(Signature Scanning): 소프트웨어의 시그니처는 컴퓨터 언어에서 해당 프로그램을 나타내는 숫자 집합입니다. 알려진 루트킷 시그니처 데이터베이스와 컴퓨터를 대조하여 일치하는 항목이 있는지 확인할 수 있습니다.
  • 메모리 덤프 분석(Memory Dump Analysis): Windows 시스템이 충돌하면 메모리 덤프(크래시 덤프)라는 파일이 생성됩니다. 숙련된 기술자는 이 파일을 분석해 충돌 원인을 파악하고, 루트킷이 원인인지 확인할 수 있습니다.
  • 시스템 메모리 검색: 컴퓨터의 시스템 메모리를 샅샅이 뒤져 이상한 점이 있는지 확인합니다. 검색 과정에서 모든 진입점(접근 지점)에 호출된 프로세스의 흔적이 있는지 점검하고, DLL(동적 링크 라이브러리)에서 가져오는 모든 라이브러리 호출을 추적하세요. 일부 호출은 후킹(hooking)되거나 다른 함수로 리디렉션되었을 수 있습니다.

루트킷은 어떻게 설치되는가?

컴퓨터 웜이나 바이러스와 달리, 트로이 목마와 비슷하게 루트킷은 스스로 컴퓨터에 설치되지 못하고 외부의 도움이 필요합니다.

해커는 루트킷에 드로퍼(dropper)로더(loader)라는 두 개의 파트너 프로그램을 묶어 함께 설치를 진행합니다. 이 세 가지 악성코드가 합쳐진 것을 블렌디드 위협(blended threat)이라고 부릅니다. 루트킷 설치에 쓰이는 도구를 자세히 살펴보겠습니다.

  • 드로퍼(Dropper): 피해자의 컴퓨터로 루트킷을 반입하는 역할을 합니다. 설치 과정의 1단계로, 피해자가 드로퍼를 실행하면 드로퍼가 다시 로더를 활성화합니다.
  • 로더(Loader): 드로퍼가 실행되는 동안 로더가 작동을 시작해 대상 시스템에 루트킷을 설치합니다. 로더는 흔히 버퍼 오버플로(buffer overflow)를 유발하는 방식을 사용합니다. 이는 해커가 컴퓨터 메모리의 접근 불가능한 영역에 코드를 심을 수 있게 해주는 대표적인 보안 취약점 공격 기법입니다.

사이버 범죄자의 과제는 이 블렌디드 위협 패키지를 피해자에게 성공적으로 전달하는 것입니다. 해커가 루트킷을 설치하기 위해 사용하는 대표적인 방법은 다음과 같습니다.

  • 메신저 프로그램 탈취: 블렌디드 위협은 메신저 클라이언트를 탈취해 피해자의 연락처로 스스로를 퍼뜨릴 수 있습니다. 수신자가 메시지 속 악성 링크를 클릭하면 그 컴퓨터도 감염됩니다. 이런 소셜 엔지니어링 공격은 루트킷 확산에 매우 효과적인 방법입니다.
  • 신뢰할 수 있는 소프트웨어에 기생: 해커는 정상적인 프로그램과 앱에 루트킷을 심은 뒤, 여러 다운로드 사이트에 올립니다. 감염된 앱을 설치하는 순간 사용자도 모르게 루트킷이 함께 설치됩니다.
  • 다른 악성코드 활용: 바이러스와 트로이 목마는 컴퓨터에 침투하는 데 매우 효과적이므로, 루트킷 유포 수단으로 쓰일 수 있습니다. 바이러스가 담긴 프로그램이나 트로이 목마를 실행하는 순간 루트킷도 함께 설치됩니다.
  • 풍부한 콘텐츠 파일에 은닉: PDF 같은 리치 콘텐츠 파일의 등장 이후, 해커는 더 이상 악성코드를 전용 웹사이트나 프로그램에 숨길 필요가 없습니다. 이런 단순한 파일 안에 루트킷을 삽입하면, 오염된 파일을 여는 순간 루트킷 드로퍼가 자동으로 실행됩니다.

루트킷의 종류

보안 전문가들은 루트킷이 기기를 감염시키는 위치와 깊이에 따라 여섯 가지 유형으로 분류합니다.

유저 모드 루트킷(User-mode Rootkit)

유저 모드 루트킷은 운영체제의 관리자 계정을 감염시켜, 컴퓨터의 보안 정책을 변경하고 자신 및 동반 악성코드를 은폐하는 데 필요한 최상위 권한을 획득합니다.

이 루트킷은 컴퓨터가 부팅될 때 자동으로 실행되므로, 단순 재시작만으로는 감염을 없앨 수 없습니다. Avast One 같은 악성코드 스캐너는 커널(kernel)이라 불리는 더 깊은 수준에서 작동하기 때문에 유저 모드 루트킷을 탐지할 수 있습니다.

커널 모드 루트킷(Kernel-mode Rootkit)

커널 수준의 루트킷 스캐너에 대응하기 위해 해커들이 만든 것이 커널 모드 루트킷입니다. 이들은 컴퓨터의 실제 운영체제와 동일한 수준에 상주하며, 결과적으로 OS 전체를 장악합니다.

커널 모드 루트킷에 감염되면 컴퓨터에 대해 더 이상 아무것도 신뢰할 수 없습니다. 안티 루트킷 검사 결과조차 잠재적으로 오염되어 있을 수 있습니다. 다행히 과도한 시스템 충돌 등 존재를 드러내는 부작용 없이 작동하는 커널 모드 루트킷을 만드는 것은 매우 어렵습니다.

하이브리드 루트킷(Hybrid Rootkit)

하이브리드 루트킷은 구성 요소 일부는 유저 레벨에, 나머지는 커널에 배치합니다. 덕분에 유저 모드 루트킷의 안정성과 커널 상주형 루트킷의 강력한 은폐 능력을 동시에 누릴 수 있습니다. 그래서 유저-커널 하이브리드 루트킷은 사이버 범죄자들 사이에서 가장 인기 있는 유형 중 하나입니다.

펌웨어 루트킷(Firmware Rootkit)

펌웨어는 컴퓨터 하드웨어를 제어하는 저수준 소프트웨어입니다. 일부 루트킷은 컴퓨터를 끄는 동안 펌웨어 안에 숨어 있다가, 전원을 다시 켜면 스스로를 재설치하고 활동을 재개합니다.

루트킷 스캐너가 실행 중인 펌웨어 루트킷을 찾아 비활성화하더라도, 다음에 컴퓨터를 켜면 루트킷이 되살아납니다. 펌웨어 루트킷은 시스템에서 완전히 제거하기가 특히 까다롭기로 악명 높습니다.

부트킷(Bootkit)

컴퓨터 전원을 켜면 시스템은 MBR(마스터 부트 레코드)을 참조해 운영체제를 불러오는 방법을 확인합니다. 부트로더 루트킷이라고도 불리는 부트킷은 컴퓨터의 MBR을 감염시키는 커널 모드 루트킷 변종입니다. 컴퓨터가 MBR을 참조할 때마다 부트킷도 함께 로드됩니다.

부트킷은 OS 안에 상주하지 않기 때문에 다른 커널 모드 루트킷과 마찬가지로 백신 프로그램이 탐지하기 어렵습니다. 다행히 Windows 8과 Windows 10이 Secure Boot 기능으로 부트킷에 대응하면서 부트킷은 사실상 사라진 위협이 되었습니다.

가상 루트킷(Virtual Rootkit)

가상 머신은 물리적 컴퓨터 위에서 별도의 컴퓨터를 에뮬레이션하는 소프트웨어입니다. 한 대의 기기에서 여러 운영체제를 구동하거나, 격리된 환경에서 프로그램을 테스트할 때 사용됩니다.

가상 루트킷, 즉 VMBR(Virtual Machine–based Rootkit)은 원본 운영체제 아래에 자신을 로드한 뒤, 그 OS를 가상 머신 위에 올려 놓습니다. 컴퓨터의 OS와 분리되어 작동하기 때문에 탐지가 매우 어렵습니다.

역사 속 대표적인 루트킷 사례

새로운 루트킷이 등장하면 곧바로 사이버 보안 분야의 가장 시급한 현안이 됩니다. 역사상 가장 잘 알려진 루트킷 사례들을 살펴보겠습니다. 해커가 만든 것도 있지만, 놀랍게도 대기업이 만들어 사용한 사례도 있습니다.

  • 1990년: Lane Davis와 Steven Dake가 SunOS 유닉스 운영체제를 위해 최초로 알려진 루트킷을 선마이크로시스템즈에서 개발했습니다.
  • 1999년: Greg Hoglund가 Windows 최초의 루트킷인 NTRootkit 트로이 목마 개발을 다룬 글을 발표했습니다. 커널 모드에서 작동하는 루트킷 바이러스의 사례입니다.
  • 2003년: 유저 모드 루트킷 HackerDefender가 Windows 2000과 Windows XP용으로 등장했고, 안티 루트킷 도구 RootkitRevealer와의 고양이와 생쥐 게임을 촉발했습니다.
  • 2004년: 그리스 총리의 휴대폰을 포함해 보다폰 그리스 네트워크의 100대 이상 휴대폰이 루트킷으로 도청당하는 사건이 발생했으며, 이 사건은 '그리스 워터게이트'로 불립니다.
  • 2005년: 소니 BMG가 소비자의 사전 동의 없이 루트킷을 설치하는 CD를 저작권 보호 수단으로 배포하면서 거대한 스캔들에 휩쓸렸습니다.
  • 2008년: 당시 TDL-1로 불린 TDL-4 부트킷이, 봇넷을 만들고 유지하는 데 쓰였던 악명 높은 Alureon 트로이 목마의 동력이 되었습니다.
  • 2009년: 개념 증명(PoC)용 마키아벨리 루트킷이 macOS(당시 Mac OS X)를 표적으로 삼으며, 맥 역시 루트킷 같은 악성코드에 취약할 수 있음을 입증했습니다.
  • 2010년: 미국과 이스라엘이 공동 개발한 것으로 알려진 스턱스넷(Stuxnet) 웜은 이란의 핵 프로그램을 공격하면서 루트킷으로 자신의 존재를 은폐했습니다.
  • 2012년: 대부분의 악성코드가 1MB 미만임을 감안하면 상당히 큰 20MB 규모의 모듈형 악성코드 플레임(Flame)이 중동과 북아프리카의 인프라 전역에 혼란을 일으켰습니다.
  • 2018년: LoJax는 메인보드를 제어하는 펌웨어인 UEFI를 감염시킨 최초의 루트킷으로, 운영체제를 재설치해도 살아남았습니다.
  • 2019년: 최근의 루트킷 공격 사례로는 Scranos가 있습니다. 이 루트킷은 브라우저에 저장된 비밀번호와 결제 정보를 훔치고, 몰래 동영상 수익과 YouTube 구독자를 늘리기 위해 컴퓨터를 클릭팜(clickfarm)으로 만들기도 했습니다.

안티 루트킷 소프트웨어로 기기를 보호하세요

전 세계 4억 명 이상의 사용자가 신뢰하는 Avast는 루트킷을 포함한 모든 유형의 악성코드로부터 기기를 지켜 줍니다. Avast One을 설치하면 가장 강력한 루트킷 스캐너 겸 제거 도구 중 하나를 갖추게 됩니다. 최고 수준의 루트킷 보호는 물론, 다양한 보안·개인정보 보호 기능까지 무료로 이용할 수 있습니다.