jasarjibran/detection-engineering-home-lab

GitHub: jasarjibran/detection-engineering-home-lab

基于MITRE ATT&CK的检测工程家庭实验室,提供实战演练环境。

Stars: 0 | Forks: 0

# 检测工程家庭实验室 ### Splunk · Sysmon · MITRE ATT&CK · Atomic Red Team · Sigma ![状态](https://img.shields.io/badge/Status-Active-success) ![SIEM](https://img.shields.io/badge/SIEM-Splunk-black) ![端点](https://img.shields.io/badge/Endpoint-Sysmon-blue) ![框架](https://img.shields.io/badge/Framework-MITRE%20ATT%26CK-red) ![检测](https://img.shields.io/badge/Detections-50%2B-orange) ## TL;DR 我建立了一个功能齐全的SOC实验室,以练习端到端的检测工程工作流程: **执行真实攻击者的技术 → 捕获遥测数据 → 编写自定义检测 → 记录事件响应。** 此存储库包含我在构建过程中编写的所有SPL检测查询、仪表板、MITRE ATT&CK映射和事件响应报告。 ## 为什么选择这个项目 大多数入门级SOC候选人可以谈论理论上的检测。这个实验室证明了我可以: - 架构从端点到SIEM的安全遥测管道 - 执行真实攻击者的技术,并分析它们在日志中的样子 - 从原始遥测数据编写SPL检测,而不仅仅是消费预构建的检测 - 使用在生产SOC中使用的结构和语言记录事件 - 调整检测以减少误报,就像一名合格的分析师一样 ## 架构 ``` ┌─────────────────────┐ ┌─────────────────────┐ │ Attacker │ │ Victim │ │ Kali Linux │────────▶│ Windows 11 │ │ Atomic Red Team │ Attack │ + Sysmon │ │ │ │ + Splunk UF │ └─────────────────────┘ └──────────┬──────────┘ │ │ Forwarded Logs ▼ ┌─────────────────────┐ │ Splunk Enterprise │ │ Ubuntu 22.04 │ │ │ │ • Indexers │ │ • Detection Rules │ │ • Dashboards │ │ • Alerts │ └──────────┬──────────┘ │ ▼ ┌─────────────────────┐ │ Analyst Workflow │ │ • Triage │ │ • Investigation │ │ • IR Documentation│ └─────────────────────┘ ``` **完整设置指南:** [01-architecture/lab-setup-guide.md](01-architecture/lab-setup-guide.md) ## 技术栈 | 层 | 工具 | 目的 | |-------|------|---------| | SIEM | Splunk Enterprise (免费许可证) | 日志聚合、搜索、警报 | | 端点遥测 | Sysmon (SwiftOnSecurity配置) | 精细Windows事件记录 | | 日志转发 | Splunk通用转发器 | 端点→SIEM管道 | | 攻击平台 | Kali Linux + Atomic Red Team | 攻击者模拟 | | 受害端点 | Windows 11 + Windows Server 2022 | 现实的企业目标 | | 框架 | MITRE ATT&CK、Cyber Kill Chain、Sigma | 检测映射标准 | | 检测语言 | SPL (Splunk处理语言) | 自定义规则编写 | ## 检测到的攻击技术 以下每个技术都在实验室中执行,并使用自定义SPL进行检测。点击任何一行以获取完整的攻击执行、检测逻辑和IR报告。 | # | MITRE ID | 技术 | 战术 | 难度 | |---|----------|-----------|--------|------------| | 1 | [T1003.001](02-attacks/T1003-credential-dumping/) | LSASS内存转储(Mimikatz) | 凭据访问 | 高 | | 2 | [T1059.001](02-attacks/T1059-powershell/) | PowerShell编码命令 | 执行 | 中等 | | 3 | [T1053.005](02-attacks/T1053-scheduled-task/) | 定时任务持久性 | 持久性 | 低 | | 4 | [T1021.002](02-attacks/T1021-lateral-movement/) | SMB / PsExec横向移动 | 横向移动 | 中等 | | 5 | [T1562.001](02-attacks/T1562-defense-evasion/) | 禁用Windows Defender | 防御规避 | 低 | | 6 | [T1048.003](02-attacks/T1048-exfiltration/) | DNS隧道泄露 | 泄露 | 高 | ## 示例检测:LSASS凭据转储 此SPL查询检测可疑进程访问LSASS内存——Mimikatz和大多数凭据窃取工具使用的技术。 ``` index=sysmon EventCode=10 TargetImage="*lsass.exe*" | where NOT match(SourceImage, "(?i)(System32\\\\(svchost|wininit|csrss|services|lsm)\.exe|Microsoft\\\\Windows Defender)") | eval GrantedAccess_decimal = tonumber(GrantedAccess, 16) | where (GrantedAccess_decimal AND 0x1010) == 0x1010 | stats count, values(SourceImage) as SourceProcess, values(SourceUser) as User by _time, host | eval severity = "HIGH" | eval mitre_technique = "T1003.001" | eval description = "Suspicious process requested LSASS memory access with read rights" ``` **为什么这有效:** Mimikatz需要特定的访问权限(`PROCESS_VM_READ` + `PROCESS_QUERY_INFORMATION` = `0x1010`)来转储凭据。过滤掉已知良好的系统进程,只留下值得调查的可疑访问。 **完整说明:** [02-attacks/T1003-credential-dumping/](02-attacks/T1003-credential-dumping/) ## 此存储库包含的内容 ``` detection-engineering-home-lab/ │ ├── 01-architecture/ ← Lab build guide & network diagrams ├── 02-attacks/ ← Per-technique: execution, detection, IR │ ├── T1003-credential-dumping/ │ ├── T1059-powershell/ │ ├── T1053-scheduled-task/ │ ├── T1021-lateral-movement/ │ ├── T1562-defense-evasion/ │ └── T1048-exfiltration/ ├── 03-detections/ ← Consolidated SPL rule library │ ├── splunk-queries.md │ ├── sigma-rules/ │ └── dashboard-config.md ├── 04-incident-reports/ ← Production-style IR documentation │ ├── IR-001-credential-dumping.md │ ├── IR-002-powershell-execution.md │ └── ... └── 05-lessons-learned/ ← What I'd do differently in production └── production-considerations.md ``` ## 展示的技能 | 技能领域 | 存储库中的证据 | |------------|----------------------| | **SIEM工程** | Splunk部署、索引配置、字段提取 | | **检测工程** | 50多个自定义SPL查询、Sigma规则转换 | | **威胁狩猎** | 每个技术的假设驱动狩猎笔记本 | | **事件响应** | 根据800-61结构编写的6份完整IR报告 | | **MITRE ATT&CK映射** | 每个检测映射到战术+技术 | | **攻击者模拟** | Atomic Red Team执行+自定义攻击链 | | **文档** | 生产级说明,而非实验室存档 | | **生产思维** | 误报调整、扩展考虑 | ## 关键要点 完成此实验室后,我能够流利地谈论: 1. **为什么检测会失败**——大多数检测基于指标,而不是行为。围绕合法管理员活动进行调整是难点。 2. **为什么遥测比工具更重要**——Sysmon事件ID 10可以捕获Mimikatz;默认的Windows日志无法做到。 3. **为什么MITRE ATT&CK不仅仅是 buzzword**——将检测映射到技术可以显示仪表板无法显示的覆盖差距。 4. **为什么IR文档与检测一样重要**——一个很好的警报和一个糟糕的工单会被忽略。两者都必须强大。 ## 生产中我会如何做不同 [在`05-lessons-learned/`中提供完整分析](05-lessons-learned/production-considerations.md) - 使用Git版本控制和CI/CD验证实现检测即代码 - 构建SOAR剧本来自动丰富和包含高置信度警报 - 在合法AV/EDR进程周围调整LSASS访问检测(显著的误报来源) - 添加UEBA以行为基线代替纯指标检测 - 将检测流式传输到数据湖,以便在历史遥测上进行回溯狩猎 ## 关于我 我是一名专注于SOC、检测工程和GRC的早期职业安全分析师。这个实验室代表了大约20小时的动手工作,包括构建、破坏和检测——而不是消费教程。 **找到我:** [LinkedIn](#) · [电子邮件](#) · [其他项目](#) ## 许可证与致谢 - Sysmon配置基于[SwiftOnSecurity/sysmon-config](https://github.com/SwiftOnSecurity/sysmon-config) - 攻击技术来源于[Atomic Red Team](https://github.com/redcanaryco/atomic-red-team) - 检测逻辑模式受到[SigmaHQ](https://github.com/SigmaHQ/sigma)社区规则启发 - MITRE ATT&CK®是The MITRE Corporation的注册商标 *作为一个个人项目构建。所有攻击都在隔离的实验室环境中执行。*
标签:管理员页面发现