0 / 5
スラック領域(Slack Space)
ディスクはセクタ単位でしか読み書きしない。ファイルシステムはそれより大きいクラスタ単位でファイルに領域を割り当てる。ファイルサイズがクラスタサイズの倍数でぴったり割り切れることはまれなので、ファイルの最後のクラスタにはファイルデータが占めない部分が残る。この部分がスラック領域だ。
例: 640Bの報告書.txtでもクラスタを1つ(2048B)丸ごと受け取る。ファイルデータの後ろに1408Bが残る。
1 / 5
クラスタの割り当て
ファイルシステムが報告書.txtにクラスタを1つ(セクタ4つ、2048B)割り当て、ファイルシステムの記録に名前とサイズ640Bを書き込む。このクラスタは以前に削除したファイルが使っていた場所だ。ファイルを削除すると、ファイルシステムはその場所を空きとして記録するだけで、内容は消さない。そのため4つのセクタには削除したファイルの内容がまだ残っている。
2 / 5
ファイルデータの書き込み
報告書.txtの内容640Bをクラスタの先頭から書く。セクタ1(512B)を埋め、残りの128Bはセクタ2の先頭に書く。
3 / 5
RAMスラック: セクタ2の残り384B
ディスクはセクタ単位でしか書けないので、セクタ2も丸ごと書く。ファイルデータ128Bの後ろに残る384Bは、OSが0で埋める。この384BがRAMスラックで、セクタスラックとも呼ぶ。昔のOSがこの場所をメモリ(RAM)にあった内容で埋めていたことから、この名前が付いた。
4 / 5
ドライブスラック: 書かれないセクタ3・4
ファイルデータがセクタ2で終わったので、セクタ3・4には何も書かない。0で埋めることもしないため、削除したファイルの内容1024Bがそのまま残る。この部分がドライブスラックだ。
5 / 5
スラック領域 1408B
割り当てられた2048Bのうち、ファイルデータは640Bだけだ。残りの1408B(RAMスラック384Bとドライブスラック1024B)がスラック領域になる。OSはファイルシステムの記録にあるサイズ640Bまでしか読まないので、ファイルを開いてもその後ろは見えない。
1 / 3
隠す場所を探す
攻撃者が報告書.txtの最後のクラスタでドライブスラック(セクタ3・4、1024B)を見つける。このクラスタは報告書.txtに割り当てられているので、報告書.txtを削除したり変更したりしない限り、ほかのファイルがこの場所を上書きすることはない。
2 / 3
セクタに直接書く
攻撃者がセクタに直接書き込むツールで、顧客名簿をセクタ3・4に書く。ファイルを保存する通常の方法を通らないので、ファイルシステムの記録は変わらない。
3 / 3
見えないまま残す
ファイルシステムの記録のサイズは640Bのままだ。報告書.txtを開いても元の内容しか見えず、ファイル一覧やディスクの空き容量も変わらない。そのため隠したデータは目に付かない。
1 / 3
ファイルの終わりを確認
調査官がファイルシステムの記録で報告書.txtのサイズ640Bを確認する。クラスタの中でファイルデータは640Bまでだ。
2 / 3
クラスタの終わりまで読む
ディスクイメージで、640Bの後ろからクラスタの終わり(2048B)までの1408Bも読む。ファイルを開いても見えないスラック領域だ。
3 / 3
残った内容を探す
RAMスラック384Bは0で埋められているので、残った情報はない。ドライブスラック1024Bからは、削除したファイルの内容の一部が見つかる。誰かがデータを隠していれば、それもこの場所から見つかる。