- 2019年1月7日
- セキュリティについて
画像ファイルに不正なコードを埋め込む「ステガノグラフィ」とは
パソコンで見ると、ただの画像ファイルに見える。
でも実際には画像ファイルの中身に不正なコードが含まれていて、ファイルを開いたパソコンに対して攻撃を仕掛けるようになっている。
このようにファイルの中に、無関係のデータを埋め込んで秘匿する技術のことを「ステガノグラフィ」とよびます。
このステガノグラフィを悪用したサイバー攻撃がたびたび発生しています。
例えば日本国内をターゲットにしたボットネット「Cutwail(カットウエイル)」は、不正送金を行うマルウェアの感染を目的としたものでした。
Cutwailはマクロが含まれたExcelファイルをメールに添付し、受信者に実行させます。
マクロを実行したパソコンは、ステガノグラフィによって不正なコードが含まれた画像ファイルをダウンロードさせられます。
画像ファイルを受信したパソコンは、画像ファイルに含まれる不正なコードが実行され、マルウェアに感染するという仕組みです。
【参考】ボットネット「Cutwail」、日本狙うメール攻撃に新展開 – 画像に命令埋め込む「ステガノグラフィ」を悪用
http://www.security-next.com/099561
ステガノグラフィを利用できるオープソースのツールも公開されています。
例えば「Invoke-PSImage」はPNG画像データにPowerShellのコードを埋め込めるツールで、GitHubにて開発が行われています。
【参考】Invoke-PSImage
https://github.com/peewpw/Invoke-PSImage
PowerShellとはWindows上で動作するスクリプト言語で、昔で言うところのDOSプロンプトのようなものです。
このようなツールが存在することもステガノグラフィによる攻撃が増加する要因となっています。
ステガノグラフィと暗号化の違い
ステガノグラフィと暗号化はどのような違いがあるのでしょうか。
暗号化とはデータの中身を読み取られないように情報を加工することです。
情報を加工して読み取られることを防ぎますが、暗号化された情報が存在すること自体は知られてしまいます。
一方でステガノグラフィは画像ファイルなどに無関係のファイルを埋め込んで秘匿する技術です。
データを埋め込まれた画像ファイルを見たものは、それがただの画像ファイルである事は認識できても、その中に無関係なデータが含まれていることまでは知られることはありません。
つまり無関係な第三者からは、ただの画像ファイルだと認識されるだけで、その中に無関係なデータが含まれていることまでは知られません。
ステガノグラフィを検出する「ステガナリシス」
ステガノグラフィによって埋め込まれたデータは第三者から知られることはないと説明しましたが、当然ですが対抗する技術もあります。
画像や音声ファイルに無関係なデータが隠されているかどうか判定する技術としてステガナリシスがあります。
ステガナリシスの目的はファイルに隠されているデータを復元することです。
一見すると暗号化されたデータの復元に近い機能に思えますが、ステガナリシスのプロセスはそれとは違うものです。
さきほど紹介したように暗号化されたデータの場合、データの存在は明らかです。
しかしステガナリシスでは、隠されたデータが存在することらしいことがわかるだけで、データの存在が必ずわかるわけではありません。
またステガノグラフィに用いられたアルゴリズムは不明であることが多く、たとえデータの存在が既知であっても、埋め込まれたデータの検出に対してはお手上げ状態といこともしばしばです。
(Photo by sebastiaan stam on Unsplash)