図1 今回の攻撃で誘導される悪質サイト(Dancho Danchev氏の情報から引用)。ビデオコーデックに見せかけてウイルスをダウンロードさせようとする
図1 今回の攻撃で誘導される悪質サイト(Dancho Danchev氏の情報から引用)。ビデオコーデックに見せかけてウイルスをダウンロードさせようとする
[画像のクリックで拡大表示]
図2 「USAToday.com」の検索機能を悪用した攻撃(Dancho Danchev氏の情報から引用)。Googleの検索結果として、悪質なIFRAMEタグが挿入された「USAToday.com」の検索結果ページが表示される
図2 「USAToday.com」の検索機能を悪用した攻撃(Dancho Danchev氏の情報から引用)。Googleの検索結果として、悪質なIFRAMEタグが挿入された「USAToday.com」の検索結果ページが表示される
[画像のクリックで拡大表示]

 米シマンテックや米サンズ・インスティチュートなどは2008年3月28日、検索サイト経由でウイルス(悪質なプログラム)を送り込む新攻撃が出回っているとして注意を呼びかけた。検索結果のリンクをクリックすると、ウイルスが置かれたWebサイトに誘導される恐れがある。

 今回の攻撃は、セキュリティ研究者のDancho Danchev氏が「IFRAME SEOポイズニング」という名称で報告したもの。Webページを改ざんして、悪質なIFRAMEを埋め込む攻撃方法は以前から多数報告されているが、今回の攻撃は全く別物。HTMLのタグの一つであるIFRAMEを使う点では同じだが、Webページを改ざんするようなことはしない。それぞれのWebサイトが用意する検索機能を悪用することで、ユーザーにウイルスなどを送り込む。具体的には以下の通り。

 大手のニュースサイトやショッピングサイトなどでは、サイト内の情報(記事や商品情報など)を検索できるように検索機能(検索窓)を用意している。そういったサイトの中には、同様の検索が要求された場合に備えて、検索結果をキャッシュしているところがある。キャッシュされた情報は誰でもアクセス可能なので、Googleをはじめとする検索サイトにも収集される。このことを悪用するのが、今回の報告された攻撃だ。

 攻撃者は、ニュースサイトやショッピングサイトなどの検索機能において、悪質サイト(ウイルスサイト)のURLを含む文字列(IFRAMEタグ)を使って検索を実行する。Webサイトによっては、キャッシュされる検索結果ページに、Webブラウザーが解釈できる形でこのIFRAMEタグが含まれる。

 キャッシュされた「悪質なIFRAME入りWebページ」は、大手のニュースサイトやショッピングサイトに置かれたWebページとして認識されるので、検索サイトでは、検索結果の上位に表示される可能性が高い。検索結果として表示された「悪質なIFRAME入りWebページ」のリンクをユーザーがクリックすると、IFRAMEが読み込まれ、ウイルスなどが置かれたWebサイトに誘導されてしまう。

 Danchev氏によれば、ビデオコーデックに見せかけてウイルスをインストールさせるサイトに誘導されるケースを確認しているという(図1)。

 今回の攻撃について、Danchev氏は2008年3月初めごろから警告している。当初は、あまり有名ではないWebサイトの検索機能がターゲットとなっていたが、最近では有名サイトを狙うケースが増えてきて、悪用されるWebサイトの数も急増している。

 例えば、「USAToday.com」「ABCNews.com」「News.com」といったニュースサイトや、「Target.com」「Packard Bell.com」「Walmart.com」などのショッピングサイトの検索機能が悪用されている(図2)。

 注意してほしいのは、これらのWebサイトのWebページが改ざんされたわけではないということ。これらのWebページに悪質なIFRAMEタグが埋め込まれたわけではない。これらのWebサイトの検索結果に、悪質なIFRAMEタグが挿入されただけである。

 このため、これらのWebサイトに直接アクセスする場合には、今回の攻撃の影響を受けることはない。悪質なIFRAMEタグが挿入された検索結果に、検索サイト(Googleなど)を通じてアクセスする場合のみ、被害に遭う恐れがある。

 Danchev氏によれば、Googleでは対応を進めており、「悪質なIFRAME入りWebページ」が検索結果として表示されないようにフィルタリングしているという。とはいえ、大規模な「IFRAME SEOポイズニング」攻撃が現在進行中であり、ウイルスなどが置かれたWebサイトも稼働している。このため、今後もこの攻撃が続くだろうとして警告している。