Nathanmarc/Auto-yara-engine
GitHub: Nathanmarc/Auto-yara-engine
基于机器学习算法自动从 PE 恶意软件样本中提取静态特征并生成 YARA 检测规则的命令行工具。
Stars: 0 | Forks: 0
# Auto YARA Engine
Auto YARA Engine 是一个用于从 PE 样本生成 YARA 规则的命令行 pipeline。它对恶意软件和良性样本语料库进行预处理,提取静态特征,通过双聚类或 Random Forest 特征选择来构建规则,并可以选择根据留出的样本验证规则。
## 功能
- 递归扫描恶意软件和良性输入目录以查找 PE 文件。
- 提取节字节、熵、字节 n-grams、字符串、导入表和操作码序列。
- 使用 `biclustering` 或 `random_forest` 生成 YARA 规则。
- 可选择在拆分的验证集上验证生成的规则。
- 为每次运行写入 JSON、CSV 和清单报告。
## 项目结构
- `main.py` - 完整 pipeline 的 CLI 入口点。
- `config.py` - 共享常量和日志配置。
- `modules/preprocessor.py` - PE 解析、规范化和熵启发式计算。
- `modules/feature_extractor.py` - 静态特征提取。
- `modules/rule_engine.py` - 规则生成逻辑。
- `modules/validator.py` - 针对留出样本的 YARA 验证。
- `modules/reporter.py` - 控制台指标和报告文件输出。
- `data/` - 输入语料库,分为 `malware/` 和 `benign/`。
- `rules/` - 生成的 YARA 规则。
- `results/` - 运行摘要、指标、清单和日志。
## 环境要求
- 推荐使用 Python 3.10+
- 依赖项列在 `requirements.txt` 中
- 需要恶意软件和良性输入的 PE 样本
## 安装说明
```
pip install -r requirements.txt
```
## 使用说明
从项目根目录运行该引擎:
```
python main.py --malware_dir data/malware --benign_dir data/benign --family TestFamily --engine biclustering --validate
```
### CLI 参数
- `--malware_dir` - 恶意软件样本目录的路径。
- `--benign_dir` - 良性样本目录的路径。
- `--family` - 用于生成规则和报告的恶意软件家族标签。
- `--engine` - 规则生成引擎,可选 `biclustering` 或 `random_forest`。
- `--validate` - 在规则生成后启用留出验证。
- `--output_dir` - 写入 `rules/` 和 `results/` 的目录。默认为项目目录。
## 输出
每次运行会创建:
- `rules/` 下的一个 YARA 规则
- `results/` 下的一个摘要 JSON 报告
- 启用验证时,`results/` 下的一个指标 CSV 文件
- `results/` 下的一个规则清单 JSON 文件
- 日志文件位于 `results/auto_yara_engine.log`
## 备注
- 预处理步骤仅保留选定的 PE 节,例如 `.text`、`.data` 和 `.rsrc`。
- 非常小的数据集可能无法支持干净的训练/验证拆分;pipeline 会尽可能在训练中保留这两个类别。
- 生成的规则包含简单的 MZ 头检查和选定的特征匹配。
标签:Apex, DNS 反向解析, PE样本分析, Python安全工具, YARA规则生成, YARA验证, 分类与关键词助手, 双聚类, 威胁情报, 字节N-gram, 导入表提取, 开发者工具, 机器学习, 熵计算, 特征工程, 聊天机器人, 自动化引擎, 逆向工具, 随机森林, 静态特征提取