TejinderS1130/splunk-soc-labs

GitHub: TejinderS1130/splunk-soc-labs

基于 Splunk SIEM 的 SOC 分析师实战实验室,通过模拟 SSH 攻击场景教授日志分析、威胁检测与事件响应的完整工作流程。

Stars: 0 | Forks: 0

# SOC 实验室:SSH 暴力破解与密码喷洒检测 ![Splunk](https://img.shields.io/badge/SIEM-Splunk-black?style=for-the-badge\&logo=splunk) ![Linux](https://img.shields.io/badge/OS-Linux-blue?style=for-the-badge\&logo=linux) ![MITRE ATT\&CK](https://img.shields.io/badge/MITRE-ATT%26CK-red?style=for-the-badge) ![SOC](https://img.shields.io/badge/Role-SOC%20Analyst-green?style=for-the-badge) ![Status](https://img.shields.io/badge/Project-Completed-brightgreen?style=for-the-badge) **Splunk SIEM | 事件分诊 | MITRE ATT&CK | 自动化遏制** ## 概述 本项目模拟针对 Linux 服务器的真实 SSH 认证攻击,并演示了符合加拿大企业环境的端到端安全运营中心 (SOC) 工作流程。 ## SOC 工作流程 ``` Detection → Investigation → Classification → Containment → Validation → Documentation ``` ## 使用技术 * Splunk Enterprise (SIEM) * Splunk Universal Forwarder * Kali Linux (Hydra) * CentOS Linux * Fail2Ban (自动化遏制) ## 实验架构 ``` 🌐 Internet (Attacker) │ ┌───────────────┐ │ Kali Linux │ │ 192.168.64.x │ └──────┬────────┘ │ (SSH Attack) │ ┌──────────────▼──────────────┐ │ CentOS Target Server │ │ 192.168.64.10 │ └──────────────┬──────────────┘ │ Log Forwarding (Port 9997) │ ┌──────────────▼──────────────┐ │ Splunk Enterprise SIEM │ │ 192.168.192.5 │ └──────────────┬──────────────┘ │ Detection & Alerts │ ┌──────────────▼──────────────┐ │ Fail2Ban Engine │ │ (Automated Containment) │ └─────────────────────────────┘ ``` ## 实验组件 | Component | Role | | ------------------- | --------------------- | | Kali Linux | 攻击模拟 | | CentOS Server | 目标主机 | | Splunk Enterprise | SIEM | | Universal Forwarder | 日志采集 | | Fail2Ban | 自动化遏制 | ## 监控日志 * `/var/log/secure` * `/var/log/messages` **转发端口:** `9997` ## 日志采集与 SIEM 配置 ## 安装 Universal Forwarder ``` sudo rpm -ivh splunkforwarder-10.x.x.rpm sudo /opt/splunkforwarder/bin/splunk start --accept-license ``` ## 配置转发 ``` sudo /opt/splunkforwarder/bin/splunk add forward-server 192.168.192.5:9997 sudo /opt/splunkforwarder/bin/splunk add monitor /var/log/secure sudo /opt/splunkforwarder/bin/splunk add monitor /var/log/messages ``` ## 验证连接性 ``` sudo /opt/splunkforwarder/bin/splunk list forward-server ``` ## 验证查询 ``` index=* source="/var/log/secure" ``` # 事件 A — SSH 暴力破解 (T1110.001) ## 攻击模拟 ``` sudo hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://192.168.64.10 -t 4 ``` ## 观察到的指标 * 高频登录失败 * 单一账户目标 * 相同来源 IP (Same source IP) * 基于时间的峰值 ## 检测查询 ``` source="/var/log/secure" "Failed password" | timechart span=10s count ``` ## MITRE ATT&CK 映射 * **战术:** 凭证访问 * **技术:** T1110 – 暴力破解 * **子技术:** T1110.001 – 密码猜测 # 事件 B — 密码喷洒 (T1110.003) ## 攻击模拟 ``` sudo hydra -L users.txt -p Welcome123 ssh://192.168.64.10 -t 1 ``` ## 观察到的指标 * 重复使用相同密码 * 针对多个账户 * 单用户低频率 * 相同来源 IP (Same source IP) ## 检测工程 ``` source="/var/log/secure" "Failed password" | rex "for (?\w+)" | rex "from (?\d+\.\d+\.\d+\.\d+)" | stats dc(user) as unique_users count as attempts by src_ip | where unique_users >= 3 ``` ### 结果 * `unique_users = 4` * `attempts = 78` * `src_ip = 192.168.64.11` ## MITRE ATT&CK 映射 * **战术:** 凭证访问 * **技术:** T1110 – 暴力破解 * **子技术:** T1110.003 – 密码喷洒 # 事件 C — SSH 侦察 (T1595) ## 检测查询 ``` source="/var/log/secure" "Did not receive identification string" | rex "from (?\d+\.\d+\.\d+\.\d+)" | stats count by src_ip ``` ## MITRE ATT&CK 映射 * **战术:** 侦察 * **技术:** T1595 – 主动扫描 # 自动化遏制 — Fail2Ban ## SSH Jail 配置 ``` [sshd] enabled = true port = ssh logpath = /var/log/secure maxretry = 3 findtime = 300 bantime = 600 ``` ## 验证 ``` sudo fail2ban-client status sshd ``` ## 结果 * 封禁 IP: `192.168.64.11` * 自动化遏制成功 ## Splunk 验证 ``` source="/var/log/secure" "fail2ban" ``` ## 事件分诊工作流程 1. 因异常认证峰值触发告警 2. 验证日志源完整性 3. 提取来源 IP 和目标账户 4. 分类攻击类型 (暴力破解 vs 密码喷洒) 5. 将活动映射到 MITRE ATT&CK 6. 部署遏制措施 7. 验证 IP 封禁有效性 8. 记录发现结果与检测逻辑 ## 误报考量 * 密码喷洒分类要求 ≥ 3 个唯一用户 * 使用基于时间的异常检测识别暴力破解 * 在升级前关联一致的来源 IP ## MITRE ATT&CK 覆盖范围摘要 | Incident | Tactic | Technique | | ----------------- | ----------------- | --------- | | SSH Brute Force | Credential Access | T1110.001 | | Password Spraying | Credential Access | T1110.003 | | SSH Recon | Reconnaissance | T1595 | ## 关键收获 * 使用 Splunk 构建真实世界的 SOC 检测逻辑 * 区分暴力破解与密码喷洒攻击 * 使用 Fail2Ban 实施自动化遏制 * 应用 MITRE ATT&CK 进行结构化威胁分析 * 模拟完整的 SOC 事件响应生命周期
标签:AMSI绕过, Cloudflare, Fail2Ban, Hydra, Linux 安全, MITRE ATT&CK, Python3.6, SOC 实验室, SSH 暴力破解, 威胁检测, 安全运营中心, 密码喷射, 网络安全, 网络安全审计, 网络映射, 自动化防御, 身份认证安全, 隐私保护