[Malware] 악성코드 기본 동적 분석: Sandbox에서 프로세스·파일·Registry·네트워크 확인하기
격리된 환경에서 프로세스, 파일, Registry, 네트워크 변화를 관찰하는 기본 동적 분석과 Sandbox 보고서 확인 방법을 정리합니다.
기본 동적 분석
- Sandbox나 격리된 Virtual Machine에서 샘플을 실행하고 행위를 관찰
- 정적 분석에서 세운 가설을 실제 실행 증거로 검증
- 외부 Sandbox의 기존 분석 보고서도 관찰 자료로 활용
동적 분석이란
동적 분석은 통제된 환경에서 프로그램을 실행하고 실행 중 발생하는 행위를 관찰하는 방법입니다. 프로그램이 무엇을 했는지 설명합니다.
- Process, File System, Registry, Network의 변화 확인
- 패킹이나 난독화 때문에 정적 분석이 어려울 때 활용
- 실행 중 복원되는 코드와 데이터를 메모리에서 확인할 수 있음
- 실행되지 않은 코드나 관찰 도구가 수집하지 않은 동작까지 모두 보이는 것은 아님
Run → Observe → Collect Evidence → Explain Behaviour
동적 분석에서 확인할 내용
- Process
- 새로운 프로세스 생성과 Parent-Child 관계
- DLL Loading과 다른 프로세스에 코드를 삽입하는 행위
- DLL 로드 자체는 정상 동작에도 나타나므로 경로와 실행 맥락을 함께 확인
- File System
- 파일 생성·수정·삭제
- Payload Drop과 Configuration File
- Registry
- Persistence, Configuration, System Modification
- 단순 조회와 값 생성·변경을 구분
- Network
- DNS 질의, IP와 Domain, HTTP/HTTPS 통신
- C2 Communication으로 의심할 근거 확인
동적 분석을 안전하게 실행하기 위한 단계
- Malware Sample: 분석할 파일 식별
- Isolated VM: 실행 환경 격리
- Monitoring Tools: 행위 수집 도구 준비
- Controlled / Simulated Network: 통제하거나 모의한 네트워크 구성
동적 분석의 Blind Spot
실행했는데 아무 일도 일어나지 않았다면 실행 조건과 관찰 범위를 확인해야 합니다.
- 특정 Command-line Argument 필요
- C2 응답 대기
- 특정 시간이 지난 뒤 실행
- 특정 Registry, File, System 환경 필요
- VM이나 Sandbox 탐지
- 특정 사용자 행위 필요
- DLL의 특정 Export Function 호출 필요
아무 행동이 없다는 이유만으로 악성코드가 아니라고 판단할 수는 없습니다.
대표적인 분석 환경
- ANY.RUN
- Joe Sandbox
- VirusTotal Behaviour
- Hybrid Analysis
- CAPE Sandbox
Public Sandbox에 파일을 올리기 전에는 해시로 기존 분석 결과부터 찾습니다. 악성 여부가 확인되지 않은 파일에는 회사 자산이나 내부 정보가 포함돼 있을 수 있습니다.
Joe Sandbox 보고서 확인
- Process Tree
- Arguments와 연결된 다른 실행 파일 확인
- 어떤 프로세스가 후속 프로세스를 실행했는지 추적
- Created / Dropped Files
- 생성된 파일과 후속 실행을 연결해 Dropper 여부 조사
- 엔트로피 수치는 패킹·난독화 가능성을 살펴볼 단서
- Hash, Reputation, Malicious 판정을 함께 확인
- Network Behaviour
- TCP/UDP 통신과 DNS 질의 확인
- SMTP 등 프로토콜별 요청 확인
수업에서는 최근 악성코드에서 Dropper 구조를 자주 볼 수 있다는 설명이 있었습니다. 개별 샘플의 Dropper 여부는 파일을 생성하고 후속 실행에 사용한 증거로 판단합니다.
ANY.RUN 보고서 확인
- Process Tree
- File / Registry Changes
- Network Connections
- 프로세스와 네트워크 통신의 관계 확인
Sandbox 보고서에도 실행되지 않은 기능은 나타나지 않을 수 있습니다. C2 응답, 분석 시간, VM 탐지, 사용자 동작 등의 조건을 함께 고려합니다.
Process Monitor — Procmon
- 개별 프로세스의 이름보다 프로세스 생성 관계와 행위의 연결을 확인
- 파일·Registry 접근과 프로세스·스레드 활동을 시간 순서로 조사
- 명령줄과 Process Tree를 함께 살펴 실행 흐름 추적
Microsoft Process Monitor 문서에서 수집 항목과 필터 기능을 확인할 수 있습니다.
프로세스를 봐야 하는 이유
- 실행 파일 이름을 넘어 Behaviour 확인
- Parent-Child 관계로 공격 흐름 파악
- 비정상적인 실행 패턴 발견
- 파일명이 바뀌어도 유사하게 나타나는 행위 추적
Process Explorer
- 실행 중인 Process와 Parent-Child 관계
- Loaded DLL
- Command Line
- Process Path
- Digital Signature
Process Explorer는 실행 중인 프로세스와 해당 프로세스가 로드한 DLL 등을 확인할 때 사용합니다.
정상처럼 보이는 Process
svchost.exe라는 이름만으로 정상 프로세스라고 판단할 수는 없습니다.
- Path와 Publisher
- Digital Signature
- Parent Process
- Command Line
- Loaded DLL
- Behaviour
디지털 서명도 안전을 보장하지 않습니다. 정상적으로 서명된 도구가 악용될 수 있으므로 누가 어떤 인자로 실행했는지 함께 살펴봅니다.
Joe Sandbox 실습
- 관심 있는 샘플의 보고서 분석
- File & Registry Detective: 파일과 Registry 행위 조사
- Identity & Execution Detective: 파일 식별 정보와 실행 흐름 조사
파일·Registry 조사 결과는 분석노트에 별도로 정리했습니다.
Network Behaviour & Investigation
- 의심스러운 DNS 질의
- C2 서버와의 통신 여부
- 비정상적인 외부 연결
- 데이터 유출을 의심할 패턴
- TLS/HTTPS 등 암호화된 트래픽 사용 여부
Wireshark를 이용해 네트워크 패킷을 살펴보고 프로세스의 실행 기록과 연결합니다.
IoC → Behaviour
- IP, Domain, Hash, 파일 경로 같은 개별 지표에서 행위의 연결로 분석 확장
- 프로세스 생성, 파일 변경, Registry 접근, 네트워크 통신을 연결해 실행 흐름 설명