kabelo3/splunk-ssh-siem-dashboard
GitHub: kabelo3/splunk-ssh-siem-dashboard
一个基于 Splunk 的 SSH 安全监控仪表板,用于检测暴力破解登录并可视化攻击来源的地理位置。
Stars: 0 | Forks: 0
# Splunk SSH SIEM 仪表板
这是一个用于监控 SSH 身份验证活动、检测暴力破解登录尝试并可视化攻击者地理位置的 Splunk 仪表板 —— 作为一项实践性的 SIEM/日志分析项目而构建。
!\[Splunk](https://img.shields.io/badge/Splunk-000000?style=flat\&logo=splunk\&logoColor=white)
!\[SIEM](https://img.shields.io/badge/Category-SIEM%20%2F%20Log%20Analysis-blue)
!\[Status](https://img.shields.io/badge/Status-Complete-brightgreen)
## 概述
该项目将 SSH 身份验证日志摄取到 Splunk 中,并构建了一个统一的仪表板,旨在解答分析师在针对 SSH 的调查中关注的三个问题:
1. **有多少 SSH 活动,其中有多少失败了?**(身份验证概述)
2. **谁/什么正在成为攻击目标,是否存在类似暴力破解的模式?**(登录活动趋势)
3. **世界范围内的攻击尝试来自哪里?**(地理位置可视化)
一个共享的时间范围 token (`time\_range`) 驱动着每个面板,因此只需通过一个控件即可将整个仪表板重新限定在任何时间窗口内。
## 仪表板预览
### 任务 1 — 身份验证概述
!\[Authentication Overview](screenshots/task1\_full\_authentication\_overview.png)
SSH 事件总数、成功登录、失败登录和未经身份验证的连接,它们全都共享同一个时间选择器。
### 任务 2 — 登录活动趋势
**按用户名统计的失败登录**
!\[Failed Logins by Username](screenshots/task2\_1\_failed\_logins\_by\_username\_result.png)
**按 IP 地址推断的可能暴力破解**
!\[Possible Brute Force by IP Address](screenshots/task2\_2\_possible\_brute\_force\_by\_ip\_result.png)
### 任务 3 — 暴力破解地理位置
!\[Brute Force Geo-location Map](screenshots/task3\_1\_geolocation\_map\_result.png)
在此数据集中,美国、中国和巴西是身份验证失败尝试的主要来源地,其中美国位于最高区间(80–100 次尝试)。
## 项目结构
```
splunk-ssh-siem-dashboard/
├── README.md
├── LICENSE
├── .gitignore
├── screenshots/
│ ├── 00\_data\_setup\_upload\_ssh\_logs\_new.png
│ ├── task1\_1\_total\_ssh\_events\_panel\_config.png
│ ├── task1\_1\_total\_ssh\_events\_result.png
│ ├── task1\_4\_connection\_without\_authentication\_config.png
│ ├── task1\_full\_authentication\_overview.png
│ ├── task2\_1\_failed\_logins\_by\_username\_config.png
│ ├── task2\_1\_failed\_logins\_by\_username\_result.png
│ ├── task2\_2\_possible\_brute\_force\_by\_ip\_config.png
│ ├── task2\_2\_possible\_brute\_force\_by\_ip\_result.png
│ ├── task3\_1\_geolocation\_map\_config.png
│ └── task3\_1\_geolocation\_map\_result.png
└── searches/
├── task1\_authentication\_overview.spl
├── task2\_login\_activity\_trends.spl
└── task3\_geolocation\_visualization.spl
```
* **`screenshots/`** — 每个仪表板面板及其搜索配置的可视化证据,直接从 Splunk 中捕获。
* **`searches/`** — 用于构建每个面板的原始 SPL (Search Processing Language) 查询,按任务分组,与仪表板中实际配置的内容相匹配(而不仅仅是原始任务简介),以便它们可以被复制粘贴到新的 Splunk 实例中。
## 设置
### 数据摄取
SSH 日志数据 (`ssh\_logs\_new.json`,sourcetype 为 `\_json`) 通过 **Settings → Add Data → Upload** 上传。
!\[Data Setup](screenshots/00\_data\_setup\_upload\_ssh\_logs\_new.png)
### 任务 0 — 配置共享时间范围
此仪表板中的每个面板都从单个共享的时间输入中读取数据,因此整个页面的结果保持一致。
1. 点击 **Add Input** → 选择 **Time**。
2. 点击新输入旁边的铅笔(编辑)图标。
3. 将 **Label** 设置为 `Time Range`,将 **Token** 设置为 `time\_range`。
4. 再次点击 **Add Input** → 选择 **Submit**。
5. 对于随后添加的每个面板,将其时间源设置为共享的 `time\_range` token。
### 任务 1 — 身份验证概述面板
目标:快速摘要 SSH 活动。
|面板|可视化|标题|结果|
|-|-|-|-|
|1.1|Single Value|SSH 事件总数|1,200|
|1.2|Single Value|成功登录|306|
|1.3|Single Value|失败登录|305|
|1.4|Single Value|未经身份验证的连接|286|
这四个面板都使用 **Add Panel → New → Single Value**,并带有共享的 `time\_range` 时间选择器。查询:[`searches/task1\_authentication\_overview.spl`](searches/task1_authentication_overview.spl)。
### 任务 2 — 登录活动趋势
目标:随时间可视化登录行为并检测峰值。
|面板|可视化|标题|搜索|
|-|-|-|-|
|2.1|Bar Chart|按用户名统计的失败登录|[`searches/task2\_login\_activity\_trends.spl`](searches/task2_login_activity_trends.spl)|
|2.2|Statistics Table|按 IP 地址推断的可能暴力破解|同一文件|
面板 2.1 显示了哪些用户名最成为攻击目标(`root`、`backup` 和 `alice` 位居榜首)。面板 2.2 显示了哪些源 IP 正在生成最多的“多重身份验证失败尝试”事件 —— 这是疑似暴力破解来源的代理指标。
### 任务 3 — 暴力破解地理位置可视化
目标:在世界地图上绘制暴力破解源 IP,以发现攻击的地理集中情况。
|面板|可视化|标题|搜索|
|-|-|-|-|
|3.1|Choropleth Map|带地理位置的暴力破解攻击|[`searches/task3\_geolocation\_visualization.spl`](searches/task3_geolocation_visualization.spl)|
此面板使用 `iplocation` 将源 IP 解析为国家/地区,然后使用 `geom geo\_countries` 渲染按国家/地区统计攻击次数的 Choropleth 地图。
## 数据源
|来源|Sourcetype|Host|用于|
|-|-|-|-|
|`ssh\_logs\_new.json`|`\_json`|`windows`|任务 1,任务 2|
|`ssh\_logs\_new.json`|`\_json`|`LinuxNew`|任务 3|
## 展示的核心技能
* 采用可重用、token 驱动的时间控件进行 Splunk 仪表板设计
* SPL:`stats`、`top`、`table`、`iplocation`、`geom`
* SIEM 风格的分流面板:数量、成功/失败比率、未经身份验证的连接
* 通过按用户名和源 IP 聚合失败尝试来进行暴力破解检测
* 攻击者来源的地理富化和 Choropleth 地图可视化
## 许可证
该项目在 [MIT 许可证](LICENSE) 下发布。
## 作者
由 Kabelo Motaung 作为个人 SOC/SIEM 分析师在 Splunk 中的实践项目构建。
标签:Homebrew安装, HTTP/HTTPS抓包, 免杀技术, 安全运营, 态势感知, 扫描框架, 暴力破解检测, 红队行动