IDやHatenaのID、mixiで使っている名前などが表示された。何の縁もゆかりもないページにこれらのプライベートな情報がなぜ表示されてしまったのだろうか。これは「CSSクロスドメインの情報の漏えいの脆弱性(CVE-2005-4089)」という、Webブラウザがスタイルシート(CSS)を呼び出す機能にある脆弱性を利用した攻撃だったのだ。Scripting)」とも呼ばれている。直接的な脆弱性の悪用を防止するために、手順の解説などで意図的に一部省略している個所があります。CSSインポート時にCSS以外のファイルがテキストとして読み込める最近のWebページは、文書の構造をHTML形式で記し、フォントや色やレイアウトなどの視覚的な表現をスタイルシートで記述するというHTMLの仕様に従っていることが多い。HTMLファイルから外部のスタイルシートを呼び出すためには、「@import」や「addimport」、「link要素」や「xml-stylesheet」など、いくつかのインポートするための手段が用意されている。インポートする対象となるCSSファイルが、HTMLファイルとは異なるほかのドメインにあっても呼び出すことができる。CSSXSSと呼ばれる脆弱性の問題点は、本来CSSファイルのみに限定されるべきインポートの対象が、HTMLなどの別の形式のファイルでもテキストとして読み込むことができる点にある。他ドメインにあるものでもテキストとして読み込めてしまうのだ。Explorerがファイルの種類を自動判別する際の判断基準にある。読み込む対象となるテキストに「{」という記号が入っていればCSSファイルだと認識してしまうようだ。「{」という記号でなくても、文字コードに同様のものを含む「ボ」や「マ」が含まれていても誤認識してしまうことがある。XP(32bit版)上のIEと、それをエンジンに利用しているWebブラウザが対象となる。認証後に本人しか見ることができない情報が漏えいするCSSXSSの脆弱性によって、CSSと誤認識して外部ファイルをテキストとしてインポートできることで何が問題になるのだろうか。CSSが呼び出される仕組みを理解すれば、問題点が分かるだろう。下記は正常にCSSファイルをインポートする例である。CSSファイルをインポートする正常な例ユーザーがWebブラウザのアドレス欄にURLを入力してHTMLファイルをリクエストしたとする。そのHTMLファイルにCSSファイルをインポートする指示があった場合には、Webブラウザが自動的にCSSファイルをリクエストして呼び出す。その後にWebブラウザがHTMLファイルとCSSファイルを解釈して、コンテンツを表示する。続いて、CSSXSSの脆弱性を持ったWebブラウザで、攻撃者によってCSSXSSを利用した仕掛けがなされたページをリクエストした際の例を見てみよう。CSSXSS脆弱性を利用した攻撃の例CSSXSSの問題点は、WebブラウザがCSSファイルのつもりでHTMLなどの異なるファイルをテキストとして読み込むところ(図中の2の部分)で発生する。JAPANやHatena、mixiなどはアカウントとパスワードを使ってログインすることで自分以外は閲覧できないWebページにアクセスできる。このような「認証済みである」という情報はCookieなど何らかの形でクライアント側のWebブラウザ自身が保持していることが多い。悪意のあるユーザーが、ターゲットユーザーのWebブラウザを誤作動させて認証が必要なページにアクセスさせるということは、認証済みだという情報を利用できてしまうのだ。それによって、認証後にしか見ることができないページの情報をテキストとしてインポートできてしまうのである。このようにして得たテキストはJavaScriptなどを利用することで、必要な情報のみを抽出したり、それをほかのWebサイトへリクエストとして送信したりできる。攻撃者が記録用のWebサイトを用意していたとしたら、重要情報を送信されてしまい、情報漏えいが起こってしまう。どのような被害が発生するのか冒頭の例は、ログイン中にはユーザー名がページ内に表示されているWebサイトの情報を利用したものである。ここでログイン名ぐらい問題がないだろうと楽観してはならない。Webサイトによってはセッションの維持のためにHIDDENタグなどでページ内にセッションIDを埋め込んでいるかもしれない。それによってセッションハイジャックされる可能性もある。何かの管理画面などでは認証後にしか閲覧できない個人情報が含まれている可能性もある。このCSSXSSの問題はリモートのWebサイトだけでなく、ローカルなデスクトップ上でも起こってしまう。Desktopの情報が漏えいするという報告からだったのだ。Desktopでは、ローカルのハードディスク内の情報に自由にアクセスできてしまう。任意のファイルをリモートから取得されてしまうということなのだ。このCSSXSSの脆弱性は2006年6月14日に発行された修正パッチを適用することで回避できる。Updateを適切に実行していれば自動的に適用されているはずだ。適用していないようならば、すぐにでも実行しておく必要がある。せん)1975年京都生まれ。情報セキュリティを世に広げるべく、講演や執筆活動とさまざまな方面で活動中。近著に「今夜わかるメールプロトコル」、「今夜わかるTCP/IP」、「今夜わかるHTTP」(共に翔泳社)がある。