はじめに
本記事はスペクトログラムと、ステガノグラフィーを解析するためのツールについて記載しています。
スペクトログラム
スペクトログラム(Spectrogram)は時間とともに変化する信号の周波数のスペクトル(spectrum)を視覚的に表現したものです。
オーディオ信号に適用される場合、スペクトログラムはsonographs,voiceprints,またはvoicegramsと呼ばれることがあります。データが3Dプロットで表される場合、waterfallsと呼ばれることがあります。
スペクトログラムを解析するためにフリーで利用可能なツールは以下になります。
-
Sonic Visualiser
- Sonic Visualiserはフリーの音楽データの分析ソフトです。Windows、Linux、Macでも動作します。
-
Spectrum Analyzer
- オンラインで利用可能なツールです。音声ファイルをアップロードして解析できます。
Sonic Visualiser
CTFでスペクトログラムの隠れたメッセージを探すためには、Sonic Visualiserを使用して解析できます。
スペクトログラムを解析するための使用方法は以下の通りです。環境はMacです。
ソフトウェアをダウンロード後、Sonic Visualiserを起動します。
解析する.wav
ファイルをドラッグアンドロップして開きます。
Layerの「Add Spectrogram」を押します。
右下にあるアイコンを使用して、Holizonal Zoomは水平に、Vertical Zoomで垂直に波長を調整できます。
ステガノグラフィー
ステガノグラフィー(steganography)は情報を隠蔽する技術として、ファイル、メッセージ、画像などの中に同様の情報を埋め込む手法です。
その考え方は紀元前に遡り、現代では2001年9月11日に発生したアメリカ同時多発テロ事件でもメッセージのやりとりが行われていたと指摘されています。
セキュリティ分野では考え方を応用して、電子透かしによる著作権保護や、画像の中にメッセージを隠したり、スクリプトを仕込んだり悪用される場合もあります。
ステガノグラフィーを解析するためにフリーで利用可能なツールについて以下に記載しています。
-
Binwalk
- Binwalkは埋め込みファイルと実行可能コードの特定のバイナリ イメージを検索するためのツールです。
-
Stegcracker
- Stegcrackerは、ファイル内の隠されたデータを明らかにするためのステガノグラフィブルートフォースユーティリティです。
-
Steghide
- Steghideは、さまざまな種類の画像ファイルや音声ファイルのデータを非表示にできるステガノグラフィプログラムです。デジタル フォレンジック調査に役立ちます。
-
Stegsnow
- 行末に空白を追加することにより、ASCII テキスト内のメッセージを隠すことができます。
- Stegsolveはフィルターを使用して画像のビットを取り除くことにより、画像を分析することができます。
-
Steganographic Decoder
- オンラインで利用可能なツールです。画像ファイルをアップロードして解析できます。
Binwalk
binwalk
コマンドはファイルに埋め込まれた別のファイルを抽出します。
例えば、wordファイルなどに埋め込まれた画像ファイルを抽出することができます。
$ binwalk -e <ファイル>
Stegcracker
画像ファイル内の隠されていてるテキストファイルを取得するために、パスワードをクラックする場合はstegcracker
コマンドを使用します。
$ stegcracker brooklyn99.jpg
StegCracker 2.1.0 - (https://github.com/Paradoxis/StegCracker)
Copyright (c) 2022 - Luke Paris (Paradoxis)
StegCracker has been retired following the release of StegSeek, which
will blast through the rockyou.txt wordlist within 1.9 second as opposed
to StegCracker which takes ~5 hours.
StegSeek can be found at: https://github.com/RickdeJager/stegseek
No wordlist was specified, using default rockyou.txt wordlist.
Counting lines in wordlist..
Attacking file 'brooklyn99.jpg' with wordlist '/usr/share/wordlists/rockyou.txt'..
Successfully cracked file with password: admin
Tried 20587 passwords
Your file has been written to: brooklyn99.jpg.out
admin
Steghide
以下の例ではsteghide
コマンドを使用して、画像ファイルからメッセージが記載されたテキストファイルを抽出しています。
$ steghide extract -sf stegosteg.jpg
Enter passphrase:
wrote extracted data to "steganopayload2248.txt".
Stegsolve
stegsolveは以下のコマンドを実行して、ダウンロードします。
$ wget http://www.caesum.com/handbook/Stegsolve.jar -O stegsolve.jar
$ chmod +x stegsolve.jar
$ mkdir bin
$ mv stegsolve.jar bin/
stegsolve.jar
ファイルをダウンロード後、以下のコマンドを実行することで、GUIアプリケーションが起動されます。
アプリケーション起動後、画像ファイルを開いて解析します。
$ java -jar stegsolve.jar
おわりに
SNSなどで縦読みでメッセージを送ることも一種のステガノグラフィーだと思います。