AntonSMarinov/yara-rules-collection
GitHub: AntonSMarinov/yara-rules-collection
一套涵盖五大恶意软件分类的 YARA 规则集合,附带 Python 扫描器,帮助安全分析师快速检测和识别已知威胁家族。
Stars: 0 | Forks: 0
# YARA 规则集合
## **作者:** Anton Marinov ([@AntonSMarinov](https://github.com/AntonSMarinov))
## 目录
| 分类 | 规则数 | 覆盖家族 |
|----------|-------|-----------------|
| [通用恶意软件](rules/malware/generic_malware.yar) | 5 | PE 异常、shellcode 注入、UPX 加壳器、注册表持久化 |
| [勒索软件](rules/ransomware/ransomware.yar) | 5 | LockBit, Conti, REvil/Sodinokibi, 通用指标 |
| [RAT 与后门](rules/rats_backdoors/rats_backdoors.yar) | 5 | Cobalt Strike, Meterpreter, AsyncRAT, njRAT |
| [钓鱼文档](rules/phishing/phishing_docs.yar) | 5 | Office 宏、ClickFix、PDF 漏洞、RTF (CVE-2017-11882) |
| [Web Shell](rules/webshells/webshells.yar) | 5 | PHP, ASP/ASPX, JSP, China Chopper, 混淆 shell |
**总计:涵盖 5 个分类的 25 条规则**
## 扫描器
内置的 `scanner.py` 脚本允许您直接从命令行扫描文件或目录。
### 环境要求
```
pip install yara-python colorama
```
### 用法
```
# 扫描单个文件
python scanner.py -f suspicious.exe
# 递归扫描目录
python scanner.py -d /tmp/samples
# 仅使用特定 category 扫描
python scanner.py -d /var/www/html -c webshells
# 按文件扩展名过滤
python scanner.py -d /uploads -e .php .asp .jsp
# 输出为 JSON(用于 SIEM/pipeline 集成)
python scanner.py -f malware.bin --json > results.json
```
### 示例输出
```
════════════════════════════════════════════════════════════
[!] MATCH: Cobalt_Strike_Beacon
File : /tmp/samples/beacon.dll
Category : rats
Severity : CRITICAL
Family : Cobalt Strike
Desc : Detects Cobalt Strike Beacon payloads
Matched : 3 string(s)
@ 0x00004a20 $beacon4 'ReflectiveLoader'
@ 0x00008b10 $cs4 'MSSE-'
@ 0x0000a240 $pipe1 '\\\\.\\pipe\\MSSE-'
════════════════════════════════════════════════════════════
```
## 规则结构
每条规则都遵循一致的元数据 schema:
```
rule Rule_Name
{
meta:
author = "Anton Marinov"
description = "What this rule detects"
category = "ransomware|malware|webshells|phishing|rats_backdoors"
family = "Malware family name (if applicable)"
severity = "critical|high|medium|low"
date = "YYYY-MM-DD"
reference = "https://source-url"
strings:
// ...
condition:
// ...
}
```
### 严重程度级别
| 级别 | 描述 |
|-------|-------------|
| `critical` | 活动威胁,需要立即响应 |
| `high` | 强烈的入侵指标 |
| `medium` | 可疑行为,需要进一步调查 |
| `low` | 低置信度指标,需与其他信号结合使用 |
## 规则分类
### 🦠 通用恶意软件
检测可疑的 PE 特征、shellcode 注入 API 序列、base64 编码的 payload、UPX 加壳以及基于注册表的持久化机制。
### 🔒 勒索软件
涵盖主要的勒索软件家族(LockBit、Conti、REvil)及通用指标,包括加密 API 的使用、勒索说明文档特征以及卷影副本删除命令。
### 🎭 RAT 与后门
包含针对 Cobalt Strike Beacon、Metasploit Meterpreter、AsyncRAT、njRAT 的特征,以及通用的键盘记录/屏幕捕获/网络摄像头访问模式。
### 📧 钓鱼文档
检测恶意的 Office 宏、ClickFix 社会工程学诱饵、PDF JavaScript 漏洞、RTF 漏洞文档(CVE-2017-11882)以及凭据收集页面。
### 🐚 Web Shell
涵盖 PHP、ASP/ASPX 和 JSP Web Shell,包括 China Chopper 家族以及使用链式编码进行高度混淆的变种。
## 集成
### 与 ClamAV 集成
```
# 转换为 ClamAV 格式(需要 yara2clamav)
yara2clamav rules/webshells/webshells.yar > webshells.ndb
```
### 与 SIEM 集成(JSON 输出)
```
python scanner.py -d /var/www --json | curl -X POST https://your-siem/api/events \
-H "Content-Type: application/json" -d @-
```
### 基于 Cron 的定时扫描
```
# /etc/cron.d/yara-scan
0 */6 * * * root python3 /opt/yara-rules-collection/scanner.py \
-d /var/www/html -c webshells --json >> /var/log/yara-scan.json
```
## 局限性
- 这些规则是为**检测**目的编写的,在开发环境中可能会产生误报
- 在采取行动之前,请务必结合上下文验证匹配结果
- 勒索软件家族规则基于**已知样本**——新型变种可能会逃避检测
- 随着威胁行为者不断演变其 TTPs,请定期更新规则
## 资源
- [YARA 文档](https://yara.readthedocs.io/)
- [MITRE ATT&CK](https://attack.mitre.org/)
- [Any.run](https://any.run/) — 交互式恶意软件沙箱
- [VirusTotal](https://www.virustotal.com/) — 多引擎杀毒扫描
- [MalwareBazaar](https://bazaar.abuse.ch/) — 恶意软件样本库
## 许可证
这些规则仅供**防御和教育目的**使用。
请勿对您不拥有或未获得明确测试授权的系统使用这些规则。
*由 SOC 分析师构建,专为 SOC 分析师服务。*
标签:DNS 反向解析, YARA, 云资产可视化, 威胁情报, 开发者工具, 规则集合, 逆向工具