SQLiteオーバーフローページ:デジタル・フォレンジックが隠されたデータを復元する方法

はじめにオーバーフローページのパズル

家にある額縁には大きすぎるポスターを買ったとしよう。それを適切に表示するには、利用可能なフレームに収まるように分割する必要がある。同じ原理がSQLiteデータベースで大きなレコードを扱うときにも適用される。そこで オーバーフローページ に入る。

オーバーフローページは、1つのSQLiteデータベースページに収まらないデータを保存する(通常 4,096バイト).これらのページは 連動フォレンジック・アナリストが完全なデータを復元するために再構築しなければならない連鎖を形成する。もし分析者がオーバーフロー構造に従わなければ、次のようなリスクを負うことになる。 不完全または破損した証拠.

この記事では、オーバーフローページの仕組み、フォレンジック調査においてオーバーフローページが重要な理由、断片化されたデータを抽出する方法を順を追って説明します。

SQLiteのオーバーフローページとは何ですか?

SQLiteデータベースは固定ページサイズを割り当てる(例. 4,096バイト).しかし、画像などの記録が BLOB (バイナリラージオブジェクト)-このサイズを超える、 余分なデータがオーバーフローページにこぼれる.

重要なポイント

✅ オーバーフローのページ 大記録を防ぐ 1ページを独占することから。
彼らは 連鎖メインページから
フォレンジック・アナリスト 完全なデータを取り出すには、これらの連鎖を再構築しなければならない。

オーバーフローページがどのように機能するかを理解することは、フォレンジック調査にとって不可欠である。

ハイレベルの概要オーバーフローページの仕組み

オーバーフローページの概念を説明するために、次の例を見てみよう:

1.断片化された画像表現

SQLiteにおける断片化されたデータストレージの図:大きな画像が複数のフレームに分割され、オーバーフローページが大きなBLOBをどのように扱うかを表している。

この視覚化は、画像のような大きなBLOBがSQLiteにどのように格納されるかを表している。オーバーフローページが断片化されたデータを格納するように、画像は複数のセクションに分割されている。

2.単一ページに保存されたデータ

F-16ジェット機の画像がSQLiteの単一ページに完全に格納されており、オーバーフローページが不要な理想的なケースを示している。

ここでは、画像は1つのデータベース・ページに完全に収まるので、オーバーフロー・ページは必要ない。

3.複数ページにまたがるデータ

SQLiteの7,3,5ページにわたって非連続的に保存されたイメージの16進数表現。

この例は、データが非連続的に保存され、それを正しく再構築するためにフォレンジック分析が必要であることを示している。

4.オーバーフローページからのデータ再構築

断片化されたSQLiteページから再構築に成功したイメージ。オーバーフローページの検索によるフォレンジックプロセスを示す。

オーバーフローページポインターを追跡することで、フォレンジックアナリストは断片化されたデータを再アセンブルすることができる。

オーバーフローページの法医学的重要性

多数 メッセージングアプリ、モバイルアプリケーション、データベース は、ユーザーのプロフィール画像、チャットログ、添付ファイルをSQLiteに保存する。画像や文書が複数のページにまたがる場合、フォレンジック調査官はデータを適切に抽出するためにオーバーフロー構造を理解しなければならない。

科学捜査の課題

  • 断片化されたデータ: BLOB(画像など)は複数のページに分割されることが多い。
  • ポインタベースの検索: 分析者は、SQLiteのオーバーフローページポインタに従って、完全なイメージまたはファイルを再構築しなければならない。
  • カービングの問題 JPEGのヘッダー(FFD8FF)とフッター(FFD9)は別々のページに存在する可能性があるため、単純に検索すると失敗することがあります。

実例:オーバーフローページからプロフィール画像を抽出する

では、SQLiteデータベースに保存されたイメージのフォレンジック・リカバリーを順を追って説明しよう。

データベース内のBLOBを探す

DB Browser for SQLiteは、フォレンジック抽出に不可欠なBLOBとして保存されたプロフィール写真を含む連絡先テーブルを表示する。

使用 SQLite用DBブラウザフォレンジック・アナリストは、そのプロフィール写真を含むレコードを特定する。 コンタクト テーブル

BLOBの長さを16進数で特定する

Varint 0xB135 は、6,325 バイトのセル長に変換されます(varint 自体や行 ID は含まれません)。

使用 縦軸を含むレコードヘッダを見つける。 バリント BLOBの長さを決定する。

画像サイズの確認

HxDのハイライトされたVARINTがイメージの合計サイズ(6,325バイト)を示しており、標準SQLiteページサイズを超えていることが確認できます。

レコードヘッダの2番目のVARINTは、画像のサイズを指定する。この場合、合計サイズは 6,325バイトページ数制限を超える。

オーバーフローポインタに従う

ページの一番下にあるSQLiteオーバーフローポインタ。

メインページの下部には 4バイトポインタ につながる。 4ページこれは画像の次の部分を含む。

オーバーフローのページを見る

手作業による抽出と法医学的再構築の準備が整った、断片化された画像を完全に強調表示した六角形の図。

ページ4の最初の4バイトは、別のオーバーフローページが続くかどうかを示す。この値は 0x00000000これは 最後のオーバーフローページ.

画像の抽出と再構築

手作業による抽出と法医学的再構築の準備が整った、断片化された画像を完全に強調表示した六角形の図。

フォレンジック・アナリストは、その情報を抽出する。 6,292バイト 両ページの画像を手作業で再構築する。

📌4バイトのポインターは、彫られたイメージに含まれるデータの一部ではない

復元されたイメージを確認する

画像抽出SQLiteのオーバーフローページからプロフィール画像を回収し、Windowsのフォトビューアで表示。

抽出された画像は完全に復元され、見ることができる。

最終的な感想:オーバーフローページ分析の重要性

フォレンジック調査において、オーバーフローページの見落としは、次のような事態を招く可能性がある。 重大な証拠損失.SQLiteのストレージ・メカニズムを理解することは、次のことを行う上で非常に重要です。 正確なデータ抽出と再構築.

主要な法医学的洞察

✔️ いつも オーバーフローページのチェック大規模なレコードを分析する場合。

✔️ SQLiteの オーバーフローポインタ注意深く。

✔️ シンプル ファイル・カービング・テクニック ストレージが連続していないため、動作しない場合があります。

を分析するかどうか。 チャットデータベース、コンタクトリスト、アプリケーションログフォレンジックの専門家は、断片化されたデータの復元に精通していなければならない。

💡 SQLiteフォレンジックで断片化されたデータに遭遇したことはありますか?オーバーフローページ解析にどのように取り組んでいますか?以下であなたの洞察を共有してください!

フェイスブック
ツイッター
電子メール
プリント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です