Ashar1198/Brute-Force-Detection
GitHub: Ashar1198/Brute-Force-Detection
一套基于 Splunk 平台的 SSH 暴力破解检测方案,提供从 SPL 查询、威胁情报富化到 SOC 可视化仪表板的完整安全分析师工作流。
Stars: 0 | Forks: 0
# 暴力破解登录检测
一项使用 **Splunk** 从真实身份验证日志中检测 SSH 暴力破解攻击的安全调查。这项工作涵盖了完整的 SOC 分析师工作流:数据接入、字段提取、基于 SPL 的检测查询、威胁情报富化以及仪表板构建。
## 项目概述
暴力破解攻击 (MITRE ATT&CK: T1110) 是面向互联网的系统面临的最常见威胁之一。本项目分析了真实的 SSH 身份验证日志,使用 7 个自定义 SPL 检测查询来识别攻击 IP、目标账户以及成功入侵事件。
**工具:** Splunk
**数据集:** 来自 [LogHub 仓库](https://zenodo.org/records/8196385) 的 OpenSSH 身份验证日志 (`SSH.tar.gz`),在面向公众的 Linux 主机上连续数周的 SSH 暴露记录
**日志预处理:** 使用 `geoip2` 库的 Python 脚本在接入前为每条日志条目标记国家代码(例如 `[CN]`、`[US]`),从而无需实时 API 调用即可实现地理归因
## 仓库内容
| 文件 | 描述 |
|---|---|
| `Brute Force Detection Technical Report.pdf` | 包含方法论、SPL 查询和调查结果的完整调查报告 |
| `brute_force_detection_dashboard-2026-04-08.pdf` | 已完成的 Splunk SOC 仪表板截图 |
| `ip_blocklist.csv` | 用于丰富攻击 IP 数据的威胁情报查找表 |
## 检测逻辑
核心检测原则:合法用户的身份验证失败次数通常寥寥无几。而自动化攻击工具每分钟会产生数百到数千次失败。
本项目开发了七个 SPL 查询,每个查询针对威胁的不同维度:
| 查询 | 目的 |
|---|---|
| 1 - Total Failed Logins | 带有严重性评级(MEDIUM / HIGH / CRITICAL)的基准失败计数 |
| 2 - Top Attacking IPs | 按失败次数排名的前 10 个源 IP,并使用阻止列表查找进行富化 |
| 3 - Threshold Detection | 在 10 分钟时间窗口内失败次数 ≥5 次的 IP 被标记为确认的攻击者 |
| 4 - Targeted Account Analysis | 根据综合风险评分(失败次数 × 唯一攻击者数量)排名的受攻击最多的用户名 |
| 5 - Attack Timeline | 以 30 分钟为时间桶的失败登录时间序列,用于 SOC 仪表板 |
| 6 - Compromise Detection | 失败次数 >3 次**且**至少有一次成功的 IP,即暴力破解成功的特征 |
| 7 - Geographic Attribution | 按来源国家/地区汇总的失败登录量 |
完整的查询代码及逐行解释详见技术报告。
## SOC 仪表板
构建了一个四面板的 Splunk Classic 仪表板,以便在运营层面直观展示调查结果:
- **面板 1 - 攻击时间线:** 随时间变化的攻击量全宽折线图
- **面板 2 - 前 10 个攻击 IP:** 包含 IP、失败次数、国家/地区、威胁级别和分析师备注的表格
- **面板 3 - 最受攻击的账户:** 带有风险评分的账户表格,用于指导密码重置和 MFA 优先级排序
- **面板 4 - 按国家/地区划分的攻击来源:** 用于辅助地理封锁决策的条形图
已完成的仪表板请参见 `brute_force_detection_dashboard-2026-04-08.pdf`。
## 作者
- Muhammad Ashar Latif
标签:LogHub, PoC, Python, SPL查询, SSH安全, 威胁情报, 安全仪表盘, 安全运营中心, 开发者工具, 数据丰富化, 无后门, 日志预处理, 暴力破解, 网络安全, 网络安全监控, 网络映射, 身份认证安全, 逆向工具, 隐私保护, 驱动开发, 黑客攻击