比喩的な意味で「行間を読む」という表現はよく使われますが、現代の通信技術が普及する以前は、まさに文字通りのことが行われていました。たとえば、一見すると普通の手紙の文章の間に、目に見えないインクで秘密のメッセージを書くなどです。
この、表向きは何でもないように見えるものの中に秘密の情報を隠す技術を「ステガノグラフィー」といい、その起源は人間が文字を書き記すようになった頃にも遡ります。同じく秘密通信の手段である暗号(クリプトグラフィー)がメッセージを読めないようにする手段であるのとは異なり、ステガノグラフィーはメッセージの存在そのものを隠します。ステガノグラフィーはまた、現在ではデジタル技術の中にも採用されています。
デジタルステガノグラフィーの仕組み
秘密のメッセージは、どんな形式のデジタルオブジェクトにも隠すことができます。テキスト文書にも、ライセンスキーの中にも(リンク先はいずれも英語)。Webサイトのコンテンツにメッセージを隠す例もありました。ラップの歌詞を解説するWebサイト「Genius.com」のエディター陣は、自分たちのコンテンツが勝手にコピーされるのを防ぐため、Genius.comに掲載する歌詞の中で2種類のアポストロフィーを使用しました。これらのアポストロフィーをモールス信号に置き換えると、「red handed(現行犯で)」という言葉になるようにしたのでした(英語記事)。
メッセージを隠しやすいのは、画像、音声、動画などのメディアファイルです。そもそもファイルサイズが大きいので、テキスト文書などよりも多くの情報を余分に入れることができます。
秘密の情報は、メタデータに書き込むことも、メインのコンテンツに直接埋め込むこともできます。画像を例に取りましょう。画像とは、何十万ものピクセル(画素)の集合体です。ピクセルはそれぞれ、色についての情報を持っています。
カラー画像のほとんどで使われるRGB形式の場合、ピクセルは24ビットのメモリ領域を占めます。一部のピクセル(または画像内の全ピクセル)の1~3ビットを秘密の情報が占めても、画像全体の変化は目に見えません。画像には膨大な数のピクセルが含まれることを考えると、かなりの量のデータを書き込むことができます。
左:隠しメッセージなしの画像。右:ナバコフの小説『ロリータ』の1~10章が隠された画像
ほとんどの場合、情報はピクセル内に隠され、取り出すには特別なツールを使用します。カスタムスクリプトを作成したり、別の用途を持つプログラムに必要な機能を追加したりすることもあれば、既製のコードを使用することもあります(こういった目的の既製コードはオンラインで多数見つかります)。
デジタルステガノグラフィーの用途
ステガノグラフィーは、さまざまな方法でコンピューターテクノロジーに適用可能です。たとえば画像、動画、楽曲の中に隠しテキストを埋め込むなどです。お遊びでそうすることもあるでしょうし、先ほどの例のように違法コピーを防ぐ目的で使うこともあります。
電子透かしも、ステガノグラフィーの一種です。とはいえ、「秘密のメッセ―ジ」と聞いて真っ先に思い浮かぶのは、秘密の通信とスパイ活動です。
サイバースパイの隠れ蓑
当社のエキスパートは1年半ほど前、サイバー犯罪者によるステガノグラフィー悪用の増加を確認しました(リンク先は英語)。その当時、当社では少なくとも3件のスパイウェア攻撃を観測していました。これらの攻撃では、盗んだデータを写真や動画の中に紛れ込ませて指令サーバーへ送るという手段が使われました。
メディアファイルがアップロードされるという現象は、セキュリティシステムにとっても、送信トラフィックの監視を担当する従業員にとっても、とりたてて不審な動きには見えなかったのです。まさに犯罪者たちの期待どおりでした。
指令を出す面白画像
一方で、画像ファイルを通じて指令を受け取るスパイウェアもありました(英語記事)。このマルウェアは、思いもよらない経路でサイバー犯罪者と通信していました。Twitter上に投稿された面白ネタ画像です。
コンピューターに侵入したマルウェアは、該当するツイートを開き、面白画像から指令を引き出していました。たとえば以下のような内容です。
- デスクトップのスクリーンショットを撮る。
- 実行中のプロセスに関する情報を収集する。
- クリップボードのデータをコピーする。
- 指定されたフォルダー内のファイルの名前を書き出す。
画像に隠されたコード
メディアファイルには、テキストだけでなく、悪意あるコードの一部を隠すこともできます。そこで、スパイのような行動を取るサイバー犯罪者が現れ始めました。ステガノグラフィーを使用すれば、画像や動画や楽曲を本格的なマルウェアに変えるわけではありませんが、ウイルススキャンでペイロードが見つからないようにすることができます。
今年1月、オンライン上の広告ネットワークを通じて変わったバナーが配信されました。何かの宣伝が含まれるわけでもなく、ただの小さな白い長方形に見えます。しかし、この中にはブラウザー内で実行するスクリプトがありました。このスクリプトを広告スロットにロードすれば、たとえば広告を見た人の統計データを収集することが可能です。
仕込まれたスクリプトはピクセルの色情報を認識し、これを一連の文字および数字として記録していました。わざわざそうするのは無意味に見えるかもしれません。ただ白い長方形があるだけなのですから。しかし、プログラム的に見るとピクセルは白ではなく「ほぼ白」です。この「ほぼ」にあたる余分が悪意あるコードに変換され、実行されていました。
この画像から抽出されたコードは、犯罪者が用意したWebサイトに利用者をリダイレクトします。このWebサイトでは、Adobe Flash Playerのアップデートに見せかけたトロイの木馬のダウンロードが促され、これをダウンロードしてしまうとアドウェアなどがダウンロードされる仕組みでした。
ステガノグラフィーの検知は簡単ではない
セキュリティ企業のCTOであるサイモン・ワイズマン(Simon Wiseman)氏がRSA Conference 2018で指摘したように、質の高いステガノグラフィーを見極めるのは非常に困難です(英語)。ステガノグラフィーを排除するのも、簡単ではありません。メッセージが画像の中に奥深く埋め込まれていると、印刷や再スキャンの後でも、サイズ変更その他の編集を加えた後でも残ります(リンク先はいずれも英語)。
しかし、先に述べたように、画像や動画から情報(コードを含む)を取り出すのには特別なツールが必要です。つまり、メディアファイルそのものがあなたのコンピューターから何かを盗んだり、コンピューターに何かをダウンロードしたりするのではないのです。したがって、メディアファイルにテキストや悪意あるコードを隠したり取り出したりするようなマルウェアに対して策を講じることが、セキュリティ上有効です。
- メールに記載されたリンクをすぐにクリックしたり、添付ファイルを急いで開いたりしないでください。メールは注意深く読みましょう。送信者のアドレスやメールの内容に怪しいものを感じたら、無視するのが得策です。
- 何かをダウンロードする必要がある場合は、必ず信頼できるWebサイトからダウンロードしましょう。信頼できるWebサイトとは、公式のストアや開発者のWebサイトなどのことです。映画や音楽をダウンロードするときも同じです。よく知らないWebサイトからはダウンロードしないでください。
- 信頼できるセキュリティ製品を使用しましょう。画像に埋め込まれたコードを検知できない場合でも、マルウェアの見せる疑わしいふるまいを検知することができます。