cyberknight91/detection-engineering
GitHub: cyberknight91/detection-engineering
一个以 Sigma 和 YARA 规则为核心的检测规则库,解决检测规则缺失、映射 ATT&CK 与缺乏真实基线测试的问题。
Stars: 0 | Forks: 0
# detection-engineering
### 一个不断增长的纯手写 Sigma 和 YARA 规则库,
映射至 MITRE ATT&CK,并基于真实的基线进行了调优。
## 这是什么
这是我为付费项目以及紫队(purple-team)实践编写的检测规则,
经过清理后发布在这里。本仓库中的每条规则都必须:
1. **至少映射到一种 MITRE ATT&CK 技术**。
2. **拥有一个实质性的 `falsepositives:` 块** — 即在调优期间观察到的真实案例,而不是简单的“none”。
3. **在 `tests/` 中包含测试用例**,含有一个阳性事件,并(在适用时)包含一个基线的阴性样本。
4. **在每次 push 时,在 CI 中通过 `sigma check`**。
这不是 SigmaHQ 的 fork。这些是我个人的规则 — 一些用于弥补公共规则集的空缺,另一些则是对噪音较大的社区规则进行了更严格的优化重构。
## 规则库
### Sigma · Windows
| 规则 | 技术 | 状态 | 备注 |
|-------|---------|:------:|-------|
| [Office 宏生成可疑子进程](rules/sigma/windows/initial_access/office_macro_suspicious_child.yml) | [T1566.001](https://attack.mitre.org/techniques/T1566/001/) | stable | 捕获 Emotet/Qakbot 的 initial-access 模式,无需依赖特定的二进制文件名 |
| [通过 registry 重新启用 WDigest](rules/sigma/windows/credential_access/wdigest_uselogoncredentials_enabled.yml) | [T1112](https://attack.mitre.org/techniques/T1112/) | stable | 从 LSASS 捕获明文密码的前提条件 |
### Sigma · Linux
| 规则 | 技术 | 状态 | 备注 |
|-------|---------|:------:|-------|
| [在 visudo 之外修改 sudoers](rules/sigma/linux/credential_access/sudoers_modified_without_visudo.yml) | [T1548.003](https://attack.mitre.org/techniques/T1548/003/) | stable | 基于 auditd — 检测在 `/etc/sudoers*` 中注入 NOPASSWD 的行为 |
### Sigma · Network
| 规则 | 技术 | 状态 | 备注 |
|-------|---------|:------:|-------|
| [可疑的 DNS TXT beaconing 模式](rules/sigma/network/dns_txt_high_entropy_beacon.yml) | [T1071.004](https://attack.mitre.org/techniques/T1071/004/) | experimental | 使用熵阈值,需要根据具体环境进行调优 |
### YARA
| 规则 | 目标 | 状态 | 备注 |
|-------|--------|:------:|-------|
| [PHP WebShell 启发式规则](rules/yara/php_webshell_heuristics.yar) | 文件 | stable | 基于 callback 启发式 + 5 选 3 的混淆检测,通过 banner + 特征覆盖 c99 / r57 / weevely / WSO / Alfa / IndoXploit 家族 |
## 格式
每条规则都附带一个同名的简短分析文件:
```
rules/sigma/windows/initial_access/
├── office_macro_suspicious_child.yml la regla
└── office_macro_suspicious_child.analysis.md por qué funciona + notas FP + hunt queries
```
测试:
```
tests/
├── office_macro_suspicious_child.positive.json evento que TIENE que matchear
└── office_macro_suspicious_child.negative.json evento baseline benigno
```
CI workflow 会验证规则的语法,然后针对其阳性/阴性测试事件运行每条规则,如果出现不匹配则会中断构建。
## CI
查看 [`.github/workflows/validate.yml`](.github/workflows/validate.yml)。
每次 push 时:
1. `sigma check rules/sigma/` — 语法验证。
2. `sigma convert -t lucene / -t splunk / -t wazuh` — 针对不同后端进行可移植性冒烟测试。
3. `yaratest` — 运行测试中的阳性/阴性命中检测。
4. 对分析文档进行 Markdown 链接检查。
## 使用规则
### Elastic Security
```
# 将所有 Sigma 转换为 Elastic 规则
sigma convert -t lucene -f ndjson rules/sigma/ > elastic-rules.ndjson
# 通过 Kibana 导入
curl -X POST "$KIBANA/api/detection_engine/rules/_import?overwrite=true" \
-H "kbn-xsrf: true" -F "file=@elastic-rules.ndjson"
```
### Splunk
```
sigma convert -t splunk rules/sigma/ > splunk-searches.spl
# 将其粘贴到 Splunk → savedsearches.conf
```
### Wazuh
```
sigma convert -t wazuh rules/sigma/ > wazuh-rules.xml
# 与现有的 /var/ossec/etc/rules/local_rules.xml 合并
```
### YARA
```
yara -r rules/yara/ /path/to/scan/
```
## 相关项目
- [`purple-lab`](https://github.com/cyberknight91/purple-lab) — 触发这些规则的 atomics。
- [`ad-attack-detection`](https://github.com/cyberknight91/ad-attack-detection) — 针对性处理 AD 的配对。
- [`siem-homelab`](https://github.com/cyberknight91/siem-homelab) — 用于验证规则的 stack。
映射至 MITRE ATT&CK,并基于真实的基线进行了调优。
由 cyberknight91 制作 · 紫队作品集的一部分 · MIT 许可证
标签:AMSI绕过, Cloudflare, MITRE ATT&CK, Sigma, YARA, 云资产可视化, 威胁检测, 安全, 紫队, 超时处理