【CTF入門連載|第15話/全20話】デジタルフォレンジック入門|ファイルに残る証拠

🚩 CTF入門連載|第15話/全20話

デジタルフォレンジック入門|ファイルに残る証拠

OSINT編はここまで。今回から「フォレンジック編」がスタートです。「削除」の本当の意味、ファイルの正体を見抜くマジックバイト、そしてバイナリの中に隠れた文字列を見つけ出すテクニックを体験します。

🔎 マジックバイト 🔢 16進ダンプ 📝 strings抽出 ⭐ 難易度:★★☆
01

🔍 デジタルフォレンジックとは何か|「消えた」データは本当に消えているのか

「ゴミ箱を空にする」は、データを消す行為ではない

🧬

フォレンジック = デジタルの「鑑識」

デジタルフォレンジックとは、コンピューターやスマートフォンなどのデジタル機器から、事件や事故の証拠となる情報を科学的に収集・分析する技術です。サイバー攻撃を受けた企業の調査(インシデントレスポンス)から、犯罪捜査まで幅広く使われています。今回学ぶのは、その入り口となる「ファイルに残る手がかりの見つけ方」です。

多くの人は「ファイルを削除する」=「データが消える」と思っていますが、実際にはファイルシステムが『この場所は使われていない』という目印をつけるだけで、データの実体はディスク上にそのまま残っていることがほとんどです。新しいデータで上書きされるまで、削除されたはずのデータは復元できる可能性があります。

「削除」の本当の仕組み 削除前:ディスク上のブロック file.txt 空き photo.jpg 「削除」操作 → (実際にはデータは消えない) 削除後:ポインタだけが消える(データは残存) file.txt “空き”扱いだが実体は残る 空き photo.jpg
⚠️

本当に消したいなら「上書き」が必要

機密データを本当に消去したい場合は、専用の「データ消去ツール」でその領域に何度もランダムなデータを上書きする必要があります。これがCTFのフォレンジック問題で「削除されたファイルを復元せよ」という出題が成立する理由です。

02

🔎 ファイルの正体を見抜く「マジックバイト」

拡張子はただの「ラベル」、本当の正体は先頭バイトが教えてくれる

ファイルの拡張子(.jpg.pdfなど)は、OSやアプリがファイルの種類を推測するための単なる目印(ラベル)であり、ファイルの実際の構造とは関係ありません。本当のファイル種別は、ファイルの先頭数バイト(マジックバイト/ファイルシグネチャ)に書き込まれています。拡張子を書き換えるだけで、見た目上は別の種類のファイルに「偽装」できてしまいます。

拡張子本当のファイル形式マジックバイト(16進数)
.pngPNG画像89 50 4E 47 0D 0A 1A 0A
.jpg / .jpegJPEG画像FF D8 FF
.pdfPDF文書25 50 44 46(%PDF)
.zipZIP圧縮50 4B 03 04(PK..)
.gifGIF画像47 49 46 38(GIF8)
🕵️

CTFの定番トリック:拡張子と内容を一致させない

secret.pdfというファイルが送られてきたが、開発者ツールやhexdumpで先頭バイトを見ると89 50 4E 47(PNG)だった」というのは、CTFフォレンジック問題の超定番パターンです。ファイルの正体を見抜くには、拡張子を信用せず、先頭バイトを必ず確認する習慣が重要です。

03

📝 隠れた文字列を抜き出す「strings」の発想

バイナリの中にも、読める文字が紛れていることがある

画像や実行ファイルのような「バイナリファイル」は、ほとんどの部分が人間には読めない数値データですが、その中にコメント・著作権表記・デバッグ用のメッセージなど、印字可能なASCII文字列がそのまま埋め込まれていることがよくあります。Linux/macOSにはstringsというコマンドがあり、バイナリファイルから印字可能な文字の並びだけを自動的に抜き出してくれます。

💡

16進ダンプの「ASCII列」を目で確認するのも同じ発想

専用ツールがなくても、16進ダンプ(hex dump)のASCII表示列を見れば同じことができます。多くのバイトが「.」(非印字文字)として表示される中に、突然意味のある単語が並んでいたら、それは見逃せない手がかりです。次のセクションのチャレンジで実際に体験してみましょう。

