隠しデータの検知(ステガナリシス)
隠されたペイロードを見つけます。
「隠しデータの検知(ステガナリシス)」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
ステガナリシスとは
ステガナリシスは隠しデータを検知する科学であり、ステガノグラフィに対応する分野です。目的は必ずしもペイロードを読み取ることではありません。まずは、より単純な問いであるこのファイルに隠しデータが含まれているかに答えることです。
隠しデータはシグネチャベースのツールを回避するため、ステガナリシスは防御側にとって重要です。無害な画像の中に忍ばせた悪意あるペイロードは、ウイルス対策スキャンやデータ損失防止フィルターを通過してしまいます。隠すこと自体が目的だからです。
検知の難易度は、単純なもの(追加されたファイルを見つける)から、非常に難しいもの(適切なキーを使用した低い埋め込み率の埋め込みを統計的に検知する)までさまざまです。
ステガナリシス攻撃の種類
ステガナリシスは、暗号解析と同様に、分析者が何を知っているかによって分類されます。
- ステゴのみ疑わしいファイルだけが利用できる、最も難しく、最も一般的なケースです。
- 既知カバー元のクリーンなカバーも利用できます。比較すれば変更をすぐに明らかにできます。
- 既知メッセージ隠しメッセージが分かっているケースで、埋め込み手法を特定するために使用します。
- 選択ステゴ分析者が埋め込みツールを実行して、その特徴を調べられるケースです。
現実の検知の多くはステゴのみです。比較対象となる元のファイルを入手できることはほとんどないため、統計的手法が非常に重要になります。
シンプルに始める:ファイル構造
高度な統計解析の前に、基本を確認します。多くの素朴な試みは、簡単な構造検査で見つかります。
- ファイルサイズ表示されている内容に対して大きすぎます。
- 末尾データフォーマットのファイル終端マーカーの後にデータがあります。
- 埋め込みファイル画像からZIPファイルや実行可能ファイルを取り出せます。
- 可読文字列メディアファイルに含まれるはずのない平文があります。
binwalk、strings、fileなどのツールを使えば、これらを数秒で検出できます。
file suspect.png # confirms the real format vs the extension
binwalk suspect.png # scans for embedded/appended file signatures
strings -n 10 suspect.png # surfaces readable hidden text
exiftool suspect.png # inspects metadata for stashed dataメタデータとコメントフィールド
画像やドキュメントのフォーマットには、任意のテキストを格納できるメタデータフィールド(EXIFタグ、コメントブロック、XMP)があります。ここにデータを隠す方法は粗雑ですが、ビューアーには表示されないため、よく使われます。
メタデータは必ず調査してください。
- EXIFのcomment、UserComment、ImageDescriptionフィールド
- JPEG/PNGのコメントチャンク
- PDFのオブジェクトストリームとドキュメントプロパティ
ここは最も手間のかからない隠し場所であるため、アナリストが最初に調べる場所の一つです。
# Dump all metadata, including comment and description fields
exiftool -a -u -g1 suspect.jpg
# Inspect PNG text chunks specifically
pngcheck -v suspect.png視覚的な攻撃:ビットプレーン解析
LSBを検出する強力な手法がビットプレーン解析です。8ビット画像は、ビット位置ごとに1層ずつ、8つのレイヤーに分けられます。上位ビットプレーンには認識可能な画像が含まれ、最下位ビットプレーンは通常、ランダムノイズのように見えます。
正常な画像では、LSBプレーンはセンサー由来の自然なノイズやテクスチャの影響を受けます。LSBを全面的に使ってデータを埋め込むと、そのプレーンに構造、つまり規則的なパターンやブロック、隠されたペイロードの輪郭が見えることがあります。
StegSolveやzstegなどのツールを使えば、個々のビットプレーンを表示して、こうした異常を目視で見つけられます。
# zsteg scans PNG/BMP bit planes for hidden content
zsteg -a suspect.png
# StegSolve (GUI) lets you flip through each bit plane visually;
# a structured LSB plane is a strong indicator of embedding.統計的ステガナリシス
最も強力な検出方法は統計的手法です。隠しデータは、ピクセル値や係数値の自然な分布をわずかに乱します。ビットを埋め込むとランダム性が平坦化され、その変化を数学的に検出できます。
主な手法は次のとおりです。
- カイ二乗攻撃値のペア(200と201など)の出現頻度が同程度になることを検出します。実際の画像では、このような分布は不自然です。
- RS解析(Regular/Singular)LSBを反転させ、画像の滑らかさがどのように変化するかを測定して、埋め込み率を推定します。
- サンプルペア解析隣接するサンプル間の関係を調べます。
これらの手法は、ペイロードが暗号化されていても機能します。メッセージの内容ではなく、埋め込みという行為そのものを検出するためです。
カイ二乗攻撃の解説
カイ二乗攻撃は、シーケンシャルLSB埋め込みの特定の弱点を利用します。自然な画像では、値200と値201の出現頻度は異なります。しかしLSB埋め込みでは、ランダムなペイロードビットに応じてこの2つの値が切り替わるため、各値のペア(Pair of Values、またはPoVと呼ばれます)の出現頻度がほぼ同じになる傾向があります。
カイ二乗検定は、これらのペアの出現頻度がどの程度等しいかを測定します。多数のペアで等頻度になる確率が高ければ、埋め込みの存在が示されます。画像の範囲を徐々に広げながら検定を実行すると、アナリストは隠されたデータの量や、埋め込みがどこで終わるかまで推定できます。
# The chi-square steganalysis tests whether value pairs
# (2k, 2k+1) have become artificially equal in frequency.
# Natural image: unequal counts -> low embedding probability
# LSB-stego image: equalized counts -> high embedding probability機械学習によるステガナリシス
現代のステガナリシスでは、ますます機械学習が使われています。1つの固定された統計量を使うのではなく、分類器が多数の例から正常な画像とステガノ画像の違いを学習します。
- 従来の機械学習では、SPAMやSRMの特徴量など、ピクセル間の関係を捉える豊富な特徴量を抽出してから、分類器を学習させます。
- ディープラーニングでは、畳み込みニューラルネットワークが生の画像から検出用の特徴を直接学習します。
機械学習は、手作業で設計された統計的手法を回避する適応型ステガノグラフィーの検出に優れています。ただし、代表性のある学習データが必要であり、未知の手法には回避される可能性があるため、いたちごっこは続きます。
ステガノグラフィーツールの検出
場合によっては、データではなくツールを特定するほうが簡単に検出できます。多くのステガノグラフィープログラムは、認識可能な痕跡を残します。
- 特定のバイトシグネチャやマーカー
- 特徴的な容量と品質のトレードオフ
- steghide、OpenStego、OutGuessなどのツールが使用する既知のヘッダー
StegExposeやstegdetectなどの専用検出器は、一般的な埋め込みツールの痕跡がないか画像を検査します。エンドポイントでは、ステガノグラフィーツールがインストールまたは実行されたことを検出するだけでも、強力な兆候になります。
# stegdetect screens JPEGs for known tool signatures (jsteg, outguess, etc.)
stegdetect -t jopi suspect.jpg
# StegExpose batch-scores a directory of images for likely LSB stego
java -jar StegExpose.jar ./images/アクティブステガナリシスとサニタイズ
隠しデータを確実に検出できない場合でも、データを無力化することはできます。アクティブステガナリシスでは、隠しデータを見つけることなくペイロードを破壊します。
- 再エンコードゲートウェイですべての画像を再圧縮します(新しいJPEGに変換するなど)。これにより、単純なLSBデータを破壊できます。
- サイズ変更/切り抜き再サンプリングによってすべてのピクセル値が変化します。
- メタデータの除去すべてのEXIFフィールドとコメントフィールドを削除します。
- フォーマットの正規化すべてのアップロードを単一の標準フォーマットに変換します。
これは、メールゲートウェイやコンテンツプラットフォームにとって実用的な防御策です。隠しデータが存在する可能性を前提に、事前に除去します。
# Sanitize an image at a gateway: strip metadata + re-encode
exiftool -all= clean_candidate.jpg
convert input.png -resize 99% -strip output.jpg # ImageMagick re-encode実践的な検出ワークフロー
これらを組み合わせて、コストの低い検査から始める防御側のワークフローにします。
- 1. 構造追加データや埋め込みデータがないか、
file、binwalk、stringsを実行します。 - 2. メタデータ
exiftoolでEXIFとコメントフィールドを調査します。 - 3. 視覚的検査zstegまたはStegSolveでビットプレーンを解析します。
- 4. 統計的検査カイ二乗解析、RS解析、ツール検出器を使用します。
- 5. 機械学習大規模に分類器でスクリーニングします。
- 6. アクティブ防御検出に確信が持てない場合は、再エンコードによってサニタイズします。
単独の検査で決定的な結論は出せません。複数の手法を重ねることで確信度が高まります。
クイックチェック
統計的検出についての理解度を確認します。
復習:隠しデータの検出(ステガナリシス)
アナリストが隠されたペイロードを見つける方法を学びました。
- ステガナリシスでは、まず隠しデータが存在するかどうかを確認します。内容ではありません。多くの場合はステゴのみです。
- まず、低コストな構造検査とメタデータ検査を行います。file、binwalk、strings、exiftoolを使用します。
- ビットプレーン解析(zsteg、StegSolve)により、LSBプレーンに現れる埋め込みの痕跡となる構造を明らかにできます。
- 統計的手法であるカイ二乗解析とRS解析は、ペイロードが暗号化されていても埋め込み行為を検出します。
- 機械学習は、固定的な統計的手法を回避する適応型ステガノグラフィーを検出します。
- ツール検出器とアクティブステガナリシス(再エンコード、メタデータの除去)によって、ペイロードを特定または無力化できます。
- 信頼性の高い検出のため、低コストな手法から順に重ねて使用します。
次は、コバートチャネルと、攻撃者がデータを外部に持ち出す方法について見ていきます。
よくある質問
「隠しデータの検知(ステガナリシス)」レッスンは無料ですか?
はい。「隠しデータの検知(ステガナリシス)」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「隠しデータの検知(ステガナリシス)」で何を学びますか?
隠されたペイロードを見つけます。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「隠しデータの検知(ステガナリシス)」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ステガノグラフィとは
- 画像と音声のステガノグラフィ
- 隠しデータの検知(ステガナリシス)
- 隠れチャネルと情報窃取