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规则, 上游代理, 安全规则引擎, 安全运营, 扫描框架, 检测即代码, 目标导入, 逆向工具