
揮発性メモリダンプからフォレンジックタイムラインを自動抽出
揮発性メモリダンプからフォレンジックタイムラインを自動的に抽出します。
AutoTimeliner は、Windows、Linux、macOS のメモリイメージに対して複数の Volatility3 プラグインを実行し、その出力を単一のソートされた CSV タイムラインにマージします。
| プラグイン | 取得内容 |
|---|---|
timeliner | クロスプラグインのタイムスタンプイベント(サポートされている場合、すべてのOSファミリ) |
| プラグイン | 取得内容 |
|---|---|
timeliner | プロセス、レジストリ、ハンドルなどからのタイムスタンプ |
mftscan | メモリ内に見つかった MFT ファイルエントリ |
shellbags | レジストリハイブからのユーザーフォルダアクセス履歴 |
| プラグイン | 取得内容 |
|---|---|
linux.pslist | プロセス開始/終了のタイムラインコンテキスト |
linux.bash | シェルコマンド履歴の証拠 |
linux.lsof | プロセスからの開いているファイルの証拠 |
| プラグイン | 取得内容 |
|---|---|
mac.pslist | プロセス開始/終了のタイムラインコンテキスト |
mac.bash | シェルコマンド履歴の証拠 |
mac.lsof | プロセスからの開いているファイルの証拠 |
| プラグイン | 取得内容 |
|---|---|
psscan | アクティブ、終了、隠しプロセス(タイムスタンプ付き) |
cmdline | 各プロセスのコマンドライン引数 |
userassist | Windows レジストリからのプログラム実行証拠 |
| プラグイン | 取得内容 |
|---|---|
netscan | 作成タイムスタンプ付きのネットワーク接続 |
| プラグイン | 取得内容 |
|---|---|
malfind | コードインジェクションと疑わしいメモリ領域 |
svcscan | Windows サービス(永続性検出に有用) |
| プラグイン | 取得内容 |
|---|---|
dlllist | 各プロセスがロードした DLL |
filescan | 取得時にメモリ内で開かれているファイル |
handles | 開いているハンドル(ファイル、レジストリキー、ミューテックス) |
AutoTimeliner はメモリイメージのファミリを自動識別し、Windows、Linux、macOS に適したプラグインセットを有効にします。 起動を高速化するには、
--os-hintを指定して自動検出をスキップできます。
git clone https://github.com/andreafortuna/autotimeliner.git
cd autotimeliner
poetry install
pip install .
autotimeliner -f IMAGEFILE [-t TIMEFRAME] [-o OUTPUT] [options]
単一のイメージから完全なタイムラインを抽出:
autotimeliner -f TargetServer.raw
特定の時間枠にフィルタリング:
autotimeliner -f TargetServer.raw -t 2023-10-17..2023-10-21
ディレクトリ内のすべての .raw ファイルを処理し、出力パスを指定:
autotimeliner -f './*.raw' -o /evidence/timeline.csv
ダンプの OS が既にわかっている場合、起動を高速化:
autotimeliner -f TargetServer.raw --os-hint windows
macOS の別名値を使って便利に:
autotimeliner -f MacbookCapture.mem --os-hint darwin
timeliner と shellbags のみを実行(MFT スキャンをスキップ):
autotimeliner -f TargetServer.raw --skip-mftscan
完全なフォレンジックスキャン(Windows プラグインセット + オプションの拡張プラグイン):
autotimeliner -f TargetServer.raw --with-dlllist --with-filescan --with-handles --with-envars
マルウェアに特化したクイックスキャン:
autotimeliner -f TargetServer.raw --skip-timeliner --skip-mftscan --skip-shellbags
Linux に特化したタイムライン収集(自動的に Linux プラグインを有効化):
autotimeliner -f UbuntuWorkstation.mem
macOS に特化したタイムライン収集(自動的に macOS プラグインを有効化):
autotimeliner -f MacbookCapture.mem
出力 CSV には次の列が含まれます:
AutoTimeliner は識別時間を短縮するためのいくつかの最適化を含んでいます:
--os-hint は自動 OS プローブを完全にバイパスします。linux、ubuntu、macos)を使用して最適化されます。path + size + mtime)ごとにキャッシュされます。キャッシュファイル:
~/.cache/autotimeliner/volatility3/.autotimeliner_profile_cache.json
検出中、ログにはプローブの進行状況や結果メッセージが含まれます:
OS probe attempt: family=windows plugin=windows.info.Info
OS probe returned no rows: windows.info.Info
Memory image identification succeeded: os=linux profile=linux:... probe=linux.banners.Banners
詳細な比較は docs/migration.md を参照してください。
主な変更点:
-p / --customprofile は非推奨 — サイレントに無視されます。mftparser → mftscan — 同じデータ、新しいプラグイン名。mactime はオプションになりました — 古いボディファイルワークフローには --use-mactime を使用します。poetry install
poetry run pytest
MIT — LICENSE を参照。
Andrea Fortuna — [email protected] — andreafortuna.org
envars | プロセスの環境変数 |
| 依存関係 | バージョン | 備考 |
|---|
| Python | ≥ 3.9 | |
| Volatility3 | ≥ 2.5 | Poetry/pip により自動インストール |
| jsonschema | ≥ 4.0 | Volatility3 のスキーマ検証を有効にし、Dependency for validation unavailable: jsonschema 警告を回避 |
| mactime | 任意 | オプション — --use-mactime レガシーモードでのみ必要 |
| フラグ | 説明 |
|---|
-f, --imagefile | メモリダンプファイルまたはグロブ(例: '*.raw') |
-t, --timeframe | YYYY-MM-DD..YYYY-MM-DD 範囲にフィルタリング |
-o, --output | 出力 CSV パス(デフォルト: <imagefile>-timeline.csv) |
--os-hint | イメージ OS ファミリを強制指定(windows、linux、mac; 別名: win、macos、darwin)し、自動識別をスキップ |
--skip-timeliner | timeliner プラグインをスキップ |
--skip-mftscan | mftscan プラグインをスキップ |
--skip-shellbags | shellbags プラグインをスキップ |
--skip-psscan | プロセススキャンをスキップ |
--skip-cmdline | コマンドライン抽出をスキップ |
--skip-netscan | ネットワーク接続スキャンをスキップ |
--skip-userassist | プログラム実行証拠をスキップ |
--skip-svcscan | Windows サービススキャンをスキップ |
--skip-malfind | マルウェア/インジェクション検出をスキップ |
--with-dlllist | DLL 分析を有効化(低速) |
--with-filescan | 開いているファイルのスキャンを有効化(多数のレコード) |
--with-handles | ハンドルスキャンを有効化(多数のレコード) |
--with-envars | 環境変数の抽出を有効化 |
--use-mactime | レガシーモード: 外部 mactime バイナリを使用 |
-v, --verbose | デバッグログを有効化 |
--version | バージョンを表示して終了 |
| 列 | 説明 |
|---|
Timestamp (UTC) | ISO 8601 UTC タイムスタンプ |
Source | レコードを生成したプラグイン |
Description | ファイル名、パス、プロセス、またはレジストリキー |
Detail | タイムスタンプの種類、ユーザー、または追加コンテキスト |
Inode | MFT inode 番号(該当する場合) |
UID / GID | ユーザー/グループ識別子 |
Size | ファイルサイズ(バイト) |
Mode | ファイルモード文字列 |