DeCyberGuardian/malware-analysis
GitHub: DeCyberGuardian/malware-analysis
一个基于 YARA 的恶意软件检测实践项目,提供自定义规则、测试样本和自动化扫描脚本,帮助用户完成端到端的检测流程。
Stars: 0 | Forks: 0
# 🦠 使用 YARA 进行恶意软件分析
一个小巧且注重实践的 YARA 项目,用于识别文件和电子邮件中的可疑模式。我构建它的目的是为了从头到尾练习完整的检测流程——编写规则逻辑、对样本运行规则以及记录结果——并且任何人都可以克隆并运行这套环境。
## 包含内容
- **自定义 YARA 规则**:我编写的用于邮件模式检测、恶意文件签名和可疑文件扩展名的规则
- **运行脚本** (`run_yara_rules.sh`):使用对应的规则扫描每个样本,并生成单次扫描日志以及汇总摘要
- **样本文件**:确保项目开箱即用
- **Dockerfile**:提供可复现的运行环境
## 📁 目录结构
```
malware-analysis/
├── rules/ # YARA rules (email, signatures, extensions, test)
├── samples/ # test files to scan
├── logs/ # per-rule output
├── run_yara_rules.sh
├── analysis_summary.txt
└── Dockerfile
```
## 🚀 快速开始
前置条件:YARA、Git,以及(可选)Docker。
```
git clone https://github.com/DeCyberGuardian/malware-analysis.git
cd malware-analysis
chmod +x run_yara_rules.sh
./run_yara_rules.sh
```
结果将保存在 `logs/` 和 `analysis_summary.txt` 中。
## ✍️ 规则解析
每个 YARA 规则都包含三个部分——`meta`、`strings` 和 `condition`。以下是其中一条邮件规则:
```
rule suspicious_email {
meta:
description = "Detects suspicious email addresses tied to known-bad domains"
strings:
$email_regex = /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}/
$malicious_domain1 = "maliciousdomain1.com"
$malicious_domain2 = "maliciousdomain2.org"
condition:
$email_regex and ($malicious_domain1 or $malicious_domain2)
}
```
针对单个样本运行单条规则:
```
yara rules/email_pattern.yar samples/test_email.txt
```
或者一次性执行所有规则:
```
yara rules/*.yar samples/*
```
## 🧠 构建过程中的笔记
- 包含大量正则表达式的规则会引发性能警告——我保持了模式的精确性,并使用 `filesize` 进行了限制(例如 `filesize < 1MB and $email_regex`),而不是盲目扫描每个文件的每个字节。
- 将一条庞大的正则表达式规则拆分为几条针对性强的规则,使得匹配结果更容易推理和调试。
## 🛣️ 后续计划
- 扩充签名集,使其覆盖测试样本之外的更多范围
- 添加规则以检测常见的钓鱼工具包特征和包含宏的文档
## 📄 许可证
MIT —— 随意 fork,欢迎提 issue,也期待您的改进建议。
标签:DAST, DNS 反向解析, YARA, 云资产可视化, 威胁情报, 开发者工具, 恶意软件分析, 网络信息收集, 请求拦截