📌 개요
악성코드 분석(Malware Analysis)은 악성 프로그램의 동작 원리, 목적, 침해 범위 등을 파악하여 보안 대응책을 마련하기 위한 리버싱 분야입니다.
🔍 악성코드 분석의 목적
- 악성 행위 파악 (파일 삭제, 네트워크 전파, 정보 유출 등)
- 감염 경로 확인
- Command & Control (C2) 통신 파악
- 악성코드의 지속성, 자가복제 여부 확인
🧪 악성코드 분석의 종류
| 분석 방식 | 설명 |
|---|
| 정적 분석 | 실행하지 않고 코드, 문자열, PE 구조 분석 (→ Ghidra, PEview 등 사용) |
| 동적 분석 | 실행하면서 행동을 모니터링 (→ Sandbox, x64dbg, Procmon 등 사용) |
| 행위 분석 | 파일, 레지스트리, 네트워크 변화를 종합적으로 관찰 |
| 메모리 분석 | 메모리 덤프를 통해 난독화 해제 또는 unpacking (→ Volatility 등 사용) |
🧰 분석 도구
| 범주 | 도구 | 기능 |
|---|
| 정적 분석 | PE-Bear, IDA, Ghidra | 구조/기계어 분석 |
| 동적 분석 | x64dbg, OllyDbg | 런타임 디버깅 |
| 행위 분석 | Process Monitor, Regshot | 파일/레지스트리 감시 |
| 메모리 분석 | Volatility, Rekall | 메모리 상태 분석 |
| 자동 분석 | Any.run, Cuckoo Sandbox | 자동화된 샌드박스 환경 제공 |
🧬 분석 예시: HelloBot.exe
🔍 정적 분석 예시
.text 섹션에서 WinExec, GetProcAddress, LoadLibrary 문자열 확인
- 특정 IP 주소(
192.168.0.100)가 하드코딩되어 있음
- Suspicious API:
CreateRemoteThread, WriteProcessMemory
⚙ 동적 분석 예시
- 실행 시 레지스트리에
HKCU\Software\Microsoft\Windows\CurrentVersion\Run 등록됨
C:\Windows\Temp\payload.dll 생성 및 로드 확인됨
svchost.exe에 코드 삽입
🧱 분석 순서 예시 (실전 흐름)
- PE 구조 확인 및 문자열 추출 (→
PE-Bear, strings)
- 실행 섹션
.text 분석 (→ Ghidra)
- 의심 API 호출 탐색
- 동적 분석 준비: Process Monitor, Regshot 실행
- 샌드박스 또는 가상머신에서 실행
- 레지스트리/파일/네트워크 변화 기록
- 메모리 덤프 및 분석 (필요 시 unpacking)
🧼 안전한 분석 환경 구성
- VirtualBox / VMware + 스냅샷
- Host-only 네트워크 또는 완전 차단
- 사용 도구: Cuckoo Sandbox, INetSim, FakeDNS 등