nat20infosec/malware-triage

GitHub: nat20infosec/malware-triage

一套两阶段恶意软件分析工具,结合 Claude Skill 静态分类与 Vagrant 隔离实验室动态分析,帮助安全研究人员安全高效地评估可疑文件。

Stars: 0 | Forks: 0

# 恶意软件分类与分析实验室 用于实施实用的两阶段恶意软件分析方法的工具:静态分类,随后进行动态分析。 1. **[`skills/malware-triage`](skills/malware-triage/SKILL.md)** —— 一个 [Claude Skill](https://docs.claude.com/en/docs/claude-code/skills),可将可疑文件的静态分析(哈希计算、字符串提取、文件头检查)转化为结构化的分类简报。**绝不执行或引爆文件** —— 根据设计,仅执行静态分析。 2. **[`lab/`](lab)** —— “隔离笼”:一个通过单条命令即可启动的 Vagrant 脚手架,用于搭建执行真实动态分析所需的隔离且网络受控的 VM,并配备辅助脚本来进行快照、断网隔离(air-gap)以及恢复。 这两个组件互不依赖,但它们被设计为能够无缝交接:该 skill 的输出最终会给出一个客观的“是否需要进行动态分析”的判断,如果答案是肯定的,那么实验室就是执行动态分析的地方。 ## 安全第一 这是一款防御性、教育性质的专有工具,供已经获得授权、需要检查特定样本(例如可疑的电子邮件附件、扫描器标记出的内容、或来自经过审查的研究来源的样本)的人员使用。它**不是**: - 用于构建、混淆或改进恶意软件的工具。 - 自行运行或引爆任何内容的工具 —— 该 skill 仅限静态分析;实验室只是一个脚手架,供*您*在专门为其构建的隔离环境中,有目的地运行某些内容。 - 取代您对授权进行自行判断的替代品。如果您不确定是否拥有或被允许分析某个特定样本,请立即停止并先解决授权问题。 ## 安装 skill 将 `skills/malware-triage/` 复制到您的 Claude Code skills 目录中: ``` # macOS / Linux cp -r skills/malware-triage ~/.claude/skills/ # Windows (PowerShell) Copy-Item -Recurse skills/malware-triage $env:USERPROFILE\.claude\skills\ ``` 然后,在 Claude Code 会话中: ``` /malware-triage ``` 请先针对无害的内容进行测试 —— 您已经信任的良性二进制文件,或者是 [EICAR 测试文件](https://www.eicar.org/download-anti-malware-testfile/) —— 以便在将其指向真实目标之前,了解输出的结构。 ## 使用实验室(“隔离笼”) 要求在宿主机上安装 [VirtualBox](https://www.virtualbox.org/) 和 [Vagrant](https://developer.hashicorp.com/vagrant/downloads)。 ``` cd lab vagrant up # provisions an Ubuntu VM with analysis tooling — needs internet once ./cage.sh snapshot clean # save a clean save-point (Windows: .\cage.ps1 -Action snapshot -Name clean) ./cage.sh seal # disconnect the network -- verifies it's actually off before calling it safe ``` `seal` 不仅仅运行断开网络适配器的命令 —— 它随后还会读取适配器状态,除非独立确认已断开,否则拒绝将 VM 标记为安全。如果无法确认,它会发出强烈的报错,而不是告诉您一切正常。 此时,VM 已经没有任何外部网络路径。将样本复制进去(`vagrant upload `,或者将其作为 ISO 挂载 —— 剪贴板、拖拽和同步文件夹均已禁用,见下文),对其进行动态分析,完成后请执行: ``` ./cage.sh revert clean # throws away everything that happened since the snapshot ``` `./cage.sh status` 会显示 VM 的电源状态以及网络适配器是否真正连接 —— 这对于在加载任何样本之前进行双重检查非常有用。每次调用 `snapshot`/`seal`/`unseal`/`revert` 时,都会在 `lab/.cage.log` 中追加一条带有时间戳的记录,从而留下了 VM 实际被断网隔离的时间记录。 仅在需要重新配置环境时才运行 `./cage.sh unseal` —— 绝不能在系统上还留有样本的情况下执行。它要求在提示符下输入 `UNSEAL` 进行确认,随后才会触碰网络适配器。 ### 为什么 VM 要这样被严格锁定 隔离笼禁用了样本可能用于从客户机逃逸回宿主机的所有默认通道:剪贴板、拖拽、同步文件夹、USB 直通、音频以及 3D 加速图形(这是一个真实的 VM 逃逸攻击面,而非理论上的 —— 已有多起公开的 VirtualBox 逃逸漏洞是通过视频/3D 设备实现的)。有关具体安装和配置的详细信息,请参阅 [`lab/Vagrantfile`](lab/Vagrantfile)。 ## 为什么需要它 目前市面上大多数恶意软件分析工具要么是完整的沙箱平台(如 Cuckoo、ANY.RUN),要么是仍然需要您自己动手串联起来的基础库。而这款工具填补了两者之间的空白:它提供了快速的静态初步筛查功能,帮您判断是否值得进一步升级分析;同时还提供了一种极简的方式,在确定需要深入分析时快速搭建起隔离环境。 ## License MIT —— 见 [LICENSE](LICENSE)。如果您想使用其他许可证,请自行更改。
标签:AI合规, Cutter, DAST, Vagrant, 云安全监控, 恶意软件分析, 配置修复, 静态分析