$MFT はすべての NTFS ボリュームの先頭付近に置かれていますが、Windows はボリュームをマウントしている間ずっと排他ロックを保持します。xcopy ではコピーできません。ファイル システムのロックを迂回してボリュームを生で読むツールが必要です。信頼できる選択肢を 3 つ紹介します。
fsutil(標準搭載)
Windows には $MFT のディスク上の位置を取得するコマンドが付属しています。
fsutil file queryextents C:\$Mft > mft-extents.txt
これで $MFT が占有するクラスタ ランが得られます。それらのクラスタを生で読み取れば、ファイルを再現できます。現代の Windows なら必ず動作し、管理者権限が必要で、対象に副作用を残しません。
短所は、ランを自分で組み立てる必要があることです。多くの調査員にとっては、最終回答ではなく構成要素です。
FTK Imager
FTK Imager は、フォレンジック取得の事実上の標準となっている無償ツールです。$MFT を取得するには:
- File → Add Evidence Item → Physical Drive
- ディスクを選択
- ツリーを辿って NTFS ボリュームのルートに進み、
$MFTを見つける - 右クリック → Export Files
これにより、通常のファイルとして持ち帰れる $MFT のコピーが得られます。FTK Imager はディスク イメージ(.dd、.E01)も読めるため、同じ手順がオフライン証拠にもそのまま使えます。
KAPE
より広範な収集には、KAPE(Kroll Artifact Parser and Extractor)が役立ちます。KAPETargets ライブラリには MFT ターゲットが含まれており、$MFT、$LogFile、$UsnJrnl などの関連アーティファクトを一度のパスで取得します。
kape.exe --tsource C: --target MFT --tdest C:\triage
KAPE はロックされたファイルの扱いを裏側で処理し、収集ファイルのタイムスタンプを保持し、整理されたディレクトリを残します。インシデント レスポンスのコレクションでは推奨される経路です。
ディスク イメージから読む
すでにディスク イメージがあるなら、ロックの問題はそもそも発生しません。読み取り専用でマウントするか、生イメージを直接消費するパーサーを使ってください。$MFT は NTFS ボリュームの先頭付近に存在し、オフセット 0 のブート セクタからそれが指し示されます。
完全性についての一言
どの経路を選ぶにせよ、取得直後に $MFT の SHA-256 を計算し、解析の直前に再度計算して比較してください。ファイルは大きく、解析ツールがまれに切り詰めることがあります。事前のハッシュ比較は、誤った証拠で何時間も悩むのを防いでくれます。