(4)クロスサイト・スクリプティング

 「クロスサイト・スクリプティング」の手口は,次のようなものだ。一般的なWebブラウザは,信頼性の低いWebページから読み込んだスクリプトを実行しないように設定できる。そのため,ユーザーが閲覧した信頼性の低いWebページに悪意あるスクリプトが埋め込まれていても実行されない。ところが攻撃者は,リダイレクトとHTML タグを組み合わせることで,悪意あるスクリプトを信頼性の高いWeb サイトから配信されたかのように見せかけることができる。そうなると,Web ブラウザの設定にかかわらず, 悪意あるスクリプトが実行されてしまう。

 悪意あるスクリプトが実行されると,ユーザーの情報を抜き出されたり,ローカル・ディスクのデータを改竄(ざん)されたりするといった被害を受ける。

 もう一つ別の手口を挙げよう。まず攻撃者が,電子掲示板サイトなどに,悪意あるスクリプトを埋め込んだ文章を書き込んでおく。ユーザーがその掲示板サイトを信頼性の高いサイトに設定していると,攻撃者の書き込みを閲覧した瞬間,悪意あるスクリプトが実行され,他サイトの情報を抜き出す不正アクセスなどを行う。

 このように,ユーザーのブラウザ上で悪意あるスクリプトを実行させたり, ユーザーのWebブラウザを“ 踏み台”にして他のサイトへの不正アクセスを実行するような手法がクロスサイト・スクリプティングである。

 サーバーの運用者がクロスサイト・スクリプティングに対処するには通常,(1)Webブラウザからの入力内容にあるHTMLタグを受け入れないフィルタを付加する,(2)「HTTP Traceメソッド」をブロックする,(3)データベースから取得したデータに対して特定のHTMLタグの除去処理をする,といったことが必要である。今回の検証実験では,防御チームが(1)と(2)の対処策を講じているかどうかを調べた(図4)。

図4●クロスサイト・スクリプティングに関する検証
図4●クロスサイト・スクリプティングに関する検証
[画像のクリックで拡大表示]

 その結果,ライブドアにおいては,HTTP Traceメソッドを悪用するタイプのクロスサイト・スクリプティングの脆弱性が発見された。これは,すぐにでも対処すべき脆弱性である。

(5)SQL インジェクション

 攻撃者が,Webページの入力フォームを通じて,SQL構文の特性を悪用した情報をサーバーに送ったとする。そのSQL構文がサーバーでそのまま実行されると,データの破壊や改竄,情報漏洩などを引き起こす。この攻撃を「SQLインジェクション」と呼ぶ。

 SQLインジェクションを防ぐには,入力情報に悪意あるSQL構文が含まれていないかどうかをチェックしたり,適切なエスケープ処理(悪意あるSQL構文の無効化)を施したり,入力情報をそのままデータベース・クエリーに投入しないよう前処理を行ったりするなどの必要がある。

 検証実験で,そうした対処策を講じているかどうかを調べたところ,ライブドアでは脆弱性が発見されなかった。しかし油断は禁物である。SQLインジェクションによって甚大な被害を出したセキュリティ事件は,過去に数多く存在する。ソフィア総研でSQLインジェクションに関する脆弱性が見つかったこともあり,SQLデータベースを利用するWebアプリケーション・サービスにおいて必ず対処すべき項目であることを再認識した。

 今回の検証実験では,ライブドアは,セキュリティ・コンサルティングを手がける攻撃チームから「システム全般およびWebを除くネットワーク・サービスにおける脆弱性について,よく対策していた」という評価を受けた。しかしバッファ・オーバーフローやDoS攻撃への対処が不十分なサーバーが比較的多く見つかった。また,いくつかのサーバーではクロスサイト・スクリプティングの脆弱性も発見された。

 またライブドアは防御チームの他の2社と同じく,攻撃チームによる疑似攻撃を全く捕捉できなかった。膨大な台数のサーバーに対する不正アクセスをリアルタイムで検知することは実質的に不可能だが,少なくとも日次でログ・ファイルを参照し,攻撃の痕跡があれば素早く対処策を講じる仕組みが必要だと思う。

 その仕組みの実現には,IDS(侵入検知システム)/ IPS(侵入防御システム)が有力なツールになるはずだ。そこで新たに,別の検証実験を行う計画を進めている。攻撃チーム,防御チームに加えて,セキュリティ機器メーカーやセキュリティ対策ソフトのメーカーなどから成るソリューション・チームを編成し,今回の検証実験の結果を開示。結果を基に,IDS/IPSなどを使ったソリューションを提案するように要請した。そのうえで,ソリューション・チームが提案したIDS/IPSなどを実際に導入し,攻撃チームによる疑似攻撃を再び実施して,実効性を検証する。

 この検証実験も現場スタッフに秘密裏に行うため,「オデッサ作戦」という暗号名で呼んでいる。その結果は,次週に報告する。