DCP1964/soc-detection-engineering-ssh-bruteforce

GitHub: DCP1964/soc-detection-engineering-ssh-bruteforce

基于Splunk的SSH暴力破解检测用例,结合威胁情报关联实现从日志采集到事件响应的完整SOC工作流演示。

Stars: 0 | Forks: 0

# SOC 检测工程项目 — SSH 暴力破解与威胁情报关联 ## 检测输出 ### 原始暴力破解日志 ![原始日志](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/3151167028123518.png) ### 带威胁情报关联的检测结果 ![检测结果](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/a151ce0020123519.png) ## 1. 项目概述 本项目演示了在 Splunk 中设计并验证安全运营中心 (SOC) 检测用例的过程。该检测旨在识别 SSH 暴力破解活动,并将其与自定义威胁情报数据集进行关联。 实施过程侧重于检测工程原则,包括事件聚合、基于阈值的检测以及使用查找表进行富化。 ## 2. 目标 - 检测指示暴力破解攻击的重复失败认证尝试 - 将检测到的活动与已知恶意 IP 地址进行关联 - 模拟攻击数据以验证检测逻辑 - 记录调查和响应工作流程 - 构建结构化、可复用的 SOC 用例 ## 3. 架构 ### 组件 - Splunk Enterprise (Ubuntu Server VM) — SIEM 平台 - Windows VM — 日志源和数据转发器 - Splunk Universal Forwarder — 日志采集 - 自定义查找表 — 威胁情报模拟 ### 数据流 1. 日志在 Windows 系统上生成 2. Universal Forwarder 将日志发送到 Splunk Enterprise 3. Splunk 对数据进行索引和处理 4. 检测逻辑聚合并过滤事件 5. 查找表利用威胁情报丰富事件信息 ## 4. 数据源 - 认证日志(失败登录尝试) - 使用 Splunk SPL 模拟的事件数据 - 威胁情报查找 (known_bad_ips.csv) ## 5. 检测策略 ### 检测逻辑 该检测识别产生多次失败认证尝试的 IP 地址,并将其与已知恶意 IP 进行关联。 ``` index=security sourcetype=linux_secure ("Failed password" OR "authentication failure") | stats count, values(user) as attempted_users, min(_time) as first_attempt, max(_time) as last_attempt by src_ip | where count > 10 | lookup known_bad_ips.csv src_ip OUTPUT src_ip AS matched_ip | where isnotnull(matched_ip) | eval duration_minutes = round((last_attempt - first_attempt)/60, 2) ``` 此查询使用特定的 index 和 sourcetype 来提高搜索性能,并减少 Splunk 中不必要的数据扫描。这种方法符合 SIEM 优化和成本效益的最佳实践。 ### 为什么此检测有效 检测原理 此检测之所以有效,是因为它结合了行为分析与威胁情报关联。暴力破解攻击会产生大量失败的认证尝试,这可以通过聚合操作进行识别。 通过将这些事件与已知恶意 IP 列表关联,检测机制减少了误报,并优先处理高置信度的威胁。 ### 高级检测:失败后的成功 ``` index=security sourcetype=linux_secure ("Failed password" OR "Accepted password") | eval status=if(searchmatch("Failed password"), "failed", "success") | stats count(eval(status="failed")) as failed_count, count(eval(status="success")) as success_count by src_ip | where failed_count > 5 AND success_count > 0 ``` 此检测识别潜在的账户失陷场景,即源 IP 在进行多次失败认证尝试后成功登录。 这种模式在 SOC 环境中至关重要,因为它表明攻击者可能已成功猜出或获取了有效凭证。 ### MITRE ATT&CK 映射 - T1110 — 暴力破解 (Brute Force) ### 核心概念 - 基于阈值的检测 (count > 5) - 使用 stats 进行事件聚合 - 使用 lookup 进行威胁情报富化 - 通过仅过滤匹配的 IP 来降低噪音 ### 检测调优策略 静态阈值(例如 count > 5)在实际环境中可能导致误报。 在生产环境中,阈值应根据以下因素动态调整: - 每个用户/IP 的基准认证行为 - 时段模式 - 登录失败的标准差 本项目使用固定阈值进行演示,但强调了在真实 SOC 环境中进行自适应检测调优的必要性。 ## 6. 模拟与验证 为了验证检测逻辑,我们生成了模拟的暴力破解活动。 ``` | makeresults count=10 | eval src_ip="192.168.1.50" | stats count by src_ip | where count > 5 | lookup known_bad_ips.csv src_ip OUTPUT src_ip AS matched_ip | where isnotnull(matched_ip) ``` 模拟数据 (192.168.1.50) 用于验证检测逻辑,同时分析来自环境的真实认证日志以展示实际的暴力破解行为。 ### 验证结果 - 源 IP: 192.168.1.50 - 失败尝试次数: 10 - 威胁情报匹配: 已确认 检测成功识别并关联了恶意活动。 ## 7. 威胁情报自动化(未来增强) 当前实现使用静态 CSV 查找表 (known_bad_ips.csv) 进行威胁情报富化。 在生产 SOC 环境中,此过程将实现自动化,以确保实时的准确性和可扩展性。 潜在的自动化方法包括: - 与威胁情报 API 集成(例如 VirusTotal, AlienVault OTX) - 使用 Python 脚本定期获取和更新恶意 IP 源 - 使用计划任务或 cron 作业刷新 Splunk 中的查找表 - 与 SIEM 威胁情报平台集成 此增强将减少人工操作,提高检测准确性,并确保威胁情报关联保持最新。 ## 8. 调查工作流 检测触发后,执行以下调查步骤: 1. 验证检测准确性和阈值 2. 分析失败的认证日志 3. 识别受影响的账户和系统 4. 检查是否存在成功登录尝试 5. 关联来自同一 IP 的其他活动 6. 使用威胁情报源验证 IP 信誉 针对常见用户名(如 root 或无效用户)的重复失败登录尝试表明这是自动化暴力破解活动,而非正常用户行为。 ## 9. 误报缓解 - 排除已知的管理 IP 地址(内部网络) - 根据基准认证行为调整阈值 - 过滤掉会产生预期登录失败的服务账户 - 仅与威胁情报关联以减少噪音 - 监控重复模式而非单一事件 ## 10. 响应措施 - 在网络层面封锁恶意 IP - 禁用或加固受影响的账户 - 强制执行更强的认证控制 - 监控重复或分布式尝试 - 若存在失陷指标则进行升级处理 ## 11. 检测局限 此检测可能无法识别: - 分布式暴力破解攻击(多个 IP 攻击一个账户) - 长时间内的“低频慢速”攻击 - 使用有效凭证且未产生失败尝试的攻击 - 此方法符合 SIEM 优化和成本效益的最佳实践。 ## 12. 项目结构 ``` case_studies/ playbooks/ lookups/ queries/ screenshots/ ``` ## 13. 展示的关键技能 - SPL 查询开发 - 检测工程 - 威胁情报集成 - 日志分析与关联 - SOC 调查方法论 - 安全用例验证 ## 14. 假设与局限 - 检测基于模拟和有限的日志数据 - 阈值在生产环境中可能有所不同 - 查找表代表简化的威胁情报源 - Index 和字段名称在不同环境中可能存在差异 ## 15. 未来改进 - 集成来自 Linux 系统的真实认证日志 - 添加地理位置富化 - 实施基于风险的评分 - 使用基线分析调优检测阈值 - 自动化告警和响应工作流 ## 16. 结论 本项目展示了完整的 SOC 检测工作流,涵盖从数据摄取、检测逻辑到验证和响应的全过程。它突出了使用 Splunk 进行检测工程技术的实际应用,并提供了一个可复用的框架,用于识别经威胁情报富化的暴力破解攻击。 ## 17. 证据 请参阅 screenshots 目录以获取检测结果和验证输出。
标签:CCTV/网络接口发现, IP 地址批量处理, SPL 查询, SSH暴力破解, 关联分析, 凭证填充, 威胁情报, 安全运营中心, 开发者工具, 异常行为检测, 数据 enrichment, 渗透测试防御, 网络安全, 网络映射, 阈值检测, 防御 evasion, 隐私保护