Zia2691r/Splunk-Cloud-SIEM-Integration-Automated-Active-Defense-Engineering-

GitHub: Zia2691r/Splunk-Cloud-SIEM-Integration-Automated-Active-Defense-Engineering-

该项目演示了将 Splunk Cloud SIEM 与 Fail2ban 集成,实现 SSH 暴力破解攻击自动化检测、分析与封禁的闭环事件响应架构。

Stars: 0 | Forks: 0

# Splunk Cloud SIEM 集成与自动化主动防御工程 ## 项目概述 本项目演示了 Splunk Cloud SIEM 与 Fail2ban 和 IPTables 的集成,以构建自动化的威胁检测与响应工作流。该实验环境旨在模拟真实的安全运营中心 (SOC) 环境,实现安全事件的自动收集、分析和响应。 本项目重点关注检测针对 Ubuntu 系统的 SSH 暴力破解攻击,将认证日志转发至 Splunk Cloud 进行分析,并使用 Fail2ban 自动封禁恶意 IP 地址。 ## 项目信息 **项目名称:** Splunk Cloud SIEM 集成与自动化主动防御工程 **项目类型:** 独立网络安全工程项目 **作者:** Mohammed Zia Ur Rahman **角色:** 网络安全研究员 | SOC 分析师爱好者 **领域:** 网络安全与安全运营 **实施年份:** 2026 ## 目标 本项目的主要目标是: - 使用 Splunk Cloud 构建集中式日志摄取管道。 - 模拟针对 SSH 服务的暴力破解攻击。 - 使用 SIEM 技术分析认证日志。 - 实施自动化威胁检测与响应。 - 配置 Fail2ban 以动态封禁攻击者。 - 验证事件响应与修复程序。 ## 使用技术 ### SIEM 平台 - Splunk Cloud Platform ### 操作系统 - Ubuntu Desktop 24.04 LTS - Kali Linux - Windows 宿主系统 ### 安全工具 - Fail2ban - IPTables - OpenSSH Server - THC Hydra ### 虚拟化 - Oracle VirtualBox ## 实验环境 该项目构建在一个独立的虚拟化环境中,包含: ### 攻击机 - Kali Linux 虚拟机 - 用于使用 Hydra 发起暴力破解攻击 ### 目标机 - Ubuntu Desktop 24.04 LTS - 承载 SSH 服务 - 生成认证日志 ### 宿主系统 - Windows 操作系统 - 用作日志传输和访问 Splunk Cloud 的中转层 ### SIEM 平台 - Splunk Cloud 沙盒实例 - 用于日志摄取、分析和可视化 ## 架构工作流 项目的工作流如下所示: 1. Kali Linux 对 Ubuntu SSH 服务发起暴力破解攻击。 2. 失败的登录尝试被记录在 Ubuntu 认证日志中。 3. Fail2ban 持续监控认证日志。 4. 当超过配置的阈值时,Fail2ban 会使用 IPTables 自动创建防火墙规则。 5. 攻击者的 IP 地址被封禁。 6. 认证日志从 Ubuntu 复制到 Windows 宿主机。 7. 日志被上传至 Splunk Cloud。 8. 使用 Splunk 对攻击活动进行分析和可视化。 ## 遇到的挑战 ### Ubuntu 浏览器故障 Ubuntu 虚拟机内的 Firefox 浏览器无法正常工作,导致无法直接访问 Splunk Cloud。 #### 解决方案 创建了中转工作流: - 认证日志被复制到共享文件夹。 - Windows 宿主机访问这些日志。 - 从 Windows 将日志上传至 Splunk Cloud。 ### SSH 服务未运行 最初的攻击尝试失败,因为 Ubuntu Desktop 没有激活的 SSH 服务。 #### 解决方案 手动安装并配置了 OpenSSH Server 软件包。 ``` sudo apt update sudo apt install -y openssh-server sudo systemctl enable --now ssh sudo systemctl status ssh ``` ### Splunk 搜索未返回结果 将日志上传到 Splunk Cloud 后,搜索和可视化未能产生结果。 #### 原因 Splunk 的 Smart Mode 未能从上传的日志文件中自动提取字段。 #### 解决方案 将搜索模式从 Smart Mode 更改为 Verbose Mode,允许 Splunk 执行搜索时字段提取。 ## 阶段 1:准备目标系统 配置 Ubuntu 系统以接受 SSH 连接。 ### 安装 OpenSSH Server ``` sudo apt update sudo apt install -y openssh-server sudo systemctl enable --now ssh sudo systemctl status ssh ``` 这使得 SSH 服务得以启用,并为远程连接打开了 22 端口。 ## 阶段 2:模拟暴力破解攻击 从 Kali Linux 虚拟机使用 Hydra 对 SSH 服务执行字典攻击。 ### Hydra 命令 ``` hydra -l ziaurrahman -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.9 -t 4 -V ``` ### 结果 攻击在极短的时间内产生了大量失败的认证尝试。 这些事件被记录在: ``` /var/log/auth.log ``` ## 阶段 3:日志提取与 Splunk 摄取 从 Ubuntu 机器复制认证日志并准备上传。 ### 复制认证日志 ``` rm -f ~/attack_logs.txt sudo cp /var/log/auth.log ~/attack_logs.txt ``` ### 修改权限 ``` sudo chmod 666 ~/attack_logs.txt ``` 随后,该文件通过 VirtualBox 共享文件夹进行传输,并上传至 Splunk Cloud。 ### Splunk 上传配置 Source Type: ``` linux_secure ``` Category: ``` Operating System ``` Destination Index: ``` Default Index ``` ## SIEM 分析 ### 搜索查询 ``` index=* sourcetype=linux_secure "Failed password" ``` 此查询用于识别失败的 SSH 登录尝试。 ### 可视化查询 ``` index=* sourcetype=linux_secure "Failed password" | timechart count ``` ### 发现结果 可视化结果显示,在极短的时间窗口内出现了大量失败的认证事件峰值。 这证实了自动化暴力破解攻击的存在。 ## 主动防御实施 部署 Fail2ban 以自动检测和封禁攻击者。 ### 安装 Fail2ban ``` sudo apt update sudo apt install -y fail2ban ``` ### 配置 Fail2ban 创建: ``` /etc/fail2ban/jail.local ``` 配置: ``` [sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3 findtime = 600 bantime = 3600 ``` ### 应用配置 ``` sudo systemctl restart fail2ban ``` ## 防御配置 ### maxretry ``` 3 ``` 攻击者仅被允许进行三次失败的登录尝试。 ### findtime ``` 600 seconds ``` 在十分钟的时间窗口内监控失败情况。 ### bantime ``` 3600 seconds ``` 违规 IP 地址将被封禁一小时。 ## 测试防御机制 配置 Fail2ban 后,再次发起了 Hydra 攻击。 ### 观察结果 - 登录尝试速度显著放缓。 - Hydra 失效。 - 攻击者的 IP 地址被自动封禁。 - SSH 服务保持受保护状态。 ## 验证封禁 使用以下命令检查 Fail2ban 监狱的状态: ``` sudo fail2ban-client status sshd ``` 输出确认已封禁一个 IP 地址。 ## 修复与清理 验证后,被封锁的 IP 地址从黑名单中移除。 ### 解除封禁命令 ``` sudo fail2ban-client set sshd unbanip 192.168.1.8 ``` 命令返回: ``` 1 ``` 这证实了该 IP 地址已成功从封禁列表中移除。 ## 展示的关键技能 ### 安全信息与事件管理 (SIEM) - 日志摄取 - 数据源配置 - 事件分析 - 搜索优化 - 可视化创建 ### 威胁检测与监控 - 暴力破解攻击检测 - 认证日志分析 - 安全事件调查 ### 主动防御工程 - Fail2ban 配置 - 自动化响应工作流 - 动态防火墙规则管理 ### Linux 管理 - OpenSSH 配置 - 日志管理 - 系统服务管理 - IPTables 集成 ### 虚拟化与实验环境设计 - VirtualBox 网络 - 多系统实验环境部署 - 日志传输工作流 ## 项目成果 该项目成功演示了: - 将日志安全收集并摄取到 Splunk Cloud。 - 检测暴力破解认证攻击。 - 基于安全事件的 SIEM 调查与可视化。 - 使用 Fail2ban 和 IPTables 进行自动 IP 封禁。 - 验证事件响应与恢复程序。 该项目提供了在 SIEM 操作、日志分析、威胁检测、主动防御工程以及 SOC 风格的事件响应工作流方面的实践经验。 ## 截图 将所有项目截图添加到名为以下内容的文件夹中: ``` screenshots ``` 示例: ``` project-folder/ │ ├── README.md │ └── screenshots/ ├── architecture.png ├── hydra_attack.png ├── splunk_upload.png ├── splunk_search.png ├── visualization.png ├── fail2ban_config.png ├── fail2ban_ban.png └── unban_process.png ``` 然后在 GitHub 中按如下方式引用它们: ``` ## 架构 ![Architecture](https://raw.githubusercontent.com/Zia2691r/Splunk-Cloud-SIEM-Integration-Automated-Active-Defense-Engineering-/main/screenshots/architecture.png) ## Hydra 攻击 ![Hydra Attack](https://raw.githubusercontent.com/Zia2691r/Splunk-Cloud-SIEM-Integration-Automated-Active-Defense-Engineering-/main/screenshots/hydra_attack.png) ## Splunk 可视化 ![Visualization](https://raw.githubusercontent.com/Zia2691r/Splunk-Cloud-SIEM-Integration-Automated-Active-Defense-Engineering-/main/screenshots/visualization.png) ## Fail2ban 配置 ![Fail2ban Configuration](https://raw.githubusercontent.com/Zia2691r/Splunk-Cloud-SIEM-Integration-Automated-Active-Defense-Engineering-/main/screenshots/fail2ban_config.png) ```
标签:Fail2ban, 动态API解析, 网络安全, 自动化响应, 隐私保护