9月末,Internet Explorer(IE),Firefox,Safariなど主要ブラウザやFlashPlayerなどのプラグイン・ソフトに潜む「クリックジャッキング」のぜい弱性が報告された。想定される影響範囲が広いうえ,決定的な防御策がなかったことから情報公開が遅れていたが,10月7日に,いくつかのベンダーによる防御策とともにようやく詳細が公開された。

 クリックジャッキングを端的に説明すると,悪意あるWebコンテンツに“見えない”ボタンを埋め込み,それをユーザーにクリックさせる攻撃手法である。ユーザーは目に見えているボタンをクリックしているつもりで,悪意あるコンテンツにアクセスしてしまう。

 このぜい弱性の主な特徴は,
・JavaScriptの利用を必要としない
・複数のWebブラウザに影響がある
・何度もクリックさせることが可能
の3点だ。クリックジャッキングのぜい弱性報告者の一人であるロバート・ハンセン氏のブログではさらに多くの問題点が指摘されており,まだ一部しか解決されていない。

 この攻撃により,ユーザーは勝手に通販サイトやオークション・サイトで商品を購入させられているかもしれない。株取引やインターネット・バンキングに悪用される可能性も考えられる。正規のWebサイトに,クリックジャッキングを悪用するオブジェクトを埋め込まれる可能性があることを常に念頭におくべきだろう。

FlashやJavaを悪用される

 攻撃は,図1のようにHTMLやFlashを組み合わせて実現される。攻撃者は悪意あるコンテンツにリンクしたボタンを設け,それをFlashやSilverlight,Javaなどを使って透明にする。その上に,真っ当なサイトを装ったページを重ねるわけだ。

図1●クリックジャッキング攻撃の基本的な仕組み<br>正当なサイトを装ったフィッシング・サイトなどで,目に見えないボタンなどを設け,どこをクリックしても悪質サイトに誘導するようにしておく。
図1●クリックジャッキング攻撃の基本的な仕組み
正当なサイトを装ったフィッシング・サイトなどで,目に見えないボタンなどを設け,どこをクリックしても悪質サイトに誘導するようにしておく。
[画像のクリックで拡大表示]

 例えば図2のようなiframeタグを含んだコードをHTMLに埋め込む。このコードは,twitter.comのページを開いて,「(友達を)フォローする」ボタンの上に「ここをクリック」というボタンを被せるもの。twitter.comのアカウントを持っているユーザーが「ここをクリック」をクリックすると,知らないうちに勝手に攻撃者の友達に登録される。

図2●クリックジャッキングを実現するために埋め込むコードの例
図2●クリックジャッキングを実現するために埋め込むコードの例
[画像のクリックで拡大表示]

 クリックジャッキングの詳細情報公開に関して注目された点の一つがFlashを悪用した攻撃手口である。単に悪質サイトに誘導するだけでなく,クライアント・パソコンを乗っ取ることができるからだ。その手順は単純で,次の3ステップで完了する。
(1)透明なボタンをクリックさせる
(2)Flashのセキュリティ機能をオフにする
(3)Webカメラを乗っ取る