plaso - home of the super timeline
http://plaso.kiddaland.net
plasoはPythonで実装されたスーパータイムラインを生成するツールのためのバックエンドエンジンです。前身のlog2timelineはperlで実装されていましたが、python化されてその際に設計、位置づけ、ユーザの使い方が少し変わりました。今後は全体を指してplasoと呼ぶようになりました。
正式版は夏、冬の年2回のタイミングでリリースされます。開発版はgitリポジトリから入手することができます。plasoは多数のライブラリを必要とするため、通常のユーザはパッケージ化されているリリース版をダウンロード、インストールしたほうがすぐに使い始めることができます。
plasoには複数のコマンドやライブラリが含まれています。主にユーザが使用することになるコマンドは以下の通りです。
- log2timeline
- イメージファイルなどの入力元からイベントを抽出して、plaso用のストレージに出力します。
- image_export
- ディスクイメージから拡張子またはフィルタをベースにしてファイルを抽出します。
- plasm
- plasoストレージに対してタグ付、グルーピング処理をします。
- pinfo
- plasoストレージ内の情報(抽出実行日時、設定、抽出数など)を表示します。
- pprof オプション FILE_TO_PARSE FILTER
- 1ファイルに対して実行して、取り出すイベント数や認識するパーサを確認するためのコマンドです。
- preg
- レジストリのパースに特化したツールです。
- pshell
- iPythonを使ったシェルです。plasoの内部(ライブラリ)を操作して柔軟性、拡張性を上げるためのコマンドです。
- psort
- plasoストレージのソート、フィルタ、プロセスをするためのツールです。
基本的にはlog2timelineを実行してplasoストレージ(専用形式)を生成し、psortを用いてplasoストレージを操作する、という使い方になります。その他のコマンドは必要に応じて使います。
log2timeline, psortともに実行時にフィルタ(FILTER)を指定することができます。Windowsでは「'」と「”」の扱いでハマりやすいため、フィルタの定義には二重引用符「"」、基準設定にはクォート「'」を使うようにします。
フィルタは以下の形式で記載します。
EXPRESSION BOOLEAN_OPERATOR EXPRESSION
例) "parser is 'syslog' and message contains 'root'"
この場合、パーサが「syslog」でメッセージ内に「root」を含むイベントを除外します。
例) "parser contains 'syslog' AND (date > '2012-12-04' AND date < '2015-01-01')"
この場合、パーサの文字列に「syslog」を含み、日時が2012/12/04-2015/01/07のイベントを除外します。
具体的なコマンドの実行例を示しておきます。
$ log2timeline --info
サポートしているプラグインとパーサを表示
$ log2timeline /cases/plaso.dump image.dd
ddイメージに対して可能な限りイベントを抽出
$ log2timeline -o 63 --vss_stores 1,2 /cases/plaso_vss.dump image.E01
E0形式の証拠ファイルを対象にvssの状態からイベントを抽出し、結果をplaso_vss.dumpに出力
$ psort plaso.dump
plaso.dumpストレージに格納されているイベントを標準出力
$ psort -o list
出力可能なフォーマットを表示
$ psort --analysis list
利用可能な解析プラグインを表示