关于 malware-analysis
malware-analysis 是面向安全分析师的恶意软件分析 skill,将脚本化样本分诊与指标提取结合起来,并要求基于证据推理、评估置信度和撰写结构化威胁报告。
主要功能
- 01静态样本分析
- 02威胁情报分诊
- 03IOC 提取
- 04行为与能力评估
- 05置信度和风险评级
- 06结构化威胁报告
适用场景
- 01分诊可疑文件
- 02依据静态指标评估恶意软件能力
- 03用证据说明风险
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ tsale/ awesome-dfir-skills --skill malware-analysis安装后在 Claude Code 中输入/malware-analysis确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
config/config.jsonreferences/mitre_techniques.mdreport_template.mdscripts/extract_iocs.pygenerate_report.pystatic_analysis.pytriage.py详细介绍
恶意软件分析技能
此技能可生成分析师级威胁报告,而非数据转储。每个结论都必须有证据和推理作为依据。
核心原则
- 基于证据进行推理:陈述结论时,必须解释原因
- 串联线索:将指标、行为、能力和影响关联起来
- 评估置信度:说明你的置信程度以及原因
- 输出可采取行动的信息:报告应能支持决策,而不只是提供信息
分析工作流
步骤 1:收集数据
运行所有脚本以收集原始数据:
# Static analysis - get hashes, PE info, strings, APIs, entropy
python3 scripts/static_analysis.py /path/to/sample -f json > static.json
# Threat intelligence - check reputation across sources
python3 scripts/triage.py -t file /path/to/sample -f json > triage.json
# IOC extraction - extract network/host indicators
python3 scripts/extract_iocs.py /path/to/sample -f json > iocs.json
步骤 2:分析并推理(这是关键步骤)
利用收集到的数据,进行分析师级推理:
2.1 威胁情报评估
自问:
- 此样本是否已知?如果在 MalwareBazaar/ThreatFox 中发现,则为已确认的恶意软件
- VT 检测率是多少?
- 0 个检测:新样本、误报或干净文件——需要进行行为分析
- 1-5 个检测:可能是新变种或针对性攻击——可疑
- 5-15 个检测:已被多个供应商确认为恶意
- 15+ 个检测:广为人知的恶意软件
- 它被归属到哪个家族?调查该家族的典型行为
- 它最早是在何时被发现的?近期发现 = 活跃的攻击活动
始终解释推理过程:
“MalwareBazaar 将此样本识别为 RedLine Stealer,VT 检测结果为 45/70。高检测率以及它存在于经过筛选的恶意软件仓库中,证实这是已知威胁,而非误报。”
2.2 根据静态指标进行行为分析
API 分析——将 API 映射到行为:
| API 模式 | 可能的行为 | 推理依据 |
|---|---|---|
| VirtualAlloc + VirtualProtect + WriteProcessMemory + CreateRemoteThread | 进程注入 | 这是典型的注入模式:分配内存、设置为可执行、写入代码,并在目标进程中执行 |
| CredEnumerate, CryptUnprotectData | 凭据窃取 | 这些 API 专门用于访问 Windows 凭据存储和受 DPAPI 保护的数据(浏览器密码) |
| InternetOpen + URLDownloadToFile | 下载器 | 初始化 HTTP 并下载文件——这是典型的投放器行为 |
| RegSetValueEx + 字符串中的 Run 键路径 | 持久化 | 写入 Run 键可确保在启动时执行 |
| IsDebuggerPresent, GetTickCount, NtQuerySystemInformation | 反分析 | 多项规避检查表明,恶意软件会在分析过程中隐藏其行为 |
| CryptEncrypt + 文件枚举 API | 可能是勒索软件 | 加密能力结合文件发现行为——但也可能是安全的 C2 |
始终解释推理过程:
“同时存在 VirtualAlloc、VirtualProtect 和 CreateRemoteThread,强烈表明其具备进程注入能力。这些 API 单独使用时都有合法用途,但这一特定组合是向其他进程注入代码的典型模式。”
加壳分析:
| 指标 | 含义 | 置信度 |
|---|---|---|
| 熵 > 7.0 | 压缩/加密内容 | 高 |
| 节熵 > 7.0(尤其是 .text) | 加壳代码节 | 高 |
| UPX0、UPX1、.aspack、.packed 节 | 已知加壳器特征 | 很高 |
| RWX 节 | 自修改代码 | 中 |
| 导入表较小,且仅包含 GetProcAddress/LoadLibrary | 动态解析 API | 高 |
如果已加壳,请说明其影响:
“此样本显示出多项加壳指标(熵为 7.4,包含 UPX 节)。静态分析结果反映的是解包桩,而非实际载荷。要揭示其真实功能,必须进行动态分析。”
2.3 能力评估
根据证据,判断恶意软件能做什么:
| 能力 | 所需证据 | 置信度 |
|---|---|---|
| 进程注入 | 2 个或更多注入 API | 3 个或更多时为高,2 个时为中 |
| 凭据窃取 | 任意凭据访问 API | 高(这些 API 有明确用途) |
| 键盘记录 | SetWindowsHookEx | 中(也有合法用途) |
| 网络 C2 | 2 个或更多网络 API + 提取出的 URL/IP | 高 |
| 文件下载 | URLDownloadToFile 或类似 API | 高 |
| 持久化 | 注册表/服务 API + 相关字符串 | 中 |
| 加密/勒索软件 | 加密 API + 文件枚举 | 中(需要结合上下文) |
说明置信度和判断理由:
"凭据窃取能力:高置信度——存在 CryptUnprotectData,它专门用于解密 DPAPI 保护的数据,包括浏览器密码。此 API 在大多数软件中没有合法用途。"
2.4 风险评估
确定风险等级并说明理由:
| 风险等级 | 标准 |
|---|---|
| CRITICAL | 凭据窃取 API、进程注入,或确认属于已知会窃取数据/实施勒索的软件家族 |
| HIGH | 存在多种恶意能力、网络 C2、持久化机制 |
| MEDIUM | 存在可疑迹象,但未确认恶意能力;或通过加壳隐藏真实行为 |
| LOW | 迹象很少;可能是带有可疑特征的合法软件 |
| UNKNOWN | 证据不足、经过重度加壳,或未命中 TI |
步骤 3:撰写报告
按以下结构撰写报告:
# Threat Analysis Report: [MALWARE_NAME or "Unknown Sample"]
| | |
|---|---|
| **Risk Level** | [CRITICAL/HIGH/MEDIUM/LOW] |
| **Confidence** | [High/Medium/Low] |
| **Analysis Date** | [DATE] |
---
## Executive Summary
[2-3 sentences: What is this? Is it malicious? What can it do? How do we know?]
**Key Finding:** [One sentence bottom line]
---
## Threat Intelligence Assessment
[What do TI sources tell us? Explain what each finding means]
- **VirusTotal:** [X/Y detections] — [what this means]
- **MalwareBazaar:** [Found/Not found] — [what this means]
- **Family Attribution:** [Family name] — [what this family typically does]
**Assessment:** [Your reasoned conclusion based on TI]
---
## Behavioral Analysis
### Identified Capabilities
#### [Capability 1: e.g., "Process Injection"]
- **Confidence:** [High/Medium/Low]
- **Evidence:** [List the specific APIs/strings found]
- **Reasoning:** [Explain WHY this evidence indicates this capability]
#### [Capability 2: e.g., "Credential Theft"]
...
### Packing Assessment
[Is it packed? What does this mean for the analysis?]
### Anti-Analysis Techniques
[What evasion techniques were identified?]
---
## MITRE ATT&CK Mapping
| Tactic | Technique | ID | Evidence |
|--------|-----------|----|---------|
| [Only include techniques you can justify with evidence] |
---
## Indicators of Compromise
### File Indicators
[Hashes]
### Network Indicators
[Defanged IPs, domains, URLs - only if extracted]
### Host Indicators
[Registry keys, file paths, mutexes - only if found]
---
## Risk Assessment
**Overall Risk: [LEVEL]**
This assessment is based on:
1. [Reason 1]
2. [Reason 2]
3. [Reason 3]
**Confidence in Assessment: [High/Medium/Low]**
- [Why this confidence level]
---
## Recommendations
### Immediate Actions
[What should be done RIGHT NOW based on risk level]
### Detection Opportunities
[How to detect this threat]
### Further Analysis Needed
[What questions remain unanswered]
熵值解读
| 熵值 | 含义 |
|---|---|
| 0-1 | 结构高度规整(空内容、重复内容) |
| 4-5 | 纯文本、可读字符串 |
| 5-6 | 已编译代码(正常的 .text 节) |
| 6-7 | 压缩数据、部分混淆 |
| 7-8 | 加密/压缩(已加壳) |
文件签名
| 字节 | 类型 |
|---|---|
| 4D 5A (MZ) | PE 可执行文件 |
| 50 4B (PK) | ZIP/Office 文档 |
| 7F 45 4C 46 | ELF 可执行文件 |
| D0 CF 11 E0 | OLE/旧版 Office |
| 25 50 44 46 |
分析推理示例
不佳(数据罗列):
"发现的 API:VirtualAlloc、CreateRemoteThread、RegSetValueEx。熵值:7.2。VT:34/70。"
良好(分析师推理):
"根据 VirtualAlloc 和 CreateRemoteThread 的存在,此样本表现出进程注入能力(高置信度)。这些 API 配合使用时,会构成经典的代码注入模式:先在目标进程中分配内存,再创建线程来执行注入的代码。较高的熵值(7.2)表明载荷经过加壳,这意味着观察到的 API 可能属于解包存根,而不是最终载荷。VirusTotal 的检测率为 34/70,证实该样本已被识别为恶意软件;多个厂商将其识别为 Agent Tesla 的一个变种。Agent Tesla 是一种专门窃取信息、以收集凭据而闻名的恶意软件。鉴于该样本具有注入能力,且与窃取凭据的软件家族有关,因此它会对任何运行它的系统上的凭据安全构成 CRITICAL 级风险。"
脚本参考
static_analysis.py
python3 scripts/static_analysis.py <file> -f [text|json]
提取:哈希、文件类型、PE 头、节、熵值、导入项、字符串、可疑指标
triage.py
python3 scripts/triage.py <ioc> -f [text|json]
python3 scripts/triage.py -t file <filepath> -f json
python3 scripts/triage.py --status # Check API config
查询:MalwareBazaar、ThreatFox、URLhaus、VirusTotal、AbuseIPDB
extract_iocs.py
python3 scripts/extract_iocs.py <file> -f [text|json|csv]
提取:IP、域名、URL、电子邮件、哈希、注册表项、文件路径、加密货币钱包、互斥体