정적 분석까지는 파일을 실행하지 않고 분석했다면, 이제 직접 실행해서 행동을 관찰할 차례다.
이번 편에서는 동적 분석 단계에서 사용하는 Process Explorer와 Autoruns를 정리했다.
정적 분석까지는 파일을 실행하지 않고 안을 들여다봤다. 동적 분석은 다르다. 파일을 실제로 실행하면서 어떤 행동을 하는지 관찰하는 방법이다.
정적 분석에서 "이런 걸 하려는 것 같다"는 힌트를 찾았다면, 동적 분석에서는 "진짜로 이런 걸 한다"는 걸 눈으로 확인하는 단계다. 실행해봐야 알 수 있는 것들이 있기 때문에, 가장 많은 정보를 얻을 수 있는 단계이기도 하다.
다만 실제로 악성코드를 실행하는 만큼, 반드시 가상 환경(VM) 안에서만 진행해야 한다. 실제 PC에서 실행하면 시스템이 감염될 수 있다.
동적 분석에서 사용하는 도구들은 관리자 권한으로 실행해야 한다. 일반 권한으로는 시스템 깊숙한 영역의 정보가 표시되지 않을 수 있다.
💡 VM(Virtual Machine)이란 컴퓨터 안에 만든 가상의 컴퓨터다. VM 안에서 악성코드를 실행하면 실제 PC에는 영향을 주지 않는다. VM 구성에 대한 자세한 내용은 별도 편에서 다룰 예정이다.
동적 분석에서 확인할 것은 많지만, 크게 나누면 이렇다.
도구가 많아서 동적 분석은 여러 편으로 나눠서 정리한다. 이번 편에서 다룰 도구는 Process Explorer와 Autoruns다. Process Explorer는 프로세스 활동을, Autoruns는 지속성 확보 여부를 확인하는 데 사용한다.
현재 실행 중인 프로세스를 트리 구조로 보여주는 도구다. 윈도우 기본 작업 관리자보다 훨씬 상세한 정보를 제공한다.
💡 프로세스란 실행 중인 프로그램 하나하나를 말한다. 예를 들어 크롬을 열면 크롬 프로세스가 생기고, 메모장을 열면 메모장 프로세스가 생긴다.
악성코드를 실행했을 때 어떤 프로세스가 새로 생기는지, 그 프로세스가 또 다른 프로세스를 만드는지 같은 걸 확인할 수 있다.
프로그램을 실행하면 현재 돌아가고 있는 프로세스들이 트리 구조로 표시된다. 트리 구조라서 어떤 프로세스가 어떤 프로세스를 만들었는지(부모-자식 관계)를 한눈에 볼 수 있다.
Process Explorer는 실시간 모니터링 도구다. 화면이 계속 갱신되기 때문에, 악성코드를 실행하기 전에 먼저 열어둔 상태에서 실행해야 변화를 놓치지 않는다.

화면에서 눈에 띄는 건 색상이다. Process Explorer는 프로세스 종류에 따라 다른 색으로 표시해준다.
| 색상 | 의미 |
|---|---|
| 연보라 | 패킹되었거나 압축된 이미지가 포함된 프로세스 |
| 빨강 | 방금 종료된 프로세스 |
| 초록 | 방금 새로 생긴 프로세스 |
| 하늘색 | 현재 사용자 계정으로 실행 중인 프로세스 |
| 분홍 | 서비스로 실행 중인 프로세스 |
| 회색 | 일시 중지된 프로세스 |
악성코드를 실행하면 초록색으로 새 프로세스가 나타난다. 이때 어떤 프로세스가 생기는지, 트리에서 어디에 위치하는지를 확인하면 된다.
하단 패널 (Handle & DLL Mode)
메뉴에서 View → Lower Pane View를 선택하면 화면 하단에 패널이 추가된다. 상단에서 프로세스를 클릭하면, 하단 패널에서 해당 프로세스의 상세 정보를 볼 수 있다.
| 모드 | 보여주는 정보 |
|---|---|
| Handle | 프로세스가 점유 중인 파일 경로, 레지스트리 키, 이벤트 등 |
| DLL | 프로세스가 메모리에 로드한 라이브러리(DLL) 목록 |

수상한 프로세스를 발견했을 때, 하단 패널에서 어떤 파일을 열고 있는지, 어떤 DLL을 쓰고 있는지 확인하면 행동을 더 구체적으로 파악할 수 있다.
VirusTotal 연동
프로세스를 우클릭해서 Check VirusTotal을 선택하면, 해당 프로세스의 파일을 VirusTotal에서 바로 검사할 수 있다. 처음 사용할 때 약관 동의 화면이 나온다.

