首页/安全/取证与溯源速查/登录记录缺口与异常检测
Linux 取证135 条

登录记录缺口与异常检测

wtmp 的起止时间应与机器运行时长匹配;若记录只覆盖最近几天而主机已运行数月,说明文件被清空或重建过。

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

登录记录里的时间缺口

wtmp 记录登录、注销与重启事件,utmp 保存当前登录会话,btmp 保存失败登录尝试,三者分别由 last、who 与 lastb 读取。这些文件的起止时间应与机器运行时长匹配:如果 wtmp 只覆盖最近几天,而主机已经连续运行数月,说明文件被清空、重建或轮转策略过于激进。判断方式是与 uptime、系统安装时间、日志时间范围交叉对照,而不是只看单个文件的第一条记录。

基本信息

文件/var/log/wtmp、/var/run/utmp、/var/log/btmp
读取命令last、lastb、who、utmpdump
对照对象uptime -s 的启动时间与 last reboot 的重启记录
异常表现时间倒流、记录过短、完全没有重启行

典型使用场景

  • 判断登录记录是否被人为清空或轮转覆盖
  • 核对主机上报的运行时长与重启记录是否一致
  • 确认事件时刻是否存在无人认领的登录会话
  • 检查失败登录记录与认证日志能否互相印证
  • 评估登录类证据的完整范围,为报告限定结论边界

对照检查

对照检查
last reboot | head -5                 # 重启记录,正常应与运行时长吻合
uptime -s                              # 系统启动时刻
utmpdump /var/log/wtmp | head -5        # 原始记录视图,含二进制结构字段
last -F | head -10                      # 完整时间格式的登录记录
ls -l /var/log/wtmp*                    # 轮转文件与当前文件
stat -c '%n %y %s' /var/log/wtmp        # 修改时间与大小,判断是否被重建

last 输出读法

列含义判读要点
用户名登录账号,reboot 表示重启缺少 reboot 行需解释原因
终端tty 或 pts 编号pts 表示通过 SSH 或终端复用接入
来源登录来源地址或本地异常地址是定位重点
起止时间登录与注销时间仍为 still logged in 表示会话未注销
wtmp 被清空常见原因是轮转配置错误或人为删除,两者含义完全不同:轮转通常留下压缩的历史文件与配置痕迹,人为删除则表现为时间上突然的断点。
容器与部分云主机启动时不写重启记录,判断前先确认环境类型与 init 系统,避免把平台差异当成证据缺口。
清空或重建 wtmp 会同时清掉当前会话记录,现场处置时不要为了让报告「干净」而执行任何清理命令。

易错点

  • 只看 wtmp 第一条记录就断定主机运行时间,未与 uptime 对照
  • 把容器环境不写重启记录误判为日志被清空
  • 轮转策略保留天数过短造成记录稀薄,被误认为人为删除
  • 忽略 lastb 与认证日志的互相印证,漏掉失败登录这一类证据

数据来源与参考

  • util-linux 手册(wtmp 与 last)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