CSSXSS

来年ものすごく流行りそうな手法が公開された。
これは痛い。
Google Desktop Exposed: Exploiting an Internet Explorer Vulnerability to Phish User Information
関連:

I call this attack CSSXSS or Cascading Style Sheets Cross Site Scripting.

うまいこと名前を付けたもんだなぁ……
記事ではGoogle DesktopからHDDの情報を抜けることが問題視されるような書き方になっているが、CSSXSS自体はGDSとは関係がない。
一言で言うと、cssのimport文で任意のWebサイトの情報を抜き出せることを利用した攻撃だ。ログインして利用するWebサイトのHTMLが、ほかのWebサイトで利用できてしまうわけである。
JavaScriptでdocument.styleSheets[0].imports[1].cssTextから、CSSに正規化されていないテキストが取得できてしまう阿呆なブラウザ(SafariGeckoではこのメソッド自体が存在しないのか、nullしか帰ってこない)に対して有効である。まずいことにWin IEでは、取得したHTMLがHTMLとしてパースされてしまい、getElementByIdなどで情報抜き放題となってしまっている。生のテキスト抜けるようじゃ正規表現でいくらでも情報は抜き取れるからHTMLパース自体も問題ではない。ちなみに、同様のメソッドを持つMac IEは正規化されたCSSしか取得できない。セキュアな動作である。
JavaScriptAjaxなどを考えると「切っとけ」じゃすまない機能なので頭痛い問題だ。グループウェアWebメールなどの情報は好き放題に抜かれてしまうことだろう。
この攻撃をまともに食らってしまうWin IEユーザへCSSXSSの攻撃から身を守る手法として提案できるのは「すべてのサービスを利用したらログアウトしてキャッシュは確実に消せ」ということぐらいか。グループウェアなんかだと難しいよな。
ヒマを見てWindwosのIEで実行コードの検証してみようかな。