[Security] 악성코드 분석을 위한 정적, 동적 분석 도구 정리

정적·동적 분석 도구를 통한 악성코드 분석 방법을 정리했습니다. PEStudio, Wireshark, Process Monitor 등 실무 도구로 파일 구조, 네트워크 통신, 프로세스 행동을 추적하여 악성 특징을 탐지합니다.

[Security] 악성코드 분석을 위한 정적, 동적 분석 도구 정리
Photo by Brands&People / Unsplash

개요

정적, 동적 분석 도구들을 직접 사용해보며 정리했습니다. 실무에서 사용하는 툴 위주로 정리했으며 회사마다 도구에 대한 차이가 존재합니다.

이 외 악성코드를 더 자세히 분석하는 것은 리버싱의 영역으로 나중에 정리해보겠습니다.

Malware 참고

아래 샘플을 사용했습니다. tag: AgentTelsa

Windows 11 환경에선 바이러스 및 위협 방지 설정을 OFF해야합니다.

Notion Image
Notion Image

정적 분석 도구

정적 분석 과정에서 수행하는 단계는 크게 3가지 입니다.

  • 평문으로 되어있어야 하기에 분석하고자 하는 파일이 암호화, 패킹되었는지 확인합니다.
    • PEID, exeInfo Tool → Unpacking + @
  • 명령어, 문자열 정보를 확인(URL, IP, 실행파일, 사용 이력, 함수)
    • BinText
  • 해당 파일의 자세한 정보는 이후에 분석 -> 실제 파일 확장자, 구조적인 정보 확인
    • PEStudio, PEView

pestudio

PEStudio는 PE (Portable Executable) 파일을 정적 분석하는 도구입니다. 실행하지 않고 파일의 구조, 메타데이터, 의심스러운 특징들을 분석합니다.

Notion Image

파일을 업로드하면 다음과 같이 분석 결과를 확인할 수 있습니다.

Notion Image

PEStudio 분석

PEStudio에서 확인 가능한 핵심 항목은 5가지입니다.

<1. indicators(지표)>

Notion Image
  • 파일 크기: 405,504 bytes (~396KB)
  • 엔트로피: 5.914 ( 높은 수준의 패킹을 의미하지 않음 )
  • 아키텍처: 32-bit, GUI 실행 파일
  • 컴파일러: Visual Studio 6.0 MASM (VB6로 작성)
  • 원본 파일명: galloflavine.exe
  • 인증서: 없음 (서명되지 않음)
  • 컴파일 시간: 2026-01-12 17:19:11

<2. imports>

Notion Image

프로그램이 사용하는 외부 함수를 확인

[위험 표시(flag)된 항목]

  • rtcRandomNext / rtcRandomize - 난수 생성 (암호화, 파일명 변경 등에 사용)
  • rtcSendKeys - 키보드 입력 시뮬레이션 (키로거, 자동화)
  • rtcKillFiles - 파일 삭제 (흔적 제거, 파일 파괴)
  • rtcRgb - 색상 처리 (단독으론 무해)

[기타]

  • rtcMsgBox - 메시지 박스 표시
  • rtcDoEvents - 이벤트 처리
  • rtcMidCharBstr / rtcSplit / rtcReplace - 문자열 처리
  • rtcCommandBstr - 명령줄 인자 가져오기
  • rtcEnvironVar - 환경 변수 읽기
  • VarPtr - 포인터 연산

<3. Strings(문자열)>

URL, IP 주소(c2), 파일 경로, 이메일, 비밀번호, 키워드 확인 가능

Notion Image

[키로거]

  • GetAsyncKeyState - 키보드 입력 감시
  • TrackMouseEvent - 마우스 추적

[프로세스 인젝션]

  • VirtualAlloc / VirtualAllocEx - 메모리 할당
  • WriteProcessMemory - 다른 프로세스 메모리에 쓰기
  • CreateProcess - 프로세스 생성
  • GetThreadContext / SetThreadContext - 스레드 조작

[네트워크 통신]

  • InternetOpen - 인터넷 연결 초기화
  • InternetOpenUrl - URL 열기
  • InternetReadFile - 데이터 다운로드

[암호화]

  • CryptStringToBinary - 암호화/복호화

[화면 캡처]

  • capCreateCaptureWindow - 웹캠/화면 캡처

