Chandan-G-04/soc-homelab-splunk

GitHub: Chandan-G-04/soc-homelab-splunk

基于 Splunk SIEM 的 SOC 家庭实验室项目,演示从日志采集、暴力破解检测到自动封锁 IP 的完整安全运营工作流。

Stars: 0 | Forks: 0

# SOC 家庭实验室 - 使用 Splunk 检测暴力破解 ## 概述 本项目演示了一个真实世界的 SOC 用例,使用 Splunk SIEM 检测针对 Web 应用程序的暴力破解攻击。该实验室使用 Burp Suite 模拟攻击者行为,并通过基于 SPL 的日志关联和自动化告警分析身份验证日志,以识别恶意登录尝试。 ## 实验架构 ``` Ubuntu Web Server (Attack Target) | | Apache Web Server Logs ▼ Splunk Universal Forwarder | | Log forwarding to SIEM ▼ Splunk Enterprise (SIEM) | ├── SPL Correlation Rule (Brute Force Detection) ├── Alert Triggering └── Incident Response (iptables IP Block) ``` **使用的资源:** - Ubuntu Server — Web 应用程序托管与日志生成 - Apache Web Server — 生成身份验证日志 - Splunk Universal Forwarder — 将日志发送至 Splunk - Splunk Enterprise — 用于检测和告警的 SIEM - Burp Suite — 攻击模拟工具 ## 使用的技术 - Splunk Enterprise (SIEM) - Splunk Universal Forwarder - SPL (Search Processing Language) - Ubuntu Server - Apache Web Server - Burp Suite - iptables - MITRE ATT&CK 框架 ## Web 应用程序(攻击面) ![登录页面](https://static.pigsec.cn/wp-content/uploads/repos/cas/ff/ff56a15f7b2a0ce8c0be746fc074da66f5ea4beced76c3b09fd3e58d8ea923b4.png) ## 攻击模拟 ### 拦截登录请求 ![Burp 拦截](https://static.pigsec.cn/wp-content/uploads/repos/cas/a5/a536edb33d7b70d1ca3b83205f3c38361efcec5ef673b5bd4ff6262eefabc7cf.png) ### Payload 配置 ![Payload 设置](https://raw.githubusercontent.com/Chandan-G-04/soc-homelab-splunk/main/screenshots/3_payload_setup.png) ### 执行暴力破解攻击 ![攻击执行](https://static.pigsec.cn/wp-content/uploads/repos/cas/c0/c08a14387924524a6659f5a82b2680f2c4a755022b4c3da656b972a44c670422.png) ## 日志生成(Web 服务器) ![原始日志](https://static.pigsec.cn/wp-content/uploads/repos/cas/f7/f7ae580e36655582a8ad57d78da8283ba4b87530667144c7161ef70ffdcdc053.png) ## Splunk 中的日志 ![Splunk 日志](https://static.pigsec.cn/wp-content/uploads/repos/cas/4e/4e0dcc1cc95b989a2efeb09dde0bc148dc2b835e4cfd3453e7a7e5599df744ce.png) ### 登录失败尝试 ![失败日志](https://static.pigsec.cn/wp-content/uploads/repos/cas/dc/dc83250af5775d77cd16d45363743fb9480df444362791179eaa23b21d4479ed.png) ## 检测逻辑(SPL 查询) 检测规则用于识别来自同一源 IP 的重复失败登录尝试。可以根据正常用户行为和基于时间的相关性调整阈值,以减少误报。 SPL 规则:[brute-force-detection.spl](./SPL-Rules/brute-force-detection.spl) ``` index=main "STATUS: Failed" | rex "IP:\s(?\d+\.\d+\.\d+\.\d+)" | stats count as failed_attempts by src_ip | where failed_attempts > 3 ``` ![SPL 查询](https://static.pigsec.cn/wp-content/uploads/repos/cas/7d/7d74b21a8d7af15c06ee004f0cedd65723daf759d0392bc4d0cac3140659e462.png) ## 触发告警 - 告警名称:登录失败尝试 - 触发条件:在定义的时间窗口内,单个 IP 超过 3 次登录失败尝试 - 严重程度:高 - MITRE 技术:T1110 - 暴力破解 ![告警](https://static.pigsec.cn/wp-content/uploads/repos/cas/23/2326d7781223543b8454dd8b436cfb1567f50c1197eb6e80f8cbe76eeedb0e6d.png) ## 事件响应(IP 封锁) 从告警中识别出恶意 IP。使用 iptables 封锁源 IP,以防止进一步的未经授权访问尝试。在真实的 SOC 中,后续操作还包括用户通知、账户锁定,以及如果怀疑发生横向移动时的升级处理。 ``` sudo iptables -I INPUT -s 192.168.1.100 -j DROP ``` ![IP 封锁](https://static.pigsec.cn/wp-content/uploads/repos/cas/60/60b4f7171969ac7cd95068d8492a6bbf12e3d0be5976090e85d244f331610b10.png) ## 事件调查演练 ### 场景:触发暴力破解告警 **步骤 1 — 告警触发** Splunk 在检测到配置的时间窗口内来自同一源 IP 的超过 3 次失败登录尝试后,生成了一个高严重性告警。 **步骤 2 — 在 Splunk 中调查** 打开触发的告警。运行 SPL 查询以确认源 IP、失败尝试的次数以及受攻击的用户账户。 **步骤 3 — 确认暴力破解模式** 查询返回了单个源 IP,在很短的时间窗口内产生了 50 多次失败尝试 —— 这与来自 Burp Suite Intruder 的自动化暴力破解行为一致。 **步骤 4 — 分流决策** 事件被分类为真实攻击。立即使用 iptables 封锁了源 IP。 **步骤 5 — 事件关闭** 记录了源 IP、尝试次数、时间戳和所采取响应措施的详细信息。 ## SOC 调查工作流 1. 验证告警真实性 2. 识别源 IP 和受攻击的用户账户 3. 分析登录失败次数和时间模式 4. 检查来自该 IP 的历史登录活动 5. 确认暴力破解模式 6. 启动响应 — 通过 iptables 封锁 IP ## 展示的核心技能 - SIEM 配置与日志摄取 - SPL 查询开发 - 暴力破解检测与分析 - 告警调优与误报减少 - 事件响应与遏制 - SOC 调查工作流 - 日志关联技术 ## 我学到了什么 - 如何构建从日志源到告警的端到端 SIEM pipeline - 为真实世界的攻击模式编写 SPL 关联规则 - 如何模拟攻击并验证检测覆盖率 - 从告警到遏制的事件响应决策 - 阈值调优对于减少误报的重要性 ## 未来改进 - 用于响应 playbook 的 SOAR 自动化 - 用于源 IP 上下文的 Geo-IP 丰富 - 威胁情报源集成 - 使用机器学习进行高级异常检测 ## 作者 Chandan G LinkedIn: https://linkedin.com/in/chandan-g-7749573a6 GitHub: https://github.com/Chandan-G-04
标签:免杀技术, 安全实验环境, 安全运营中心, 库, 应急响应, 暴力破解检测, 网络映射