16章
Hands-on-1
ここでは、MFTレコードの記録内容をFTK Imagerで確認するハンズオンを行います。
調査対象のディスクイメージは、記録されたファイルを削除する前と削除した後の2種類を準備しています。MFTレコードの変化に注目して下さい。削除されたファイルのデータ復元も実施します。
FTK Imager は、以下のURL(Exterro Legal GRC Software社の公式サイト)から入手できます。
https://www.exterro.com/ftk-imager
ハンズオンで使用するファイル
ハンズオンで使用するディスクイメージは、演習用データの次の相対パスに保存されています。
- ファイル削除前のディスクイメージ
s16\h1\img1-before-delete.E01
- ファイル削除後のディスクイメージ
s16\h1\img2-after-delete.E01
それぞれのディスクイメージをドライブとしてマウントした場合、「MFT-TEST」フォルダを参照すると、次のとおりエクスプローラーに表示されます。
- 削除前

- 削除後

削除後のディスクイメージでは、MFTレコードが「Non-Resident」と「Resident」である2つのファイルを、ごみ箱を経由せずに削除しています。
- Non-Resident ※ MFTレコードの$DATAにデータ内容なし
non-resident-sample.txt(1,014バイト)
- Resident ※ MFTレコードの$DATAにデータ内容あり
resident-sample.txt(21バイト)
それぞれのディスクイメージで、MFTレコードの実際の記録内容や、削除前後の記録内容の変化を確認してみましょう。
ハンズオン手順
ディスクイメージのパース
まず、インストールしたFTK Imagerを起動します。
次に、以下の手順を参考として、FTK Imagerで2つのディスクイメージを読み込み、それぞれファイルシステムをパースして、フォルダ構造を展開します。
- 「Add Evidence Item」アイコンをクリックし、ファイル削除前のディスクイメージファイル(
img1-before-delete.E01)を選択して読み込み、ファイルシステムをパース(展開)します。



- 同様に、削除後のディスクイメージファイル(
img2-after-delete.E01)を選択して読み込み、ファイルシステムをパース(展開)します。

ファイル削除前のMFTレコード調査
MFT($MFTファイル)の記録内容を確認しましょう。
まず、削除前ディスクイメージ(img1-before-delete.E01)の$MFTファイルを選択します。

Non-ResidentのMFTレコード
ファイル「non-resident-sample.txt」のMFTレコードを確認します。
$MFTファイルのHEXダンプが表示されている、右下のプレビューウィンドウから、MFTレコード内($FN)のファイル名を文字列検索します。プレビューウィンドウを右クリックし、コンテキストメニューから「Find」を選択して、「Find What」欄にファイル名を入力します。その際、MFT内部の文字列はUnicodeになっていますので、「Type」-「Unicode」を必ずチェックオンにして下さい。


「Find」ボタンで、最初のヒット文字列にジャンプします。これは、当該ファイルの親フォルダである「MFT-TEST」のMFTレコードです。ここには、「non-resident-sample.txt」ファイルの属性情報は記録されていません。

「F3」キーもしくは再度「Find」選択のいずれかで、次のヒット箇所へジャンプします。
次は、「non-resident-sample.txt」のMFTレコードにヒットします。

「non-resident-sample.txt」は、1014バイトのテキストファイルです。ファイルサイズが大きく、「Non-Resident」であるため、MFTレコード内の$DATAにはデータ内容が記録されていません。データ内容は、データ領域のクラスターに記録されており、$DATAには、そのロケーションを示すクラスター番号が記録されます(クラスター番号については後述します)。
実際のデータ内容は次のとおりですので、「MFT-TEST」フォルダに移動して確認してみましょう。
- 「
MFT-TEST」フォルダ内「non-resident-sample.txt」ファイルのデータ内容

ResidentのMFTレコード
同様に、「resident-sample.txt」ファイルのMFTレコードをみてみましょう。
こちらのファイルはサイズが小さく、「Resident」であるため、MFTレコードの$DATAにデータ内容が記録されています。まず、「MFT-TEST」フォルダ内の同ファイルを選択して、データ内容を参照して下さい。
- 「
MFT-TEST」フォルダ内「resident-sample.txt」ファイルのデータ内容

