Armin-devhub/sigma-detection-portfolio

GitHub: Armin-devhub/sigma-detection-portfolio

一套映射MITRE ATT&CK的Windows攻击行为Sigma检测规则库,附带桌面GUI用于规则管理、Sysmon日志评估和SIEM查询转换。

Stars: 0 | Forks: 0

# Sigma 检测规则作品集 一个针对常见 Windows 攻击者行为的 **Sigma 检测规则**库, 映射到 **MITRE ATT&CK** —— 附带一个**桌面应用程序**,用于读取、编写、编辑、运行 和转换它们,此外还有一个评估器,可以**针对真实的 Sysmon 日志运行规则**,让你不仅限于验证 YAML,还能看到它们的实际触发过程。 作为 SOC 分析师 / 检测工程作品集的一部分构建。 ![Sigma 规则管理器](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/db747634fa221656.png) ``` ┌───────────────┐ ┌──────────────┐ ┌────────────────────┐ │ Sysmon logs │ → │ Sigma rules │ → │ matches + severity │ │ (EventID 1+10)│ │ (this repo) │ │ (GUI or evaluate) │ └───────────────┘ └──────────────┘ └────────────────────┘ ``` ## 规则 每个规则都是位于 [`rules/`](rules/) 中的 Sigma YAML 文件,包含描述、 参考信息、MITRE 标签、误报说明和严重级别。 | 规则 | MITRE | 级别 | 检测内容 | |------|-------|-------|---------| | PowerShell 执行 | T1059.001 | informational | 任何 PowerShell 启动(基线/构建块) | | 编码的 PowerShell 命令 | T1027, T1059.001 | high | `-enc` / `-EncodedCommand` 混淆脚本 | | Certutil 下载 (LOLBin) | T1105 | high | 滥用 `certutil` 下载 payload | | 系统发现 / 侦察 | T1033, T1082, T1016 | low | `whoami` / `systeminfo` / `ipconfig` / `net` 侦察 | | 从可疑路径执行 | T1036 | medium | 从 Temp / Downloads / AppData 运行的进程 | | Office 应用程序生成 shell | T1566.001, T1059 | high | Word/Excel/Outlook 启动 cmd/PowerShell(宏链) | | HackTool - Mimikatz 执行 | T1003 | high | Mimikatz 命令行参数(`sekurlsa::` 等) | | LSASS 内存访问 | T1003.001 | high | **行为** — 任何读取 `lsass.exe` 内存的进程 | 最后两条以两种方式涵盖了**凭据转储 (T1003)**:通过*特征* (Mimikatz 的命令行)和通过*行为*(读取 LSASS 内存,EventID 10)。 基于行为的规则更难规避 —— 即使攻击者重命名了 他们的工具它也会触发,因为他们仍然必须触碰 LSASS。 ## 桌面应用 — Sigma 规则管理器 一个基于 CustomTkinter 的 GUI(`sigma_manager.py`),无需接触 终端即可管理规则: ``` python -m sigma_manager ``` - **读取** — 选择一个规则以查看易于理解的摘要(标题、级别、MITRE、误报)及其 YAML - **创建 / 编辑 / 删除** — 从模板编写新规则,编辑 YAML, 或移除规则 - **运行** — 针对您的日志运行选定的规则(或所有规则),并查看哪些 事件匹配,按严重程度进行颜色编码 - **选择日志** — 将其指向任何日志文件或文件夹(默认为 `test-data/`) - **转换** — 将规则转换为真实的 **Splunk SPL**、**Elastic** 或 **Sentinel KQL** 查询,展示 Sigma 的“一次编写,随处运行” ## 测试 — 实际触发的规则 (CLI) `evaluate.py` 是一个**轻量级 Sigma 评估器**(不是完整的 SIEM)。它解析 来自 `test-data/` 日志中的 Sysmon 进程创建(EventID 1)和进程访问(EventID 10)事件,并将每个规则的检测逻辑与它们进行匹配。 ``` python -m venv .venv .\.venv\Scripts\Activate.ps1 pip install -r requirements.txt python evaluate.py ``` 输出示例: ``` Loaded 392 process events from 2 log file(s) RULE LEVEL HITS ---------------------------------------------------------------- Certutil Download (LOLBin) high 1 Execution From Suspicious Path medium 18 Office Application Spawning a Shell high 2 Encoded PowerShell Command high 7 PowerShell Execution informational 19 System Discovery / Recon Commands low 1 ``` 该仓库提供了一个**合成示例日志**(`test-data/sample/`),其中包含安全的、 精心设计的攻击者风格事件,因此对于任何 克隆它的人来说,规则都能确凿地触发。真实的主机遥测数据已被 git 忽略。 支持的 Sigma 子集:`field[|modifier]: value|list` 的命名选择块 (修饰符 `contains` / `startswith` / `endswith` / `all`)和布尔 条件(`and` / `or` / `not`,`N of ...`,`all of ...`)。这涵盖了 这里的规则;它是一个学习工具,不能替代 SIEM 后端。 ## 将规则转换为 SIEM 查询 `sigma_convert.py` 是 GUI 的**转换**按钮使用的内置(简化)转换器 —— 一个 Sigma 规则 → Splunk SPL / Elastic / Sentinel KQL。要实现 完整的规范,官方工具也可以工作(这些是标准的 Sigma 规则): ``` pip install sigma-cli sigma check rules/ # validate syntax sigma convert -t splunk rules/ # convert to Splunk SPL ``` ## 项目结构 ``` sigma-detection-portfolio/ ├── rules/ # the Sigma detection rules (YAML) ├── test-data/ │ ├── sample/ # synthetic safe demo events (committed) │ └── sysmon/ # real host logs (git-ignored) ├── sigma_manager.py # desktop GUI (read/create/edit/delete/run/convert) ├── sigma_convert.py # Sigma -> Splunk/Elastic/Sentinel converter ├── evaluate.py # lightweight Sigma evaluator (CLI) ├── requirements.txt └── README.md ``` ## 备注 - 严重性是刻意设置的:广泛的规则(PowerShell、侦察)是 `informational` / `low` 构建块;高保真行为(编码命令、Office → shell、LOLBin 下载)是 `high`。在 SIEM 中,您会将低级别规则 与关联结合起来,而不是针对每一个单独告警。 - 每个规则中的误报说明反映了检测需要根据 基线进行调优 —— 这是在构建配套的 [IOC 富集工具](https://github.com/Armin-devhub/ioc-enrichment-tool) 时学到的同样教训。
标签:AMSI绕过, DNS 反向解析, DNS 解析, OpenCanary, Sigma规则, SOC分析, Sysmon, 后渗透, 威胁检测, 安全, 无线安全, 桌面应用, 目标导入, 网络信息收集, 超时处理, 逆向工具