Tushar221098/SSH-Threat-Detection
GitHub: Tushar221098/SSH-Threat-Detection
基于Splunk的SSH日志威胁检测项目,通过解析JSON日志构建监控仪表板,实现暴力破解攻击识别、失陷账户检测和异常行为告警。
Stars: 0 | Forks: 0
# SSH 威胁检测
**使用工具:** Splunk Enterprise、Linux、JSON 日志、正则表达式
## 概述
本项目演示了如何将 SSH 系统日志摄取到 SIEM (Splunk) 中,解析复杂的 JSON 数据,并构建监控仪表板以检测暴力破解攻击和未授权访问尝试。
## 任务 1:摄取与解析
我将 `ssh_log.json` 上传至 Splunk 并配置了自定义字段提取,以确保关键安全数据可被搜索。

**提取的关键字段:**
* `event_type`:对登录状态进行分类。
* `id.orig_h`:攻击者/用户的源 IP。
* `auth_success`:表示登录结果的布尔值 (True/False)。
* `id.resp_h`:目标 IP。
* `auth_attemps`:尝试次数。
**验证查询:**
`index=ssh_log | stats count by event_type`
## 任务 2:分析失败的登录尝试
我找出了产生失败登录尝试次数排名前 10 的源 IP。通过在条形图中可视化这些数据,我可以快速定位最猛烈的外部威胁。
**SPL 查询:**
`index=ssh_logs event_type="Failed SSH Login" | stats count by id.orig_h | sort -count | head 10`

## 任务 3:检测暴力破解(告警)
为了自动检测暴力破解攻击,我配置了一个 Splunk 告警,当单个 IP 在 10 分钟时间窗口内尝试登录超过 5 次时触发。这有助于快速的事件响应。
**告警逻辑:**
* **条件:** count > 5
* **时间窗口:** 10 分钟
* **动作:** 触发高优先级告警

## 任务 4:追踪成功的登录
此任务侧重于识别成功的访问。通过将这些结果与任务 2 中大量的失败尝试进行对比,我可以判断暴力破解攻击是否得逞。
**SPL 查询:**
`index=ssh_logs event_type="Successful SSH Login" | stats count by id.orig_h, id.resp_h | sort -count`

## 任务 5:探测活动的时间分析
此任务用于识别“探测”或“端口扫描”行为。当攻击者连接到 SSH 端口以查看其是否开放,但未尝试登录时,就会发生这种情况。
## 分析:
* **入侵指标:** 频繁的未认证连接是暴力破解攻击的先兆。
* **模式识别:** 我使用 `timechart` 来识别扫描高峰时段,这有助于调整防火墙的速率限制策略。
**SPL 查询:**
`index=ssh_logs event_type="Connection Without Authentication" | timechart count by id.orig_h`

## 结论与结果
通过本次动手实验,我成功分析了 1,200 条 SSH 日志事件,以识别并缓解一次暴力破解攻击活动。
1. 调查结果摘要
大规模暴力破解活动:发现了 300 多次源自少数几个极具攻击性的 IP 地址的失败登录尝试。
失陷检测:通过交叉比对失败和成功的日志,我精确定位了在经历高强度暴力破解后出现的成功登录,这表明可能发生了账户泄露。
探测模式:时间图分析显示,未认证的“探测”通常发生在暴力破解尝试前 30 分钟,提供了明确的早期预警信号。
2. 安全建议
实施账户锁定:配置在 5 次失败尝试后锁定账户的策略,以阻止自动化机器人。
地理封锁:如果排名靠前的攻击 IP 来自企业未开展业务的地区,请实施防火墙地理封锁。
启用 MFA:确保所有 SSH 访问都需要多因素认证,从而使暴力破解密码猜测失效。
3. 展示技能
SIEM 管理:在 Splunk 中进行数据摄取、字段提取和仪表板创建。
事件检测:为可疑活动创建实时告警。
数据分析:将原始日志转化为可执行的安全情报。
标签:AMSI绕过, Homebrew安装, JSON解析, OISF, PoC, SIEM监控, SPL查询, SSH安全, 威胁检测, 安全仪表盘, 安全告警, 安全运营, 扫描框架, 日志管理, 暴力破解, 未授权访问, 网络安全, 隐私保护