[데이터베이스]

  • SELECT Last(tblStudents.IDNumber)... - SQL 쿼리

bintext를 참고하면 더 자세한 내용을 파악할 수 있습니다.

Notion Image

<4. Sections>

패킹 여부, 권한, 코드 등 실행 파일 구조를 확인해서 코드와 데이터가 어디 존재하는지 파악합니다.

Notion Image
  • 실제 파일 사이즈 유사 → 패킹 여부 파악
  • Write + Execute 권한 확인

악성 페이로드가 리소스에 숨겨져있을 수 있습니다.

Notion Image
  • 아이콘 이미지, 아이콘 그룹 정보
  • 버전 정보

동적분석 도구

동적분석이 악성 코드 분석의 목적으로 정적 분석보다 조금 더 많은 시간이 소요됩니다.

악성 코드가 실제 수행한게 맞는지 검증하는 과정입니다. 동적 분석을 확실하게 수행해야 추가 감염, 실제 수행하는 것들을 방어할 수 있습니다.

분석을 통해 탐지 패턴 등을 만드는게 목적입니다.

동적 분석에서 확인하는 항목은 크게 3가지입니다.

  • 프로세스 (Process Monitor, Process Explorer)
    • 필터링 기준을 명확히 설정해야 악성코드가 자세하게 설명 가능
    • 잠깐 실행됐다가 종료되는 경우, 조건에 일치해야 실행되는 경우 등 악성코드에 의해 수행되는지 찾기 쉽지않습니다.
    • 악성파일에 의해 변경되는 부분을 확인
    • 악성프로세스가 자식 프로세스, 특정 프로세스를 생성하는 것을 확인
  • 네트워크 (WireShark, SmartSniff)
    • TCP/UDP 핸드쉐이킹 등 악성코드와 통신이 수행되는 시점, 플래그 비트, 어떠한 과정이 일어나는지 캐치해야합니다.
  • 파일과 레지스트리 (AutoRuns, RegShot)
    • 레지스트리 영역에서 변화가 있는 부분을 캐치하는 목적
    • PC를 시작프로그램에 등록하여 악성파일이 수행되게 만듦.

WireShark

송수신되는 모든 네트워크 트래픽을 실시간으로 캡처하고 분석하는 툴로 유명합니다.

Notion Image

필터 기반 수행되는 내용들 또한 확인 가능합니다.

Notion Image

ProcessMonitor

실시간 파일/레지스트리 접근을 확인할 수 있는 도구입니다.

Notion Image
  • Registry, File System, Network, Process, Profiling(5가지 항목)을 확인 가능합니다.
Notion Image
  • Filter를 통해 특정 프로세스만 볼 수 있습니다
    • 실제 실행되는 파일명을 추적합니다. 8a34536561cfbe3a86c88ef...exe

악성코드 동적 분석시 아래 내용 확인(Logging)

  • 어떤 파일을 읽고/쓰는지
  • 어떤 레지스트리를 접근하는지
  • 어떤 네트워크 연결하는지
  • 모든 활동이 로그로 쌓임

Process Explorer

실행 중인 프로세스 구조를 확인할 수 있습니다.

  • 프로세스 트리 확인 가능
Notion Image
  • 현재 실행 중인 모든 프로세스를 트리 형태로 표시
  • 악성코드 실행하면 목록에 새 프로세스 나타남
  • 부모-자식 관계로 확인 가능(어떤 프로세스가 어떤 걸 실행했는지)

악성코드 동적 분석시 아래 내용 확인(Monitoring)

  • 새 프로세스 생성 여부
  • 자식 프로세스 생성 여부 (다른 프로그램 실행)
  • CPU/메모리 사용량
  • DLL(Dynamic Link Library), 스레드, 연결 정보
    • 경로, company name, load된 dll 확인 가능

AutoRuns

Windows에서 자동으로 시작되는 모든 프로그램 확인

  • 레지스트리 관련 정보
  • 시작 폴더 혹은 서비스
  • 브라우저, DLL 인젝션 위치 확인 가능
Notion Image
Notion Image
  • Logon, Scheduled Tasks, Services, Drivers
    • 악성 코드로 가장 많이 등록되는 위치

악성코드 동적 분석시 아래 내용 확인

  • 알 수 없는 항목
  • 빈 Publisher (게시자)
  • 이상한 경로의 실행 파일
  • 노란색/빨간색 표시 항목