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 安全, 上游代理, 域名分析, 威胁检测, 安全工程, 检测即代码, 自动化验证, 自动笔记, 逆向工具