3v1l1/SSH-Brute-Force-Detection-Splunk
GitHub: 3v1l1/SSH-Brute-Force-Detection-Splunk
演示如何使用 Splunk 检测 SSH 暴力破解攻击的 SOC 实验项目,涵盖攻击模拟、日志采集、威胁检测和告警配置完整流程。
Stars: 0 | Forks: 0
# 🔐 使用 Splunk 检测 SSH 暴力破解 (SOC 实验室)
## 📌 项目概述
本项目模拟了 SSH 暴力破解攻击,并演示了如何使用 Splunk SIEM 进行检测。
目标是复现真实的 SOC(安全运营中心)工作流程:
* 模拟攻击
* 采集日志
* 检测恶意行为
* 可视化与告警
## 🧪 实验环境
| 组件 | 详情 |
| ---------- | -------------------------- |
| 攻击者 | Kali Linux |
| 目标机 | Ubuntu Server |
| SIEM | Splunk Cloud |
| 日志源 | /var/log/auth.log |
| 采集方式 | HTTP Event Collector (HEC) |
## ⚔️ 攻击模拟
* 从 Kali 发起了多次 SSH 登录尝试
* 故意使用了错误的密码
* 这产生了重复的 "Failed password" 日志
👉 此行为模拟了 **暴力破解攻击 (MITRE ATT&CK T1110)**
## 📥 日志采集
日志通过 HEC 转发到 Splunk。
验证查询:
```
index=*
```
✔ 确认日志已成功采集
## 🔍 检测逻辑
### SPL 查询语句:
```
sourcetype=auth_log "Failed password"
| rex "Failed password for (?\w+) from (?\d+\.\d+\.\d+\.\d+)"
| stats count by user, src
| where count >= 3
| sort - count
```
### 🧠 原理说明:
* 过滤 SSH 登录失败的尝试
* 提取:
* 用户名
* 源 IP
* 统计每个 IP 的尝试次数
## 🚨 检测结果
示例结果:
```
user = dark
src = 192.168.100.20
count = 4
```
这表明来自单个 IP 的重复失败登录尝试,这是暴力破解攻击的强烈指标。
## 🚨 告警配置
* 触发条件:结果数 > 0
* 计划:每小时
* 动作:添加到已触发告警
## 📊 仪表板
仪表板可视化内容:
* 每个 IP 的失败登录尝试
* 随时间变化的攻击频率
* 可疑活动模式
## 📸 截图
### 🔹 攻击模拟

### 🔹 日志采集

### 🔹 原始日志

### 🔹 检测查询

### 🔹 仪表板

### 🔹 告警

## 🧠 关键收获
* 理解 Linux 认证日志
* 编写用于威胁检测的 SPL 查询
* 检测暴力破解模式
* 在 Splunk 中构建告警
* 创建 SOC 仪表板
## 🚀 未来改进
* 增加基于阈值的检测(例如,次数 > 5)
* 检测暴力破解后的成功登录
* 增加 Geo-IP 富化
* 自动化响应(封锁 IP)
## 🏁 结论
本项目演示了如何利用日志分析和 Splunk 等 SIEM 工具检测暴力破解攻击。
它复现了真实的 SOC 用例,并提供了攻击检测和监控的实践经验。
标签:auth.log, BurpSuite集成, HEC, HTTP/HTTPS抓包, SOC实验, SPL查询, SSH暴力破解, 仪表盘, 安全告警, 安全运营, 态势感知, 扫描框架, 模拟攻击, 网络安全, 隐私保护