Kaboombafoo/medusa-detections
GitHub: Kaboombafoo/medusa-detections
基于 Sigma 和 Splunk 的 Medusa 勒索软件检测规则集,展示了从威胁情报到实验室验证的完整检测工程工作流。
Stars: 0 | Forks: 0
# Medusa 勒索软件 — 检测工程项目
一个检测工程工作流练习:提取真实勒索软件行为者的特征行为,对照权威威胁情报进行验证,编写检测规则,并在实验室环境中进行端到端验证。
## 本项目展示了什么
- 从 CISA 咨询报告中提取对手的 TTP,并将其与 MITRE ATT&CK 的实时对象(Medusa Group **G1051**,Medusa Ransomware **S1244**)进行核对。
- 处理 ATT&CK 版本漂移问题(v19 Defense Evasion 重构 — 例如 `T1562.001` → `T1685`)。
- 编写与供应商无关的 **Sigma** 规则,并使用 `sigma-cli` 将其编译为 **Splunk SPL**。
- 针对由 **Atomic Red Team** 生成的真实攻击者遥测数据验证检测,包括证明真阳性触发和阴性情况的特异性。
- 诊断转换器输出与实际 SIEM 摄入之间的真实 pipeline/field-mapping 不匹配问题(`EventID` 与 `EventCode`)。
## 诚实的范围声明
本仓库是一个**工作流和实验室验证练习**,而不是对检测工程精通程度的宣称。这种区别是刻意为之,并贯穿始终:
- **端到端编写并理解:** T1490 vssadmin 卷影副本删除规则。此规则是手动设计的,其设计决策可以被解释(双重二进制标识匹配、token 而非 flag 匹配、刻意的范围限定),并且已在实验室中通过记录的阳性和阴性测试进行了验证。
- **为实现覆盖而生:** 其余规则是根据已验证的目标列表生成,并使用 `sigma-cli` 编译的。它们在技术上是正确的,并且可以追溯到权威的 ATT&CK 映射,但并非逐一手动编写。包含它们是为了使覆盖图完整,并已照此标明。
## 环境
安装了 Sysmon 的 Windows 虚拟机(进程创建,Event ID 1) → 日志转发器 → Splunk。使用 Atomic Red Team 进行攻击者行为模拟。检测规则以 Sigma 编写,使用 `sigma-cli` 编译为 SPL(splunk backend,`splunk_windows` 和 `sysmon` pipeline)。
## 仓库布局
```
detections/
sigma/ Vendor-neutral Sigma rules (the portable source of truth)
test-evidence/
T1490/ Screenshots + test record for the validated rule
coverage-map.md The verified ATT&CK target list
```
## 检测覆盖
目标行为,已针对 G1051 / S1244 验证(完整验证详情请参见 `coverage-map.md`):
| # | 行为 | 技术 | 状态 |
|---|----------|-----------|--------|
| 1 | 卷影副本删除 (`vssadmin delete shadows`) | T1490 | 已编写 + 实验室验证 |
| 2 | 服务停止 (`taskkill /F /IM`, `net stop`) | T1489 | 自动生成 + 实验室验证 |
| 3 | PowerShell 历史记录擦除 | T1070.003 + T1690 | 自动生成 + 实验室验证 |
| 4 | 编码的 PowerShell | T1059.001 + T1027.010 | 自动生成(未经实验室验证) |
| 5 | 启用 RDP(注册表 + 防火墙) | T1112 + T1686 | 自动生成(进程创建代理;未经实验室验证) |
| 6 | BYOVD — 禁用安全工具 | T1685 (+T1543.003, T1553.002) | 自动生成(未经实验室验证 — 参见规则范围说明) |
**验证总结:** 6 个检测中有 3 个在 Splunk 中针对 Atomic Red Team / 直接攻击者命令刺激进行了实验室验证(T1490、T1489、T1070.003)。其余 3 个是根据已验证的 MITRE 映射编写的,但未经实验室验证:编码的 PowerShell 因时间限制被排除在外,而启用 RDP 和 BYOVD 已被记录为需要非进程创建遥测(registry_set / driver_load 事件)加上 YARA 才能正确验证。这种划分是刻意为之的 — 强制在无法在短时间内验证的技术上获得看似完美的通过(尤其是 BYOVD)将会歪曲这项工作。
## 关键发现(T1490 验证)
该规则在*执行尝试*时触发,而不管是否存在可供删除的卷影副本 — 这是加密前勒索软件 canary 的正确行为。特异性已经过经验证明:在同一个测试窗口中,检测查询仅返回 `delete shadows` 事件,而广泛的查询则同时返回 `delete` 和良性的 `list shadows` 事件,确认该规则是根据命令行为进行区分,而不仅仅是根据 vssadmin 二进制文件。请参见 `test-evidence/T1490/`。
## 注释和诚实的局限性
- 规则是经过实验室验证的,而非经过生产环境测试;误报面已记录在案,但未针对真实环境的基线进行调整。
- `taskkill`/`net stop` (T1489) 具有庞大的良性管理误报面;生产版本需要针对安全/备份服务名称目标或可疑父进程信号进行关联,这被记录为一种收紧方法,但并未实现。
- 在转换过程中遇到的 `EventID` 与 `EventCode` 字段不匹配是一个真实环境的教训:在部署之前,必须将转换器的字段假设与 SIEM 实际摄入数据的方式相协调。
标签:Atomic Red Team, ATT&CK框架, Reconnaissance, Sigma规则, Splunk SPL, 勒索软件检测, 安全检测工程, 数据泄露检测, 目标导入