RouteToRoot/soc-lab-25-threat-hunting-splunk
GitHub: RouteToRoot/soc-lab-25-threat-hunting-splunk
记录了在Splunk Enterprise中使用SPL对Linux SSH认证日志进行主动威胁狩猎以识别暴力破解模式的实验过程。
Stars: 0 | Forks: 0
# 实验室 25 — Splunk 中的威胁狩猎
## 执行摘要
本实验室记录了在 Splunk Enterprise 中使用 SPL 针对 Kali Linux 身份验证日志数据进行的四次主动威胁狩猎。这些狩猎识别了密码错误尝试、无效用户登录、攻击频率模式以及组合的身份验证失败总数。在时间图表中识别出了两个明显的攻击高峰——一个来自实验室 13/21 的暴力破解模拟,另一个来自实验室 24 的模拟——证实了持续的威胁活动,并验证了 Splunk 作为与 Elastic SIEM 并驾齐驱的强大威胁狩猎平台的能力。
## 事件工单 (ServiceNow 模拟)
| 字段 | 详情 |
|---|---|
| **事件 ID** | INC-0025 |
| **日期/时间** | 2026 年 4 月 27 日 |
| **执行人** | SOC 分析师 — RouteToRoot |
| **严重程度** | 中 |
| **类别** | 威胁狩猎 |
| **子类别** | 身份验证异常分析 |
| **简短描述** | 主动威胁狩猎在 Splunk 中发现 SSH 暴力破解模式 |
| **详细描述** | 在 Splunk 中进行了四次基于 SPL 的威胁狩猎,以主动识别 /var/log/auth.log 中的 SSH 暴力破解指标。狩猎发现了 56 次密码错误事件、125 次无效用户尝试,以及一个显示与先前实验室模拟相对应的两个不同攻击窗口的时间图表。 |
| **状态** | 已关闭 |
## 实验室目标
- 在 Splunk 中使用 SPL 进行主动威胁狩猎
- 按主机识别密码错误尝试和无效用户登录
- 使用时间图表随时间可视化攻击活动
- 关联组合的身份验证失败事件
- 将狩猎发现记录为威胁情报
## 环境概述
| 组件 | 详情 |
|---|---|
| 主机操作系统 | Windows |
| 虚拟机 | Kali Linux (VMware Workstation) |
| Splunk 版本 | Enterprise 10.2.2 |
| Splunk URL | http://localhost:8000 |
| 日志来源 | /var/log/auth.log |
| 来源类型 | linux_auth |
| 索引 | default |
## 威胁狩猎
### 狩猎 1 — 按主机统计的密码错误尝试
**假设:** kali 主机经历了多次密码错误尝试,表明存在暴力破解或凭证填充攻击。
**SPL 查询:**
```
source="/var/log/auth.log" "Failed password" | stats count by host
```
**结果:**
| host | count |
|---|---|
| kali | 56 |
**发现:** 在 kali 主机上确认了 56 次密码错误事件。该数量与跨多个实验室的重复暴力破解模拟活动一致。
### 狩猎 2 — 按主机统计的无效用户登录尝试
**假设:** 攻击者正在针对不存在的用户账户,表明使用了自动化或脚本化的暴力破解工具。
**SPL 查询:**
```
source="/var/log/auth.log" "Invalid user" | stats count by host | sort -count
```
**结果:**
| host | count |
|---|---|
| kali | 125 |
**发现:** kali 主机上有 125 次无效用户尝试。相对于密码错误而言,大量的无效用户事件表明对不存在账户的重复定向攻击——这是一个强烈的暴力破解指标。
### 狩猎 3 — 随时间变化的攻击活动
**假设:** 攻击活动集中在与实验室模拟相对应的特定时间窗口内。
**SPL 查询:**
```
source="/var/log/auth.log" "invalid_user" | timechart count span=1h
```
**结果:** 分布在 25 个小时段中的 126 个事件,具有两个明显的高峰:
- **高峰 1:** 2026 年 4 月 26 日 @ 21:00 — 76 个事件(实验室 13 和 21 暴力破解模拟)
- **高峰 2:** 2026 年 4 月 27 日 @ 16:00 — 约 50 个事件(实验室 24 暴力破解模拟)
**发现:** 攻击活动明显集中在两个时间窗口内,且两者之间没有背景噪音。此模式与脚本化、定向的暴力破解相一致,而非机会性扫描。
### 狩猎 4 — 按主机统计的组合身份验证失败
**假设:** 结合密码错误和无效用户事件可以最全面地反映身份验证攻击面。
**SPL 查询:**
```
source="/var/log/auth.log" ("Failed password" OR "Invalid user") | stats count by host | sort -count
```
**结果:**
| host | count |
|---|---|
| kali | 125 |
**发现:** kali 主机上有 125 次组合身份验证失败事件。这代表了总的身份验证攻击面,是风险评估最相关的指标。
## 证据
| 文件 | 描述 |
|---|---|
| `splunk-hunt-1-failed-passwords.png` | 狩猎 1 — 按主机统计的 56 次密码错误事件 |
| `splunk-hunt-2-invalid-users.png` | 狩猎 2 — 按主机统计的 125 次无效用户事件 |
| `splunk-hunt-3-timechart.png` | 狩猎 3 — 显示两个攻击高峰的时间图表 |
| `splunk-hunt-4-combined-auth-failures.png` | 狩猎 4 — 按主机统计的 125 次组合身份验证失败事件 |




## 检测工程见解
- SPL `stats count by host` 是跨多个主机呈现身份验证异常最快的方法
- `timechart count span=1h` 揭示了在原始事件视图中不可见的攻击时间模式
- 两个没有背景噪音的不同攻击高峰证实了这是受控的实验室模拟,而非外部威胁活动
- 无效用户计数 (125) 与密码错误计数 (56) 之间的差距反映了每次 SSH 连接的多事件性质——每次尝试都会生成 Invalid user、Failed none、Failed password 和 Connection closed 事件
- 这些狩猎查询反映了在 Elastic SIEM(实验室 14)中使用的威胁狩猎方法,展示了跨平台可转移的 SOC 技能
## 结论
在 Splunk 中完成了四次主动威胁狩猎,识别出 125 次无效用户尝试、56 次密码错误事件,以及贯穿实验室时间线的两个不同攻击窗口。狩猎发现与来自实验室 13、21 和 24 的受控 SSH 暴力破解模拟相一致。Splunk 的 SPL 查询语言提供了灵活、强大的威胁狩猎能力,可与 Elastic SIEM 实验室中使用的 Kibana KQL 相媲美。
## 后续步骤
- 在 routetoroot.github.io 构建作品集着陆页
- 开始求职申请流程
- 考虑将 Microsoft Sentinel 作为第三个 SIEM 平台(未来实验室)
标签:Elastic SIEM, IT运维, PFX证书, Socks5代理, SPL, SSH暴力破解, 代码示例, 安全实验室, 安全运营, 异常检测, 异常认证, 扫描框架, 攻击检测, 数据分析, 数据展示, 模拟攻击, 红队, 网络安全, 认证日志, 隐私保护