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 分析师 / 检测工程作品集的一部分构建。

```
┌───────────────┐ ┌──────────────┐ ┌────────────────────┐
│ 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, 后渗透, 威胁检测, 安全, 无线安全, 桌面应用, 目标导入, 网络信息收集, 超时处理, 逆向工具