PR 本記事には広告(Amazonアソシエイト・もしもアフィリエイト・A8.net等)が含まれます。掲載情報の正確性には努めていますが、商品の詳細は必ずリンク先で最新情報をご確認ください。

【ステガノグラフィ編】画像・音声に隠れた情報を見抜く|CTF思考フレームワーク #46

【ステガノグラフィ編】画像・音声に隠れた情報を見抜く|CTF思考フレームワーク #46 アイキャッチ画像
安全に生きたい編集部

広告・PRを含みます。この記事にはアフィリエイトリンクが含まれます。掲載内容は編集方針に基づいて作成していますが、価格・在庫・キャンペーン内容はリンク先で最新情報を確認してください。

ステガノグラフィって、画像に情報を隠す技術?スパイ映画みたい🖼️

そうです。画像・音声・動画ファイルの『見えない部分』にデータを埋め込む技術。CTFでは画像のLSB(最下位ビット)、メタデータ、Zipスラックスペース、音声のスペクトログラム――多彩な隠し方が出題されます。

ステガノグラフィ(Steganography)は、データを別のデータに隠す技術。CTFでは Forensics カテゴリの定番出題。画像 PNG/JPG のLSB、メタデータEXIF、TrueCryptボリューム、音声WAVのスペクトログラム可視化、動画フレーム間など、隠し場所は無限にあります。

音声に絵が隠れてるとか、CTFって面白そう…

この記事は、CTF思考フレームワーク第46回。ステガノグラフィの代表的な手法と、画像(zsteg・stegsolve)、音声(Sonic Visualiser)、動画、メタデータ(exiftool)の解析ツールの使い方を、初心者向けに整理します。

📖 この記事はシリーズの一部です
CTF思考フレームワーク#46 / 全86記事 → シリーズ一覧を見る →

🖼️ 画像の見た目はネコ、でも実はパスワードが埋まってる。ステガノグラフィは「隠す技術」、CTFでは定番のフォレンジックジャンルで、メタデータからLSB、音声スペクトログラムまで幅が広いです。

攻撃者目線では「あからさまに暗号化するより、平凡なファイルに隠した方が見つかりにくい」という発想。CTFではJPEGコメント、PNG IDAT、WAVのLSB、QRコードのエラー訂正領域など、お決まりのトリックがあります。

難易度:★★☆(中級)

画像・音声に隠された情報を見抜きます🖼️

ステガノグラフィは「ファイルの中にファイルを隠す」技術。CTFの定番ジャンルだよ🖼️

この記事で出てくる言葉

先に意味を押さえておくと読みやすい用語です。

  • CTF: セキュリティの練習問題を解く競技。必ず許可された環境だけで試します。
  • フィッシング: 本物そっくりのメールやサイトで、ID・パスワード・カード情報などを盗む手口です。
  • マルウェア: 情報を盗む、端末を壊す、勝手に操作するなど悪意あるソフトの総称です。
  • フォレンジック: ログや端末の痕跡から、何が起きたかを調べる作業です。

👀 観察フェーズ:まず何を見る?

まずfilestringsexiftoolbinwalk基本4点セットで観察🔍

まずファイル種別を確定させ、メタデータ → ファイル末尾の余剰 → 圧縮構造 → ピクセル/サンプルの最下位ビット、と段階的に深く潜ります。

画像ならEXIF/コメント/末尾追記/LSB、音声ならスペクトログラム、ファイル全体ならbinwalkで構造解析👀

見た目はただの猫の画像なのに、末尾に zip が付いてるってこと結構あるんだね😲

  • file / exiftool でメタデータ確認
  • strings で可読文字列を一気に走査
  • binwalk -e で内包ファイルを抽出
  • PNG: zsteg / pngcheck
  • JPEG: stegseek / jsteg
  • WAV: Audacityでスペクトログラム表示

ステガノの典型は4手法

🤔 仮説フェーズ:攻撃者は何を考える?

📎 仮説①:File Concatenation

PNGの後ろにZIPやテキストを連結する古典手法。binwalkforemost即発見

📐 仮説②:LSB(最下位ビット)

画像の各ピクセルRGB最下位ビットに情報を1ビットずつ埋め込む。zsteg・stegsolveが定番。

🎵 仮説③:音声スペクトログラム

WAV/MP3にメッセージをスペクトログラム上の文字として埋める。Audacity/Sonic Visualiserで可視化。

🧬 仮説④:メタデータ・コメント

EXIF・PNG tEXt・PDF metadataにテキストや暗号文を仕込む。exiftool一発。

🕶️ 攻撃者は「ピクセルのR/G/B最下位ビットならパッと見ほぼ変化しない」「ファイル末尾にZIPを連結すると file は元の種別を返す」など、視覚・自動判定の弱点を突きます。CTFなら「LSB抽出 → 出てきたbase64 → デコード」の連鎖がほぼ定型。

ステガノは「ファイル形式の知識量」がそのまま戦闘力になるんだね💡

🔬 検証フェーズ:どうやって確かめる?

基本ツールチェーン: binwalk -estrings -n 8exiftoolzstegstegsolveの順で🧪

ステガノは仮説検証ループ。まずメタ情報、次にカービング、最後にビットレベル。出題者がヒントを残しているケースも多いので注釈やファイル名にも注目。

音声ステガノは耳で聞いても分からないのにスペクトログラムで一目瞭然なのが面白いね🎵

