Communitygithub.com

malware-analysis

정적, 동적, 행위 분석을 통해 악성코드를 분석할 때 사용합니다. IOC 추출, YARA/Sigma 규칙, 샌드박싱, 안티-분석 행위 탐지를 포함합니다.

malware-analysis란 무엇인가요?

이 스킬은 악성코드 샘플을 분석하는 전 과정을 안내합니다. PE, ELF, Mach-O, APK, 스크립트 등 다양한 형식을 지원하며, 6단계 워크플로우(초기 분류 → 정적 분석 → 동적 분석 → YARRA/Sigma 규칙 작성 → IOC 추출)를 따릅니다. 특히 IAT(Import Address Table) 복구 실패 시 동적 분석으로 전환해야 하는 '철칙'을 명시하고, 샌드박스 환경에서 무반응 샘플에 대한 안티-분석 우회 전략을 제시합니다. 사용자는 이 스킬을 통해 실제 악성코드 분석을 자동화하고, 증거를 체계적으로 기록할 수 있습니다. Claude Code, Cursor, Codex 등에서 실행 가능하며, `tool-index`를 참조하여 실제 도구 경로를 사용해야 합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zhaoxuya520/reverse-skill/tree/main/skills/malware-analysis

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

악성코드 분석 (Malware Analysis)

필수 조치 (읽은 후 즉시 실행)

  1. 지금: ../field-journal/precedent-reverse.md 읽기 — 이 스킬의 작업이 승인된 일반 작업인지 확인
  2. 지금: 현재 작업이 이 스킬의 적용 범위에 해당하는지 확인
  3. 다음: ../tool-index.md 읽기, 도구 가용성과 실제 경로 확인
  4. 다음: 도구가 없으면 bootstrap을 호출하고, 경로를 추측하지 마십시오
  5. 실행: "워크플로우" 첫 번째 단계로 진입하여 실행, 확인 상태에 머물지 마십시오

YARA / Sigma / 샌드박스 / IOC 추출 / 안티-분석 대응 정적 + 동적 + 행위 삼위일체

적용 시나리오

  • 악성코드 샘플 분석 (PE/ELF/Mach-O/APK/스크립트)
  • YARA 규칙 작성 및 검증
  • Sigma 행위 탐지 규칙 생성
  • 샌드박스 자동화 분석 오케스트레이션
  • IOC 추출 및 위협 인텔리전스
  • 안티-분석 기술 탐지 및 우회

6단계 분석 워크플로우

1단계: 초기 분류 (Preliminary Triage)

# 빠른 정적 탐지
file sample.exe                      # 파일 유형
strings sample.exe | grep -i "http\|cmd\|powershell\|base64"  # 빠른 IOC
rabin2 -zz sample.exe                # 문자열 추출 + 교차 참조
floss sample.exe                     # 난독화 해제 문자열 추출 (FireEye)

# PE 헤더 분석
pecheck sample.exe                   # PE 구조 검증
pescan sample.exe                    # 비정상 탐지 (섹션 테이블, 진입점)
diec sample.exe                      # Detect It Easy (패커/컴파일러 식별)

