Elvis-180/aws-ssh-brute-force-detection

GitHub: Elvis-180/aws-ssh-brute-force-detection

该项目是一个基于 AWS EC2 和 Splunk 的云端 SOC 安全实验,演示了针对 SSH 暴力破解攻击的完整检测、调查与事件响应流程。

Stars: 1 | Forks: 0

# AWS EC2 上的 SSH 暴力破解检测与事件响应 ![Category](https://img.shields.io/badge/Category-Cybersecurity-red) ![Environment](https://img.shields.io/badge/Environment-AWS%20EC2-orange) ![Framework](https://img.shields.io/badge/Framework-NIST%20SP%20800--61-blue) ![SIEM](https://img.shields.io/badge/SIEM-Splunk-black) ![Status](https://img.shields.io/badge/Status-Completed-brightgreen) ![Cloud](https://img.shields.io/badge/Cloud-AWS-yellow) ## 概述 本项目演示了对针对 AWS EC2 Ubuntu 实例的模拟 SSH 暴力破解攻击进行端到端检测、调查和响应的过程。 使用 Kali Linux 攻击系统发起 Hydra 密码攻击,同时 Splunk Enterprise 持续实时监控身份验证日志。本次事件的调查遵循 **NIST SP 800-61 事件响应框架**,记录了从准备到事件后活动的每个阶段。 该项目展示了实用的 SOC 分析师技能,包括云安全监控、日志分析、事件调查以及专业的事件文档编写。 # 目标 - 部署基于云的 SOC 监控环境 - 使用 Splunk SIEM 检测 SSH 暴力破解攻击 - 调查身份验证日志 - 识别攻击者行为 - 将攻击者技术映射到 MITRE ATT&CK - 执行遏制和恢复操作 - 使用 NIST 事件响应框架记录调查过程 # 使用的技术 | 类别 | 技术 | |-----------|------------| | 云平台 | AWS EC2 | | 操作系统 | Ubuntu 22.04 | | SIEM | Splunk Enterprise | | 攻击机 | Kali Linux | | 攻击工具 | Hydra | | 侦查 | Nmap | | 云日志 | AWS CloudTrail | | 身份验证日志 | `/var/log/auth.log` | | 系统日志 | `/var/log/syslog` | | 框架 | NIST SP 800-61 Rev. 2 | # 实验架构 ``` Kali Linux │ │ SSH Brute Force (Hydra) ▼ Internet │ AWS Security Groups │ AWS EC2 Ubuntu Server │ Authentication Logs (/var/log/auth.log) │ Splunk Enterprise SIEM │ SOC Investigation ``` # 攻击场景 攻击者在针对 AWS EC2 Ubuntu 服务器发起 SSH 暴力破解攻击之前,使用 Nmap 进行了侦查。 Splunk 实时监控身份验证日志,并检测到来自单一 IP 地址的超过 **126 次失败的身份验证尝试**。 该攻击通过 SSH 速率限制被成功遏制,防止了未经授权的访问。 # 事件摘要 | 字段 | 值 | |-------|-------| | 事件 ID | INC-2026-001 | | 攻击类型 | SSH 暴力破解 | | 严重程度 | 高 | | 目标 | AWS EC2 Ubuntu | | 目标端口 | TCP 22 | | 检测工具 | Splunk Enterprise | | 攻击者工具 | Hydra | | 成功登录 | 0 | | 失败尝试 | 126+ | | 框架 | NIST SP 800-61 | # 调查过程 本次调查遵循 NIST 事件响应框架的四个阶段。 ## 阶段 1 — 准备 - AWS EC2 部署 - Splunk 安装 - 身份验证日志监控 - 启用 CloudTrail - 配置安全组 ## 阶段 2 — 检测与分析 通过 Splunk 对 SSH 身份验证日志的监控识别出了本次攻击。 调查包括: - 失败的身份验证分析 - 源 IP 识别 - 时间线重建 - 用户名分析 - 影响评估 ## 阶段 3 — 遏制、根除与恢复 执行的操作包括: - SSH 速率限制 - 安全组验证 - 禁用密码身份验证 - SSH 密钥身份验证验证 - 系统验证 ## 阶段 4 — 事件后活动 项目总结包括: - 经验教训 - 安全建议 - 检测规则创建 - 事件指标 - 最终文档 # Splunk 搜索示例 ### 统计失败登录 ``` index=main sourcetype=linux_auth "Failed password" | stats count ``` ### 识别攻击者 IP ``` index=main sourcetype=linux_auth "Failed password" | rex "from (?P\d+\.\d+\.\d+\.\d+)" | stats count by src_ip | sort -count ``` ### 攻击时间线 ``` index=main sourcetype=linux_auth "Failed password" | timechart span=5m count ``` ### 目标用户名 ``` index=main sourcetype=linux_auth "Failed password" | rex "Failed password for (?:invalid user )?(?P\S+)" | stats count by username | sort -count ``` # 检测规则 ``` index=main sourcetype=linux_auth "Failed password" | rex "from (?P\d+\.\d+\.\d+\.\d+)" | stats count by src_ip | where count > 10 ``` **触发条件** 来自单一 IP 地址的失败 SSH 登录尝试超过 10 次。 # 关键指标 | 指标 | 结果 | |---------|--------| | 平均检测时间 | < 1 分钟 | | 平均响应时间 | 2 分钟 | | 攻击持续时间 | 38 秒 | | 失败登录 | 126+ | | 成功登录 | 0 | | 被泄露的数据 | 无 | # 安全改进 - 禁用 SSH 密码身份验证 - 使用 AWS 安全组限制 SSH 访问 - 启用 MFA - 部署 Fail2Ban - 启用 AWS GuardDuty - 启用 VPC Flow Logs - 定期轮换 SSH 密钥 # 截图 Nmap 扫描 Screenshot 2026-07-09 072409 Splunk 运行中 Screenshot 2026-07-11 172738 Screenshot 2026-07-11 175903 # 展示的技能 - 安全运营中心 (SOC) - 事件响应 - SIEM 操作 - 日志分析 - 威胁检测 - 云安全监控 - 安全文档 ## 作者 **Tem Elvis** SOC 分析师
标签:AWS, CTI, DPI, SSH爆破检测, 安全运营中心, 库, 应急响应, 网络安全, 网络映射, 隐私保护