멀웨어를 떠올리면 화면 가득 번지는 랜섬웨어 경고창이나 갑작스러운 블루스크린 같은 극적인 장면을 상상하기 쉽습니다. 하지만 현실에서 진짜 위험한 존재들은 훨씬 유령 같습니다. CPU를 몰래 빌려 암호화폐를 채굴하는 의심스러운 프로세스, 한 번도 본 적 없는 IP 주소로 통신하는 '친절한' 앱, 재부팅할 때마다 스스로를 되살리는 고집 센 스크립트가 바로 그 주인공입니다.
Windows 작업 관리자만으로는 이런 은밀한 움직임을 파악하기 어렵습니다. 시스템에 이상 기운이 느껴지거나 전반적인 상태를 점검하고 싶을 때 저는 Windows Sysinternals Suite를 꺼냅니다. 마이크로소프트의 CTO이자 Azure Technical Fellow인 Mark Russinovich가 개발한 이 도구들은 심층 시스템 분석의 사실상 표준으로 꼽힙니다. 가볍고, 별도 설치 없이 바로 실행되며, 정확도 또한 뛰어납니다.
제가 실제로 시스템의 이상 징후를 추적할 때 사용하는 다섯 가지 Sysinternals 도구를 소개합니다.
Process Explorer
작업 관리자보다 똑똑하고 강력한 상위 호환 도구
작업 관리자가 둔탁한 버터 나이프라면 Process Explorer는 정교한 메스입니다. PC가 느려지거나 평소와 다르게 동작할 때 가장 먼저 여는 프로그램입니다. 겉보기에는 작업 관리자와 비슷하지만 파고들수록 그 깊이가 다름을 알게 됩니다. 실행 중인 프로세스의 전체 계보, 즉 부모-자식 관계를 이렇게 선명하게 보여주는 도구는 없습니다.
저는 Process Explorer를 '가짜 프로세스'를 잡는 데 가장 많이 활용합니다. 멀웨어는 svchost.exe나 chrome.exe처럼 지루하고 신뢰할 만한 이름으로 위장하는 경우가 많습니다. 필수 Windows 프로세스 뒤에 바이러스를 숨기고 눈길을 피하려는 속임수죠. Process Explorer는 이런 위장에 넘어가지 않습니다. 어떤 프로세스가 누구에게서 '태어났는지'까지 보여줍니다. services.exe가 아닌 explorer.exe에서 생성된 svchost.exe를 발견하면 즉시 의심해야 합니다. 대부분 결정적인 단서입니다.
가장 마음에 드는 기능은 내장된 VirusTotal 검사입니다. Options 메뉴에서 옵션 하나만 켜면 실행 중인 모든 실행 파일의 해시를 VirusTotal과 대조해 감지 결과를 프로세스 목록에 바로 표시해 줍니다. 수십 개 엔진 중 0건이면 안심할 수 있고, 그 외의 값이 나오면 곧바로 '이게 왜 여기 있는 거지?' 목록의 맨 위로 올라갑니다.
TCPView
PC가 어둠 속에서 누구와 통신하는지 확인
요즘 멀웨어는 인터넷 연결 없이는 거의 무력합니다. 원격 제어 명령을 기다리는 RAT든 비밀번호를 외부로 전송하는 키로거든, 언젠가는 반드시 외부와 통신해야 합니다. 그래서 이런 '뒷방 대화'를 현장에서 잡으려면 TCPView를 사용합니다.
netstat 명령의 텍스트 나열과 달리 TCPView는 실시간으로 갱신되는 깔끔한 목록을 제공합니다. 연결이 생기고 사라지는 과정을 눈으로 확인할 수 있습니다. 원래 온라인일 이유가 없는 프로그램을 주의 깊게 살펴야 합니다. 메모장이나 계산기가 낯선 IP와 'Established' 상태로 연결돼 있다면 그 순간 이미 문제가 있다는 신호입니다.
저는 보통 State 열을 기준으로 정렬해 활성 연결을 맨 위로 올린 뒤 열린 TCP/IP 포트를 빠르게 훑어봅니다. 그다음 생소한 포트의 트래픽이나 이름과 아이콘조차 제대로 표시되지 않는 프로세스를 찾습니다. 항목을 우클릭해 Whois 조회를 하면 해당 IP의 소유자를 알 수 있습니다. 내가 일절 관련 없는 먼 나라의 클라우드 서버라는 결과가 나오면 고민할 필요 없이 바로 연결을 차단하면 됩니다.
Autoruns
부팅 과정에 숨어 있는 유령 내쫓기
'지속성(Persistence)'은 멀웨어의 본질입니다. 공격자는 사용자가 언젠가 재부팅할 것을 알기 때문에 시작 프로그램 위치에 스크립트와 실행 파일을 심어 시스템이 다시 살아나는 순간 코드가 함께 돌아오도록 만듭니다. Windows에는 이런 진입점이 수십 군데 있지만 작업 관리자의 시작 프로그램 탭은 그중 극히 일부만 보여줍니다.
그래서 Autoruns를 사용합니다. 필요한 만큼 '참견'이 심한 도구입니다. 레지스트리, 작업 스케줄러, WMI는 물론 Windows의 숨겨진 구석구석까지 샅샅이 뒤집습니다. 목록 로딩이 끝나면 분홍색으로 표시된 항목부터 확인합니다. 분홍색은 서명되지 않은 코드를 의미하는 위험 신호입니다. 건강한 시스템이라면 시작 프로그램 대부분이 마이크로소프트나 Adobe, Google처럼 잘 알려진 업체의 디지털 서명을 받고 있어야 합니다.
노이즈에 파묻히지 않으려면 필터를 활용하는 것이 좋습니다. Options → Scan Options에서 Verify Code Signatures를 켜고 Microsoft 항목을 숨기면 수천 개에 달하는 정식 Windows 구성 요소가 걸러지고 서드파티 소프트웨어만 남습니다. 만약 서명되지 않은 분홍색 항목이 AppData\Local\Temp 같은 임시 경로에 있는 파일을 가리키고 있다면, 지속성을 확보하려는 멀웨어일 가능성이 매우 높습니다.
Process Monitor (ProcMon)
화재 호스에서 물을 마시듯 방대한 데이터 속 바늘 찾기
죽여도 죽여도 다시 살아나는 은밀한 감염과 마주하면 저는 예의를 갖추기를 포기하고 Process Monitor를 꺼냅니다. 이것은 중무장입니다. 파일 시스템, 레지스트리, 실행 중인 프로세스의 실시간 활동을 모두 기록해 시스템이 겉면 아래에서 실제로 무엇을 하는지 입체적으로 보여줍니다.
다만 미리 경고하겠습니다. ProcMon은 시끄럽습니다. 몇 초 만에 수십만 개의 이벤트가 쏟아지는 수준입니다. 가볍게 훑어보는 용도가 아니라 '이 수상한 레지스트리 키를 삭제할 때마다 어떤 파일이 다시 만드는 걸까?' 같은 아주 구체적인 질문에 답하기 위해 사용하는 도구입니다.
제 방식은 이렇습니다. 먼저 도구를 실행하자마자 Ctrl + E로 캡처를 일시정지해 초기 데이터 홍수를 막습니다. 그다음 툴바의 Target 아이콘을 선택해 수상한 창이나 오류 메시지 위로 끌어다 놓습니다. 그러면 Process Monitor가 자동으로 필터를 적용해 해당 프로세스와 관련된 활동만 보여줍니다. 여기서부터 어떤 파일을 만지고 설정 데이터를 어디에 숨기려 하는지 정확히 추적할 수 있습니다.
Sysmon (System Monitor)
한밤중의 멀웨어를 위한 사후 추적 장치
앞서 소개한 네 가지 도구는 '현행범'을 잡는 데 탁월합니다. 하지만 사용자가 보지 않는 동안에만 움직이는 멀웨어는 어떨까요? 많은 멀웨어는 상황을 인지해 사용자 활동이 감지되는 순간 조용히 잠복합니다.
그럴 때 Sysmon이 빛을 발합니다. 백그라운드에서 상시 실행되며 목격한 모든 것을 Windows 이벤트 로그에 기록합니다. 오랫동안 지켜봐야 할 PC에는 반드시 설치해 두는 도구입니다. Windows 기본 감사 기능과는 비교도 되지 않을 만큼 세밀해서 로드된 모든 프로그램의 해시, 발생한 모든 네트워크 연결, 생성된 모든 프로세스를 기록합니다.
가장 많이 활용하는 것은 프로세스 생성을 기록하는 Event ID 1입니다. 일종의 디지털 종이 흔적을 남겨 줍니다. 아침에 일어나 데스크톱에 출처불명의 파일이 하나 놓여 있다면 지난밤의 기록을 되감아 어떤 프로세스가, 언제, 어떤 명령줄로 그 파일을 만들었는지 정확히 확인할 수 있습니다.
추측은 그만, 직접 추적을 시작하세요
이 다섯 가지 Sysinternals 도구를 활용하면 Windows PC 보안을 훨씬 더 단단하게 관리할 수 있습니다. 표준 백신이 놓치기 쉬운 문제를 발견하고 해결하는 데 큰 도움이 됩니다. 무엇보다 모든 유틸리티가 무료이며 포터블이라 어떤 Windows PC에서도 바로 실행할 수 있고, 마이크로소프트가 최신 OS 버전에 맞춰 꾸준히 업데이트해 줍니다. IT에 관심 있는 사용자라면 꼭 한번 사용해 보시길 권합니다. 수상한 행동을 조기에 포착하는 능력이 생길 뿐 아니라 Windows 내부 동작에 대한 이해도 크게 넓어질 것입니다.
경험상, Sysinternals 도구로 직접 단서를 좇는 작은 습관만으로도 PC에서 '뭔가 이상하다'는 느낌이 들 때 시스템을 깨끗하게 유지하고 마음 편히 잠들 수 있습니다. 즐거운 추적 되세요!