首页/安全/应急响应速查/plaso 时间线生成流程

plaso 时间线生成流程

大规模时间线用 plaso 生成:log2timeline 解析多源产物为 plaso 文件,psort 转换并按时间窗过滤。

应急响应速查安全更新于 2026-10-13

plaso 做什么

大规模时间线用 plaso 生成:log2timeline.py 把磁盘镜像或多源产物解析成 plaso 文件,psort.py 输出为 CSV 等格式并支持时间窗过滤。它的价值是把文件时间戳、日志、浏览器记录统一到同一条时间轴上。

使用时最需要注意的

一是资源消耗:解析大镜像可能耗时数小时甚至更久,需要足够磁盘与内存;二是时间基准:plaso 输出为 UTC,与本地日志对照前必须统一时区。

基本信息

采集解析log2timeline.py timeline.plaso <镜像或目录>
导出psort.py -o l2tcsv -w timeline.csv
过滤支持按时间的过滤表达式
轻量替代fls 生成 body file,再用 mactime 输出时间线
时间基准plaso 输出为 UTC,需与本地日志统一
资源需求解析大镜像耗时长,需充足磁盘与内存

典型使用场景

  • 重建入侵时间线与动作顺序
  • 定位最早的可疑改动时间点
  • 验证某个动作是否发生在特定时间窗内
  • 与日志时间线交叉印证
  • 为报告提供可排序的时间证据

生成并导出时间线

生成并导出时间线
log2timeline.py /evidence/timeline.plaso /evidence/disk.img
psort.py -o l2tcsv -w /evidence/timeline.csv /evidence/timeline.plaso "date > '2026-10-01 00:00:00'"
head -n 5 /evidence/timeline.csv
fls -o 2048 -r -m / /evidence/disk.img > /evidence/body.txt && mactime -b /evidence/body.txt -d > /evidence/mactime.csv

输出逐列读法

列含义注意点
date事件时间(UTC)与本地日志对照前先统一时区
timestamp_desc时间戳类型mtime、ctime、atime、birth 含义不同,不可混用
source数据来源用于判断该条目的可信度
description事件描述文件路径或日志内容摘要
解析前先评估数据量:可以先只解析关键分区或限定文件类型,确认分析思路可行后再跑全量,避免几个小时后发现方向不对。
时间戳可以被篡改:时间线结论必须与其他证据交叉印证,不能只凭文件时间下判定。

结果留档与复核

结果留档与复核
ls -la /evidence/timeline.plaso /evidence/timeline.csv
sha256sum /evidence/timeline.csv > /evidence/timeline.csv.sha256
wc -l /evidence/timeline.csv
awk -F',' 'NR>1{print $1}' /evidence/timeline.csv | sort | head -n 10   # 看最早的时间点

可纳入的证据来源

  • 文件系统时间戳与文件删除记录
  • 系统日志与认证日志
  • 计划任务、服务与定时器的执行时间
  • 浏览器下载与访问痕迹
  • 配置文件与注册表的修改时间

时间线的使用方式

  • 先看最早的异常时间点,确定入侵起点
  • 再看同一时间窗内的多条记录作为旁证
  • 按时间排序还原动作先后顺序
  • 为每条结论标注对应证据来源

易错点

  • 直接全镜像跑:可能数小时到数天,先评估数据量
  • 忽视时区:plaso 输出为 UTC,未换算会整体偏移
  • 只看单条记录:时间线要按序列解读,孤立一条难以下结论
  • 忽略时间戳类型差异:mtime 与 ctime 混用会造成误判
  • 输出结果不登记:时间线文件同样需要哈希与清单

数据来源与参考

  • plaso(log2timeline)官方文档
  • SANS 超级时间线教程(plaso 工作流)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