cyberknight91/detection-engineering
GitHub: cyberknight91/detection-engineering
一个以 Sigma 和 YARA 规则为核心的检测规则库,解决检测规则缺失、映射 ATT&CK 与缺乏真实基线测试的问题。
Stars: 0 | Forks: 0
# 检测工程学
### 不断增长的 Sigma 和 YARA 规则库,手动编写,
映射到 MITRE ATT&CK,基于真实基线调整。
## 这是什么
Reglas de detección que he escrito para engagements pagados y práctica de purple-team,
limpiadas y publicadas aquí. Cada regla del repo tiene que:
1. **Mapear a al menos una técnica MITRE ATT&CK**.
2. **Tener un bloque `falsepositives:` no-boilerplate** — casos reales observados durante tuning, no "none".
3. **Llevar un test case** en `tests/` con un evento positivo y (cuando aplique) una muestra negativa de baseline.
4. **Pasar `sigma check`** en CI en cada push.
Esto no es un fork de SigmaHQ. Son mis reglas — algunas cubren gaps en los rulesets públicos, otras son reworks más ajustados de reglas community más ruidosas.
## 库
### Sigma · Windows
| Regla | Técnica | Estado | Notas |
|-------|---------|:------:|-------|
| [Macro de Office genera hijo sospechoso](rules/sigma/windows/initial_access/office_macro_suspicious_child.yml) | [T1566.001](https://attack.mitre.org/techniques/T1566/001/) | stable | Caza el patrón initial-access de Emotet/Qakbot sin depender de nombres de binario |
| [WDigest re-habilitado vía registry](rules/sigma/windows/credential_access/wdigest_uselogoncredentials_enabled.yml) | [T1112](https://attack.mitre.org/techniques/T1112/) | stable | Pre-requisito para captura de passwords en claro desde LSASS |
### Sigma · Linux
| Regla | Técnica | Estado | Notas |
|-------|---------|:------:|-------|
| [Modificación de sudoers fuera de visudo](rules/sigma/linux/credential_access/sudoers_modified_without_visudo.yml) | [T1548.003](https://attack.mitre.org/techniques/T1548/003/) | stable | Basada en auditd — detecta inyección de NOPASSWD en `/etc/sudoers*` |
### Sigma · Network
| Regla | Técnica | Estado | Notas |
|-------|---------|:------:|-------|
| [Patrón sospechoso de beaconing DNS TXT](rules/sigma/network/dns_txt_high_entropy_beacon.yml) | [T1071.004](https://attack.mitre.org/techniques/T1071/004/) | experimental | Usa umbrales de entropía, requiere tuning por entorno |
### YARA
| Regla | Target | Estado | Notas |
|-------|--------|:------:|-------|
| [Heurísticas de WebShell PHP](rules/yara/php_webshell_heuristics.yar) | archivos | stable | Heurística callback + ofuscación 3-de-5, cubre familias c99 / r57 / weevely / WSO / Alfa / IndoXploit por banner + patrón |
## 格式
Cada regla vive al lado de un archivo de análisis corto con el mismo stem:
```
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:
```
tests/
├── office_macro_suspicious_child.positive.json evento que TIENE que matchear
└── office_macro_suspicious_child.negative.json evento baseline benigno
```
El workflow CI valida sintaxis de la regla, luego corre cada regla contra sus eventos positivo/negativo de test y rompe el build si hay desacuerdo.
## CI
Mira [`.github/workflows/validate.yml`](.github/workflows/validate.yml).
Por push:
1. `sigma check rules/sigma/` — validación de sintaxis.
2. `sigma convert -t lucene / -t splunk / -t wazuh` — smoke test de portabilidad a backends.
3. `yaratest` — hits positivo/negativo en tests.
4. Markdown link check en los docs de análisis.
## 使用规则
### 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/
```
## 将自己的规则贡献到仓库
Mira [`docs/CONTRIBUTING.md`](docs/CONTRIBUTING.md). Versión corta: abre un PR con la regla, su doc de análisis, y las muestras de test positivo y negativo. CI corre.
## 相关项
- [`purple-lab`](https://github.com/cyberknight91/purple-lab) — los atomics que cazan estas reglas.
- [`ad-attack-detection`](https://github.com/cyberknight91/ad-attack-detection) — parejas específicas de AD.
- [`siem-homelab`](https://github.com/cyberknight91/siem-homelab) — el stack donde valido reglas.
映射到 MITRE ATT&CK,基于真实基线调整。
Hecho por cyberknight91 · Parte del portfolio Purple Team · Licencia MIT
标签:CI验证, Cloudflare, Conpot, DNS信息、DNS暴力破解, MITRE ATT&CK, Office宏, Purple Team, Sigma规则, WDigest, Windows安全, YARA规则, 凭证访问, 初始访问, 基线调优, 恶意宏, 目标导入, 规则映射, 逆向工具