검사 결과는 VirusTotal 열에 탐지 수 / 전체 엔진 수 형태로 표시된다. 2편에서 다뤘던 VirusTotal 결과를 프로세스 단위로 바로 확인할 수 있어서 편하다.
⚠️ VirusTotal 연동 시 해당 파일의 해시값이 VT 서버로 전송된다. 민감한 환경에서는 이 기능 사용에 주의가 필요하다.
악성코드를 실행한 뒤 아래 세 가지를 중심으로 확인한다.
① 새로 생긴 프로세스
악성코드를 실행하면 프로세스가 하나만 생기는 게 아니라, 여러 개가 연쇄적으로 생기는 경우가 많다. 초록색으로 표시되는 프로세스들을 주의 깊게 보면 된다.
② 부모-자식 관계
트리 구조에서 어떤 프로세스 아래에 새 프로세스가 달리는지 확인한다. 예를 들어 악성코드 실행 파일 아래에 cmd.exe가 생기고, 그 아래에 conhost.exe나 PING.EXE 같은 프로세스가 달린다면, 명령 프롬프트를 통해 추가 동작을 하고 있다는 걸 알 수 있다.

시간이 지나면 악성코드 자신은 종료(빨간색)되고, 대신 rundll32.exe 같은 정상 시스템 프로세스를 이용해 악성 동작을 이어가는 경우도 있다. 트리에서 원래 실행 파일이 사라졌더라도, 새로 생긴 프로세스들의 흐름을 계속 추적하는 것이 중요하다.
③ 수상한 프로세스 판별
모든 프로세스가 악성인 건 아니다. 아래 항목을 참고하면 수상한 프로세스를 골라내는 데 도움이 된다.
| 확인 항목 | 수상한 경우 |
|---|---|
| 프로세스 이름 | 시스템 프로세스와 비슷하지만 미묘하게 다른 이름 (예: svchost.exe가 아닌 svch0st.exe) |
| 실행 경로 | 시스템 프로세스인데 C:\Windows\System32가 아닌 다른 경로에서 실행 |
| 설명(Description) | 설명이 비어 있거나 이상한 내용 |
| 회사 이름(Company Name) | 비어 있거나 알 수 없는 회사 |
| 디지털 서명(Verified Signer) | 정상 프로그램은 보통 서명이 있다. 서명이 없거나, "서명을 찾을 수 없음", "인증서 만료" 등으로 표시되면 주의가 필요하다 |
| VirusTotal 결과 | 탐지 수가 높은 프로세스 |
프로세스를 더블클릭하면 상세 정보 창이 열린다. 여기서 실행 경로, 명령줄, 시작 시간 같은 정보를 확인할 수 있다.
⚠️
svchost.exe처럼 정상 시스템 프로세스와 이름이 비슷한 악성 프로세스가 많다. 이름만 보고 판단하지 말고, 실행 경로와 부모 프로세스를 함께 확인하는 게 좋다.
윈도우가 부팅될 때 자동으로 실행되는 모든 항목을 보여주는 도구다.
💡 지속성(Persistence)이란 악성코드가 PC를 재부팅해도 다시 실행되도록 자기 자신을 등록해두는 것을 말한다. 시작 프로그램에 등록하거나, 레지스트리에 자동 실행 경로를 추가하는 방식이 대표적이다.
악성코드는 한 번 실행되고 끝나면 의미가 없기 때문에, 대부분 어딘가에 자기 자신을 등록해둔다. Autoruns는 이런 자동 실행 항목을 전부 모아서 보여준다.
실행하면 현재 시스템에 등록된 자동 실행 항목들이 탭별로 정리되어 나타난다. 탭이 많지만, 악성코드 분석에서 주로 보는 탭은 아래 세 가지 정도다.
| 탭 | 설명 |
|---|---|
| Everything | 모든 자동 실행 항목을 한꺼번에 보여준다 |
| Logon | 사용자가 로그온할 때 실행되는 항목. 레지스트리 Run 키, 시작 프로그램 폴더 등 |
| Scheduled Tasks | 예약된 작업으로 등록된 항목 |

항목 색상도 참고가 된다.
| 색상 | 의미 |
|---|---|
| 노랑 | 파일이 존재하지 않는 항목. 항목은 등록되어 있지만 실제 파일이 없는 상태 |
| 빨강 | 디지털 서명이 없는 항목. 정상 프로그램은 보통 서명이 있다 |
항목을 클릭하면 화면 하단에 상세 정보가 표시된다. 파일 크기, 생성 시간, 버전, 실제 실행 경로 같은 정보를 여기서 바로 확인할 수 있다. 목록에서 수상한 항목을 발견했을 때 하단 패널을 함께 보면 판단에 도움이 된다.

