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, 导入表提取, 开发者工具, 机器学习, 熵计算, 特征工程, 聊天机器人, 自动化引擎, 逆向工具, 随机森林, 静态特征提取