abdulhamid-zaro/malware-scanner
GitHub: abdulhamid-zaro/malware-scanner
基于 YARA 规则的恶意软件静态扫描流水线,可递归扫描文件目录并生成结构化报告。
Stars: 0 | Forks: 0
# 恶意软件扫描流水线 🔍
一个基于 Python + YARA 的静态恶意软件分析流水线,可递归扫描
文件存储库以查找恶意软件特征码,并生成结构化报告。



## 概述
该工具通过以下方式自动化跨文件目录的恶意软件搜寻:
- 将文件与自定义 **YARA 规则** 进行匹配
- 将检测结果记录到 **SQLite 数据库**
- 将结果导出为 **CSV 报告**
- 通过 **Docker** 实现完全容器化运行
## 项目结构
```
malware-scanner/
├── rules/
│ └── rules.yar # YARA detection rules
├── samples/ # Test files (clean + suspicious)
├── scanner.py # Main scanning pipeline
├── Dockerfile # Container setup
└── scan_results.csv # Example output
```
## 安装
```
git clone https://github.com/YOUR_USERNAME/malware-scanner.git
cd malware-scanner
pip install yara-python
```
## YARA 规则
`rules/rules.yar` 中包含两条规则:
| 规则 | 描述 | 严重程度 |
|------|-------------|----------|
| `SuspiciousPE` | 检测包含进程注入 API 的 PE 文件 | 高 |
| `SuspiciousStrings` | 检测常见的恶意软件命令字符串 | 中 |
要添加新规则,请将其追加到 `rules/rules.yar`:
```
rule MyNewRule {
meta:
description = "Describe what this detects"
strings:
$s1 = "suspicious_string" nocase ascii
condition:
any of them
}
```
## 使用方法
**本地运行:**
```
python scanner.py
```
**使用 Docker 运行:**
```
docker build -t malware-scanner .
docker run --rm -v "${PWD}/samples:/app/samples" malware-scanner
```
## 输出与报告
控制台输出:
```
[CLEAN] samples/clean_file.txt
[MATCH] samples/suspicious_file.txt → SuspiciousStrings
Files scanned : 2
Clean files : 1
Threats found : 1
```
结果将保存至:
- `scan_results.db` — 用于程序化访问的 SQLite 数据库
- `scan_results.csv` — 用于电子表格分析的 CSV 文件
## 扩展扫描器
- **添加规则** → 编辑 `rules/rules.yar`
- **更改扫描目录** → 编辑 `scanner.py` 中的 `SCAN_DIR`
- **添加 VirusTotal 查询** → 使用文件哈希通过 VT API 丰富匹配信息
## 涉及技能
- 使用 YARA 进行静态恶意软件分析
- Python 自动化与文件系统遍历
- SQLite 数据库集成
- 安全工具的 Docker 容器化
标签:Cybersecurity, DNS信息、DNS暴力破解, Docker容器化, Malware Analysis, PE文件分析, Python安全工具, SQLite数据库, YARA规则, 云安全监控, 内核监控, 后端开发, 威胁情报, 安全管道, 开发者工具, 恶意软件扫描, 文件扫描器, 结构化查询, 网络安全, 自动化安全, 请求拦截, 逆向工具, 隐私保护, 静态分析