Web 2.0という言葉で総称される新たなインターネット時代。Webサイトやエンドユーザーに仕掛けられる攻撃もまた,2.0と呼ぶべき進化を遂げようとしている。攻撃者はWeb 2.0の中核技術であるJavaScriptを悪用してブラウザを狙う。従来の脅威対策は全く通用しない。今回はユーザーが今すぐ実践可能な対策を解説する。

 XSS対策は,Webサイトとクライアント(ブラウザ)の両方からのアプローチが考えられる(図5)。Webサイトに潜むXSSのぜい弱性を根絶することと,ブラウザの設定変更や機能拡張によってエンドユーザーが自衛手段を講じることである。

図5●クロスサイト・スクリプティング(XSS)のぜい弱性を突く攻撃を防ぐ方法
図5●クロスサイト・スクリプティング(XSS)のぜい弱性を突く攻撃を防ぐ方法
[画像のクリックで拡大表示]

 そもそもWebサーバー側にXSSのぜい弱性がなければ,攻撃されるリスクはぐっと小さくなり,クライアント側の対策は必要最低限で済むはず。にもかかわらず専門家はクライアント側の対策を積極的に勧める。サイト側の対策にはどうしても漏れが生じがちなためである。

 「全検査中の7~8割のサイトにXSSのぜい弱性が見つかる」(ラック研究開発本部コンピュータセキュリティ研究所の岩井博樹所長),「2005年度は6割近くのシステムにXSSのぜい弱性を発見」(NRIセキュアテクノロジーズ コンサルティング事業部の観堂剛太郎セキュリティコンサルタント)という現状を聞けば,自衛の必要性は明らかだろう。

現実解はJavaScriptのオン/オフ

 クライアント側の理想的な対策は,JavaScriptを実行しないことと,クッキーをはじめとする個人情報をパソコンに記録しないことである。「Webメールなどに含まれている怪しいURLをクリックしない」「JavaScriptを無効にする」「クッキーを無効にする」という具合だ。

 WebメールなどでURLにスクリプトを埋め込まれている場合は,これをクリックしなければスクリプトを実行せずに済む。ブログなどのページにスクリプトを埋め込まれている場合の対策にはならないが,一部の危険は回避できる。ブラウザの設定でJavaScriptを無効にしておけば,スクリプトを埋め込まれたURLをクリックしても悪質なコードは稼働しない。クッキーを無効にしておけば,クッキーを悪用して自分になりすまされる危険は回避できる。

 ただ,これらの対策の実践は現実的ではない。いまやJavaScriptは,社内Webを含むほとんどのWebサイトで利用されている。Web 2.0化が進むWebサイトにおいては欠かせない機能と言えるだろう。クッキーも同様。完全に無効にすると,利便性が大きく低下してしまう。

 といって,怪しいURLをクリックしないという対策は,どちらかというと心構えに近い。ユーザーの意識が高くなければ徹底は難しい。しかもブログなど日ごろ使い慣れたサイトにスクリプトを埋め込まれると,強制的にスクリプトを送られてしまうため,この対策は通用しない。

 こうした状況下で,エンドユーザーにとって現実解と言える対策が二つある。一つは,ブラウザの設定を工夫したり,機能を活用したりして,必要に応じて手軽にJavaScript実行許可のオン/オフを切り替えられるようにすること。もう一つは,クッキーを管理することだ。

IEは決めたルールで防御する

 JavaScriptのオン/オフは,ブラウザの設定で変更できる。ただ,その方法はブラウザによってまちまち。実現できることにも違いがある。以下では,Internet Explorer(IE) 7,Firefox 2,Opera 9.1という代表的なブラウザについて,設定方法を見てみよう(以下,★を付けたブラウザ設定については,日経コミュニケーションWebサイトにて,詳細な手順を紹介している)。

 ★IEの場合は,「ゾーン」の設定を細かく変更する(図6)。「ゾーン」は,「インターネット」「ローカルイントラネット」「信頼済みサイト」「制限付きサイト」というように,アクセスするWebサイトのセキュリティ・レベルを分類し,あらかじめ決めておいたルールを適用する機能。メニューから「ツール」→「インターネットオプション」と選び,「セキュリティ」タブの中で設定を変更できる。「インターネット」や「制限付きサイト」は不審なサイトが存在することを想定して,高いセキュリティ・レベルに設定されている。

