首页/安全/取证与溯源速查/psort 过滤:按时间窗与条件切片
溯源思路与流程68 条

psort 过滤:按时间窗与条件切片

psort 支持事件过滤表达式与切片参数,适合在已有 plaso 存储上做定向输出,避免每次改动都重新解析镜像。

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

psort 在做什么

psort.py 是 plaso 的导出与后处理工具:它读取已经生成的 .plaso 存储文件,按过滤表达式或时间切片挑出事件,再输出成 l2tcsv、dynamic、json_line 等格式。因为工作对象是存储文件而不是原始镜像,所以调一次筛选条件不需要重新解析镜像,几分钟就能拿到新结果。规范的用法是先把镜像一次性采集完,后续所有时间窗与条件变化都在 psort 这一层完成。

基本信息

适用平台Linux/macOS 分析机(plaso 套件)
输入log2timeline 生成的 .plaso 存储文件
主要参数输出格式、输出路径、过滤表达式、时间切片、事件字段选择
过滤字段常按 date、data_type、source、host、user 组合条件
输出格式l2tcsv、dynamic(SQLite)、json_line、xlsx 等
执行代价只读存储,不触碰原始证据

典型使用场景

  • 按时间窗输出:只交付 2 小时的窗口,避免上万行 CSV
  • 按字段筛选:只看某台主机或某个账号的事件
  • 把筛选结果转成 dynamic 存储,交给 SQLite 反复查询
  • 同一份存储按不同问题产出多份 CSV,各自独立复核
  • 对比两个时间窗的事件差异,验证处置是否生效
  • 把过滤后的结果作为报告附录,控制篇幅

定向导出

定向导出
# 时间窗导出:过滤表达式写在引号内,-o 指定格式,-w 写出文件
psort.py -q "date > '2026-01-01 00:00:00' AND date < '2026-01-03 00:00:00'" case.plaso -o l2tcsv -w window.csv
# 时间切片,产物是独立存储,可用 SQLite 客户端反复查
psort.py --slice '2026-01-01..2026-01-03' case.plaso -o dynamic -w slice.plaso
# 组合条件:限定主机与数据源类型
psort.py -q "date >= '2026-01-02 00:00:00' AND host == 'web-1'" case.plaso -o l2tcsv -w web1.csv
# 导出前先看有哪些输出模块可用
psort.py -o list
# 结果核对:行数、时间范围与期望是否一致
wc -l window.csv; head -2 window.csv | cut -c1-120

常见参数逐项

参数作用使用要点
-o选择输出模块(l2tcsv/dynamic/json_line 等)用 psort.py -o list 查看本机可用模块
-w把结果写入指定文件不写 -w 时结果直接打到终端,长列表容易刷屏
-q过滤表达式字段名与引号风格按版本文档写,先小窗口试跑
时间参数限定事件时间范围(表达式或切片)时间按采集侧基准解释,需与 UTC 口径一致
--slice按时间段生成新的存储文件产物是独立数据库,查询时注意选对文件
--output-timezone控制导出时的时间渲染时区与采集侧一致,防止 CSV 出现非预期时区
过滤表达式作用于事件属性而不是原始文本。写条件前先在 pinfo 或小窗口导出里确认字段名与实际取值(如 host 是否为空、data_type 的命名风格),否则条件写错会静默返回零行。
plaso 各版本参数命名有差异:过滤表达式在旧版本中可能作为位置参数传入,新版本提供 -q/--filter 形式的选项。执行前用 psort.py --help 确认,不要把别人环境里的命令直接照抄。

易错点

  • 条件字段名或引号风格写错导致结果为空,却误以为「该时间段没有事件」,直接得出错误结论
  • 切片产出的 dynamic 是独立存储文件,后续查询仍指向旧文件,看到的是过期结果
  • 导出时未指定输出时区,CSV 里的时间与采集侧基准不一致,与日志比对时出现整体偏移
  • 用全量导出代替筛选,几万行 CSV 在表格工具里难筛难交付,关键事件被淹没
  • 修改过滤条件后不重跑基线验证,前后两次结论无法比较

数据来源与参考

  • Plaso 官方文档(psort 过滤与切片)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