それでは、$MFTから「resident-sample.txt」ファイルのMFTレコードを検索してみましょう。同ファイル内のテキストデータに記載された、「resident!!」の文字列で$MFTを検索します。
その結果、次のMFTレコードがヒットします。

このように、ResidentのMFTレコードには、データ内容が$DATAに記録されています。つまり、$MFTファイルを単独で保全しても、ファイルのデータ内容が確認できます。例えば、ファストフォレンジックを目的とした論理コピーによる証拠保全において、ファイルを網羅的に保全できなかった場合でも、$MFTを調査することでファイル内のデータ内容を確認できる可能性があります。
次に、削除されたファイルのMFTレコードをみていきましょう。
ファイル削除後のMFTレコード調査
今度は、削除後ディスクイメージ(img2-after-delete.E01)の$MFTファイルを選択します。オペレーションの手順は、削除前ディスクイメージと同様です。
まず、削除された「Non Resident」であるファイル、「non-resident-sample.txt」のMFTレコードをみてみましょう。$MFTを文字列「non-resident-sample.txt」で検索します。
- ファイル名「
non-resident-sample.txt」で$MFTを検索

フラグ(オフセット:0x16)が、削除前の「0x01」から「0x00」に変更されており、削除済みのファイルであることを示してます。また「Non Resident」のMFTレコードであるため、$MFTから削除されたファイルのデータ内容を復元することはできません。
一方、$DATA属性にデータ領域の先頭クラスター番号が記録されていますので、当該データ領域が上書き再利用されていなければ、データ内容を復元できる可能性があります。FTK Imagerでは、「Non Resident」のMFTレコードに記録された先頭クラスター番号から、データ領域のロケーションを自動的に特定し、削除済みファイルのデータ内容を復元しています。
「MFT-TEST」フォルダの「non-resident-sample.txt」をみてみましょう。
- FTK Imagerにより、削除済みの「
non-resident-sample.txt」の内容を復元

FTK Imagerでは、上の図のとおり、「Properties」にデータ領域の先頭クラスター番号が表示されます。これはMFTレコードの$DATAを参照して取得しています。
- 「
non-resident-sample.txt」の「Properties」

なお、$DATAにおける先頭クラスター番号の記録位置(オフセット)については、固定ではありません。先頭クラスター番号は、FTK Imagerをはじめ、多くのフォレンジックツールが自動的に取得しますので、ここでは詳細な説明を省略します。
次に、削除された「Resident」であるファイル、「resident-sample.txt」のMFTレコードを確認しましょう。同ファイルのデータ内容に記録されている文字列「resident!!」で、$MFTを検索してみます。
- $MFTを文字列「
resident!!」で検索

「Resident」のMFTレコードであるため、「resident-sample.txt」を管理するMFTレコードの$DATA内で、検索文字列がヒットします。こちらもフラグ(オフセット:0x16)が、削除前の「0x01」から「0x00」に変更されています。
このように、「Resident」のファイルであれば、$MFTファイルを保全することにより、削除されたデータ内容も復元できる可能性があります。FTK Imagerでも、削除された「Resident」ファイルのMFTレコードから、自動的にデータ内容を復元しています。
- FTK Imagerにより「
resident-sample.txt」の内容を復元

フォレンジックツールやファイル復元ソフトウェアは、このようにMFTを解析して削除済みファイルの復元を自動的に行います。また、MFTが上書き再利用され、削除済みファイルの属性情報が失われている場合は、データ領域から「カービング」によって「Non-Resident」のファイル復元ができる可能性もあります。
一方、「Resident」のファイルは、データ領域にデータ内容が記録されないため、カービングによる復元ができません。
このような、削除済みファイルを復元する際の原理や留意点を理解していただくことが、このハンズオンの目的です。可能であれば、ご自身が使用するPCのディスクなどから、FTK Imagerによる削除済みファイルの復元や、$MFTファイルの参照をしてみると、さらに理解が深まるでしょう。
問題
ハンズオンで使用したディスクイメージから、データ内容に文字列「
Infinity Chamber」を含むファイルについて、$MFTを調査して下さい。Flagには、同ファイルを管理するMFTレコードの先頭オフセット番号(FTK ImagerのHEXダンプ上に表示される数値、16進数)を回答して下さい。回答例:
0a400※
resident-sample.txtを管理するMFTレコードの先頭オフセット例
