Web 2.0という言葉で総称される新たなインターネット時代。Webサイトやエンドユーザーに仕掛けられる攻撃もまた,2.0と呼ぶべき進化を遂げようとしている。攻撃者はWeb 2.0の中核技術であるJavaScriptを悪用してブラウザを狙う。第2回目となる今回は,今そこにある危機に迫る。

 Zone-Hの場合,犯人は自己顕示を目的としていたため,被害はページ改ざん程度で済んだ。しかし,犯罪者の狙い次第で危険度はもっと高まる(図3)。

図3●XSSのぜい弱性を突くことで可能になる攻撃
図3●XSSのぜい弱性を突くことで可能になる攻撃
キー入力の盗難や他サイトへの攻撃などユーザーが知らないうちに,背後での攻撃が可能になる。
[画像のクリックで拡大表示]

 例えば銀行や証券会社のWebサイトにXSSの穴があれば,クッキーを盗まれ,不正送金などにつながるかもしれない。盗んだクッキーを使って業務で使用しているWebメールを盗み見られれば,開発や営業の資料などが外部に流出しかねない。「社内業務用のWebサーバーが狙われれば,企業の存亡に関わるような情報を盗まれる可能性がある」(セキュアスカイ・テクノロジーWeb診断技術室長の福森大喜執行役員CTO)。

 さらに最近は,特定の人物を狙いウイルスを送り付けて機密情報を盗み出す「スピア攻撃」が増えている。たとえJavaScriptによって盗まれた情報が重要なものではないとしても,スピア攻撃を仕掛ける下地として使われる可能性がある。

 XSSをさらに発展させた危険な攻撃も,セキュリティ研究者によって報告されている。JavaScriptを使ったブラウザのハイジャックである。ユーザーの動作を遠隔地からリアルタイムにモニターしながら,ブラウザに送り込むスクリプトを変更し,ユーザーのブラウザを思い通りに動かすのだ。

 ハイジャックされたブラウザは同じドメインにアクセスしている限り,どんなページを見ているのか,どんな操作をしているのかを犯罪者に監視され続ける。攻撃の一例としては,JavaScriptによって,Webページのフィールドに打ち込んだ文字列がすべて盗まれる。いくつかのWebサイトでは文字の一文字目に「a」を入れると「apple」や「april」など良く使われる語をメニューで表示するものがある。これと同様に打ち込まれた文字を逐一,第三者のサーバーに送れば,キー・ロガーのように個人情報を盗むことができる。

 さらに,ほかのサイトへの攻撃の踏み台に使われることも考えられる。犯罪者には,ユーザーがブラウジングしている背後でこのコンピュータから他のサイトを攻撃できるのである。典型的なのがDoS攻撃。多数のブラウザからWebページを短時間に何度もリロードすればWebサーバーをダウンさせられてしまう。

Web 2.0はぜい弱性の温床を生む

 もちろん,WebアプリケーションにXSSのぜい弱性がなければ,悪質なスクリプトを埋め込まれる危険性はぐっと下がる。またエンドユーザーは,ブラウザでJavaScriptを実行させなければ危険を回避できる。ただ,事はそう簡単には解決できない。Web 2.0の流れが,JavaScriptを使った攻撃を容易にしているからだ。

 Web 2.0と総称される仕組みには,三つの特徴がある。JavaScriptを使った操作性の高いユーザー・インタフェース,RSSやガジェットのような新しいアプリケーション,そしてブログ/SNSのようなエンドユーザー発信型のコンテンツである。ただこれら三つの特徴は,裏を返すと,どれもJavaScriptの攻撃を仕掛けやすくする要因になる(図4)。

図4●Web 2.0の落とし穴
図4●Web 2.0の落とし穴
誰もが情報を発信できるようになり,ブラウザ以外のソフトウエアでWebコンテンツを見ることができるようになったことで,JavaScript攻撃に対する危険性が高まった。  [画像のクリックで拡大表示]

 まず操作性。既に多くのWebサイトが,見栄えや機能を強化するためにJavaScriptを多用するようになっている。JavaScriptを動かさずにWebページを見ることはほとんど不可能な状態だ。企業においても,様々なアプリケーションがWebアプリケーションに移行しつつある。メールをはじめ,グループウエアやOfficeツール,営業支援ツールなどもブラウザを介して提供され,ユーザーはJavaScriptを動かさざるを得なくなっている。