【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷


セキュリティ動向チェック
Security&Trustウォッチ(40)

CSSクロスドメインの情報漏えいの脆弱性「CSSXSS」とは

上野宣
2006/6/29


 あるWebページにアクセスしたら、自分のYahoo! JAPAN IDやHatenaのID、mixiで使っている名前などが表示された。何の縁もゆかりもないページにこれらのプライベートな情報がなぜ表示されてしまったのだろうか。

 これは「CSSクロスドメインの情報の漏えいの脆弱性(CVE-2005-4089)」という、Webブラウザがスタイルシート(CSS)を呼び出す機能にある脆弱性を利用した攻撃だったのだ。この脆弱性は通称「CSSXSS(CSS Cross Site Scripting)」とも呼ばれている。

【注】
直接的な脆弱性の悪用を防止するために、手順の解説などで意図的に一部省略している個所があります。

■CSSインポート時にCSS以外のファイルがテキストとして読み込める

 最近のWebページは、文書の構造をHTML形式で記し、フォントや色やレイアウトなどの視覚的な表現をスタイルシートで記述するというHTMLの仕様に従っていることが多い。

 HTMLファイルから外部のスタイルシートを呼び出すためには、「@import」や「addimport」、「link要素」や「xml-stylesheet」など、いくつかのインポートするための手段が用意されている。インポートする対象となるCSSファイルが、HTMLファイルとは異なるほかのドメインにあっても呼び出すことができる。

 CSSXSSと呼ばれる脆弱性の問題点は、本来CSSファイルのみに限定されるべきインポートの対象が、HTMLなどの別の形式のファイルでもテキストとして読み込むことができる点にある。もちろん、他ドメインにあるものでもテキストとして読み込めてしまうのだ。

 この問題の原因はInternet Explorerがファイルの種類を自動判別する際の判断基準にある。読み込む対象となるテキストに「{」という記号が入っていればCSSファイルだと認識してしまうようだ。また、直接「{」という記号でなくても、文字コードに同様のものを含む「」や「」が含まれていても誤認識してしまうことがある。

 そのため、この脆弱性は主にWindows XP(32bit版)上のIEと、それをエンジンに利用しているWebブラウザが対象となる。

■認証後に本人しか見ることができない情報が漏えいする

 CSSXSSの脆弱性によって、CSSと誤認識して外部ファイルをテキストとしてインポートできることで何が問題になるのだろうか。

 CSSが呼び出される仕組みを理解すれば、問題点が分かるだろう。下記は正常にCSSファイルをインポートする例である。

図1 CSSファイルをインポートする正常な例

 ユーザーがWebブラウザのアドレス欄にURLを入力してHTMLファイルをリクエストしたとする。そのHTMLファイルにCSSファイルをインポートする指示があった場合には、Webブラウザが自動的にCSSファイルをリクエストして呼び出す。その後にWebブラウザがHTMLファイルとCSSファイルを解釈して、コンテンツを表示する。

 続いて、CSSXSSの脆弱性を持ったWebブラウザで、攻撃者によってCSSXSSを利用した仕掛けがなされたページをリクエストした際の例を見てみよう。

図2 CSSXSS脆弱性を利用した攻撃の例

 CSSXSSの問題点は、WebブラウザがCSSファイルのつもりでHTMLなどの異なるファイルをテキストとして読み込むところ(図中の2の部分)で発生する。

 例えば、Yahoo! JAPANやHatena、mixiなどはアカウントとパスワードを使ってログインすることで自分以外は閲覧できないWebページにアクセスできる。このような「認証済みである」という情報はCookieなど何らかの形でクライアント側のWebブラウザ自身が保持していることが多い。

 つまり、悪意のあるユーザーが、ターゲットユーザーのWebブラウザを誤作動させて認証が必要なページにアクセスさせるということは、認証済みだという情報を利用できてしまうのだ。それによって、認証後にしか見ることができないページの情報をテキストとしてインポートできてしまうのである。

 このようにして得たテキストはJavaScriptなどを利用することで、必要な情報のみを抽出したり、それをほかのWebサイトへリクエストとして送信したりできる。もし、攻撃者が記録用のWebサイトを用意していたとしたら、重要情報を送信されてしまい、情報漏えいが起こってしまう。

■どのような被害が発生するのか

 冒頭の例は、ログイン中にはユーザー名がページ内に表示されているWebサイトの情報を利用したものである。ここでログイン名ぐらい問題がないだろうと楽観してはならない。

 Webサイトによってはセッションの維持のためにHIDDENタグなどでページ内にセッションIDを埋め込んでいるかもしれない。それによってセッションハイジャックされる可能性もある。また、何かの管理画面などでは認証後にしか閲覧できない個人情報が含まれている可能性もある。

 このCSSXSSの問題はリモートのWebサイトだけでなく、ローカルなデスクトップ上でも起こってしまう。もともとこの脆弱性が報告されたのは、Google Desktopの情報が漏えいするという報告からだったのだ。Google Desktopでは、ローカルのハードディスク内の情報に自由にアクセスできてしまう。つまり、任意のファイルをリモートから取得されてしまうということなのだ。

 このCSSXSSの脆弱性は2006年6月14日に発行された修正パッチを適用することで回避できる。もちろん、Windows Updateを適切に実行していれば自動的に適用されているはずだ。もし、適用していないようならば、すぐにでも実行しておく必要がある。

【Internet Explorer 用の累積的なセキュリティ更新プログラム (916281) (MS06-021)】
http://www.microsoft.com/japan/technet/security/bulletin/ms06-021.mspx

【関連記事】
緊急レベル8件含む12件のセキュリティ修正が公開(Windows Server Insider)

Profile
上野 宣(うえの せん)
1975年京都生まれ。情報セキュリティを世に広げるべく、講演や執筆活動とさまざまな方面で活動中。近著に「今夜わかるメールプロトコル」、「今夜わかるTCP/IP」、「今夜わかるHTTP」(共に翔泳社)がある。

Security&Trust記事一覧

ホワイトペーパーTechTargetジャパン

Security&Trust フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?