デジタルフォレンジック証拠の取得と完全性

CompTIABeginner
オンラインで実践に進む

はじめに

デジタルフォレンジックの世界へようこそ。あらゆる捜査において重要なのは、デジタル証拠を適切に取得することです。このプロセスには、元のデータを変更せずにストレージデバイスの正確なビット単位のコピーを作成することが含まれます。同様に重要なのは、そのコピーの完全性を確保し、作成以降改ざんされていないことを証明することです。

この実験では、あなたはジュニアフォレンジックアナリストの役割を担います。標準的な Linux コマンドラインツールを使用して、デジタルフォレンジックにおける最も基本的な 2 つのタスク、すなわち証拠の取得と完全性の検証を行う方法を学びます。ディスクイメージを作成するためにddコマンドを、暗号学的ハッシュを生成して証拠が健全であることを保証するためにsha256sumを使用します。

dd を使用して模擬ディスクイメージを作成する

このステップでは、模擬証拠ファイルからフォレンジックイメージを作成します。デジタルフォレンジックにおいて、「イメージ」とは、ソースドライブのビット単位のコピーのことです。私たちは、データのコピーと変換のための強力で汎用性の高いユーティリティであるddコマンドを使用します。これは、削除されたファイルや未使用領域を含むすべてのデータを保持し、ストレージデバイスの正確なレプリカを作成できるため、フォレンジックにおける標準的なツールです。

まず、ケースディレクトリに移動し、準備された元の証拠ファイルを確認しましょう。

cd ~/project/forensics_case
ls -lh

original_evidence.ddという名前のファイルが表示されるはずです。

-rw-rw-r-- 1 labex labex 11M Aug  5 15:28 original_evidence.dd

次に、ddを使用してこのファイルのイメージを作成します。イメージの名前はevidence_image.imgとします。

  • if=original_evidence.dd: input file(入力ファイル)を指定します。
  • of=evidence_image.img: output file(出力ファイル)を指定します。
  • bs=4096: block size(ブロックサイズ)を 4096 バイトに設定します。これは一般的なブロックサイズであり、パフォーマンスに影響を与える可能性があります。

以下のコマンドを実行してください。

dd if=original_evidence.dd of=evidence_image.img bs=4096

コマンドは、入力および出力されたレコード数と、コピーされた合計バイト数を出力します。

2560+1 records in
2560+1 records out
10485809 bytes (10 MB, 10 MiB) copied, 0.0130138 s, 806 MB/s

ここで、ファイルを再度リストして、元のファイルと新しく作成されたイメージの両方を確認します。

ls -lh

evidence_image.imgoriginal_evidence.ddと全く同じサイズであることを確認できるはずです。これは、コピーが成功した最初の良い兆候です。

-rw-rw-r-- 1 labex labex 11M Aug  5 15:43 evidence_image.img
-rw-rw-r-- 1 labex labex 11M Aug  5 15:28 original_evidence.dd

元のファイルとイメージファイルのハッシュを計算する

このステップでは、作成したフォレンジックイメージの完全性を検証します。単にコピーがあるだけでは不十分です。コピーが元のファイルの正確で改ざんされていないレプリカであることを証明できなければなりません。これは、元のファイルとイメージの両方に対して暗号学的ハッシュを計算することによって行います。

ハッシュ関数は、入力(この場合はファイルの内容)を受け取り、固定長の文字列である「ハッシュ」を生成します。入力ファイルにわずかな変更を加えただけでも、全く異なるハッシュが生成されます。元のファイルのハッシュとイメージファイルのハッシュが一致すれば、コピーが完全であることを確信できます。ここでは、SHA-256 ハッシュアルゴリズムを実装しているsha256sumコマンドを使用します。

まず、元の証拠ファイルの SHA256 ハッシュを計算します。

sha256sum original_evidence.dd

出力は、長い文字列(ハッシュ)の後にファイル名が続きます。

55a290c58509790860da55a47256188865bdd8dd5cbf7cd5c4b95cb5264f109a  original_evidence.dd

次に、作成したイメージファイルのハッシュを計算します。

sha256sum evidence_image.img
55a290c58509790860da55a47256188865bdd8dd5cbf7cd5c4b95cb5264f109a  evidence_image.img

2 つのハッシュを比較してください。それらは同一でなければなりません。これが、evidence_image.imgoriginal_evidence.ddの真実かつ正確なコピーであるという数学的な証明です。

適切な文書化のために、これらのハッシュをログファイルに保存するのがベストプラクティスです。今すぐそれを行いましょう。

sha256sum original_evidence.dd evidence_image.img > hashes.txt

次に、ハッシュログファイルの内容を表示します。

cat hashes.txt
55a290c58509790860da55a47256188865bdd8dd5cbf7cd5c4b95cb5264f109a  original_evidence.dd
55a290c58509790860da55a47256188865bdd8dd5cbf7cd5c4b95cb5264f109a  evidence_image.img

このhashes.txtファイルは、あなたのケースにとって非常に重要な文書の一部となります。

タイムスタンプなどの基本的なファイルメタデータを抽出する

このステップでは、ファイルのメタデータを調べます。メタデータとは「データに関するデータ」であり、捜査において重要なコンテキストを提供することができます。ファイルの場合、これには作成時刻、最終変更時刻、最終アクセス時刻などの情報が含まれます。これらはしばしば MAC タイム(Modify, Access, Change)と呼ばれます。

