aaquibbb/Automating-Threat-Detection
GitHub: aaquibbb/Automating-Threat-Detection
利用 Google Gemini 自动生成、验证并部署 YARA 规则到 Wazuh,以检测恶意 Web Shell 的 LLM 辅助威胁检测流水线。
Stars: 0 | Forks: 0
# 使用 LLM 自动化威胁检测与 YARA 规则生成
**大型语言模型能否编写出足够出色并足以在 SOC 中部署的检测规则?** 本项目构建了一个端到端的流水线,利用 Google Gemini 自动生成、验证 YARA 规则,并将其部署到 Wazuh(开源 SIEM)中——然后针对 480 个真实世界的恶意 Web Shell 对它们进行了客观的测试。




## 问题背景
手动编写 YARA 规则来捕获恶意文件上传(Web Shell)既缓慢又具有滞后性。基于特征的检测总是落后于 payload 一步,而手动维护规则这一运营瓶颈更是加剧了分析师的告警疲劳。本项目旨在回答这个问题:**LLM 能否接管规则生成的繁重工作——并且它生成的规则是否真的具备实际部署价值?**
## 结果
这些规则针对包含 **480 个真实恶意 PHP Web Shell**(来自 Tennc Webshell Corpus 和 SecLists 的 c99、r57 和混淆后门)的正样本集,以及纯净的 **WordPress、Joomla 和 Drupal** 源代码(用于测量误报率)的负样本集进行了评估。
| 指标 | 得分 |
|---|---|
| Precision | **0.936** |
| F1-Score | **0.89** |
| 误报率 | 足够低,可用于实际部署 |
**客观结论:** LLM 生成的静态规则在已知和经过轻微修改的 Web Shell 上表现强劲,但**重度混淆的恶意软件仍能绕过检测**。静态 YARA 检测存在上限,而使用 LLM 编写静态规则也会继承这一局限。这里的结论不是“AI 取代检测工程师”——而是 LLM 辅助的规则生成是纵深防御体系中的一个强大*第一层*,而非独立的解决方案。
## 工作原理
```
Web server artefact (suspect PHP file)
│
▼
[artifact_extractor.py] → extract entropy, metadata, strings
│
▼
[rule_generator.py] → Gemini generates a candidate YARA rule
│ (prompt-engineered for valid metadata/strings/conditions)
▼
[rule_validator.py] → compile + test against malicious & benign sets
│
├── passes ──────► deploy rule into Wazuh
└── fails ───────► feedback loop: regenerate with refined prompt
```
特征提取是确定性的,并且在*任何*模型交互*之前*进行,从而在 AI 辅助输出和经过人工验证的生产内容之间保持了清晰的界限。
## 技术栈
- **检测平台:** Wazuh(文件完整性监控 + 告警流水线)
- **监控环境:** Apache Web 服务器,PHP 文件上传
- **LLM 提供商:** Google Gemini API
- **规则格式:** YARA
- **语言:** Python 3.x
## 仓库结构
```
├── artifact_extractor.py # Extracts entropy, metadata, and strings from files
├── rule_generator.py # Calls the Gemini API to generate YARA syntax
├── rule_validator.py # Compiles rules & tests against malicious/benign datasets
└── requirements.txt
```
## 设置与使用
假定您拥有正常工作的 Python 3 环境,并且已将 Google Gemini API 密钥导出为 `GEMINI_API_KEY`。
```
# 安装依赖
pip install -r requirements.txt
# 1. 从可疑文件中提取 artefacts
python artifact_extractor.py --file /path/to/suspect.php --out artefacts.json
# 2. 从 artefact 包生成候选 YARA 规则
python rule_generator.py --input artefacts.json --out rule.yar
# 3. 对照恶意 + 良性数据集验证规则
python rule_validator.py --rule rule.yar
```
## 数据集
- **恶意(正样本):** 480 个 PHP Web Shell — [Tennc Webshell Corpus](https://github.com/tennc/webshell)、[SecLists](https://github.com/danielmiessler/SecLists)
- **良性(负样本):** 来自 WordPress、Joomla 和 Drupal 的未经修改的 PHP 源代码(用于误报对照)
## 局限性与未来工作
- **混淆是瓶颈。** 高度混淆的 Web Shell 可以绕过静态规则;将此与行为/动态分析相结合是明确的下一步计划。
- **Gemini 集成缺乏响应缓存** —— 这对于研究来说没问题,但实际部署需要速率限制和成本控制。
- **侧重于 Web 服务器。** 将覆盖范围扩展到端点和身份遥测是一个自然的扩展方向。
- **多格式输出。** 未来的迭代可以在 YARA 的基础上输出 Sigma 规则,并增加 prompt 级别的护栏,以捕获那些语法有效但语义薄弱的规则。
## 项目价值
这项工作正处于安全运营中三个现实关注点的交汇处:扩展检测工程、减少分析师的告警疲劳,以及以可控且*谨慎*的方式将生成式 AI 集成到防御工作流中。它是有意保持轻量级和研究级别的,而不是经过生产强化的——其设计优先级是研究的可重复性、确定性的特征提取,以及在 AI 辅助输出和经人工验证的生产内容之间划定清晰的界限。
## 作者
**Aaquib Parvez** — 诺森比亚大学网络安全硕士 (2026)
SOC 分析师,致力于构建 AI 工具以加速威胁检测。
[LinkedIn](https://linkedin.com/in/aaquibparvez) · [GitHub](https://github.com/aaquibbb)
标签:DLL 劫持, URL发现, Wazuh, Webshell检测, YARA, 云资产可视化, 大语言模型, 安全检测, 自动化规则生成, 逆向工具