# 基本走査
file suspicious.png
exiftool suspicious.png
strings -n 8 suspicious.png | head
binwalk -e suspicious.png

# PNG: zstegでLSB自動抽出
zsteg suspicious.png

# JPEG: stegseek + rockyou.txt
stegseek suspicious.jpg /usr/share/wordlists/rockyou.txt

# WAV: スペクトログラム
sox audio.wav -n spectrogram -o spec.png

ステガノで使われる隠蔽トップ3

⚔️ 攻撃フェーズ:実際の手口

① マルウェアC2の隠蔽

画像のLSBにC2コマンドや窃取データを埋めて画像投稿サイト経由で送受信。検知が極めて困難。

② フィッシングメールの内部情報送信

メールに添付した画像に機密情報をLSB埋め込み。DLPをすり抜ける。

③ CTF頻出パターン

flag.txtを画像に埋め込んだだけ、PNG末尾にzip連結、EXIFに直接書き込み、など基本テクの組合せで出題。

実装側の代表テクニック:①LSB(最下位ビットに1bitずつ埋め込む)、②DCT係数置換(JPEGでよく使う)、③オーディオのフェーズ・スペクトル領域、④フォーマット仕様の余白(PNGのtEXt/zTXtチャンク)。

# 自前LSBエンコード(Python)
from PIL import Image
img = Image.open('in.png')
px = img.load()
msg = "CTF{example}".encode() + b'x00'
bits = "".join(f"{b:08b}" for b in msg)
for i, bit in enumerate(bits):
    x, y = i % img.width, i // img.width
    r, g, b = px[x, y][:3]
    px[x, y] = (r & ~1 | int(bit), g, b)
img.save('out.png')

画像を再保存(特にJPEGで再圧縮)するとLSB情報は壊れます。CTFで「保存し直したら解けない!」となったら可逆フォーマットを使ってる証拠🎨

ステガノ対策の3レイヤー!🛡️

🛡️ 防御フェーズ:どう守る?

🔍 ファイル健全性チェック

画像・音声の末尾余分データ・未使用フィールドを検査するDLPルール。EXIF strip+再エンコードで埋込破壊。

🌐 アップロード/ダウンロード監視

画像投稿サイトへの頻繁な小規模アップロードはステガノC2のサイン。

🛡️ 機械学習によるステガナリシス

ピクセル分布の統計を機械学習で検査するStegoAnalyzer型ツールも実用化。

「再エンコードで壊す」のがステガノに対する地味だが強力な対策💪

実務で「秘密情報がステガノで漏れる」リスクは情シス案件です。出口で画像系メタデータをサニタイズ、DLP・CASBでのアウトバウンド検査が現実解。

  • メールゲートウェイで画像のEXIF・コメント自動除去
  • DLPで「画像+圧縮ファイル連結」のフォーマット異常を検知
  • CASBで個人クラウドストレージへの画像大量アップロードを検知
  • インサイダー対策として印刷ログ・USB持ち出しログ統合
  • データ分類ポリシーで「画像での社外持ち出し」を制限
  • ステガノ検知(StegExpose等)の定期スキャン

🛡️ 今日からできる対策ツール

フォレンジックと同じくらい大事なのが「そもそも侵入されない」こと。🛡️ ソースネクストのセキュリティツールなら、買い切りで使えるタイプも多いので、「サブスク疲れ」している人に人気です。

PR / 広告

ソースネクスト

※ 上記は他社サービスへのリンクです。購入は各自でご判断ください。

⚠️ よくある落とし穴

  1. メタデータだけ見て満足、ピクセル深層を確認しない
  2. binwalk -eで取れた中身に再帰的binwalkを忘れる
  3. WAVのスペクトログラムを音楽プレイヤーで再生し見落とす
  4. PNGのIDAT以外(tEXt・iTXt等)を未チェック
  5. パスワード付きJPEG(jsteg / steghide)に対して辞書攻撃しない
  6. LSBを「赤チャネル」だけでなく全チャネル試すのを忘れる

🧰 ツール早見表

ツール用途備考
exiftoolメタデータ操作ほぼ全画像/動画対応
binwalkファイル内ファイル抽出再帰展開も
zstegPNG/BMP LSB抽出CTF定番
stegseeksteghide辞書攻撃高速版rockyouとセットで
Audacity / sox音声解析スペクトログラム表示

🎓 本気で学びたい人へ

インシデントレスポンスやフォレンジックを職業として目指したい方へ。🎓 ササエルはインフラとセキュリティの両輪で学べるスクールです。

PR / 広告

ササエル

📚 もっと深く学びたい人へ

実際に手を動かして攻撃手法を体で覚えたいなら『7日間でハッキングをはじめる本 TryHackMe』がおすすめ📚

📚 次に読みたい

✍️ 学んだことを発信する

検証記録やレポートをオンラインでまとめるなら、ConoHa WINGのWordPressが手軽で便利です。

PR / 広告

ConoHa WING

⚖️ 大事なお約束

必ず守ってね

この記事の手法は、必ず自分の環境か、許可されたCTF・脆弱性報奨金プログラム(HackerOne、Bugcrowd等)で試してください。他人のサービスに無断で攻撃を仕掛けるのは不正アクセス禁止法違反、立派な犯罪です。学んだ知識は守る側で活かしましょう🤝

記事URLをコピーしました