jyotixzy/yara_rule_engine
GitHub: jyotixzy/yara_rule_engine
面向邮件的 YARA 规则驱动型深度内容扫描与威胁检测工具。
Stars: 0 | Forks: 0
# YARA EML 扫描器
该项目解析 `.eml` 文件,提取并解码附件,从内容中检测真实文件类型,递归解包支持的容器,并使用从以下位置收集的 YARA 规则进行扫描:
- `Yara-Rules/rules`
- `Neo23x0/signature-base`
## 流程
1. 使用 Python email 包解析 `.eml` 文件。
2. 提取附件并解码传输编码。
3. 通过魔数(magic bytes)和归档签名检测实际文件类型。
4. 将容器文件递归解包到临时工作区。
5. 编译本地第三方仓库中的 YARA 规则。
6. 扫描每个提取的真实文件并输出结构化结果。
7. 记录干净、恶意、跳过和错误状态。
## 项目结构
- `src/yara_eml_scanner/cli.py` - CLI 入口点。
- `src/yara_eml_scanner/pipeline.py` - 端到端编排。
- `src/yara_eml_scanner/eml_parser.py` - EML 解析与附件提取。
- `src/yara_eml_scanner/file_types.py` - 基于内容的类型检测。
- `src/yara_eml_scanner/container_unpacker.py` - 递归解包。
- `src/yara_eml_scanner/rule_loader.py` - YARA 规则发现与编译。
- `src/yara_eml_scanner/scanner.py` - YARA 扫描与结果整形。
- `src/yara_eml_scanner/logging_utils.py` - 日志辅助工具。
- `src/yara_eml_scanner/models.py` - 共享数据类。
## 用法
```
pip install -e .
python -m yara_eml_scanner.cli --eml .\sample.eml
```
或者使用控制台脚本:
```
yara-eml-scan --eml .\sample.eml
```
## 输出
CLI 输出一个 JSON 报告,包含:
- 输入的 EML 路径
- 提取的文件
- 检测到的文件类型
- 解包操作
- 干净 / 恶意状态
- 触发的 YARA 规则
- 编译与提取错误
## 备注
- 扫描器从不只信任文件扩展名;它会检查文件内容。
- 临时文件在受管理的临时工作区中创建,并自动清理。
- 部分第三方 YARA 规则可能无法编译;这些文件会被跳过并报告,而不会中断扫描。
标签:CLI安全工具, EML解析, Neo23x0, Python安全工具, YARA扫描, 临时工作区, 反恶意软件, 威胁情报, 容器解包, 开发者工具, 开源规则, 恶意附件检测, 文件类型识别, 文档结构分析, 规则编译, 逆向工具, 递归解压, 邮件安全, 魔数检测