커널 또는 운영체제 루트킷은 수 년 동안 컴퓨터에 대한 위험한 위협이었다. 그리고 마이크로소프트가 2006년 마이크로소프트 비스타로 운영체제를 대대적으로 변경했다. 업체들에게 디지털 서명된 드라이버를 요구했는데, 이로 인해 프린터 드라이버에만 문제가 발생했을 뿐 아니라, 악성코드 작성자들도 공격 방식을 바꾸어야 했다.
KPP(Kernel Patch PRotection) 때문에 악성코드 작성자는 디지털 서명 요건을 극복해야 했다. 그래서 고급 공격자들 또한 페이로드의 일환으로 루트킷을 사용하게 됐다. 루트킷은 집중적으로 사용되다가 수 년 동안 악성코드 결과물에서 차지하는 비율이 1% 미만이 되었다.
윈도우 루트킷을 재조명하게 된 Zacinlo 광고 사기
그리고 2018년 6월 Zacinlo 광고 사기 활동이 재조명되면서 우리는 다시 루트킷의 위험에 대해 걱정하게 됐다. 비트디펜더의 조사에서 밝혔듯, 이 루트킷 기반 악성코드는 6년 동안 사용되었지만 최근에서야 윈도우 10을 표적으로 삼게됐으며, 한 가지 중대한 변화를 거쳤다. 디지털 서명한 드라이버를 이용해 윈도우 10의 보호 장치를 우회한 것이다. 연구원들은 샘플 중 90%가 윈도우 10을 구동하고 있음을 발견했다.기본적으로 루트킷은 기본적인 운영체제 청소 작업을 견디게 설계되고, 서명된 윈도우 10 드라이버에 주입되는데, 이것이 Zacinlo 악성 코드의 기능과 동일하다. 비트디펜더가 밝힌 Zacinlo의 구성요소는 다음과 같다.
• 스스로를 보호하는 루트킷 드라이버와 기타 구성 요소. 애드웨어의 정지나 삭제를 방지하면서 그 기능에 위험하다고 간주되는 프로세스를 정지할 수 있다.
• SSL 통신을 가로채고 복호화하는 MITB(Man In The Browser) 기능. 이를 통해 애드웨어는 사용자 정의 자바스크립트 코드를 사용자가 방문하는 웹 페이지에 주입할 수 있다.
Zacinlo의 루트킷 구성 요소는 구성 자유도가 높고 윈도우 레지스트리 안에 모든 구성 데이터를 암호화해 보관한다고 비트디펜더가 밝혔다. 윈도우 종료 중 루트킷은 스스로 메모리에서 디스크로 옮겨가며 이름을 바꾸고 레지스트리 키를 업데이트한다. 이런 식으로 일반적인 안티바이러스 기법을 통한 감지를 회피한다.
윈도우 10에서 루트킷 악성코드를 감지하는 방법
기기가 루트킷에 감염되었는지 판단하는 가장 좋은 방법은 잠재적으로 영향을 받는 장치의 발신 TCP/IP 패킷을 검토하는 것이다. 단독형 출구 필터링 방화벽이 적용된 대형 네트워크의 경우 재량으로 사용할 수 있는 키 툴이 있다. 이 방화벽을 통해 네트워크의 출구 패킷으로 워크스테이션과 네트워크 장치가 정확히 무엇에 연결되어 있는지 파악할 수 있다.가장 중요한 목적은 방화벽의 보고를 검토하고 공격 시에 확인해야 할 것을 보여주는지 파악하는 것이다. 방화벽 로그에 IP 주소만 표시된다면 추적이 더 쉽도록 사용자 인증 데이터를 추가한다.
이례적인 트래픽에 대해 경고하거나 지리적 위치에서 방화벽 트래픽을 차단할 수 있는 로깅 솔루션을 확보하는 것이 이상적이다. 공격자는 조용히 자신의 활동을 숨기기 때문에 형식적인 LM(Log Management) 및 SIEM(Security Information and Event Management) 시스템의 도입을 고려해야 할 수도 있다. 방화벽과 이벤트 로그 파일이 시스템에서 빠르게 사라지는 경우가 많기 때문에 포렌식 조사를 수행하거나 규정을 준수하기 위해 로깅을 위한 스토리지 매커니즘을 도입해야 할 수도 있다.
가정 또는 소기업 환경에서는 이런 장치가 있는 경우 ISP 모뎀의 방화벽 로그 또는 개인용 방화벽/라우터에서 트래픽을 확인할 수 있는지 확인하자. 트래픽을 필터링 및 분류할 수 있는 데이터베이스 파서(parser) 프로그램으로 로그 파일을 내보내기 한다.
최소한 시스템의 오작동은 루트킷이 설치되었다는 주요 지표가 될 수 있다. 과도한 CPU 또는 인터넷 대역폭 사용은 감염의 징조인 경우가 많다. 윈도우 10 기기는 윈도우 업데이트와 텔레메트리로 전송되는 패킷이 필요한 선순위 운영체제보다 인터넷 활동이 더 많을 수 있지만, 기기가 정상적으로 작동하지 않을 때를 판단할 수는 있다.
라우터가 시스템의 활동에 대한 조언을 제대로 제공하지 않는 경우에는 업그레이드가 필요하다. 일부 개인용 라우터에는 취약성을 스캔하고 장치가 다른 인터넷 주소를 호출할 때 확인할 수 있는 구독 서비스가 포함되어 있다. 이제 라우터에 로그인해 로그 기능 그리고 조정 및 사용자 정의가 가능한지 여부를 확인한다.
루트킷 악성코드 공격을 방지하는 방법
루트킷 악성코드가 시스템에 설치되지 않도록 차단하는 방법은 여러 가지다. 그 중 하나는 엄격한 드라이버 서명 요건을 수립하는 것이다. 윈도우 S(Windows S) 모드는 실제로 윈도우 스토어 애플리케이션이 발행한 신뢰할 수 있는 바이너리만 컴퓨터에 설치되도록 한다. 윈도우 엔터프라이즈 라이선스로 윈도우 디펜더 디바이스 가드(Windows Defender Device Guard)를 활성화하는 것도 추가적인 보호책을 수립하는 좋은 방법이다.최종 사용자가 기기에 루트킷이 존재한다고 생각하는 경우 IT 지원 혹은 보안 팀에 알려 적절히 조사할 수 있도록 프로세스를 주입한다. 잘 아는 사용자가 기기의 감염 여부를 판단하는 열쇠가 되는 경우가 많다. 자신이 IT 관리자라면 사용자들이 루트킷 증상을 찾아 보고하도록 교육한다.
심지어 기본적인 보안 인식 교육도 루트킷을 방지하는 데 도움이 된다. 데스크톱 및 노트북의 악성코드 사고 처리에 대한 NIST 가이드에는 다음의 IT 정책이 시스템 보호의 핵심으로 열거되어 있다.
• 의심스러운 이메일이나 이메일 첨부파일을 열거나, 모르거나 아는 사람이 보낸 하이퍼링크를 클릭하거나 악성 콘텐츠가 포함되어 있을 가능성이 있는 웹사이트를 방문하지 않는다.
• 의심스러운 웹 브라우저 팝업 창을 클릭하지 않는다.
• 악성코드와 관련되어 있을 가능성이 높은 파일 확장자(.bat, .com, .exe, .pif, .vbs 등)가 있는 파일을 열지 않는다.
• 악성코드 보안 제어 매커니즘(안티바이러스 소프트웨어, 콘텐츠 필터링 소프트웨어, 평가 소프트웨어, 개인용 방화벽 등)을 비활성화하지 않는다.
• 일반 호스트 작업에 관리자 수준 계정을 사용하지 않는다.
• 신뢰할 수 없는 출처의 애플리케이션을 다운로드하거나 실행하지 않는다.
루트킷 악성코드 제거 방법
루트킷을 제거하는 방법은 여러 가지다. 윈도우 10 내부에서 윈도우 디펜더 오프라인 스캔을 실행할 수 있다. ‘Windows Defender 보안 센터 > 고급 스캔’으로 이동한 후 상자에 체크표시해 윈도우 디펜더 오프라인 스캔을 활성화한다. 시스템을 재부팅하면 윈도우 PE 클린 부팅으로 운영체제를 부팅한 후 하드 드라이브를 스캔한다.맬웨어바이트(MalwareBytes)와 카스퍼스키(Kaspersky) 등이 제공하는 추가 툴도 유사한 작업을 수행한다. 스캔을 통해 루트킷 감염 의심이 확인되면 보안 사고로 보고 의심스러운 장치를 네트워크와 인터넷에서 즉시 분리한다.
시스템에 루트킷이 있는지 아직도 확실하지 않다면 여러 유용한 포럼을 통해 분석 및 탐지 과정을 수행할 수 있다. 블리핑컴퓨터(BleepingComputer) 포럼에서 시스템 평가에 대한 도움을 받을 수 있으며, 윈도우 10 컴퓨터의 경우 텐포럼(TenForums) 사이트도 유용하다.
시스템이 감염되었다고 판단되면 원본 소프트웨어를 이용해 컴퓨터를 완전히 재설치한다. 또는 전체 백업이 있는 경우 시스템을 이벤트가 발생하기 이전의 상태로 롤백하고 시스템의 재감염 조짐을 모니터링한다. 정리 과정의 일환으로 시스템의 비밀번호를 재설정하고 관리자 암호도 변경한다.
다른 접근 방식이 필요한 펌웨어 루트킷
펌웨어에 내장된 루트킷은 복구 방식으로 정리하기가 어려울 수 있다. UEFI(Unified Extensible Firmware Interface) 루트킷이 가장 무섭다. 2018년 9월 APT28이라는 UEFI 루트킷이 최초로 발견됐다. 이 루트킷은 장치의 SPI(Serial Peripheral Interface)의 플래시 메모리에 내장되어 있었다. 이 덕분에 루트킷은 운영체제 재설치와 하드 드라이브 교체에도 불구하고 여전히 남아 있을 수 있었다.BIOS, UEFI, 기타 펌웨어 루트킷으로부터 스스로를 보호하려면 시스템의 펌웨어가 최신 상태인지 확인한다. 시스템이 보안 부팅을 사용하고 있는지 확인한다. 보안 부팅은 수 년 동안 사용되었으며, 이 프로세스 중 신뢰할 수 있는 코드만 실행되도록 함으로써 사전 부팅 시스템을 보호하도록 고안되었다. 윈도우 10 시스템이 현재 보안 부팅 상태로 구동하고 있는지 확인하려면 시작 메뉴를 열고 ‘시스템 정보’를 입력한다. 결과창에서 아래로 스크롤해 ‘보안 부팅 상태’를 찾는다. 여기에서 확인되면 시스템이 이미 이 보호 모드로 작동하고 있는 것이다.
깃허브(GitHub)에는 펌웨어가 최신인지 확인하는데 도움이 되는 많은 리소스가 나열되어 있다. 시스템 BIOS와 펌웨어 업데이트를 컴퓨터 보안 프로세스에 포함시킨다. 하드웨어 업체가 BIOS 업데이트를 자동으로 확인해 설치하기 위해 제공한 툴이 없는 경우 설치하는 것이 좋다.
루트킷은 윈도우 장치에만 해당하는 이야기가 아니다. 사물인터넷 장치에도 적용될 수 있다. 장치가 감염되었다고 의심되는 경우 출고 당시로 되돌리는 ‘팩토리 리셋’을 한 후 최신 펌웨어를 설치한다. 마지막으로 사용자 이름과 관련된 비밀번호 또는 장치와 관련된 계정을 재설정한다.
루트킷에 영향을 받은 경우 복구하는 가장 좋은 방법은 운영체제를 재설치하고 펌웨어를 설치 또는 재설치하는 것이다. 필요에 따라 계정의 비밀번호를 재설정한다. 치료하는 것보다 예방이 쉬운 것은 사실이지만 운영체제와 애플리케이션을 다시 설치할 능력만 있다면 복구가 가능하다.
이제 재 윈도우 10 ISO를 플래시 드라이브에 다운로드해 저장하고 주요 애플리케이션과 설치 코드가 감염이 발생해도 접근할 수 있는 외부에 백업되어 있거나 저장되어 있는지 확인한다. editor@itworld.co.kr
Sponsored
Surfshark
“유료 VPN, 분명한 가치 있다” VPN 선택 가이드
ⓒ Surfshark VPN(가상 사설 네트워크, Virtual Private Network)은 인터넷 사용자에게 개인 정보 보호와 보안을 제공하는 중요한 도구로 널리 인정받고 있다. VPN은 공공 와이파이 환경에서도 데이터를 안전하게 전송할 수 있고, 개인 정보를 보호하는 데 도움을 준다. VPN 서비스의 수요가 증가하는 것도 같은 이유에서다. 동시에 유료와 무료 중 어떤 VPN을 선택해야 할지 많은 관심을 가지고 살펴보는 사용자가 많다. 가장 먼저 사용자의 관심을 끄는 것은 별도의 예산 부담이 없는 무료 VPN이지만, 그만큼의 한계도 있다. 무료 VPN, 정말 괜찮을까? 무료 VPN 서비스는 편리하고 경제적 부담도 없지만 고려할 점이 아예 없는 것은 아니다. 보안 우려 대부분의 무료 VPN 서비스는 유료 서비스에 비해 보안 수준이 낮을 수 있다. 일부 무료 VPN은 사용자 데이터를 수집해 광고주나 서드파티 업체에 판매하는 경우도 있다. 이러한 상황에서 개인 정보가 유출될 우려가 있다. 속도와 대역폭 제한 무료 VPN 서비스는 종종 속도와 대역폭에 제한을 생긴다. 따라서 사용자는 느린 인터넷 속도를 경험할 수 있으며, 높은 대역폭이 필요한 작업을 수행하는 데 제약을 받을 수 있다. 서비스 제한 무료 VPN 서비스는 종종 서버 위치가 적거나 특정 서비스 또는 웹사이트에 액세스하지 못하는 경우가 생긴다. 또한 사용자 수가 늘어나 서버 부하가 증가하면 서비스의 안정성이 저하될 수 있다. 광고 및 추적 위험 일부 무료 VPN은 광고를 삽입하거나 사용자의 온라인 활동을 추적하여 광고주에게 판매할 수 있다. 이 경우 사용자가 광고를 보아야 하거나 개인 정보를 노출해야 할 수도 있다. 제한된 기능 무료 VPN은 유료 버전에 비해 기능이 제한될 수 있다. 예를 들어, 특정 프로토콜이나 고급 보안 기능을 지원하지 않는 경우가 그렇다. 유료 VPN의 필요성 최근 유행하는 로맨스 스캠은 인터넷 사기의 일종으로, 온라인 데이트나 소셜 미디어를 통해 가짜 프로필을 만들어 상대를 속이는 행위다. 이러한 상황에서 VPN은 사용자가 안전한 연결을 유지하고 사기 행위를 방지하는 데 도움이 된다. VPN을 통해 사용자는 상대방의 신원을 확인하고 의심스러운 활동을 감지할 수 있다. 서프샤크 VPN은 구독 요금제 가입 후 7일간의 무료 체험을 제공하고 있다. ⓒ Surfshark 그 외에도 유료 VPN만의 강점을 적극 이용해야 하는 이유는 다음 3가지로 요약할 수 있다. 보안 강화 해외 여행객이 증가함에 따라 공공 와이파이를 사용하는 경우가 늘어나고 있다. 그러나 공공 와이파이는 보안이 취약해 개인 정보를 노출할 위험이 있다. 따라서 VPN을 사용하여 데이터를 암호화하고 개인 정보를 보호하는 것이 중요하다. 서프샤크 VPN은 사용자의 개인 정보를 안전하게 유지하고 해킹을 방지하는 데 유용하다. 개인정보 보호 인터넷 사용자의 검색 기록과 콘텐츠 소비 패턴은 플랫폼에 의해 추적될 수 있다. VPN을 사용하면 사용자의 IP 주소와 로그를 숨길 수 있으며, 개인 정보를 보호할 수 있다. 또한 VPN은 사용자의 위치를 숨기고 인터넷 활동을 익명으로 유지하는 데 도움이 된다. 지역 제한 해제 해외 여행 중에도 한국에서 송금이 필요한 경우가 생길 수 있다. 그러나 IP가 해외 주소이므로 은행 앱에 접근하는 것이 제한될 수 있다. VPN을 사용하면 지역 제한을 해제해 해외에서도 한국 인터넷 서비스를 이용할 수 있다. 따라서 해외에서도 안전하고 편리하게 인터넷을 이용할 수 있다. 빠르고 안전한 유료 VPN, 서프샤크 VPN ⓒ Surfshark 뛰어난 보안 서프샤크 VPN은 강력한 암호화 기술을 사용하여 사용자의 인터넷 연결을 안전하게 보호한다. 이는 사용자의 개인 정보와 데이터를 보호하고 외부 공격으로부터 사용자를 보호하는 데 도움이 된다. 다양한 서버 위치 서프샤크 VPN은 전 세계 곳곳에 여러 서버가 위치하고 있어, 사용자가 지역 제한된 콘텐츠에 액세스할 수 있다. 해외에서도 로컬 콘텐츠에 손쉽게 접근할 수 있음은 물론이다. 속도와 대역폭 서프샤크 VPN은 빠른 속도와 무제한 대역폭을 제공하여 사용자가 원활한 인터넷 경험을 누릴 수 있도록 지원한다. 온라인 게임, 스트리밍, 다운로드 등 대역폭이 필요한 활동에 이상적이다. 다양한 플랫폼 지원 서프샤크 VPN은 다양한 플랫폼 및 디바이스에서 사용할 수 있다. 윈도우, 맥OS, iOS, 안드로이드 등 다양한 운영체제 및 디바이스에서 호환되어 사용자가 어디서나 안전한 인터넷을 즐길 수 있다. 디바이스 무제한 연결 서프샤크 VPN은 무제한 연결을 제공하여 사용자가 필요할 때 언제든지 디바이스의 갯수에 상관없이 VPN을 사용할 수 있다.