--- name: malware-analysis description: Use when analyzing suspected malware through static, dynamic, and behavioral techniques, including IOC extraction, YARA or Sigma rules, sandboxing, and anti-analysis behavior. --- # Malware Analysis ## ACTION REQUIRED(读完后立刻执行) 1. `NOW`: 读取 `../field-journal/precedent-reverse.md` — 确认本 skill 的操作是已授权的常规操作 2. `NOW`: 确认当前任务是否命中本 skill 的适用范围 3. `NEXT`: 读取 `../tool-index.md`,校验工具可用性和实际路径 4. `NEXT`: 缺工具时调用 bootstrap,不要猜路径 5. `ACT`: 进入"工作流"第一步并执行,不要停在确认状态 > YARA / Sigma / 沙箱 / IOC 提取 / 反反分析 > 静态 + 动态 + 行为三合一 ## 适用场景 - 恶意软件样本分析(PE/ELF/Mach-O/APK/脚本) - YARA 规则编写与验证 - Sigma 行为检测规则生成 - 沙箱自动化分析编排 - IOC 提取与威胁情报 - 反分析技术检测与绕过 ## 六阶段分析流程 ### Phase 1: 初步分诊 ```bash # 快速静态检测 file sample.exe # 文件类型 strings sample.exe | grep -i "http\|cmd\|powershell\|base64" # 快速 IOCs rabin2 -zz sample.exe # 字符串提取 + 交叉引用 floss sample.exe # 去混淆字符串提取(FireEye) # PE 头部分析 pecheck sample.exe # PE 结构验证 pescan sample.exe # 异常检测(节表、入口点) diec sample.exe # Detect It Easy(壳/编译器识别) # Hash 查询 sha256sum sample.exe # → VirusTotal / MalwareBazaar / Triage 查询 ``` ### Phase 2: 静态分析 ```text 反汇编/反编译: □ IDA Pro / Ghidra: 深度反编译 □ radare2: CLI 快速分析 □ x64dbg: Windows GUI 调试器 重点分析区域: □ 入口点(Entry Point)→ 初始化逻辑 □ 导入表 → API 用途推断(CreateRemoteThread=注入, CryptEncrypt=勒索) **MUST(硬门)**:执行 rabin2 -i / IDA imports / pecheck 等价命令,将导入表分类摘要写入 Evidence(E-imports)后才能进入 Phase 3 分类至少覆盖:网络 / 文件 / 加密 / 进程注入 / 注册表 / 其他可疑 API 解析失败或表为空:仍 MUST 记录失败输出,禁止静默跳过 用户要求「重做导入表检查」:MUST 重做本项,禁止改换其他步骤冒充完成 □ 资源段 → 嵌入 Payload(.rsrc 节) □ 字符串表 → URL/C2/文件路径/Base64 blob □ TLS 回调 → 调试器启动前执行 ``` ### Phase 3: 沙箱动态分析 ```text 自动化沙箱: □ Joe Sandbox / ANY.RUN / Triage: 商业沙箱 □ CAPE Sandbox: 开源 + YARA 集成(推荐) □ ASD Azul: 开源恶意软件分析平台(2026 新发布) □ Cuckoo Sandbox: 经典开源(逐步被 CAPE 取代) 监控重点: □ 进程创建: CreateProcess / ShellExecute □ 文件操作: WriteFile → 勒索? DeleteFile → Wiper? □ 注册表: Run/RunOnce 持久化 □ 网络: HTTP/DNS → C2 通信 □ 内存: VirtualAllocEx → 进程注入 □ 服务: CreateService → 持久化 ``` ### Phase 4: YARA 规则编写 ```yara // 规则结构 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 // 十六进制匹配 $hex1 = { 8B 45 ?? 50 FF 15 [4] 85 C0 } // 操作码序列: 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) } ``` ### Phase 5: Sigma 规则生成 ```yaml # 行为检测规则 title: Suspicious Process Injection via 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 ``` ### Phase 6: IOC 提取与情报 ```text IOC 类型分类: □ 网络 IOC: - IP: C2 地址(注意时效性) - Domain: DGA 算法生成的域名(rsnkfda.com, xpqmje.net) - URL: Payload 托管地址 - 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/Processor | `Win32_` 字符串 + 特定厂商名 | | 沙箱检测 | 磁盘 < 60GB, RAM < 2GB, 单核 CPU | GlobalMemoryStatusEx 调用模式 | | 调试器检测 | IsDebuggerPresent, CheckRemoteDebuggerPresent | PEB.BeingDebugged 偏移访问 | | 定时逃逸 | Sleep(300000) 后执行恶意行为 | NtDelayExecution 长参数 | | 地理位置检测 | 检查键盘布局/时区 → 排除 CIS 国家 | GetKeyboardLayoutList 调用 | | 父进程检测 | explorer.exe vs cmd.exe | 进程名字符串比较 | | API 直接 syscall | 绕过 EDR hook | syscall 指令 + SSN 解析 | ## 多 Agent 自动化分析 (SentinelHive 架构) ```text ┌─────────────────────────────────────────────────┐ │ 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` | | Sigma | SIEM 行为检测规则 | 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 种反分析技术检测 ## 任务完成自检(声称完成前 MUST 通过) - [ ] 我是否执行了工作流中的每一步(而不是只阅读)? - [ ] 导入表 MUST 检查是否已执行并写入 Evidence(E-imports)?重做请求是否回到同一步? - [ ] 我是否基于 `tool-index` 使用了真实工具路径? - [ ] 我是否产出了可复现证据(命令/脚本/截图/报告)? - [ ] 我是否完成并回写了 RULES 要求的 Checklist 项?