この詳細情報を表示するためにstatコマンドを使用します。statコマンドは、ファイルまたはファイルシステムのステータスを表示します。

まず、original_evidence.ddファイルのメタデータを見てみましょう。

stat original_evidence.dd

出力には多くの情報が表示されますが、タイムスタンプに焦点を当てましょう。

  File: original_evidence.dd
  Size: 10485809        Blocks: 20488      IO Block: 4096   regular file
Device: 7eh/126d        Inode: 11210686    Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 5000/   labex)   Gid: ( 5000/   labex)
Access: 2025-08-05 15:43:57.680473291 +0800
Modify: 2025-08-05 15:28:59.196596566 +0800
Change: 2025-08-05 15:28:59.196596566 +0800
 Birth: 2025-08-05 15:28:59.164595416 +0800

次に、evidence_image.imgについても同様に行いましょう。

stat evidence_image.img
  File: evidence_image.img
  Size: 10485809        Blocks: 20488      IO Block: 4096   regular file
Device: 7eh/126d        Inode: 11206338    Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 5000/   labex)   Gid: ( 5000/   labex)
Access: 2025-08-05 15:44:14.001048192 +0800
Modify: 2025-08-05 15:43:57.692473714 +0800
Change: 2025-08-05 15:43:57.692473714 +0800
 Birth: 2025-08-05 15:43:57.680473291 +0800

ファイルのコンテンツは同一である(ハッシュによって証明された通り)にもかかわらず、メタデータは異なることに注意してください。evidence_image.imgのタイムスタンプは、元のファイルが作成または変更された時刻ではなく、イメージが作成された時刻を反映しています。これは予期される動作であり、文書化することが重要です。これは、捜査官であるあなたが取得を実行した日時を示しています。

取得した証拠品の証拠保全記録を作成する

最終ステップとして、簡単な証拠保全記録(Chain of Custody log)を作成します。証拠保全記録は、フォレンジックにおいて最も重要な文書の一つです。これは、証拠の押収、保管、管理、移送、分析、および処分を詳細に記録した時系列の記録です。適切に維持された証拠保全記録は、証拠が適切に取り扱われ、改ざんされていないことを証明します。

実際の証拠保全記録フォームはより複雑ですが、ここでは私たちの行動を記録するための基本的なテキストログを作成します。このログには、証拠と取得プロセスに関する重要な情報を含める必要があります。

echoコマンドを使用して、chain_of_custody.logという名前のファイルに情報を書き込みます。いくつかの情報を収集する必要があります。

  • 事件番号 (Case Number): 捜査の一意の識別子です。ここではCASE-001を使用します。
  • 品目説明 (Item Description): 証拠が何であるかを示します。
  • 取得日時 (Date/Time of Acquisition): dateコマンドを使用して取得できます。
  • 取得者 (Acquired by): 取得を実行したアナリストです。whoamiコマンドの出力を利用します。
  • SHA256 ハッシュ (SHA256 Hash): 取得したイメージのハッシュで、hashes.txtファイルから取得します。

ログを作成しましょう。ファイルを作成して最初の行を追加するためにecho>演算子を使用し、その後、後続の行を追加するために>>を使用します。まず、イメージファイルのハッシュを取得しましょう。

IMAGE_HASH=$(grep 'evidence_image.img' hashes.txt | cut -d ' ' -f 1)

次に、必要なすべての情報を含むログファイルを作成します。

echo "--- CHAIN OF CUSTODY ---" > chain_of_custody.log
echo "Case Number: CASE-001" >> chain_of_custody.log
echo "------------------------" >> chain_of_custody.log
echo "Item ID: 1" >> chain_of_custody.log
echo "Description: Forensic image of original_evidence.dd" >> chain_of_custody.log
echo "Acquired By: $(whoami)" >> chain_of_custody.log
echo "Acquisition Date: $(date)" >> chain_of_custody.log
echo "SHA256 Hash: $IMAGE_HASH" >> chain_of_custody.log
echo "--- END OF LOG ---" >> chain_of_custody.log

最後に、完成した証拠保全記録ログを表示します。

cat chain_of_custody.log

出力は以下のようになります。

--- CHAIN OF CUSTODY ---
Case Number: CASE-001
------------------------
Item ID: 1
Description: Forensic image of original_evidence.dd
Acquired By: labex
Acquisition Date: Tue Aug  5 15:44:43 CST 2025
SHA256 Hash: 55a290c58509790860da55a47256188865bdd8dd5cbf7cd5c4b95cb5264f109a
--- END OF LOG ---

これで、あなたの行動を記録し、証拠の完全性を維持するための、基本的でありながら不可欠な文書を作成しました。

まとめ

この実験では、デジタルフォレンジック証拠の取得と完全性検証の基本的なステップを成功裏に実行しました。

以下の方法を学びました。

  • ddコマンドを使用して、データソースのビット単位のフォレンジックイメージを作成する方法。
  • sha256sumコマンドを使用して、フォレンジックイメージが元の証拠の正確なレプリカであることを証明するための暗号学的ハッシュを計算する方法。
  • statコマンドを使用して、ファイルの履歴を理解するために重要なタイムスタンプなどのファイルメタデータを調べる方法。
  • 証拠の取り扱いを文書化するための基本的な証拠保全記録(Chain of Custody log)を作成する方法。これは法的手続きにおいて重要な要件です。

これらのスキルは、健全なデジタルフォレンジック実践の基盤です。証拠が正しく取得され、その完全性が維持されていることを確認することで、成功した捜査の基盤を築きます。