분석 범위 줄이기
자동 실행 항목은 양이 많기 때문에, 필터를 걸어 범위를 줄이면 분석이 수월하다.
| 옵션 | 효과 |
|---|---|
| Hide Microsoft Entries | 윈도우 기본 파일을 숨겨서 서드파티 항목만 볼 수 있다 |
| Hide Empty Locations | 항목이 없는 빈 위치를 숨긴다 |
| Hide VirusTotal Clean Entries | VirusTotal에서 정상으로 판정된 항목을 숨긴다 |
이 세 가지를 켜면 수상한 항목만 빠르게 추려볼 수 있다. Hide Microsoft Entries가 적용되면 하단 상태바에 Signed Microsoft Entries Hidden이라고 표시되니, 필터가 제대로 켜졌는지 확인할 수 있다.
악성코드 실행 전후 비교 방법
Autoruns의 핵심 활용법은 악성코드 실행 전과 후를 비교하는 것이다.
비교하면 악성코드 실행 후 새로 추가된 항목이 초록색으로 표시된다. 이 항목이 악성코드가 지속성을 확보하기 위해 등록한 것이다.

비교 후 새로 추가된 항목이 있다면 아래를 확인한다.
① 등록된 위치
새 항목이 어디에 등록됐는지 확인한다. 악성코드가 자주 사용하는 위치는 레지스트리 Run 키다.
| 위치 | 설명 |
|---|---|
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run | 모든 사용자가 로그온할 때 자동 실행 |
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run | 현재 사용자가 로그온할 때 자동 실행 |
💡
HKLM은 시스템 전체에 적용되는 설정,HKCU는 현재 사용자에게만 적용되는 설정이다.
이 경로에 새 항목이 추가되어 있다면, 악성코드가 PC를 재부팅해도 다시 실행되도록 등록했다는 뜻이다. 정적 분석에서 \CurrentVersion\Run 경로와 레지스트리 관련 함수가 함께 보였다면, 여기서 실제로 확인할 수 있다.
② 실행 파일 경로
등록된 항목이 어떤 파일을 가리키는지 확인한다. 악성코드가 자기 자신을 복사한 경로일 수도 있고, 새로 생성한 파일일 수도 있다. 이 경로는 IOC로 활용할 수 있다.
③ 디지털 서명 여부
정상적인 프로그램은 보통 디지털 서명이 되어 있다. 새로 추가된 항목에 서명이 없으면(빨간색 표시) 더 주의해서 볼 필요가 있다.
실제 예시
아래 스크린샷은 Compare 후 Logon 탭에서 확인한 결과다. HKCU\...\CurrentVersion\Run 경로 아래에 EvtMgr이라는 항목이 초록색으로 새로 추가되어 있다. 하단 상세 정보를 보면 이 항목은 정상 시스템 파일인 rundll32.exe를 이용해서 c:\sgijh\pomrq.orp라는 수상한 DLL 파일을 로드하도록 등록되어 있다. rundll32.exe 자체는 윈도우에 원래 있는 정상 파일이지만, 그걸 통해 불러오는 파일의 경로가 비정상적이다. 이렇게 등록 위치, 실행 방식, 로드하는 파일 경로를 종합해서 판단하면 된다.

⚠️ 자동 실행 항목이 등록되어 있다고 해서 무조건 악성인 건 아니다. 정상 프로그램도 자동 실행을 등록하는 경우가 많다. 악성코드 실행 전에 없던 항목이 실행 후에 새로 생겼는지를 기준으로 판단하는 게 핵심이다.
동적 분석은 파일을 실제로 실행해서 행동을 관찰하는 단계다. 정적 분석에서 찾은 "이런 걸 하려는 것 같다"는 힌트를, 여기서 "진짜로 하는지" 확인할 수 있다.
Process Explorer에서는 악성코드 실행 후 어떤 프로세스가 생기는지, 프로세스 간 관계가 어떻게 되는지를 확인한다. Autoruns에서는 실행 전후를 비교해서 악성코드가 자동 실행 항목을 등록했는지를 확인한다.
두 도구 모두 핵심은 "실행 전과 후에 뭐가 달라졌는지"를 보는 것이다. 그리고 동적 분석은 실제로 악성코드를 실행하는 만큼, 반드시 VM 안에서 진행해야 한다는 점은 꼭 기억해둬야 한다.