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 并配置了自定义字段提取,以确保关键安全数据可被搜索。 ![摄取和解析日志](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/69e3a328e9121506.png) **提取的关键字段:** * `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` ![排名前列的攻击者 IP](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/a317a89fcd121507.png) ## 任务 3:检测暴力破解(告警) 为了自动检测暴力破解攻击,我配置了一个 Splunk 告警,当单个 IP 在 10 分钟时间窗口内尝试登录超过 5 次时触发。这有助于快速的事件响应。 **告警逻辑:** * **条件:** count > 5 * **时间窗口:** 10 分钟 * **动作:** 触发高优先级告警 ![暴力破解告警配置](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/d84eab0fdb121508.png) ## 任务 4:追踪成功的登录 此任务侧重于识别成功的访问。通过将这些结果与任务 2 中大量的失败尝试进行对比,我可以判断暴力破解攻击是否得逞。 **SPL 查询:** `index=ssh_logs event_type="Successful SSH Login" | stats count by id.orig_h, id.resp_h | sort -count` ![成功登录](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/fde564d1d8121509.png) ## 任务 5:探测活动的时间分析 此任务用于识别“探测”或“端口扫描”行为。当攻击者连接到 SSH 端口以查看其是否开放,但未尝试登录时,就会发生这种情况。 ## 分析: * **入侵指标:** 频繁的未认证连接是暴力破解攻击的先兆。 * **模式识别:** 我使用 `timechart` 来识别扫描高峰时段,这有助于调整防火墙的速率限制策略。 **SPL 查询:** `index=ssh_logs event_type="Connection Without Authentication" | timechart count by id.orig_h` ![未认证探测时间线](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/83995265a0121510.png) ## 结论与结果 通过本次动手实验,我成功分析了 1,200 条 SSH 日志事件,以识别并缓解一次暴力破解攻击活动。 1. 调查结果摘要 大规模暴力破解活动:发现了 300 多次源自少数几个极具攻击性的 IP 地址的失败登录尝试。 失陷检测:通过交叉比对失败和成功的日志,我精确定位了在经历高强度暴力破解后出现的成功登录,这表明可能发生了账户泄露。 探测模式:时间图分析显示,未认证的“探测”通常发生在暴力破解尝试前 30 分钟,提供了明确的早期预警信号。 2. 安全建议 实施账户锁定:配置在 5 次失败尝试后锁定账户的策略,以阻止自动化机器人。 地理封锁:如果排名靠前的攻击 IP 来自企业未开展业务的地区,请实施防火墙地理封锁。 启用 MFA:确保所有 SSH 访问都需要多因素认证,从而使暴力破解密码猜测失效。 3. 展示技能 SIEM 管理:在 Splunk 中进行数据摄取、字段提取和仪表板创建。 事件检测:为可疑活动创建实时告警。 数据分析:将原始日志转化为可执行的安全情报。
标签:AMSI绕过, Homebrew安装, JSON解析, OISF, PoC, SIEM监控, SPL查询, SSH安全, 威胁检测, 安全仪表盘, 安全告警, 安全运营, 扫描框架, 日志管理, 暴力破解, 未授权访问, 网络安全, 隐私保护