리버싱 - 악성코드 분석 기초

m0ng·2025년 6월 17일

📌 개요

악성코드 분석(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에 코드 삽입

🧱 분석 순서 예시 (실전 흐름)

  1. PE 구조 확인 및 문자열 추출 (→ PE-Bear, strings)
  2. 실행 섹션 .text 분석 (→ Ghidra)
  3. 의심 API 호출 탐색
  4. 동적 분석 준비: Process Monitor, Regshot 실행
  5. 샌드박스 또는 가상머신에서 실행
  6. 레지스트리/파일/네트워크 변화 기록
  7. 메모리 덤프 및 분석 (필요 시 unpacking)

🧼 안전한 분석 환경 구성

  • VirtualBox / VMware + 스냅샷
  • Host-only 네트워크 또는 완전 차단
  • 사용 도구: Cuckoo Sandbox, INetSim, FakeDNS 등

0개의 댓글