JP13007/Detection-Engineering-Lab

GitHub: JP13007/Detection-Engineering-Lab

一套基于 Sigma 规范的攻击检测规则集合,配合 Atomic Red Team 进行实测验证与误报调优,演示完整的检测工程工作流程。

Stars: 0 | Forks: 0

# 检测工程实验室:Sigma 规则与 Atomic Red Team 测试 为常见攻击技术构建生产级检测规则。本实验室演示了如何编写 Sigma 检测规则,通过真实的攻击模拟对其进行测试,并进行调优以减少误报。 ## 🎯 项目概述 **什么是检测工程?** 检测工程是构建自动化规则以在攻击得逞前捕获它们的实践。检测工程师不再手动狩猎威胁(被动响应),而是构建能够自动告警的规则(主动防御)。 本实验室演示了完整的工作流程: 1. **识别攻击技术**(来自你的 SOC 调查实验室) 2. **编写 Sigma 检测规则**(行业标准格式) 3. **针对真实攻击进行测试**(使用 Atomic Red Team) 4. **针对误报进行调优**(调整阈值,添加条件) 5. **记录发现**(哪些有效,哪些无效,经验教训) ## 📋 包含的 Sigma 规则 针对 SOC 调查实验室中技术的五条检测规则: | # | 技术 | MITRE ID | Sigma 规则 | |---|-----------|----------|-----------| | 1 | 可疑下载与执行 | T1204.002 | rule_1_suspicious_download_execution.yml | | 2 | C2 回连检测 | T1071.001 | rule_2_c2_callback.yml | | 3 | 失败的权限提升 | T1548.002 | rule_3_failed_privilege_escalation.yml | | 4 | 用户/系统枚举 | T1033 | rule_4_user_enumeration.yml | | 5 | 可疑的父子进程 | T1059.003 | rule_5_suspicious_process_parent.yml | ## 🔧 规则详情 ### 规则 1:可疑下载与执行 (T1204.002) **检测内容:** 下载到 Downloads 文件夹的文件,立即被用户执行 **重要性:** 网络钓鱼和水坑攻击使用此模式 —— 攻击者发送恶意文件,用户运行它 **Sigma 逻辑:** Image 以 `.exe` 结尾,父进程是 `explorer.exe`,路径包含 `Downloads` **误报:** 下载并运行的合法软件安装程序(例如,Slack、Discord setup.exe) **调优:** 添加时间阈值 —— 如果文件在执行前下载已超过 1 小时,则可能是合法的 ### 规则 2:C2 回连检测 (T1071.001) **检测内容:** 进程在非常见端口(例如,4444)上连接到外部 IP **重要性:** 反弹 shell 和 C2 beacon 会建立到攻击者基础设施的出站连接 **Sigma 逻辑:** EventID=3(网络连接),DestinationPort 为 4444,DestinationIp 为外部 **误报:** 合法的开发工具(测试框架,远程调试) **调优:** 白名单已知的安全端口(443、80 是合法的)和已知的安全目标 ### 规则 3:失败的权限提升 (T1548.002) **检测内容:** 短时间内连续多次失败的 `net user` 或 `net localgroup` 命令 **重要性:** 攻击者尝试创建帐户和更改组成员身份以进行权限维持 **Sigma 逻辑:** CommandLine 包含 `net user` 或 `net localgroup`,并且 60 秒内发生多个事件 **误报:** 运行批量用户管理脚本的系统管理员 **调优:** 对你的环境中的预期命令频率进行基线评估(例如,如果管理员经常运行此命令,请调整告警阈值) ### 规则 4:用户/系统枚举 (T1033) **检测内容:** 顺序执行多个发现命令(`whoami /all`、`net user`、`systeminfo`) **重要性:** 获取访问权限后,攻击者会枚举系统以计划下一步行动 **Sigma 逻辑:** CommandLine 匹配枚举模式,来自同一进程的多个命令 **误报:** 合法的故障排除脚本,合规性扫描工具 **调优:** 添加进程上下文 —— 如果命令来自系统管理工具(SCCM、Puppet),请将其加入白名单 ### 规则 5:可疑的父子进程 (T1059.003) **检测内容:** 不常见的父子进程关系(例如,notepad.exe → cmd.exe) **重要性:** 攻击者使用合法程序作为启动器来逃避检测 **Sigma 逻辑:** ParentImage 为 `notepad.exe`、`explorer.exe`、`winword.exe`;子进程为 `cmd.exe`、`powershell.exe` **误报:** 某些软件合法地从意外的父进程生成 cmd/PowerShell **调优:** 白名单已知软件,使用文件哈希识别子进程是否已签名/受信任 ## 🧪 测试与调优结果 有关每条规则的详细测试文档,请参阅 `test_results/` 文件夹: - **执行的测试命令**(我们运行了哪些命令来触发规则) - **预期与实际结果**(规则是否触发?是否有误报?) - **调优调整**(我们做了哪些更改以减少误报) - **检测率**(捕获攻击的百分比) ## 🚀 如何使用这些规则 ### 在 Splunk 中 将 Sigma 转换为 Splunk SPL: 1. 使用 [sigma-cli](https://github.com/SigmaHQ/sigma-cli) 或 [sigmac](https://github.com/SigmaHQ/sigma/tree/master/tools) 将 YAML 转换为 SPL 2. 作为保存的搜索或关联搜索导入 Splunk 3. 配置在规则匹配时触发的告警 ### 在其他 SIEM 中 大多数企业 SIEM 都支持 Sigma: - **Elastic/ELK** — 内置 Sigma 支持 - **Microsoft Sentinel** — 提供 Sigma 集成 - **Splunk** — 使用 sigma-cli 转换为 SPL - **ArcSight** — 提供社区转换器 ### 本地测试 在你自己的实验室环境中测试规则: 1. 从你的 Windows 目标导出 Sysmon 事件(EventID 1、3、5 等) 2. 导入 Splunk 或 Elastic 3. 将每个 Sigma 规则作为 SPL/KQL 查询运行 4. 记录结果 ## 📊 关键发现 ### 有效的方面 - **规则 2(C2 回连)** — 检测到 100% 的到非常见端口的出站连接。将开发工具加入白名单后零误报。 - **规则 1(可疑下载)** — 捕获了 update.exe 的执行。需要调整以忽略在下载后 1 小时内运行的软件安装程序。 - **规则 5(进程父子关系)** — 有效标记了 notepad → cmd 场景。大多数误报来自管理工具。 ### 需要调优的方面 - **规则 3(失败的提权)** — 如果管理员运行批量用户脚本,误报率很高。需要针对每个环境进行基线调优。 - **规则 4(枚举)** — 多种合法工具使用枚举命令。需要调优:按进程签名进行白名单。 ### 经验教训 1. **上下文很重要** — 相同的命令(net user)在一种上下文中(攻击者后期利用)是恶意的,但在另一种上下文中(管理员自动化)是合法的。规则需要上下文。 2. **误报会扼杀检测** — 如果规则经常对良性活动触发,分析师会忽略它(告警疲劳)。调优至关重要。 3. **白名单是必不可少的** — 不要阻止工具,将已知的安全项列入白名单。你的检测应该对运行枚举命令的*未知*可执行文件发出告警,而不是所有的枚举。 4. **特定环境** — 在一家公司有效的规则在另一家公司无效。保险公司的基线与技术公司的基线不同。务必进行调优。 ## 📁 仓库结构 ``` Detection-Engineering-Lab/ ├── README.md (this file) ├── sigma_rules/ │ ├── rule_1_suspicious_download_execution.yml │ ├── rule_2_c2_callback.yml │ ├── rule_3_failed_privilege_escalation.yml │ ├── rule_4_user_enumeration.yml │ └── rule_5_suspicious_process_parent.yml └── test_results/ ├── rule_1_test_results.md ├── rule_2_test_results.md ├── rule_3_test_results.md ├── rule_4_test_results.md └── rule_5_test_results.md ``` ## 🔗 关联到 SOC 调查实验室 该项目建立在我的 SOC 调查实验室中确定的攻击技术基础之上 (https://github.com/JP13007/SOC-Investigation-Lab)。每条规则都针对该事件中的特定技术: - **规则 1** — 检测 update.exe 恶意软件分发 (T1204) - **规则 2** — 检测到 Kali 的反弹 shell 回连 (T1071) - **规则 3** — 检测失败的权限维持尝试 (T1548) - **规则 4** — 检测被攻陷后的枚举 (T1033) - **规则 5** — 检测可疑的进程执行 (T1059) ## 📚 参考资料 - [Sigma 文档](https://sigma.readthedocs.io/) - [Atomic Red Team](https://atomicredteam.io/) — 自动化攻击模拟 - [MITRE ATT&CK 框架](https://attack.mitre.org/) - [Sigma 规则仓库](https://github.com/SigmaHQ/sigma/tree/master/rules) ## 💡 展示技能 - Sigma 检测规则编写 - 攻击技术理解 (MITRE ATT&CK) - 误报调优和基线建立 - 日志分析和取证调查 - 安全工具集成 (Splunk, Atomic Red Team) - 技术文档和沟通 **作者:** JP13007 **状态:** 完成 — 5 条规则已完成编写、测试和调优 **测试环境:** 来自 SOC 调查实验室的 Sysmon 和 Windows 安全日志
标签:CSV导出, IP 地址批量处理, Sigma规则, TGT, 安全运营, 扫描框架, 搜索语句(dork), 攻防演练, 目标导入