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, 云资产可视化, 威胁情报, 开发者工具, 恶意软件分析, 网络信息收集, 请求拦截