00000020 00 9A 2C 91 B1 00 00 00 09 70 48 59 43 54 46 7B |..,……pHYCTF{| 00000030 46 31 4C 33 5F 53 31 47 4E 34 54 55 52 33 5F 4C |F1L3_S1GN4TUR3_L| ↑ 「.」だらけのASCII列の中に、突然 “CTF{F1L3_S1GN4TUR3_L…” という読める文字列が出現! これがバイナリファイルに紛れ込んだ「印字可能文字列」の正体です
04

🧩 CTFで使うファイル調査テクニック3選

「見た目」を信用せず、内容を確認する

先頭バイトと拡張子の不一致を疑う

怪しいファイルを受け取ったら、まず先頭8〜16バイトを確認し、セクション2の対応表と照合します。拡張子と実際の形式が違えば、それ自体が重要な手がかりです。

ファイルサイズの「不自然な大きさ」に注目する

同じ内容の画像にしては明らかにファイルサイズが大きい場合、画像データの後ろに別のデータ(隠しファイル・テキスト・別の画像)が連結されている可能性があります。

ファイル末尾のマーカーを確認する

PNGならIENDチャンク、JPEGならFF D9のように、多くのファイル形式には「ここでファイルが終わる」という終端マーカーがあります。そのマーカーの後ろにまだデータが続いている場合、そこに何かが隠されている可能性が高いです。

05

🧩 5分CTFチャレンジ:偽装されたファイルの正体を暴け

「invoice.pdf」という名前のファイルの正体は?

下の16進ダンプは、invoice.pdfというファイル名で送られてきたファイルの内容です。本当にPDFなのか確認し、さらにASCII列に紛れ込んだ文字列を読み取ってください。

🕵️

チャレンジの手順

① 先頭8バイト(89 50 4E 47 0D 0A 1A 0A)をセクション2の対応表と照合する → ② 拡張子.pdfと実際の形式が一致しているか確認する → ③ 各行右端のASCII列を上から下まで目で追う → ④ 「.」の中に混ざった読める文字列をつなげてフラグを完成させる!

📄 invoice.pdf — hexdump (offset / hex / ascii)
0000000089 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52.PNG……..IHDR
0000001000 00 01 90 00 00 01 2C 08 06 00 00 00 9A 2C 91…….,……,.
00000020B1 00 00 00 09 70 48 59 43 54 46 7B 46 31 4C 33…..pHYCTF{F1L3
000000305F 53 31 47 4E 34 54 55 52 33 5F 4C 31 33 53 7D_S1GN4TUR3_L13S}
0000004000 00 49 45 4E 44 AE 42 60 82 00 00 00 00 00 00..IEND.B`…….
🧩 5分CTFチャレンジ:ASCII列から読み取ったフラグを入力せよ

16進ダンプのASCII列に紛れ込んだ文字列を読み取り、フラグを入力してください。

06

📝 まとめ+FAQ+次回予告

今回のポイントを振り返ろう

第15話では、デジタルフォレンジックの入り口として「削除はデータの消去ではない」という基本認識、ファイルの正体を見抜くマジックバイト、そしてバイナリの中に紛れた文字列を発見する技術を学びました。これらは実際のインシデント対応や犯罪捜査でも使われる、地味だけれど非常に実用的な技術です。

✅ 今回のまとめチェック

・「ファイル削除」は通常、データそのものではなく目印(ポインタ)を消すだけ
・ファイルの本当の種類は拡張子ではなく先頭バイト(マジックバイト)で決まる
・バイナリファイルにも印字可能な文字列がそのまま埋め込まれていることがある
・ファイルサイズの不自然さや終端マーカー以降のデータにも注目する
・これらはCTFだけでなく実際のDFIR(フォレンジック・インシデント対応)の基本技術

Q. 本当に「strings」というコマンドが存在するのですか?

はい、Linux・macOSに標準搭載されている実在のコマンドラインツールです。Windowsでも、WSL(Windows Subsystem for Linux)や、SysinternalsのStringsツールで同様の機能が使えます。マルウェア解析の現場でも最初に実行される定番コマンドの1つです。

Q. ファイルの拡張子を変えるだけで本当に種類を偽装できますか?

OSやソフトウェアが拡張子だけを見て処理を決めている場合は、見た目上は偽装できてしまいます。しかし、ファイルの実体(バイト列)は変わらないため、正しいツールで内容を確認すれば必ず正体が判明します。今回学んだマジックバイトの確認が、その最も確実な方法です。

Q. 削除したファイルは本当に復元できてしまうのですか?

多くの場合、削除直後であれば専用の復元ソフトでデータを取り戻せる可能性があります。新しいデータで上書きされると復元は困難になります。本当に機密性の高いデータを廃棄する際は、単純な削除ではなく専用の消去ツールやディスクの物理破壊が推奨される理由がここにあります。

Q. デジタルフォレンジックは実際の事件捜査でも使われていますか?

はい、DFIR(Digital Forensics and Incident Response)は確立された専門分野で、サイバー攻撃を受けた企業の被害範囲調査や、犯罪捜査におけるデジタル証拠の収集・解析に実際に使われています。今回学んだマジックバイトや文字列抽出は、その入り口にあたる基礎技術です。

次回・第16話

ステガノグラフィー|画像に隠されたデータを探す

フォレンジック編の第2回。画像ファイルの中にこっそり別のデータを埋め込む「ステガノグラフィー」の仕組みと、隠されたデータを見つけ出す技術を体験します。

📚 参考情報

  • IPA「コンピュータフォレンジックの基礎」(情報処理推進機構)
  • Gary Kessler「File Signatures Table」(ファイルシグネチャ一覧の定番資料)
  • SANS Institute「Digital Forensics and Incident Response」コース概要

コメント