← ブログに戻る

NTFS でファイルを削除しても残るもの

· 読了 1 分

NTFS において、削除は消去ではありません。ファイルが削除されると、OS はファイルの MFT レコードのエントリ ヘッダーにある 使用中 フラグの 1 ビットを反転し、親ディレクトリのインデックスを更新するだけです。レコードの残りはそのまま残ります。

残り続けるもの

削除済みの MFT レコードは通常、次のものを保持しています。

  • $STANDARD_INFORMATION — 4 つのタイムスタンプ、各種フラグ、セキュリティ ID
  • $FILE_NAME — 元のファイル名、親ディレクトリ参照、論理サイズと物理サイズ
  • $DATA — 小さなファイルなら内容そのもの(常駐)、大きなファイルなら、まだ上書きされていないかもしれないクラスタを指すランリスト

削除済みファイルをレコード番号順に並べるだけでも、$MFT 単体から、ほぼ完全な「削除されたファイルの素性」を復元できます。

本当にいつ消えるのか?

削除済みレコードは、NTFS がそのスロットを新しいファイルのために必要とするまで残ります。次にファイルが作成される際、システムは最も古い空きスロットを再利用することがあります。アクティブなボリュームでは数時間で再利用され、稼働の少ないシステムでは数か月残り続けます。

MFT 自体は増えるだけで縮むことはありません。これこそが MFT をこれほど豊かなフォレンジック資料にしている理由です。

全体像のためのクロス リファレンス

$MFT は「どのレコードが存在するか」を示します。$UsnJrnl(Update Sequence Number Journal)は「それらに何が起きたか」を示し、使用中フラグを反転させた削除イベントもここに残ります。さらに $LogFile が、トランザクション履歴の追加レイヤーを提供します。

3 つを並行して読み解くトリアージでは、何が 削除されたかだけでなく、いつどの順で 削除されたかまで再構築できることがしばしばあります。このサイトのパーサーは $MFT を読みます。残りの 2 つのジャーナルは、次に取り組むのに最適な対象です。

外部リソース