図6●Internet Explorerは「ゾーン」を使いこなして対策を
図6●Internet Explorerは「ゾーン」を使いこなして対策を
「インターネット」ゾーンの設定はスクリプトを「無効にする」に変更し,「信頼済みサイト」ゾーンの設定でスクリプトを「有効にする」のが無難。そのうえで自分がアクセスしても問題ないと判断したサイトを信頼済みサイトに追加する。図はIE7の場合。  [画像のクリックで拡大表示]

 通常,インターネット上のWebサイトを閲覧する際に適用されるのは「インターネット」のゾーン。まず,このゾーンのルール設定で,JavaScriptを無効にする。そして,安全と判断し,かつJavaScriptを動かしたいサイトについてだけ,JavaScriptを有効に設定した「信頼済みサイト」にURLを登録していく。この仕組みを使えば,怪しいサイトでスクリプトが動き出すことはない。

 注意したいのは,「信頼済みサイト」のセキュリティ・レベルがデフォルトでは「インターネット」よりも低く設定されていること。安全性を確保するには,必要以上にセキュリティ・レベルを下げない方が無難。IE6の場合は「信頼済みサイト」のセキュリティ・レベルをデフォルトの「低」から「中」に,IE7の場合は「中」から「中高」に変更しておく方がよい。

Firefox,Operaはカスタマイズで

 ゾーンの設定を操作するIEの対策は,ドメイン単位での管理になるため,1つのサイトで複数のJavaScriptが動く場合,すべて有効か,すべて無効という選択肢しかない。また,オン/オフを切り替えるには,いちいちメニューから設定をたどっていかなければならない。

 これに対してFirefoxやOperaは自由度が高い。★Firefoxの場合,拡張機能として用意されている「NoScript」を追加する(図7)。デフォルトではすべてのJavaScriptが無効になり,サイトにアクセスした際にステータスバーの右端に表示される簡易メニューでJavaScriptのオン/オフを切り替えられる。サイトごとに,全面的に「許可」するか,「一時的に許可」するかの選択が可能だ。

図7●Firefoxの拡張機能「NoScript」を使用する
図7●Firefoxの拡張機能「NoScript」を使用する
FirefoxはJava Scriptの読み込みを細かく管理できる「NoScript」を拡張機能として追加できる。デフォルト設定ではすべてのJavaScriptが禁止,問題ないと判断したスクリプトのみ許可をしていけば悪意あるJavaScriptの実行を防げる。  [画像のクリックで拡大表示]

 ★Operaの場合は,「クイック設定」を活用すると便利である(図8)。まず,デフォルトの設定でJavaScriptを無効に変更。サイトにアクセスし,JavaScriptを利用したいときだけ「クイック設定」からJavaScriptを有効にする。設定変更の手間を省くために,ツールバーをカスタマイズすることもできる。「表示」→「ツールバー」→「カスタマイズ」の「ボタン」タブにある機能一覧から,「JavaScriptを有効にする」などボタンとして追加したい機能を選択。「メインバー」「アドレスバー」「ステータスバー」などにドラッグ・アンド・ドロップするだけである。

図8●Operaは「詳細設定」でオフ,適宜「クイック設定」でオンに
図8●Operaは「詳細設定」でオフ,適宜「クイック設定」でオンに
「設定」の「詳細設定」にある「コンテンツ」で「JavaScriptを有効にする」のチェックをはずす。JavaScriptが必要なサイトで,かつ自分が信用できると判断したサイトの場合にのみ,「クイック設定」から「JavaScriptを有効にする」をオンにするとよい。  [画像のクリックで拡大表示]

 Webサイトにアクセスするたびにスクリプトのオン/オフを切り替えるのが面倒なら,2種類のブラウザを使い分ける手もある。例えば,IEではスクリプトの実行を禁止,Firefoxでは許可しておき,アクセス先によってどちらを使うか選べばよい。

クッキー泥棒対策はこまめなログオフ

 クッキーの管理についてはどうか。JavaScriptと同様に,ブラウザのセキュリティ設定を変えることでクッキーを無効化することはできる。ただ,ユーザーの意識次第でもっと簡単な対策がある。Webサイトからのログオフや,ブラウザのシャットダウンである。

 インターネット・バンキングやECサイトでは,ユーザーがサイトにログインしている間だけ有効な,セッション・クッキーを使う場合が多い。セッション・クッキーは有効期限が設定されておらず,ユーザーがサイトからログオフしたり,ブラウザをシャットダウンすると自動的に消去される。こうした作業を怠らなければ,クッキーの盗難は困難になる。

 ただし,中にはログオフできないサイトもある。「Amazon.co.jpのようなログオフできないサイトでは強制的にクッキーを削除する必要がある」(セキュアスカイ・テクノロジー Web診断技術室長の福森大喜執行役員CTO)。セッション・クッキーと違って一定期間ハード・ディスクに記録されるクッキーを発行するWebアプリケーションは少なくない。この点を勘案すると,定期的にクッキーを手動で削除する癖をつけておいたほうが無難だろう。