MetaMaaz/sigma-detection-rules
GitHub: MetaMaaz/sigma-detection-rules
一个包含 16 条经过双向测试的 Sigma 安全检测规则仓库,覆盖多平台日志并映射 MITRE ATT&CK,每条规则通过 pytest 与 CI 验证真阳性与真阴性。
Stars: 0 | Forks: 0
# Sigma 检测规则

16 条经过测试的 Sigma 检测规则,涵盖 Windows、Linux、Web 服务器和 AWS
CloudTrail 日志。每条规则都配有一个必须捕获的恶意日志样本,
以及一个必须忽略的良性样本,这由 pytest 和 CI 在每次推送时强制执行。
## 实战示例
`win_lsass_memory_dump` 规则用于捕获凭据窃取 (T1003.001) —
攻击者通过转储 LSASS 内存来窃取密码哈希。以下是针对两条
真实进程创建日志的检测结果:
**恶意日志** — 使用 comsvcs.dll MiniDump 技巧转储 LSASS:
```
{ "CommandLine": "rundll32.exe comsvcs.dll, MiniDump 624 C:\\temp\\lsass.dmp full" }
```
```
→ MATCH — alert fires (target 'lsass' + tool 'MiniDump' both present)
```
**良性日志** — procdump 正常用于普通应用程序(PID 1337,而非 LSASS):
```
{ "CommandLine": "procdump.exe -ma 1337 C:\\temp\\myapp.dmp" }
```
```
→ no match — the dump tool is present, but the target isn't LSASS, so no alert
```
第二种情况才是关键:该规则要求*同时*满足 LSASS 目标和
转储工具,因此管理员转储自己的应用程序时不会在凌晨 2 点惊动 SOC。
本仓库中的每条规则都遵循同样的双向测试标准。
## 覆盖范围
16 条规则 · 15 项 MITRE ATT&CK 技术 · 8 种战术 — 完整表格见
[MITRE-COVERAGE.md](MITRE-COVERAGE.md),或加载 [layer.json](layer.json)
到 [ATT&CK Navigator](https://mitre-attack.github.io/attack-navigator/)
以生成热力图(使用 `python scripts/navigator_layer.py > layer.json` 重新生成)。
重点:
| 规则 | ATT&CK | 平台 |
|------|--------|----------|
| 通过 Procdump 或 Comsvcs 进行的 LSASS 内存转储 | T1003.001 | Windows |
| 删除卷影副本 (勒索软件) | T1490 | Windows |
| 执行 PowerShell 编码命令 | T1059.001 | Windows |
| 通过 /dev/tcp 进行的 Bash 反向 Shell | T1059.004 | Linux |
| 向上传目录上传 Web Shell | T1505.003 | Web |
| Web 请求中的 SQL 注入模式 | T1190 | Web |
| AWS Root 账户活动 | T1078.004 | AWS |
## 每条规则的测试方式
`rules/` 中的每条规则都通过文件名与两个日志样本配对:
```
rules/linux/lnx_reverse_shell_devtcp.yml # the detection
tests/logs/true/lnx_reverse_shell_devtcp.json # malicious log — MUST match
tests/logs/false/lnx_reverse_shell_devtcp.json # benign log — MUST NOT match
```
`tests/test_rules.py` 对每条规则运行三项检查:
1. **解析** — pysigma 验证该规则是否为合法的 Sigma 规则。
2. **真阳性** — 规则的检测逻辑能够匹配恶意样本。
3. **真阴性** — 它*不*匹配良性样本,因此范围过于宽泛的
规则(即经典的、会对所有内容触发的 `contains`)会导致构建失败。
```
pip install -r requirements.txt
pytest -v # 65 tests, all green
```
每条规则还会在一个包含约 30 条
常规事件(管理员查询、部署脚本、正常 Web 流量)的共享良性语料库
([tests/logs/benign_corpus.json](tests/logs/benign_corpus.json))上运行。如果某条规则
对其中任何事件触发,构建就会失败。这能防止规则成为
嘈杂告警的来源。
## CI pipeline
每次推送都会运行三道关卡([ci.yml](.github/workflows/ci.yml)):
1. `sigma check rules/` — lint 每条规则(语法、唯一的 UUID、有效的标签)
2. 转换冒烟测试 — 每条规则必须能编译为 Splunk SPL 和
Elastic Lucene 查询
3. `pytest` — 每条规则必须捕获对应的恶意样本,并忽略
对应的良性样本
## 从 Sigma 到你的 SIEM
规则与 SIEM 无关;查询是自动生成的,而非手写的:
```
sigma convert -t splunk --without-pipeline rules/windows/win_lsass_memory_dump.yml
# → CommandLine="*lsass*" CommandLine IN ("*procdump*", "*comsvcs.dll*", "*MiniDump*")
```
更多示例(Splunk、Elastic、Sentinel/KQL)请见 [config/convert.md](config/convert.md)。
## 仓库结构
```
rules/ # Sigma rules by platform: windows/ linux/ web/ cloud/
tests/logs/true/ # one malicious sample per rule (same filename stem)
tests/logs/false/ # one benign sample per rule
tests/test_rules.py
config/convert.md # SIEM conversion guide + example output
scripts/navigator_layer.py # generates layer.json for ATT&CK Navigator
MITRE-COVERAGE.md # full ATT&CK coverage table
.github/workflows/ci.yml
```
## 添加规则
1. 在 `rules//` 下编写规则,包含唯一的 UUID4 `id` 和 ATT&CK 标签。
2. 添加 `tests/logs/true/.json` 和 `tests/logs/false/.json`。
3. `pytest -v` — 如果匹配到了良性样本,说明规则过于宽松;请收紧条件。
4. 推送。剩下的交由 CI 处理。
## 许可证
[MIT](LICENSE)
标签:AMSI绕过, OpenCanary, Sigma规则, 威胁检测, 安全, 安全规则引擎, 目标导入, 超时处理, 逆向工具