kbugra/Detection-as-Code-Lab
GitHub: kbugra/Detection-as-Code-Lab
基于 Sigma 规则的检测即代码实验室,实现检测规则版本化管理、样本验证和 SIEM 查询自动构建。
Stars: 0 | Forks: 0
[EN]
# 检测即代码 (DaC) 工厂:Windows Security Sigma 包
*土耳其语 (TR) 版本在下方。*
## 项目愿景
本仓库将检测工程视为代码。Sigma 规则经过版本控制,基于精心整理的攻击/良性样本进行验证,并通过 GitHub Actions 自动编译为 SIEM 就绪的查询语句。
## 本仓库的实际功能
1. 在 `/rules/sigma/` 下编写与供应商无关的 Sigma 规则。
2. 使用 `/tests/dataset/` 下的阳性和阴性样本验证这些规则。
3. 使用 Sigma CLI 运行语法检查。
4. 将 Splunk SPL 和 Elasticsearch Lucene 输出构建到 `/build/` 中。
5. 从 CI 上传生成的构建产物,供下游 SIEM 使用。
## 验证模型
验证工作流由 `/tests/validation_cases.json` 驱动,并通过 `python tools/validate_datasets.py` 执行。
- 阳性样本确保每条规则在预期的攻击样本上触发。
- 阴性样本确保同一规则在精选的良性活动上不触发。
- 数据集文件夹包含 Mordor 风格的日志和轻量级实验室样本,格式为类 Sysmon 的 JSON/JSONL,用于确定性的 CI 验证。
- 丰富的样本(如 `mordor_lsass_dump.json` 和 `schtasks_create.json`)包含小型事件序列而非单个告警行,因此规则在逼真的上下文中进行测试。
## 仓库布局
```
rules/sigma/ Sigma detection rules
tests/dataset/ Positive and negative datasets
tests/validation_cases.json
tools/validate_datasets.py
tools/run_sigma_cli.py Offline-safe sigma wrapper
tools/build_sigma.py Build helper for SIEM outputs
build/ Generated artifacts
```
## MITRE ATT&CK 覆盖矩阵
| 战术 | 技术 ID | 技术名称 | Sigma 规则 | 状态 |
| :--- | :--- | :--- | :--- | :---: |
| **Credential Access** | `T1003.001` | LSASS Memory Dumping | `proc_access_win_lsass_susp_access.yml` | Active |
| **Execution** | `T1059.001` | PowerShell Encoded Command | `proc_creation_win_powershell_encoded.yml` | Active |
| **Persistence** | `T1053.005` | Scheduled Task/Job | `proc_creation_win_schtasks_creation.yml` | Active |
| **Impact** | `T1490` | Inhibit System Recovery | `proc_creation_win_vssadmin_delete_shadows.yml` | Active |
## 本地使用
### 1. 运行样本验证
```
python tools/validate_datasets.py
```
### 2. 安装 Sigma CLI 用于检查/构建
```
pip install sigma-cli
python tools/run_sigma_cli.py plugin install splunk
python tools/run_sigma_cli.py plugin install elasticsearch
python tools/run_sigma_cli.py plugin install sysmon
```
使用 `tools/run_sigma_cli.py` 而不是直接调用 `sigma`,以便项目可以在受限环境中运行,而不依赖于用户配置文件缓存路径或实时的 MITRE 元数据下载。
### 3. 运行 Sigma 语法检查
```
python tools/run_sigma_cli.py check rules/sigma/
```
### 4. 构建 SIEM 输出
```
python tools/build_sigma.py
```
生成的文件:
- `build/splunk/windows_detections.spl`
- `build/elastic/windows_detections.txt`
`build/` 是故意生成的,不提交到 git。
## CI/CD 流程
`/.github/workflows/sigma_pipeline.yml` 中的 GitHub Actions 管道执行:
1. 样本验证
2. Sigma 语法/lint 检查
3. Splunk 和 Elasticsearch 构建
4. 构建产物上传
[TR]
# Detection-as-Code (DaC) Factory: Windows Security Sigma 包
## 项目愿景
Bu repo detection engineering sürecini kod gibi ele alır. Sigma kuralları versiyonlanır, saldırı ve benign fixture’lar üzerinde doğrulanır, ardından GitHub Actions ile SIEM’e hazır sorgulara dönüştürülür.
## 此 Repo 实际上在做什么?
1. Vendor-agnostic Sigma kuralları `/rules/sigma/` altında tutulur.
2. Kurallar `/tests/dataset/` altındaki pozitif ve negatif fixture’lara karşı test edilir.
3. Sigma CLI ile syntax/lint kontrolü yapılır.
4. Splunk SPL ve Elasticsearch Lucene çıktıları `/build/` altına üretilir.
5. CI çıktıları artifact olarak yüklenir ve SIEM entegrasyonu için hazır hale gelir.
## 验证模型
Doğrulama akışı `/tests/validation_cases.json` ile tanımlanır ve `python tools/validate_datasets.py` ile çalıştırılır.
- Pozitif fixture’lar her kuralın hedeflenen saldırı örneğinde tetiklendiğini doğrular.
- Negatif fixture’lar aynı kuralın benign aktivitede tetiklenmediğini doğrular.
- Dataset klasörü, deterministik CI doğrulaması için Mordor tarzı loglar ve Sysmon benzeri JSON/JSONL formatında hafif lab fixture’ları içerir.
- `mordor_lsass_dump.json` ve `schtasks_create.json` gibi zenginleştirilmiş fixture’lar tek event yerine küçük bir event akışı içerir; böylece kurallar daha gerçekçi bağlamda test edilir.
## Repo 结构
```
rules/sigma/ Sigma kuralları
tests/dataset/ Pozitif ve negatif datasetler
tests/validation_cases.json
tools/validate_datasets.py
tools/run_sigma_cli.py Offline uyumlu sigma wrapper'ı
tools/build_sigma.py SIEM build helper'ı
build/ Üretilen artifact'ler
```
## MITRE ATT&CK 覆盖矩阵
| Taktik | Teknik ID | Teknik Adı | Sigma Kuralı | Durum |
| :--- | :--- | :--- | :--- | :---: |
| **Credential Access** | `T1003.001` | LSASS Memory Dumping | `proc_access_win_lsass_susp_access.yml` | Aktif |
| **Execution** | `T1059.001` | PowerShell Encoded Command | `proc_creation_win_powershell_encoded.yml` | Aktif |
| **Persistence** | `T1053.005` | Scheduled Task/Job | `proc_creation_win_schtasks_creation.yml` | Aktif |
| **Impact** | `T1490` | Inhibit System Recovery | `proc_creation_win_vssadmin_delete_shadows.yml` | Aktif |
## 本地使用
### 1. 运行 Fixture validation
```
python tools/validate_datasets.py
```
### 2. 安装 Sigma CLI
```
pip install sigma-cli
python tools/run_sigma_cli.py plugin install splunk
python tools/run_sigma_cli.py plugin install elasticsearch
python tools/run_sigma_cli.py plugin install sysmon
```
`sigma` komutunu doğrudan çağırmak yerine `tools/run_sigma_cli.py` kullanılıyor; bunun nedeni kısıtlı ortamlarda kullanıcı profilindeki cache dizinlerine veya canlı MITRE metadata indirmelerine bağımlı kalmamak.
### 3. 运行 Sigma 语法检查
```
python tools/run_sigma_cli.py check rules/sigma/
```
### 4. 生成 SIEM 输出
```
python tools/build_sigma.py
```
Üretilen dosyalar:
- `build/splunk/windows_detections.spl`
- `build/elastic/windows_detections.txt`
`build/` klasörü bilinçli olarak generate edilir ve git’e commit edilmez.
## CI/CD 流程
`/.github/workflows/sigma_pipeline.yml` aşağıdaki adımları çalıştırır:
1. Fixture validation
2. Sigma syntax/lint kontrolü
3. Splunk ve Elasticsearch build
4. Artifact upload
标签:AMSI绕过, Cloudflare, DaC, Detection Engineering, DevSecOps, Elastic Lucene, Elasticsearch, GitHub Actions, Homebrew安装, MITRE ATT&CK, OpenCanary, Python 实现, RFI远程文件包含, Sigma 规则, Splunk SPL, Sysmon, TTPs 检测, Windows 安全, 上游代理, 域名分析, 威胁检测, 安全工程, 检测即代码, 自动化验证, 自动笔记, 逆向工具