- データ カービングを使用すると、ファイル システムを使用せずに生のデータを分析してファイルを回復できます。
- 既知の形式を見つけて再構築するために、署名、ヘッダー、フッター、マジックナンバーに依存します。
- Photorec、Foremost、Scalpel などのツールは、さまざまな機能でこれらの手法を実装します。
- 断片化と名前の損失は主な制限であり、スマート カービング アルゴリズムによってこれを克服しようとします。

El データカービング(またはファイルカービング) ちょっと変わった話に聞こえるかもしれませんが、実はこれは、フォーマットされたディスク、削除されたパーティション、破損したファイルシステム… など、すべてが失われたように見える状況で、いざという時に救いの手を差し伸べてくれるテクニックの一つなのです。それでも、ファイルを復元できるのです。魔法ではありません。ファイルの内部構造を悪用し、たとえオペレーティングシステムが空だと表示していても、ディスクから最後の1バイトまでも搾り取るのです。
データカービングとは一体何でしょうか?
つまり、データカービングとは 大規模なデータセットからデータのシーケンス(ファイル)を抽出するプロセスファイルシステム構造に依存せずに。DFRWS 2006では、ファイルシステムの未割り当て領域分析に代表される、大規模なデータセットから一連のデータを抽出することと定義されており、ファイルヘッダーとフッターを使用して特定のタイプを認識し、ファイルシステムを完全に無視します。
もっと簡単に言えば、ファイルシステムに「このファイルはどこ?」と尋ねる代わりに、彫刻ツールは ディスクを巨大なバイトブロックとして「生の」状態で読み取るそして内部では、内部の署名に基づいてファイルを探します。これは、そこに何があったのかを一切記録せずに、形状で認識できる物体を探す埋立地のデジタル版です。
このプロセスは通常、 未割り当てまたは未適用のスペースこれらはファイルシステムによって空き領域としてマークされているものの、古いファイルの残骸が残っている領域です。ひどく損傷したディスク、再パーティションされたディスク、またはフォーマットされたディスクでは、これらの領域を直接操作してしまう可能性があります。 物理的な表面全体 デバイスの。
重要な点は、データカービング 従来のハードドライブに限定されませんこれはSSD、SDカードにも当てはまります。 USBスティックRAW 形式のフォレンジック画像、メモリ ダンプなど。分析するバイトがあれば、そこからファイルを「切り出す」ことができます。

