首页/安全/取证与溯源速查/psteal 一步生成时间线
溯源思路与流程68 条

psteal 一步生成时间线

plaso 的 psteal 封装了采集与输出两个阶段,适合快速得到一次性时间线;对大型镜像仍有耗时,需要评估磁盘与内存占用。

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

psteal 的定位

psteal 把 plaso 的采集与输出两步封装成一条命令:直接对镜像或日志目录运行,一次得到 CSV 时间线,省去先生成 .plaso 存储再导出的步骤。它适合中小镜像、或者在正式深挖之前先看一遍概览。代价是不保留中间存储——后续想换过滤条件必须重新解析原镜像,大容量镜像上这一步的代价很高,因此只建议用于粗看与快速验证。

基本信息

适用平台Linux/macOS 分析机(plaso 套件,需已安装 Python 环境)
核心参数--source 指定镜像或日志目录、-o 输出格式、-w 输出文件
时间基准与 plaso 一致按所选时区渲染,需显式指定 UTC
产物CSV 时间线文件与采集统计信息
资源占用解析期间对 CPU 与磁盘空间要求较高,大镜像需预留空间
替代方案log2timeline.py 加 psort.py 两步走,保留可反复查询的存储

典型使用场景

  • 接到镜像后先跑一遍概览,判断有没有值得深挖的时间段
  • 中小镜像的快速时间线交付,避免多步操作
  • 验证镜像本身可解析:能出事件说明文件系统结构完好
  • 临时抽查某个应用日志目录的事件分布
  • 给不熟悉 plaso 两步流程的同事一个上手入口
  • 在现场时间紧张时先产出可用结果,后续再补精细分析

快速时间线

快速时间线
# 一条命令得到 CSV:源为镜像,输出格式为 l2tcsv
psteal.py --source /evidence/disk.E01 -o l2tcsv -w quick.csv
# 也可以直接指向日志目录,适合只看应用日志的场景
psteal.py --source /var/log -o l2tcsv -w logs.csv
# 确认产物可用:表头、行数与时间范围
head -3 quick.csv
wc -l quick.csv
# 需要反复换条件时,改用两步走以保留可查询的存储
log2timeline.py --timezone UTC --storage-file case.plaso /evidence/disk.E01
psort.py -o l2tcsv case.plaso -w timeline.csv

命令要素逐项

参数作用使用要点
--source指定镜像或日志目录目录会递归解析,范围过大时耗时显著增加
-o输出格式l2tcsv 便于表格处理,dynamic 便于数据库查询
-w输出到文件不写文件时结果直接输出到终端,长列表容易刷屏
时间设置事件时间的渲染基准显式指定 UTC,避免默认值带来整体偏移
(无 storage 参数)不保留中间存储后续换条件需重新解析,大镜像上代价高
一次性输出不保留中间存储。把导出的 CSV 当作最终结果之后,若要按新的时间窗或字段重新筛选,只能回到原镜像再跑一遍;大容量镜像上这一步可能耗费数小时。
不同 plaso 版本对 psteal 的支持状态不一样:较早版本曾不包含该工具,需要改用 log2timeline 与 psort 两步。执行前先确认本机环境里是否存在该命令及其参数。

易错点

  • 把快速导出的 CSV 当作最终交付,丢失可追溯的中间存储,后续复核要重跑全量解析
  • 磁盘空间不足导致解析中途失败,浪费时间且需要重来,采集前应先估算存储需求
  • 未显式指定时间基准,导出的时间戳与日志原始时间存在整体偏移
  • --source 指向过大的目录,解析范围超出预期,耗时远超评估
  • 在版本不包含该工具的环境中照抄命令,误以为镜像有问题

数据来源与参考

  • Plaso 官方文档(psteal)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