← ブログに戻る

NTFS の MFT と FAT: 何が変わり、なぜフォレンジックで重要なのか

· 読了 1 分

FAT(File Allocation Table)と NTFS は同じ問題 — どのクラスタがどのファイルに属するかを管理する — を解決しますが、その答え方はまったく異なります。フォレンジック アナリストにとって、両者の差は「ファイルがあったことは分かる」と「その正体がまだほぼ全部分かる」の差です。

FAT の仕組み

FAT は単一のテーブルを保持し、各エントリは 1 つのクラスタを次のいずれかにマップします。

  • そのファイルの次のクラスタ
  • チェーン終端マーカー
  • 0(空きの意味)

別途、ディレクトリ エントリがファイル名と 先頭の クラスタを結びつけます。ファイルを読むときは連鎖をたどります。削除するときは、FAT がすべてのクラスタ エントリを 0 に戻し、ディレクトリ エントリ内のファイル名の先頭文字を 0xE5 に書き換えます。残りはそのまま残ります — ただし 残りだけ です。連鎖そのものが壊れているため、先頭クラスタと名前の一部は回収できても、後続クラスタへのリンクは失われています。

これが、FAT 上の断片化したファイルの復元ツールが苦戦する理由です。断片は見つけられても、つなぎ直せません。

NTFS の仕組み

NTFS はアロケーション テーブルをマスター ファイル テーブルに置き換えました — それは単一のファイルで、他のあらゆるファイルが少なくとも 1 つの 1,024 バイトのレコードによって記述されます。各レコードは型付き属性の小さなコンテナです: $STANDARD_INFORMATION$FILE_NAME$DATA$INDEX_ROOT など。

決定的なのは、$DATA が単一の先頭クラスタを指すのではない点です。それはファイルのあらゆる断片を覆う(開始クラスタ、長さ)の対の並び、すなわち完全な ランリスト を保持します。ファイルを削除してもこのリストは壊れません。

フォレンジックへの含意

  • 削除済みファイルは MFT スロットが再利用されるまでランリストを保持 — 激しく断片化したファイルでも再構成可能。
  • レコードあたり 8 つのタイムスタンプ(SI に 4 つ、FN に 4 つ)が、FAT では得られないクロス チェックを提供。
  • 常駐データ により、小さなファイルはデータ領域に触れずに復元できる。
  • ジャーナル($UsnJrnl$LogFile)が、FAT には存在しない監査トレイルを残す。

同じインシデントの FAT イメージと NTFS イメージのどちらを選べるなら、NTFS の方がほぼ常により多くの問いに答えてくれます。

それでも FAT を見る場所

FAT は死んでいません。次のような場所で今もよく目にします。

  • 工場出荷時にフォーマットされた USB メモリ
  • 多くの Windows インストールの EFI システム パーティション
  • カメラや組み込みデバイスの SD カード

しかし、現代の Windows マシンの OS ボリュームを見ているなら、それは NTFS — そして始めるべき場所は $MFT です。

外部リソース