# 해시 조회
sha256sum sample.exe
# → VirusTotal / MalwareBazaar / Triage 조회
Triage MUST 체크리스트 (Issue #65):
□ 파일 유형: EXE / DLL / SYS / .NET / 스크립트(bat|ps1|vba) / 기타
□ 아키텍처 x86/x64/ARM; 패커 확인 (DIE 등) 및 컴파일 언어 단서
□ DLL/SYS: 임포트 테이블과 익스포트 테이블 병렬 확인 (2단계 철칙 참조)
□ .NET: 전통적인 IAT 없음 → dnSpy/IL/메타데이터 동등 앵커 사용 (2단계 참조)
□ 스크립트/매크로/DLL 특별 P0: nonpe-format-cookbook U–AV 참조 (E-batch-deobf / E-ps-decode / E-vba-pcode / E-dll-*)

1b단계: 패커 해제 및 IAT 처리 (패커 있을 때 · Issue #65)

□ 패커 없음 / .NET → 2단계로 이동
□ 패커 있음: 패커 해제 시도 (승인된 격리 환경) → IAT 복구 시도
  - x86: ImportREC (또는 동등 도구); x64: Scylla (또는 동등 도구). 64비트에서 ImportREC 고집 금지
□ 【IAT 복구 철칙】 자동/반자동 복구 우선; 도구 오류 또는 복구 후 실행 불가:
  - 즉시 정적 IAT 복구 중단
  - MUST: E-iat-repair-fail 기록 (명령어, 도구, 현상)
  - 3단계 동적으로 전환: API 중단점 (예: bp CreateFile) / 하드웨어 중단점 / 메모리 검색으로 임포트 포착
  - 이는 임포트 테이블을 건너뛰는 것이 아님: 경로를 시도했고 증거를 기록함
□ 【패치 6】 패커 해제+IAT 복구 후 크래시/블루스크린 (CRC/크기 자체 검증 의심):
  - 정적 파일 수정 포기; E-self-check-crash 기록 또는 E-iat-repair-fail에 포함
  - 3단계 전환: CreateFile / GetFileSize / 해시 관련 API에 중단점 설정
□ 사용자 명령 실행 가능성 (§0.5): 패커 있을 때 사용자가 "패커 해제하지 말고 임포트 테이블 먼저 보기" 요청 → 차단 설명 + 확인 요청; 강제 시 quality=unreadable/packed 기록, 유의미한 IAT 분석 완료로 가장 금지
□ 사용자가 "IAT 복구 / 임포트 테이블 검사" 재실행 요청: MUST 지목된 단계 재실행 (또는 확인된 사전 협의 결과), 관련 없는 단계로 대체하여 완료 가장 금지

2단계: 정적 분석 (Static Analysis)

디스어셈블리/디컴파일:
□ IDA Pro / Ghidra: 심층 디컴파일
□ radare2: CLI 빠른 분석
□ x64dbg: Windows GUI 디버거

중점 분석 영역:
□ 진입점 (Entry Point) → 초기화 로직
□ 임포트 테이블 → API 용도 추론 (CreateRemoteThread=인젝션, CryptEncrypt=랜섬)
   **MUST (철칙)**: rabin2 -i / IDA imports / pecheck 동등 명령어 실행, 임포트 테이블을 분류하여 증거(E-imports)에 요약한 후에야 3단계 진입 가능 (E-iat-repair-fail 기록 후 동적 우회 경로를 택한 경우 제외, 1b단계 참조)
   분류는 최소한 다음을 포함: 네트워크 / 파일 / 암호화 / 프로세스 인젝션 / 레지스트리 / 기타 의심 API
   파싱 실패 또는 테이블이 비어 있음: 실패 출력을 반드시 기록, 묵시적 건너뛰기 금지
   **DLL/SYS**: 익스포트 테이블 증거(E-exports, `rabin2 -E` 또는 동등)도 병렬로 반드시 기록
   **.NET**: 전통적인 IAT 없음 → dnSpy/IL/메타데이터/어셈블리 참조 및 민감 API 요약을 동등 앵커로 사용, E-imports / E-triage-imports 의미론적 슬롯에 기록
   **깨끗한 임포트 테이블**: 기본 DLL만, 거의 비즈니스 API 없음 → 동적 로딩 의심(LoadLibrary/GetProcAddress) 반드시 명시, 3단계로 전환하여 메모리 API 포착 SHOULD; 해시 파싱 특징 보이면 → E-api-hash (패치 N)
   **와이드 문자열 (T)**: ASCII 문자열에서 IOC 없음 → UTF-16도 반드시 시도 (strings -el / IDA unicode)
   **서명 (F)**: 서명 있어도 SigCheck 반드시 실행; 위조/폐기된 서명은 위협 등급 낮추지 않음
   사용자가 "임포트 테이블 검사 재실행" 요청: 본 항목을 반드시 재실행 (차단 시 먼저 실행 가능성 문의 협의), 다른 단계로 대체하여 완료 가장 금지
   **고위험 API 조합 (패치 8)**: 테이블이 너무 길 때 악성 조합 클러스터 우선 출력 (예: FindWindow+WriteProcessMemory+CreateRemoteThread), 순수 시스템 기본 호출 노이즈 필터링
□ 리소스 섹션 → 임베디드 페이로드 (.rsrc 섹션)
□ 문자열 테이블 → URL/C2/파일 경로/Base64 blob
□ TLS 콜백 → 디버거 시작 전 실행

3단계: 샌드박스 동적 분석 (Sandbox Dynamic Analysis)

자동화 샌드박스:
□ Joe Sandbox / ANY.RUN / Triage: 상용 샌드박스
□ CAPE Sandbox: 오픈소스 + YARA 통합 (권장)
□ ASD Azul: 오픈소스 악성코드 분석 플랫폼 (2026년 새 출시)
□ Cuckoo Sandbox: 클래식 오픈소스 (점차 CAPE로 대체 중)

디버깅 시작 절차 (패치 7+10 · MUST 순서, 사용자 모드 디버거):
□ ① TLS 콜백 중단점 → ② 진입점 EP 중단점 → ③ 민감 API 중단점 → ④ ExitProcess/종료 경로 안전망 중단점
□ ExitProcess 트리거 시: 서둘러 재시작하지 말 것; 즉시 메모리 덤프, 경로를 증거에 기록 (패치 10)

모니터링 중점:
□ 프로세스 생성: CreateProcess / ShellExecute
□ 파일 작업: WriteFile → 랜섬? DeleteFile → Wiper?
□ 레지스트리: Run/RunOnce 지속성
□ 네트워크: HTTP/DNS → C2 통신
□ 메모리: VirtualAllocEx → 프로세스 인젝션
□ 서비스: CreateService → 지속성
□ IAT 복구 실패 / 자체 검증 크래시 샘플: 민감 API + CreateFile/GetFileSize 중단점 / 하드웨어 실행 중단점 / 메모리 검색

동작 없음 비상 분기 (MUST):
□ 샌드박스에서 동작 없음, 즉시 종료 또는 무한 대기 → 안티-디버깅/안티-가상머신 확인 (CPUID, 타이머, 환경 특징)
□ 하드웨어 중단점 우회, 탐지 지점 패치, 또는 물리 머신/더 높은 충실도 환경으로 전환 시도
□ "동작 없음 + 조건"을 증거에 기록; 조건 없이 "샘플 무해"로 작성 금지

시간 상자 (패치 9 · SHOULD 기본, 재정의 가능):
□ 정적 심층 분석 약 15분 내 중요 경로 없음 → 강제로 본 단계 동적으로 전환
□ 동적 단일 스텝 약 200개 명령어 내 악성 단서 없음 → 강제로 정적 문자열/교차 참조 재앵커로 복귀

안티-디버깅/난독화 우회 (Issue #65 A–T · reverse-engineering/anti-analysis.md 레시피 상세):
□ P0: CPUID / RDTSC / PEB / NtQueryInformationProcess → 탐지 지점 기록 후 실험실 우회 또는 환경 변경 (E-anti-debug-*)
□ P0: 깨끗한 IAT → API 해시 동적 해석 (bp GetProcAddress, E-api-hash)
□ P0: strings 비어 있음 → 문자열 복호화 루틴 + 와이드 문자열 UTF-16 (E-string-decrypt / E-wide-strings)
□ P0: 의심스러운 서명 → SigCheck; 유효하지 않거나 폐기된 서명은 위협 등급 낮추지 않음 (E-sig-forge)
□ P1: 프로세스 이름 스캔 / VEH / int3·DR / 중첩 섹션 / Overlay / .rsrc / Delay-Load
□ H/S 평탄화 및 불투명 술어 → ollvm-deobfuscation.md (여기에 긴 텍스트 복사하지 않음)
□ 우회 실패도 증거 기록; 안티-디버깅 종료 = 샘플 무해로 간주 금지

비 PE / 스크립트 / DLL 구멍 메우기 (Issue #65 U–AV · reverse-engineering/references/nonpe-format-cookbook.md 상세):
□ bat/cmd: SET 연결 복원 (U) → E-batch-deobf; UTF-16 BOM (V); REM/GOTO 범람 (W)
□ PowerShell: 다중 계층 Base64/Gzip (X) 증거 단계별 기록; IEX 연결/뒤집기 (Z)
□ VBA: 스톰핑/P-Code (AA); Chr/Base64 (AB); 자체 수정 매크로 (AC)
□ DLL: TLS+DllMain (AJ); 익스포트 비정상/익스포트 없음 (AK/AL); Delay-Load A–T R 참조 (AM); 사이드로딩/반사 (AO/AP)
□ JS/APK/드라이버: js-reverse / apk-reverse / kernel-driver-reverse + cookbook 라우팅, 여기에 긴 텍스트 복사하지 않음

4단계: YARA 규칙 작성 (YARA Rule Writing)

// 규칙 구조
rule MalwareFamily_Example {
    meta:
        description = "Example 악성코드 패밀리 탐지"
        author = "분석자"
        date = "2026-05"
        severity = "high"
        hash = "d41d8cd98f00b204e9800998ecf8427e"
        mitre_id = "T1055"  // Process Injection

    strings:
        // 문자열 매칭
        $str1 = "C2_SERVER_URL" ascii wide
        $str2 = "payload.dat" ascii

        // 16진수 매칭
        $hex1 = { 8B 45 ?? 50 FF 15 [4] 85 C0 }
        // opcode 시퀀스: mov eax, [ebp-?]; push eax; call [import]; test eax, eax

        // 정규식 매칭
        $re1 = /https?:\/\/[a-z0-9.-]+\/[a-z]{3,8}\.php/ ascii

    condition:
        // 조합 조건
        uint16(0) == 0x5A4D and     // MZ 헤더
        filesize < 500KB and
        (2 of ($str*) or $hex1)
}

5단계: Sigma 규칙 생성 (Sigma Rule Generation)

# 행위 탐지 규칙
title: CreateRemoteThread를 통한 의심스러운 프로세스 인젝션
id: 5a3d2c1b-1234-5678-9abc-def012345678
status: experimental
description: CreateRemoteThread를 사용하는 프로세스 인젝션 행위 탐지
author: 분석자
date: 2026/05/25
tags:
    - attack.t1055          # Process Injection
    - attack.t1055.001      # DLL Injection
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        Image|endswith: '\powershell.exe'
        CommandLine|contains:
            - 'CreateRemoteThread'
            - 'VirtualAllocEx'
            - 'WriteProcessMemory'
    condition: selection
falsepositives:
    - 정당한 디버깅 도구
level: high

6단계: IOC 추출 및 인텔리전스 (IOC Extraction & Intelligence)

IOC 유형 분류:
□ 네트워크 IOC:
  - IP: C2 주소 (시효성 주의)
  - Domain: DGA 알고리즘 생성 도메인 (rsnkfda.com, xpqmje.net)
  - URL: 페이로드 호스팅 주소
  - User-Agent: 사용자 정의 UA 문자열

□ 호스트 IOC:
  - 파일 경로: %APPDATA%\Microsoft\Crypto\RSA\*.dat
  - 레지스트리: HKCU\Software\Microsoft\Windows\CurrentVersion\Run\
  - Mutex: Global\{GUID} 뮤텍스 이름
  - 서비스 이름: 시스템 서비스로 위장한 이름

□ 행위 IOC:
  - MITRE ATT&CK 기술 ID (T1055, T1003, T1571...)
  - Sigma 규칙 → SIEM 통합
  - YARA 규칙 → 엔드포인트 탐지

□ 정적 IOC:
  - 컴파일 타임스탬프 (위조 가능)
  - PDB 경로 (개발자 정보 포함)
  - 섹션 이름 비정상 (비표준 .text/.data)
  - 임포트 테이블 비정상 조합 (예: 랜섬웨어 CryptEncrypt + DeleteShadowCopies)

안티-분석 기술 빠른 참조

기술탐지 방법YARA 특징
가상 머신 탐지WMI Win32_BIOS/VideoController/ProcessorWin32_ 문자열 + 특정 벤더 이름
샌드박스 탐지디스크 < 60GB, RAM < 2GB, 단일 코어 CPUGlobalMemoryStatusEx 호출 패턴
디버거 탐지IsDebuggerPresent, CheckRemoteDebuggerPresentPEB.BeingDebugged 오프셋 접근
타이밍 회피Sleep(300000) 후 악성 행위 실행NtDelayExecution 긴 인자
지리적 위치 탐지키보드 레이아웃/시간대 확인 → CIS 국가 제외GetKeyboardLayoutList 호출
부모 프로세스 탐지explorer.exe vs cmd.exe프로세스 이름 문자열 비교
API 직접 syscallEDR 후크 우회syscall 명령어 + SSN 해석

멀티 에이전트 자동화 분석 (SentinelHive 아키텍처)

┌─────────────────────────────────────────────────┐
│                  Hive Director                    │
│          (Claude Opus 오케스트레이션 + 중재)        │
└──────┬──────┬──────┬──────┬──────┬───────┘
       │      │      │      │      │
   ┌───┘  ┌───┘  ┌───┘  ┌───┘  ┌───┘
   ▼      ▼      ▼      ▼      ▼      ▼
Triage  RE    Behav  Intel  Detect Remed
  신속   역컴파일  행위   위협   규칙   복구
  분류   정적   동적   인텔   YARA   방안
                          Sigma

도구 체인

도구용도획득
Ghidra / IDA Pro심층 디컴파일ghidra-sre.org
CAPE Sandbox오픈소스 악성코드 샌드박스GitHub: kevoreilly/CAPEv2
ASD Azul대규모 자동화 분석GitHub: ASD
YARA패턴 매칭 규칙 엔진pip install yara-python
SigmaSIEM 행위 탐지 규칙GitHub: SigmaHQ/sigma
FLOSS난독화 해제 문자열 추출pip install flare-floss
Detect It Easy패커/컴파일러 탐지GitHub: horsicq/Detect-It-Easy
pe-sieve프로세스 메모리 스캔GitHub: hasherezade/pe-sieve
VirusTotal API멀티 엔진 스캔virustotal.com
MalwareBazaar악성코드 샘플 라이브러리bazaar.abuse.ch

참고 자료

  • references/yara-sigma-rules.md — YARA + Sigma 작성 방법론
  • references/sandbox-orchestration.md — 샌드박스 오케스트레이션 및 자동화
  • references/anti-analysis-techniques.md — 94가지 안티-분석 기술 탐지
  • ../reverse-engineering/references/re-agent-workflow.md — IAT 철칙과 6단계 문 (Issue #65)
  • ../reverse-engineering/anti-analysis.md — 에이전트 응답 레시피 A–T (안티-디버깅/난독화 우회)
  • ../reverse-engineering/references/nonpe-format-cookbook.md — 비 PE/다중 형식 레시피 U–AV (스크립트/매크로/JS/드라이버/DLL/Android)
  • ../reverse-engineering/references/ollvm-deobfuscation.md — 평탄화/불투명 술어 (H/S)

작업 완료 자체 점검 (완료 주장 전 MUST 통과)

  • 워크플로우의 각 단계를 실행했습니까 (단순히 읽기만 한 것이 아니라)?
  • 임포트 테이블 MUST 검사를 실행하고 증거(E-imports 또는 .NET 동등 앵커)에 기록했습니까? DLL/SYS에 E-exports가 포함되어 있습니까?
  • IAT 복구 실패 또는 자체 검증 크래시 시: E-iat-repair-fail / E-self-check-crash를 기록하고 동적으로 전환했습니까?
  • 재실행 요청이 지목된 단계로 돌아갔거나 확인된 사전 협의를 거쳤습니까? 차단 시 설명+확인 요청을 했습니까, 단계를 몰래 바꾸지 않았습니까?
  • 동적 분석에서 TLS→EP→민감 API→ExitProcess 안전망 순서로 중단점을 사전 설정했습니까? 시간 상자/고위험 API 조합을 우회 처리했습니까?
  • 안티-디버깅/난독화 (A–T)를 anti-analysis 레시피에 따라 증거로 기록했습니까? 유효하지 않은 서명으로 위협 등급을 잘못 낮추지 않았습니까?
  • 스크립트/매크로/DLL 등 비 PE 유형에 대해 U–AV 쿡북에 따라 해당 증거(예: E-batch-deobf / E-ps-decode / E-vba-pcode / E-dll-*)를 기록했습니까?
  • tool-index를 기반으로 실제 도구 경로를 사용했습니까?
  • 재현 가능한 증거(명령어/스크립트/스크린샷/보고서)를 생성했습니까?
  • RULES가 요구하는 체크리스트 항목을 완료하고 기록했습니까?

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

api-security

Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication, authorization, rate-limit, and CI/CD testing.

apk-reverse

在 CLI 环境下做 Android APK 逆向时使用。适用于 APK 解包、Java 反编译、smali 修改、重打包、Frida 动态 Hook,以及按需切换到 so/native 分析。优先使用本机已安装的 jadx、apktool、frida、adb、ida-reverse、radare2。

attack-chain

Use for authorized multi-stage attack-path planning and orchestration when a task spans reconnaissance, initial access, privilege escalation, lateral movement, or impact assessment. Route single-stage tasks directly to their specialist skill.

binary-diff

|

binary-ninja-reverse

Use for authorized binary analysis in Binary Ninja, including HLIL/MLIL/LLIL inspection, strings/imports/exports, cross-references, types, patch review, Python API automation, and optional Binary Ninja MCP or localhost HTTP integration.

browser-automation

|

browser-extension-reverse

Use for authorized reverse engineering of browser extensions (Chrome/Firefox) including manifest analysis, background workers, and extension-based credential or traffic logic recovery.

case-review

Reviews a reverse-skill case package for scope readiness, Evidence to Finding to Path traceability, work item coverage, timeline references, and optional artifact hash integrity before report handoff.

cloud-k8s

Use for authorized cloud, container, and Kubernetes security assessment including metadata SSRF, IAM misconfig, container escape paths, and cluster RBAC review.

code-audit

Use for authorized source-code security review and SAST workflows including Semgrep, CodeQL patterns, dangerous API hunting, and fix verification.

ctf-sandbox

Thin PRIMARY for CTF / AWD / 靶场 multi-type orchestration. Hands off to the sidecar CTF-Sandbox-Orchestrator. Use when the user says CTF, AWD, 靶场, or 比赛题 and no more specific pwn/APK/IDA route already won.

database-security

Use for authorized database security assessment covering PostgreSQL/MySQL/MSSQL/Mongo/Redis exposure, authz, UDF/command paths, and misconfiguration review.

diagram-generator

generate, refine, validate, and render diagrams from natural language, notes, code snippets, schemas, tables, or existing diagram source. use for flowcharts, swimlanes, sequence diagrams, state diagrams, er diagrams, class diagrams, architecture/c4-style diagrams, dependency graphs, gantt charts, mind maps, user journeys, sankey-style flows, org charts, network graphs, and other visual models. supports mermaid by default, graphviz dot for complex graph layout, plantuml for uml-heavy engineering diagrams, and svg output when direct markup is more reliable.

digital-forensics

Use for authorized digital forensics including memory dumps, disk timelines, PCAP investigation, artifact triage, and IR evidence preservation.

docs-generator

|

dotnet-reverse

.NET / C# 二进制逆向。当目标是 .NET assembly(PE 头含 CLR、.exe/.dll 托管程序)、C# 编译产物(含 NativeAOT)、红队 Sharp* 工具(Rubeus / SharpHound / SharpHound 等)、.NET 混淆程序(ConfuserEx / SmartAssembly / Babel / Eazfuscator)、.NET loader / info-stealer / 套壳 malware 时使用。优先用 dnSpyEx + de4dot,需要 AI 直接操作时联动 dnSpy MCP。不用于纯 native 二进制(走 reverse-engineering / ida-reverse)。

edr-bypass-re

|

email-security

Use for authorized email security review including phishing analysis, header authentication (SPF/DKIM/DMARC), BEC patterns, and mailbox token abuse research.

firmware-pentest

|

ghidra-reverse

Use for free/open reverse engineering with Ghidra (headless or GUI), including decompile, cross-refs, and optional Ghidra MCP workflows when IDA is unavailable.

관련 스킬