악성 코드 분석 - 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

레지스트리 기반 IOC

신규 생성된 레지스트리 키
수정된 레지스트리 값
Run 키 (자동 시작)
HKLM\...\Services\IPRIP\
Parameters\ServiceDll

프로세스 기반 IOC

뮤텍스(Mutex) 이름
서비스 이름
프로세스 이름
뮤텍스: WinVMX32
서비스: IPRIP, Malservice

네트워크 기반 IOC

C2 도메인
IP 주소
URL 패턴
practicalmalwareanalysis[.]com
HTTP CONNECT 터널링

행위 기반 IOC

특정 API 호출 순서
레지스트리 수정 패턴
파일 드롭 패턴
FindResourceA → WriteFile
→ WinExec 조합

IOC 표기 시 주의: 도메인이나 URL을 IOC로 공유할 때는 실수로 클릭하거나 접속하는 것을 방지하기 위해
practicalmalwareanalysis[.]com 처럼 점(.)을 대괄호로 감싸는 관례를 사용합니다.

🗺️ 전체 분석 플로우 (정적 + 동적 + IOC)
악성코드 분석 전체 워크플로
STEP 1 해시 계산
VirusTotal
STEP 2 패킹 탐지
언패킹
STEP 3 정적 분석
IAT·문자열
STEP 4 동적 분석
격리 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를 활용한 악성코드 분석 및 대응