악성 코드 분석 - IOC(침해 지표) 정리
SK Shieldus AI 사이버보안 부트캠프 | AI_31기
악성코드 분석 학습정리 — Part 5 & 6
IOC(침해 지표) 정리 + 실습 샘플 종합 요약
분석 결과를 IOC로 정리하는 방법과 전체 실습 샘플 6개의 종합 요약입니다.
🚨
IOC(침해 지표, Indicators of Compromise)란?
IOC는 시스템이 침해되었다는 증거 값입니다. 악성코드 분석 결과를 IOC로 정리하면, 다른 시스템에서의 탐지와 대응에 재활용할 수 있습니다. SIEM, IDS/IPS, 안티바이러스 등 보안 솔루션에 적용하여 자동 탐지 규칙을 만들 수 있습니다.
IOC = 범죄자의 DNA 데이터베이스라고 생각하면 됩니다.
한 번 범인의 DNA(악성코드 특징)를 확보하면, 다른 현장에서도 그 DNA가 발견되면 즉시 범인으로 특정할 수 있습니다. 악성코드의 해시, 뮤텍스 이름, C2 도메인이 바로 이 "DNA"입니다.
🗂️
IOC 유형 분류
파일 기반 IOC
해시(MD5/SHA1/SHA256)
파일 경로 및 파일명
파일 크기
MD5: D537ACB8...
C:\Windows\system32\wupdmgrd.exe
C:\Windows\system32\wupdmgrd.exe
레지스트리 기반 IOC
신규 생성된 레지스트리 키
수정된 레지스트리 값
Run 키 (자동 시작)
HKLM\...\Services\IPRIP\
Parameters\ServiceDll
Parameters\ServiceDll
프로세스 기반 IOC
뮤텍스(Mutex) 이름
서비스 이름
프로세스 이름
뮤텍스: WinVMX32
서비스: IPRIP, Malservice
서비스: IPRIP, Malservice
네트워크 기반 IOC
C2 도메인
IP 주소
URL 패턴
practicalmalwareanalysis[.]com
HTTP CONNECT 터널링
HTTP CONNECT 터널링
행위 기반 IOC
특정 API 호출 순서
레지스트리 수정 패턴
파일 드롭 패턴
FindResourceA → WriteFile
→ WinExec 조합
→ WinExec 조합
IOC 표기 시 주의: 도메인이나 URL을 IOC로 공유할 때는 실수로 클릭하거나 접속하는 것을 방지하기 위해
practicalmalwareanalysis[.]com 처럼 점(.)을 대괄호로 감싸는 관례를 사용합니다.
🗺️
전체 분석 플로우 (정적 + 동적 + IOC)
악성코드 분석 전체 워크플로
STEP 1
해시 계산
VirusTotal
→
VirusTotal
STEP 2
패킹 탐지
언패킹
→
언패킹
STEP 3
정적 분석
IAT·문자열
→
IAT·문자열
STEP 4
동적 분석
격리 VM
→
격리 VM
STEP 5
IOC 정리
탐지 규칙
탐지 규칙
📊
실습 샘플 종합 요약 (6개 샘플)
실습에서 분석한 6개 샘플의 유형, 핵심 기법, IOC를 한 눈에 정리합니다.
| 샘플 | 유형 | 핵심 기법 | 주요 IOC | 위험도 |
|---|---|---|---|---|
| Lab01-01.exe | Trojan | 파일 열거·복사, WinSock2 접근 | FindFirstFileA, FindNextFileA CopyFileA | 중 |
| Lab01-01.dll | Backdoor | WS2_32 Ordinal 임포트 (함수명 은닉), C2 통신, 뮤텍스 | WS2_32 Ordinal 방식 임포트 | 중 |
| Lab01-02.exe | Trojan Downloader | UPX 패킹, 서비스 등록(Malservice), C2 HTTP 통신 | 뮤텍스: HGL345 서비스: Malservice | 높음 |
| Lab01-04.exe | Trojan Dropper | 리소스 내장 PE 드롭, 권한 상승, 추가 페이로드 다운로드 | C:\Windows\system32\wupdmgrd.exe BIN/101/1033 리소스에 MZ | 매우 높음 |
| Lab03-01.exe | Backdoor | IAT 최소화(ExitProcess만), HTTP CONNECT 터널링, Active Setup 지속성 | 뮤텍스: WinVMX32 vmx32to64.exe | 높음 |
| Lab03-02.dll | Service DLL Backdoor | svchost.exe 은닉, IPRIP 서비스 위장, ServiceDll 등록 | 서비스: IPRIP practicalmalwareanalysis[.]com | 높음 |
✅
악성코드 분석 체크리스트
정적 분석 체크리스트
MD5/SHA1 해시 계산 후 VirusTotal 검색 완료
섹션 이름 확인 — UPX0/UPX1이면 언패킹 수행
엔트로피 확인 — .text 섹션 7.0 이상이면 패킹 의심
IAT 분석 — 위험 함수 목록 작성
내장 문자열 분석 — URL, 도메인, 뮤텍스명 추출
.rsrc 섹션 확인 — BIN 리소스에 MZ 시그니처 있는지 확인
동적 분석 체크리스트
VM 스냅샷 찍기 완료
Regshot 1st shot 완료
Wireshark 캡처 시작 완료
Procmon 필터 설정 완료 (Include/Exclude)
악성코드 실행 (DLL은 rundll32.exe 사용)
충분한 대기 시간 확보 (최소 30초 ~ 1분)
Regshot 2nd shot → Compare 완료
각 도구 결과 저장 완료 (Procmon XML, Wireshark pcapng)
VM 스냅샷으로 복구 완료
악성코드 분석 핵심 5원칙
1
정적 분석으로 행위를 예측하고, 동적 분석으로 실제 행위를 확인한다. 두 방법은 항상 함께 사용한다.
2
IAT는 정적 분석의 핵심이다. 실행 없이 악성코드 기능을 파악하는 가장 강력한 단서다.
3
패킹 탐지 → 언패킹 → 재분석 순서를 반드시 지킨다. 패킹된 채로 분석하면 의미있는 결과를 얻을 수 없다.
4
동적 분석은 반드시 격리된 가상머신에서 수행한다. 절대 호스트 PC에서 실행하지 않는다.
5
분석 결과는 IOC로 정리하여 탐지 및 대응에 재활용한다. 분석으로 끝나지 않고 방어에 연결해야 한다.
📌 Part 5 & 6 핵심 요약
- IOC = 침해 증거 값 (해시, 레지스트리 키, 뮤텍스, 도메인 등)
- IOC 5가지 유형: 파일, 레지스트리, 프로세스, 네트워크, 행위 기반
- 도메인 공유 시 점(.)을 대괄호로 감싸는 관례 사용 (defang)
- 전체 분석 플로우: 해시 → 패킹탐지 → 정적 → 동적 → IOC 정리
- 체크리스트 기반으로 빠짐없이 분석하는 습관 중요
악성코드 분석 학습정리 완료
Part 1 개요 → Part 2 PE구조 → Part 3 정적분석 → Part 4 동적분석 → Part 5&6 IOC+종합요약
다음 학습: Phase 3 — 생성형 AI를 활용한 악성코드 분석 및 대응
'보안 공부' 카테고리의 다른 글
| 네트워크 보안 - OSI 모델 · TCP/IP · 프로토콜 완전 정리 (0) | 2026.05.29 |
|---|---|
| 네트워크 보안 - 네트워크 기초 완전 정리 (0) | 2026.05.29 |
| 악성 코드 분석 - 기초 동적 분석 (0) | 2026.05.28 |
| 악성 코드 분석 - 기초 정적 분석 (0) | 2026.05.28 |
| 악성 코드 분석 - PE 파일 구조 (0) | 2026.05.28 |