クラシックリカバリとファイルカービング
従来のデータ復旧は、 ファイルシステムのメタデータはまだ生きているたとえば、NTFS (Windows)、FAT、ext4 (Linux) などでは、ファイルを削除すると、通常はテーブル内のそのエントリのみが空きとしてマークされますが、データは上書きされるまでそこに残ります。
これらの構造が存在する限り、ツールは ファイルテーブルを読み取り、データブロックへのポインタをたどる ファイルが断片化している場合でも、ファイルを再構築できます。また、どのブロックがアクティブファイルに属し、どのブロックが「孤立」しているかを簡単に区別できます。
問題は?これらのシナリオのいずれかが発生すると、従来の方法は脆弱になり、 役に立つものを回復することはできません。:
- ファイルはだいぶ前に削除されました ファイル テーブル内のレコードが再利用されました。
- ディスクがフォーマットまたは再パーティションされている (たとえば、古い Windows システムの上に Linux をインストールするなど)。
- ファイルシステム構造が破損しています 物理的な損傷、マルウェア、または論理エラーが原因です。
- 元のファイルシステムが別のファイルシステムによって上書きされました (一般的な例: ext4 としてフォーマットされた Windows ディスク)。
そこで ファイル彫刻が登場テーブル、inode、MFTを別にして、 デバイスの生のストレージスペースをスキャンして、既知のファイルパターンを探しますこれはより「盲目的」なアプローチですが、他に頼るものが何も残っていないときには非常に役立ちます。
署名、ヘッダー、フッター、マジックナンバー
彫刻の鍵は、ほとんどすべてのファイルタイプが 認識できる署名これらの署名は通常、ヘッダー(ファイルの先頭)にありますが、フッター(ファイルの末尾)にも含まれる場合があります。さらに、多くの形式では、最初の数バイトにデータが保存されます。 ファイルの合計長さなどのメタデータ またはその他の構造情報。
の概念 マジックナンバー これは非常に重要です。オペレーティングシステムが付与した拡張子に関わらず、ファイルの種類を明確に識別できる定数です。拡張子(.jpg、.doc、.zipなど)はユーザーとシステムの両方にとって役立ちますが、本当に重要なのはファイルの最初の数バイトの内容です。
例えば、標準GIFはASCII文字列で始まる。 「GIF87a」または「GIF89a」16進数で表すと、これはどのツールでも参照できる特定のヘッダーになります。GIFの場合、典型的なフッターにはバイトが含まれます。 0x3B («;») も、非常に特定の位置にあります。
もう一つのよく知られた例:整形式のJPEG 0xFFD8で始まり、0xFFD9で終わります画像を16進エディタで開くと、先頭に署名、末尾にマーカーが表示されます。その間には、フォーマット固有のマーカー(セグメント、ハフマンテーブルなど)があり、それらを検証することができます。
Linuxでは、コマンド file マジックナンバーのデータベースを使用します( /usr/share/file/magic またはそのコンパイル版 マジック.mgc)の 最初の数バイトを調べて、ファイルの実際のタイプを識別します。拡張機能ではありません。Windowsには同等の強力なネイティブ機能はありませんが、次のようなツールがあります。 ファイルバー または同様の機能を提供するサードパーティ製ユーティリティ。
ファイル彫刻のプロセスは段階的にどのように行われるか
それぞれのツールには独自のトリックがありますが、基本的なロジックはほとんどのツールで非常に似ています。つまり、ファイルカービングのプロセスは通常、以下のようになります。 これらの基本的な段階:
1. デバイスまたは画像の連続読み取り
このツールは、ディスク、パーティション、またはフォレンジックイメージの内容をブロック単位で読み取ります(たとえば、 512バイト デフォルトでは、多くのアプリではパラメータでサイズを調整できますが、 -bこれらのブロックはメモリにロードされるため、簡単に分析できます。
2. ヘッダーとフッターの署名を検索する
メモリ内のデータに基づいて、プログラムは 設定ファイルで定義された署名を検索する (たとえば、 foremost.conf (Foremostの場合)。各構成エントリは次の内容を示します。
- 復元されたファイルに割り当てられる拡張子 (jpg、doc、gif など)。
- 魔法の数字の比較は 大文字と小文字を区別するかどうか.
- 大きさ フッターが見つからない場合にファイルに含まれる可能性があるもの。
- ヘッダーと、オプションでフッターの値 16進数または8進数.
- 特別なオプション 後進または次へ 検索バリエーション用。
有効なヘッダーが見つかると、ツールはファイルがそこから始まると想定し、対応するフッターを探します。または、フォーマットが許す場合は、 埋め込まれた情報から長さを計算する ヘッダー自体に。
3. データの抽出と再構成
開始点と終了点(または推定サイズ)が特定されると、プログラムは ファイルに含まれるすべてのブロックをコピーします 新しいファイルに書き込みます。フッターは定義されていないがヘッダーサイズが定義されている形式(BMPなど)の場合、このメタデータは読み取るバイト数を決定するために使用されます。
4. 復元されたファイルの検証
最先端のツールは「何でも」復元することに満足せず、 ファイルタイプ固有のバリデータ 内部構造(テーブル、チェックサム、必須フィールドなど)が適切かどうかを検証します。これにより誤検知が減り、破損したファイルや不完全なファイルの検出に役立ちます。
5. 結果と報告書の構成
通常、このツールは 出力ディレクトリ (たとえば、 出力 またはで示されているもの -o) 内に拡張子別にサブフォルダを生成します: JPG, GIF, オーレなど。また、監査ファイルも生成します。 監査.txt、そこには次のように記載されています。
- 実行パラメータ、開始時刻と終了時刻。
- 分析されたデバイスまたはイメージの名前。
- 種類別に抽出されたファイルの数.
- 取得した各ファイルの名前、サイズ、ソース イメージ内のオフセット。
一般的なヤスリ彫刻工具
日々のデータ復旧およびフォレンジック分析の作業では、次のものが使用されます。 さまざまな特殊ツール これらのカービング手法をさまざまな方法で実装し、多かれ少なかれ自動化と検証機能を備えています。
フォトレック
Photorecはおそらく最も人気のある彫刻ツールの1つです。 無料、オープンソース、クロスプラットフォーム当初は写真の復元を目的として設計されましたが、現在では数百種類のファイル形式に対応しています。RAW画像やデバイスを読み取り、既知のシグネチャからファイルを抽出することで動作し、元のコンテンツを変更することなく動作します。
円刃刀
Scalpelは、無料エコシステムのもう1つの定番です。 非常に詳細な署名設定 設定ファイルを通じて制御できるため、検索対象となるファイルの種類を正確に定義することが重要なフォレンジック環境において非常に柔軟に機能します。通常は以下から実行されます。 Linuxのコマンドライン ある程度の技術的スキルが必要です。
最前
Foremostは軍事目的で開発され(アメリカ空軍向けに開発)、後にコードが公開されました。その理念は… ヘッドボード/フットボード別および埋め込み長さ別の彫刻非常に包括的な設定ファイルに依存しています。Linuxシステムでは簡単にインストールでき、Windowsでは以下のコマンドでコンパイルするだけで使用できます。 CygwinPOSIX 互換性レイヤーとして機能します。
Foremostの場合、Windowsで使用するには Cygwin環境内でソースコードからコンパイルする実行ファイルをコピーする foremost.exe、あなたのファイル foremost.conf と本屋 cygwin1.dll 同じディレクトリにコピーします。そこからは、Linuxシステムの場合と同じように、同じオプションと動作で実行できます。
データカービングが使用される実際のシナリオ
理論を超えて、彫刻は 非常に特殊かつ一般的なアプリケーション 職場でも家庭でも。典型的な例をいくつか挙げます。
以前に削除されたファイルの復元
ファイルが削除された場合(例えば、 Windowsファイルの回復その後、システムがファイルテーブル内のエントリを再利用すると、従来の方法では何も参照できなくなります。ただし、ファイルブロックが上書きされていない限り、データカービングは継続されます。 これらのヘッダーを探し続けて、コンテンツの多くを再構築することができます.
フォーマットされたディスクまたはパーティションが削除されたディスク
フォーマットや再パーティションを行う際、通常はメタデータ領域と論理構造のみが影響を受けます。物理的なコンテンツは、少なくとも初期段階ではそのまま残ります。適切なカービングプロセスによって、これが可能になります。 現在「空」となっている領域から写真、文書、その他のファイルをアップロードします.
デジタルフォレンジック調査
法医学分析では、 RAWディスクイメージ オペレーティングシステムの再インストール、マルウェア、削除の試みなど、数え切れないほどの試練を乗り越えてきた。データカービングは、 未割り当てスペースの証拠: 古い電子メール、アプリケーション ログ、一時ドキュメント、またはファイル システムによって参照されなくなった「忘れられた」ファイル。
破損したデバイスの回復
不良セクタのあるディスクや論理的な問題のあるSSDでは、ファイルシステムが破損し、 組み立てもされないここでも、(損傷を悪化させないように)以前に作成されたイメージを彫ることで、少なくとも一部の有用な情報を救い出すことができます。
ファイルカービングの限界:命名、断片化、誤検知
データカービングは非常に強力ですが、奇跡ではありません。 知っておくべき構造上の制限 法医学的分析で失望したり誤った結論を導き出したりすることを避けるためです。
元の名前とルートの喪失
ファイルシステムにアクセスできないと、プログラムはファイルの名前やそのファイルが保存されているフォルダを知ることができません。そのため、ツールは次のような一般的な名前を生成します。 00032837.doc、image0001.jpg証拠やユーザーの観点から、これは義務となる 手動で内容を確認する 関連性を特定するため。
ファイルの断片化
古典的な彫刻における最大の障害は断片化です。多くの単純なアルゴリズムは ファイルは連続したブロックにあると想定している実際には、特に頻繁に使用されるディスクでは、大きなファイル (高解像度の画像、電子メールの PST、データベースなど) は通常、複数のフラグメントに分割され、ディスク全体に散在します。
シムソン・ガーフィンケルなどの研究によれば、断片化の全体的な割合は控えめに見えるかもしれないが、 法医学的に興味深いファイルの種類では、その数字は急増します。 (例えば、JPG、DOC、PSTファイルのかなりの割合が断片化しているように見えます。)このような場合、単純なヘッダーフッターのカービング 不完全なファイルやジャンクが埋め込まれたファイルを回復します 他の中間ファイルから。
誤検知と破損ファイル
ファイルタイプのシグネチャが汎用的であればあるほど、 偽の偶然の一致が起こりやすくなる ランダムデータ(例:テキストファイル内にZIPファイルの「PK」が含まれている)の場合。そのため、宣言された長さ、必須フィールド、ヘッダーの一貫性など、内部構造を適切に検証することが重要です。
これらの問題を軽減するために、 ファイル構造ベースのカービング、セマンティックカービング、高度な検証カービング、スマートカービングは、構造分析、統計パターン (エントロピー、バイト分布)、さらには言語分析を組み合わせて、ブロックが候補ファイルに適合するかどうかを決定します。
スマートな彫刻と高度な技術
断片化に対処し、結果の質を向上させるために、次のようなアルゴリズムが開発されました。 スマートな彫刻一般的な考え方は、すべてが連続していると仮定するのをやめ、問題を ブロックパズル 正しい順序で組み立て直す必要があります。
いくつかの古典的な著作(例えば、シャンムガスンダラムの著作)は、断片化されたアーカイブの再構築を、 ハミルトニアーノの道 グラフでは、各ブロックがノードであり、エッジは、ブロックの内容がどのように組み合わさっているかに応じて、あるブロックが別のブロックに続く確率を表します。そこから、以下の処理が適用されます。 ヒューリスティックス、アルファベータ探索、その他のグラフおよびゲーム理論の手法 最も妥当なシーケンスを見つけます。
大まかに言えば、現在の多くのスマート カーバーは次の 3 つのフェーズに従います。
- 前処理済み: ブロックを解凍、復号化、または正規化して分析できるようにします。
- チェック済み: ブロックを、それが属する可能性のあるファイルの種類に応じて分類します (署名、エントロピー、内部パターンなど)。
- 再組み立て: 断片化が激しい場合でも、最も論理的な順序で断片を並べ替えて完全なファイルを再構築します。
このアプローチは、次のようなビジネスツールの基礎となっています。 ビジネスツール Adroit Photo Forensics や Adroit Photo Recovery などは、極めて困難な状況でも写真を復元できるように設計されています。これらのツールは通常、画像形式(JPEG、TIFF、カメラRAWなど)ごとに非常に厳格な検証ツールを使用しています。
彫刻前と彫刻中の良い習慣
データカービングが深刻なケース(企業がデータを回復しようとしている場合や、フォレンジック調査の場合など)で使用される場合、いくつかの方法があります。 常に従うべき良い習慣:
ディスクイメージを作成する
何かをする前に、賢明なのは デバイスのビットごとの画像 (例えば、 dd、dc3dd、ガイマガーなど)。これにより、元のディスクに触れることが回避され、損傷を与えることなく、さまざまなツールとパラメータを使用して彫刻プロセスを繰り返すことができます。
常にコピーで作業する
マスターイメージを作成したら、 作業コピーを作成する そして、それらにカービングツールを適用します。これにより、分析を繰り返す必要が生じた場合、法廷で証拠を提示する必要がある場合、あるいは単に新しいバージョンのツールで結果を検証する必要がある場合でも、不変の証拠が保存されます。
設定を調整してテストする
Foremost、Scalpel、Photorecなどのツールを使用すると、検索するファイルの種類、許容される最大サイズ、署名の解釈方法などを細かく調整できます。 さまざまな構成をテストする特に、関心のあるファイルの種類(たとえば、Office ドキュメントのみ、または画像のみ)が事前にわかっている場合は、これが有効です。
手動で検証およびレビューする
自動検証機能は役立ちますが、最終的には何か他のものが必要になります。 人間によるレビュー 復元されたファイルが関連性のあるものか、完全なものか、それとも単なるノイズなのかを評価すること。フォレンジックの文脈では、各ステップを文書化し、ログを保存し、保管の連鎖を維持することも不可欠です。
これらすべてを体系的なアプローチと適切なツールと組み合わせると、データカービングは 危機的な状況で情報を回復するための最も強力なツールの1つ専門的な分野と、より日常的なケース(典型的な「カメラのカードをフォーマットしたら、休暇の写真がすべて消えた」)の両方で発生します。
最終的には、データカービングとは何か、そしてそれがどのように活用されるかを理解することが重要です。 内部ファイル署名と断片化による制限それは、事件を諦めるか、永遠に失われたと思われた文書や画像を救出できるかの違いを生むのです。
バイトの世界とテクノロジー全般についての情熱的なライター。私は執筆を通じて自分の知識を共有するのが大好きです。このブログでは、ガジェット、ソフトウェア、ハードウェア、技術トレンドなどについて最も興味深いことをすべて紹介します。私の目標は、シンプルで楽しい方法でデジタル世界をナビゲートできるよう支援することです。