Aditya-Sec/Detection-as-Code
GitHub: Aditya-Sec/Detection-as-Code
该项目将一条 Sigma 检测规则自动转换为 Splunk、Elastic、Sentinel/Defender、CrowdStrike 和 QRadar 五大平台的原生查询,并提供统一的多厂商 EDR 响应适配器层。
Stars: 0 | Forks: 0
# 检测即代码 — 一条规则,五大平台
**只需用 Sigma 编写一次检测,即可获得适用于 Splunk、Elastic、Microsoft Sentinel/Defender、CrowdStrike Falcon 和 IBM QRadar 的真正原生查询 — 此外还有一个支持三大主流厂商真实 API 的 EDR 响应层。**



## 为什么会有这个项目 招聘要求中常常提到“具备 Splunk、QRadar、Sentinel、CrowdStrike 的经验”,仿佛它们是可以互换的 —— 但每个平台都有自己专属的查询语言,没有人能同时具备所有这些平台的实际生产环境操作经验。这个项目采取了截然不同的方式:**只需编写一次检测逻辑,就能理解它如何跨平台映射**,并使用真实且积极维护的开源转换库 —— 而不是凭空捏造的输出。 响应也遵循同样的原则:针对同一个操作(隔离主机),各家 EDR 厂商都有完全不同的 API。这里的适配器层针对每个厂商真实且已记录的 API 契约,实现了一个通用接口。
## 哪些是真实的,哪些不是 ✅ **真实情况:** 所展示的每一个查询均由真实、开源的 Sigma 后端库(`pysigma-backend-splunk`、`-elasticsearch`、`-kusto`、`-crowdstrike`、`-qradar`)生成,并已验证能够为每个平台的实际查询语言生成语法正确的输出。 ✅ **真实情况:** 每个 EDR 适配器构建的请求,都与各厂商在公共 API 参考文档中所记录的确切方法、URL 和 payload 结构完全匹配。 ❌ **不真实且从未声明过的内容:** 本项目已在真实的 Splunk/QRadar/Sentinel/CrowdStrike/SentinelOne 租户环境中运行过。这些平台均未提供可用于完整端到端测试的免费套餐。经过验证的是*转换过程*和*请求构建* —— 两者都是真实的,且均可检验 —— 而不是生产环境的部署。
## 第 1 部分 — 检测转换 位于 [`rules/`](rules) 中的三个真实 Sigma 规则,每个都映射到 MITRE ATT&CK,并被转换为: | 平台 | 查询语言 | 后端库 | |---|---|---| | Splunk | SPL | `pysigma-backend-splunk` | | Elastic / OpenSearch | Lucene / DSL | `pysigma-backend-elasticsearch` | | Microsoft Sentinel / Defender | KQL | `pysigma-backend-kusto` | | CrowdStrike Falcon | LogScale 查询语言 | `pysigma-backend-crowdstrike` | | IBM QRadar | AQL | `pysigma-backend-qradar` | ``` python converter.py ``` 通过所有五个后端运行全部三个规则,并打印出每个生成的查询 —— 包含 15 个真实转换,已在 `tests/test_conversion.py` 中进行检查。 **Web UI:** ``` pip install -r requirements.txt python app.py # 打开 http://127.0.0.1:5000 ``` 从下拉菜单中选择一个规则,即可实时查看并排生成的全部五个原生查询。
## 第 2 部分 — EDR 响应适配器 [`edr_adapters/`](edr_adapters) 以三种方式实现了一个接口(`isolate_host`、`get_alerts`): - **CrowdStrike Falcon** — `devices-actions/v2?action_name=contain`,Bearer OAuth2 - **Microsoft Defender for Endpoint** — `/machines/{id}/isolate`,默认使用 `Selective` 隔离(而非 `Full`),以便设备在调查期间仍能与管理工具保持通信 - **SentinelOne** — `/agents/actions/disconnect`,`ApiToken` 认证方案(特意设计为与其他两家的 Bearer 模式不同 —— 这种不一致性正是此适配器层存在并需要向调用方隐藏的内容) ``` python tests/test_edr_adapters.py ``` 验证了全部 10 项检查 —— 确保每个适配器都能构建出完全符合其厂商 API 文档规范的请求结构。
## License MIT — 详见 [LICENSE](LICENSE)。
标签:EDR响应, Python, Sigma规则, URL发现, 安全检测, 安全运营, 扫描框架, 无后门, 目标导入, 逆向工具