NonitBajaj/SOC-Triage-Incident-Response-Simulation

GitHub: NonitBajaj/SOC-Triage-Incident-Response-Simulation

该项目使用 Python 构建轻量级 SIEM 模拟引擎,针对 SSH 暴力破解事件提供从日志解析、告警分诊到应急响应 playbook 的全流程演练环境。

Stars: 0 | Forks: 0

# SOC-分诊-应急响应-模拟 使用 Python 构建了自定义日志解析与 SIEM 模拟引擎;对自动化的 SSH 暴力破解事件进行了分诊,成功将真实阳性从基线管理行为中隔离出来,并编写了全生命周期应急响应 playbook # 应急响应与分诊报告:SSH 暴力破解 **事件 ID:** INC-2026-001 **严重性:** Critical **日期/时间:** 2026 年 6 月 21 日 **分析师:** [您的姓名] ## 1. 检测与告警详情 内部 Python-SIEM 基于规则 `SSH-BF-01` 触发了一个告警:**在单个日志周期内,来自单一源的失败登录尝试超过 5 次。** * **目标资产:** `192.168.1.50`(内部服务器) * **触发源 IP:** `203.0.113.5`(外部/未知恶意 IP) * **总失败尝试次数:** 15 * **失陷指标:** 在失败尝试之后,立即观察到来自攻击 IP 的用户 `root` 登录成功(`status=Accepted`)。 ## 2. 分析与分类 ### Artifact 审查 在审查 `auth.log` 后,发现了两个异常情况: 1. **IP 203.0.113.5:** 显示出针对 `root` 账户的快速自动化登录尝试,并以一次成功的身份验证绕过告终。 2. **IP 192.168.1.99:** 显示用户 `admin` 有 4 次失败的登录尝试。 ### 分类矩阵 * **告警 1(IP 203.0.113.5):** **真实阳性(主动失陷)**。高频率的失败尝试加上最后一次成功的登录表明这是一次成功的暴力破解攻击。 * **告警 2(IP 192.168.1.99):** **假阳性(良性/正常行为)**。交叉比对内部资产清单确认该 IP 属于网络管理员。这 4 次尝试属于人为错误(输入错误),并未突破安全阈值。 ## 3. 遏制与根除步骤(Playbook) 为了缓解主动的真实阳性失陷,必须执行以下 IR 生命周期步骤: 1. **网络隔离:** 立即在边界路由器/主机上应用防火墙规则,丢弃所有来自 `203.0.113.5` 的流量。 2. **会话终止:** 在目标主机(`192.168.1.50`)上终止所有源自 `203.0.113.5` 的活跃 SSH 会话。 3. **凭证吊销:** 强制要求 `root` 账户立即重置密码。 4. **日志保全:** 将 `auth.log` 和系统审计日志导出到安全的取证服务器进行深度分析,以检查攻击者是否建立了持久性(例如,在 `.ssh/authorized_keys` 中添加了未经授权的密钥)。 ## 4. 经验教训与建议 * **禁用 Root SSH:** 修改 `/etc/ssh/sshd_config` 以设置 `PermitRootLogin no`。 * **实施 MFA:** 对所有 SSH 访问强制执行多因素身份验证。 * **速率限制:** 部署 `Fail2Ban`,在达到 SIEM 层面之前,自动在 3 次失败登录尝试后丢弃 IP。
标签:Python, SSH爆破分析, 内存分配, 安全运营, 库, 应急响应, 扫描框架, 无后门, 日志解析, 证书伪造, 逆向工具