首页/安全/取证与溯源速查/爆破成败配对:失败序列找成功
日志溯源53 条

爆破成败配对:失败序列找成功

爆破分析的常规动作是找失败与成功的配对:同一来源在密失败序列后出现成功,该成功记录的上下文要重点审查。

取证与溯源速查安全更新于 2026-10-13

认证事件配对

单看一条登录日志说明不了问题。把失败与成功记录按来源地址和账号配对,才能看清一次入侵尝试的节奏:先在某个时间窗内密集试错,再在某个时刻成功。配对键通常取来源 IP 加账号,观察窗口是失败序列到成功记录之间的时间间隔。

基本信息

配对键来源 IP 加账号
失败关键字Failed password、Invalid user
成功关键字Accepted password、Accepted publickey
日志位置Debian 系 /var/log/auth.log,RHEL 系 /var/log/secure
轮转文件auth.log.1 与 .gz 压缩包需要一并检索
时间口径统一到主时间线使用的时区

典型使用场景

  • 判断某个来源 IP 最终是否登录成功
  • 统计单个账号被尝试的次数与来源分布
  • 区分口令登录与密钥登录的成功记录
  • 定位爆破成功之后的第一跳动作
  • 为封锁与加固策略提供来源清单

最小示例

最小示例
grep -E 'Failed password|Accepted password' /var/log/auth.log | tail -30
grep '203.0.113.10' /var/log/auth.log | grep -E 'Failed|Accepted' | tail -20
zgrep -E 'Failed password|Accepted password' /var/log/auth.log.* | tail -10
grep 'Accepted publickey' /var/log/auth.log | tail -10        # 密钥登录单独看
grep -oE 'from [0-9.]+' /var/log/auth.log | sort | uniq -c | sort -rn | head
grep -c 'Failed password' /var/log/auth.log                   # 失败总次数

事件与关注点

事件含义关注点
Failed password口令认证失败密度与来源集中度
Invalid user用户名不存在说明在尝试猜账号
Accepted password口令登录成功来源是否就是刚才失败的 IP
Accepted publickey密钥登录成功需核对密钥的授权来源
Connection closed连接被关闭配合 preauth 判断扫描行为
session opened会话建立成功后是否真的有交互
一次成功登录不等于攻击者已经交互:要看是否伴随会话建立、后续命令与流量;单看 Accepted 行只能说明认证通过。
只统计当前日志会漏掉早期轮转文件,长时间跨度的事件应把 .1 与 .gz 一并纳入检索。
排查过程中反复尝试登录会污染日志;测试用的账号、口令与来源都要在记录中写明,避免与分析对象混淆。

易错点

  • 只统计失败或只统计成功:两类事件配对后才有行为意义,缺一侧就判断不了是否得手
  • 忘记轮转与压缩日志:入侵早期的关键记录常已被轮转,漏查会得出没有入侵的错误结论
  • 按固定列位置切分字段:不同发行版与版本的日志格式不同,硬编码列号容易取错内容
  • 不区分口令与密钥登录:密钥登录成功通常指向凭据泄露或授权被滥用,处置方式与口令爆破完全不同

数据来源与参考

  • OpenSSH 日志格式文档
  • SANS 认证日志资料
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