受動的攻撃との組み合わせで深刻に

 話は少し変わるが,受動的攻撃と呼ばれるセキュリティ上の問題がある。攻撃者に狙われるのは多くの場合,サーバーである。この場合,攻撃者が攻撃ツールなどを使って,能動的にサーバーを攻める。

図3●受動的攻撃の概要
写真4●米SecurtyFocus社が提供している脆弱性データベース

 受動的攻撃とは,起点が能動的な攻撃と逆になるものである。つまり,サーバーが攻撃の起点となる。接続してきたクライアントに対して,サーバーが不正なデータを送り込み,クライアントの任意のファイルを読み出したり,クライアント上で不正なコードの実行を狙う(図3[拡大表示])。

 クロスサイト・スクリプティング問題を突いて,この受動的攻撃を仕掛けると深刻な問題を引き起こす危険性がある。スクリプト・コードをクライアントに送り込めるのが,クロスサイト・スクリプティング問題の一つである。であれば,Webブラウザに対して,Webブラウザのスクリプト実行エンジンのセキュリティ・ホールを突くスクリプト・コードも送り込めるはずである。これにより,多くのクライアントをクラッシュさせたり,さらにはクライアントにウイルスやバックドアを仕込む,クライアントに他のサイトを攻撃するためのコードを埋め込むことなどが可能になる。

 このように,クロスサイト・スクリプティング問題はCookie情報を盗まれるだけではない。「私のWebサイトではCookie情報を使っていないし,特に重要な情報も扱っていない。クロスサイト・スクリプティング問題は気にする必要がない」では済まないのである。クロスサイト・スクリプティング問題を放置することは,せっかく来場してくれた閲覧者に対して,あなたのWebサイトが攻撃することになりかねない深刻な問題なのである。

対策すべき2種類のソフト

 クロスサイト・スクリプティング問題は,Webや書籍で数多く紹介されている。ここでは,攻撃例や脆弱なWebアプリケーションのソースコードなどは紹介しない。話を対策に移したいと思う。

 対策するうえで注意点がある。それは,対策すべきソフトウェアが2種類あるということだ。一つは,一般に配布されている有償/無償のパッケージ・ソフトウェアと呼ばれる汎用的なソフトウェア。もう一つは,SI業者によって構築された顧客独自のWebアプリケーションやCGIプログラムである。この二つの特質の異なるソフトウェアに対して対策を行う必要がある。

 パッケージ・ソフトウェアがクロスサイト・スクリプティング問題を抱えているケースは意外と多い。写真4は,セキュリティ情報が集結している米SecurityFocus社のWebサイトで,「cross-site scripting」をキーワードに検索した結果である。いずれもパッケージ・ソフトウェアの「cross-site scripting」についての内容である。この対策方法は二つしかない。ベンダーの提供するパッチを適用するか,または設定変更によって問題を回避することだ。

 自らがプログラミングした,またはSI業者に発注して構築したWebアプリケーションやCGIプログラムの場合は,パッチなどは提供されない。そのプログラムの修正作業は,自らまたは発注先のSI業者が行う。以下では,このケースの対策方法を具体的に説明していこう。

佐名木 智貴 Sanaki Tomoki

筆者はインターナショナル・ネットワーク・セキュリティに勤務。技術本部に所属している。システムのセキュリティ・ホールの検査を専門とし,システム開発のセキュリティ問題に詳しい。