Armin-devhub/yara-malware-portfolio

GitHub: Armin-devhub/yara-malware-portfolio

一套包含 YARA 规则库、桌面规则管理器和命令行扫描器的恶意软件检测工具集,旨在通过文件内容模式匹配并配合 VirusTotal 进行威胁情报分流。

Stars: 0 | Forks: 0

# YARA 恶意软件检测作品集 一个用于检测文件中恶意软件的 **YARA 规则**库 —— 包含一个用于读取、编写、编辑、运行和*浏览*规则的**桌面应用程序**,一个可针对任何文件或文件夹运行规则的扫描器,以及一个内置的**威胁情报交接**功能,可通过配套的 IOC 工具将匹配的文件转化为 VirusTotal 判定结果。 本项目作为 SOC 分析师 / 检测工程作品集的一部分而构建。作为配套的 [Sigma 项目](https://github.com/Armin-devhub/sigma-detection-portfolio)检测**日志事件**的补充,本项目专注于检测**文件内容** —— 共同构成了检测的全貌。 ![YARA 规则管理器](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/774b17f31f225554.png) ``` ┌──────────────┐ ┌──────────────┐ ┌───────────────────┐ ┌──────────────┐ │ Files / │ → │ YARA rules │ → │ matches + SHA256 │ → │ VirusTotal │ │ a download │ │ (this repo) │ │ (GUI or scanner) │ │ (IOC tool) │ └──────────────┘ └──────────────┘ └───────────────────┘ └──────────────┘ ``` ## 什么是 YARA(以及它与 Sigma 的区别) YARA 是一个针对**文件和内存**的模式匹配引擎 —— “恶意软件研究人员的模式匹配瑞士军刀”。一条规则表述的是*“如果此文件包含这些字符串 / 字节,则它就是可疑的。”* | | **Sigma** | **YARA** | |---|---|---| | 检查对象 | 日志**事件**(发生了什么) | 文件**内容**(具体字节) | | 回答问题 | “是否发生了可疑操作?” | “此文件是否为恶意?” | | 应用场景 | SIEM / EDR | 防病毒软件、恶意软件分析、IR | 两者你都需要:无文件攻击不会留下文件(Sigma 会捕获日志事件);而存在于磁盘上的恶意软件尚未产生日志(YARA 会捕获文件)。 ## 两种规则来源 — *审核版* 和 *强化版* 就像真正的 LOKI/THOR 扫描器一样,你可以选择引擎加载哪个规则集: - **审核版 (Vetted)** — [`rules/`](rules/) 中由我本人编写并理解的纯手写规则,经过调整以实现**低误报**。 - **强化版 (Strong)** — 一个专业的社区规则包(Florian Roth 的 [signature-base](https://github.com/Neo23x0/signature-base),约 5,900 条规则),提供广泛的已知恶意软件覆盖。按需获取;在应用程序中只读浏览。 加载器会**逐个文件**进行编译,声明专业规则所需的外部变量(`filename`, `filepath`, ...),并且**跳过任何无法编译的内容**而不是崩溃 —— 然后报告已加载的内容。 ## 审核版规则 每一条规则都是 [`rules/`](rules/) 中的一个 YARA 文件,包含描述、MITRE 映射和严重级别。前四条规则专门针对**审核软件下载**进行了调整(即研究人员在盗版“重打包版”中发现的恶意软件类别): | 规则 | MITRE | 级别 | 检测内容 | |------|-------|-------|---------| | CryptoMiner 指标 | T1496 | high | XMRig / Monero 矿机(加密劫持) | | Infostealer — 浏览器凭据 | T1555.003, T1539 | high | 窃取浏览器密码、cookies、钱包的盗取软件 | | Infostealer — Discord Webhook 渗透 | T1567, T1528 | high | Discord token 抓取器 / webhook 渗透 | | 可疑安装程序 — Defender 篡改 / 持久化 | T1562.001, T1053.005, T1547.001 | high | 禁用 Defender、解码 payload、执行持久化的安装程序 | | 可疑 PowerShell 下载器 | T1059.001, T1105 | high | 下载并执行型投放器 | | HackTool — Mimikatz | T1003 | critical | 凭据转储工具字符串 | | WebShell — 通用 PHP/ASPX | T1505.003 | high | 服务端 web shells | | EICAR 测试文件 | N/A | informational | 标准的安全 AV 自检 | ## 桌面应用程序 — YARA 规则管理器 ``` python -m yara_manager # or double-click Launch-YARA-Manager.bat ``` - **读取 / 浏览** — 选择一条规则以查看易读的摘要及其 YARA 源码。在*强化版*模式下,可浏览整个社区规则包(只读)。 - **创建 / 编辑 / 删除** — 通过模板编写规则;它在**保存前会被编译**,因此损坏的 YARA 无法保存(仅限你自己的规则)。 - **运行** — 针对你的文件运行选定的规则,或选择*运行所有规则*;匹配结果会根据严重程度进行颜色编码。 - **选择文件 / 文件夹** — 扫描磁盘上的任何内容(只读;绝不执行文件)。 - **哈希文件** — 对每个文件计算 SHA256(可选择*仅限可执行文件*,以遵守 API 限制)并将其写出,以便进行 VirusTotal 查询。 ## 威胁情报交接 — YARA → 哈希 → VirusTotal 一次干净的 YARA 扫描并不能证明文件是安全的(你的规则了解的信息有限),因此真正的工作流会转向多引擎情报。扫描器会打印出每个匹配文件的 **SHA256**,并将它们写入 `out/`,为配套的 [IOC 富化工具](https://github.com/Armin-devhub/ioc-enrichment-tool) 做好准备: ``` # 在 IOC 工具中: python -m ioc_enrich.cli --hash # 60+ AV engines vote ``` 这将文件层检测(YARA)串联到了威胁情报分流(VirusTotal)中 —— 构成了真实分流 pipeline 的两半。 ## 快速开始 ``` python -m venv .venv .\.venv\Scripts\Activate.ps1 pip install -r requirements.txt python yara_scan.py # scan samples/ with vetted rules python yara_scan.py --rules vetted # scan a folder python fetch_community_rules.py # download the Strong pack (~5,900 rules) python yara_scan.py --rules community ``` ## 试一试 — 模拟的恶意“重打包版” [`test-repacks/SuperGame-FitGirl-Repack/`](test-repacks/) 是一个**安全**的文件夹,其结构类似于盗版游戏下载,在 `crack/` 文件夹中植入了无害的合成 payload。对其进行扫描可以验证审核版规则能否捕获植入的加密矿机、token 抓取器和篡改 Defender 的安装程序 —— 同时让干净的游戏文件通过。此过程不涉及任何真实的恶意软件。 ``` python yara_scan.py "test-repacks/SuperGame-FitGirl-Repack" --rules vetted ``` ## 项目结构 ``` yara-malware-portfolio/ ├── rules/ # the vetted YARA rules (.yar) ├── samples/ # safe synthetic samples that fire the rules ├── test-repacks/ # a simulated malicious game folder (safe) ├── yara_manager.py # desktop GUI (read/write/edit/delete/run/browse) ├── yara_scan.py # CLI scanner (--rules vetted|community) ├── ruleset.py # shared rule loader (vetted / community) ├── fetch_community_rules.py # downloads the Strong community pack ├── make_eicar.py # generates a real EICAR file on demand (git-ignored) ├── Launch-YARA-Manager.bat # double-click launcher ├── requirements.txt └── README.md ``` ## 注意事项 - **设计安全。** 不提交任何真实的恶意软件。样本为合成的文本;EICAR 文件按需生成且被 git 忽略(你的 AV 会将其隔离 —— 这正是目的所在)。社区规则包在本地获取,不进行提交。 - **不是防病毒软件。** 这是一个学习 / 分流工具。真正的防护需要维护良好的引擎和行为检测 —— YARA 只是其中的一个静态层。 - 与配套的 [Sigma](https://github.com/Armin-devhub/sigma-detection-portfolio) 和 [IOC 富化](https://github.com/Armin-devhub/ioc-enrichment-tool) 项目具有相同的检测工程经验。
标签:DNS 反向解析, IP 地址批量处理, SOC分析工具, YARA, 云资产可视化, 威胁情报, 开发者工具, 文件扫描器, 桌面应用, 网页爬虫, 自定义DNS解析器, 逆向工具