rdx0120/sigma-detection-pack
GitHub: rdx0120/sigma-detection-pack
一个基于 Sigma 规则的检测即代码仓库,以小型医疗机构为参考环境,提供经 CI 测试、映射 MITRE ATT&CK 的可移植 SIEM 检测规则及配套操作手册。
Stars: 0 | Forks: 0
# Sigma 检测包 — 小型医疗机构参考环境
一个检测即代码(detection-as-code)仓库:可移植的 Sigma 规则,在 CI 中经过测试,
映射至 MITRE ATT&CK,并附带详实的覆盖矩阵和
每条规则对应的操作手册。
## 本项目的初衷
大多数 SIEM 检测内容都以未经测试、未版本化的规则形式
深埋于供应商的控制台中。本仓库像对待
应用程序代码一样对待检测内容:版本控制、通过 PR 进行同行评审、
在发布任何内容之前,都会在 CI 中针对合成遥测数据进行测试,
并且提供充足的文档,以便在凌晨 2 点发生安全事件时,除作者之外的其他人也能进行操作。
这些规则基于一个**通用参考环境**建模 —— 一家
使用 Google Workspace 作为身份提供商,并使用带有 EDR 代理的 Windows 终端节点的
小型、多站点医疗机构。本仓库中任何地方都未使用
任何真实组织的数据、主机名、IP 或日志;
所有测试数据(fixtures)均为合成数据。
## 仓库包含内容
```
rules/
identity/ — Google Workspace identity & access detections
endpoint/ — Windows endpoint detections
tests/
fixtures/ — synthetic true-positive / false-positive log samples
test_rules.py — CI-run unit tests per rule
coverage/
coverage.md — what this pack sees, and what it doesn't
attack-navigator-layer.json — importable ATT&CK Navigator heatmap
runbooks/ — one per rule: what it means, how to triage, what to do
.github/workflows/ci.yml — validates, converts, and tests every rule on every PR
```
## 七条规则
| 规则 | ATT&CK | 严重性 |
|---|---|---|
| 不可能登录 | T1078 | 高 |
| 密码喷射 | T1110.003 | 高 |
| 新 OAuth 应用授权 | T1550 / T1528 | 中 |
| 创建邮件转发规则 | T1114.003 | 高 |
| 授予超级管理员权限 | T1098 | 严重 |
| 可疑的编码 PowerShell | T1059.001 | 高 |
| EDR 代理篡改 | T1562.001 | 严重 |
之所以特意从更长的列表中选择这七条规则,是因为:在 Workspace + Windows
环境中,每一条都是被充分理解且极具价值的技术,并且每一条都附带了
可用的测试和操作手册。一份经过实际测试和记录的简短规则列表,比一份未经测试的冗长列表
更有用——也更诚实。
## 安全决策与权衡
- **检测即代码优先于仅限控制台的规则。** 对检测内容的每项
更改都必须经过 pull request,进行语法验证,
作为完整性检查转换为目标后端,并在合并前针对
真阳性(true-positive)和假阳性(false-positive)测试数据进行测试。
- **关联逻辑是公开记录的,而不是隐藏的。** 不可能登录
规则无法表示为单事件 Sigma 匹配。与其
不诚实地将其强行塞入规则文件中,不如通过 `.yml` 记录
意图和所需字段,并通过 `runbooks/impossible_travel.md`
记录实现该逻辑的实际丰富(enrichment)逻辑。
- **倾向于可见性而非静默。** 几条规则(OAuth
授权、邮件转发)被调整为宁可过度告警,也不要
漏报,因为错过一个真实的持久化事件的代价
高于人工花费两分钟关闭一个假阳性的代价。
- **测试工具链特意保持轻量级**,而不是完整的 Sigma
条件解析器(参见 `tests/test_rules.py` 中的文档字符串)。它能
在 CI 中以低廉的成本捕获明显的回归。它并不能替代
针对真实遥测数据的端到端验证——见下文。
## 针对真实遥测数据进行验证(Atomic Red Team)
此处的 CI 测试证明*规则逻辑*在内部是一致的。它
并不能证明该规则能在端到端的真实 SIEM 遥测数据上触发。
为此,每条规则都应通过以下方式进行验证:
1. 针对实验室环境中的终端节点,运行映射的
ATT&CK 技术对应的 **Atomic Red Team** 测试。
2. 确认原始事件进入 SIEM。
3. 确认转换后的 Sigma 规则(通过 `sigma convert`)确实能在该事件上
触发告警。
这种两步验证(CI 单元测试 + Atomic Red Team 实弹演练)是
本仓库在发展过程中致力于达到的标准。
## 已知局限性
请参阅 `coverage/coverage.md` 获取完整且详实的列表 —— 没有横向移动
检测覆盖,没有 macOS/Linux 终端节点覆盖,并且
PowerShell 规则是基于签名的,而不是基于行为的。公开记录
这些空白正是本仓库意义的一部分。
## 路线图
- 一旦接入网络
流量遥测数据,即添加横向移动检测(SMB/RDP/WinRM 滥用)。
- 在 CI 中添加第二个后端转换目标(Splunk),以展示
跨平台可移植性。
- 将 Atomic Red Team 执行过程接入针对
一次性实验室环境的定时 CI 任务。
## 在本地运行测试
```
pip install pyyaml pytest
python3 -m pytest tests/ -v
```
标签:DevSecOps, Modbus, OpenCanary, SIEM规则, Sigma规则, 上游代理, 安全规则引擎, 安全运营, 扫描框架, 检测即代码, 目标导入, 逆向工具