MSIE DHTML Edit Control Cross Site Scripting Vulnerability(その3)

誤記訂正

XSS脆弱性の説明上で重要な部分でリンク切れがあったため訂正いたしました。申し訳ありませんでした。

鍵アイコンについて

12月上旬にポップアップウィンドウの乗っ取りが取り沙汰されていました。そのころの記事を見ましょう。ITmedia エンタープライズ:主要ブラウザの内蔵機能を悪用するフィッシングの手口が明らかにから引用してみます。

Microsoftは、Windows XP Service Pack 2(SP2)をインストールしたユーザーのシステムにはいくつかのフィッシング対策ツールが備わっていることを強調した。また、ログイン用のIDやパスワード、あるいは個人情報などを聞いてくるウインドウでは、すべて情報を暗号化してやり取りしており、そのことを示すカギのアイコンがウィンドウ下端のステータスバーに表示されるはずだと、Microsoftは声明文のなかで述べている。

フィッシング詐欺の中には、ブラウザウィンドウの下端に偽のステータスバーと偽のアイコンを表示するものも出てきている。Windows XP SP2のInternet Explorerでは常に本物のステータスバーを表示することから、ユーザーはそのアイコンが本物かどうかを見分けることができる」

SSLサーバ証明書は閲覧・使用しているサイトが実在する個人・企業・団体等によって運営されている事を認証し、その存在を保証する為に重要です。各利用者が必ず鍵アイコンをダブルクリックするなどして利用都度、毎回確認を取れれば確かに安全面で有効と思います。

しかし、ブラウザにXSS脆弱性があれば、せっかくのSSLサーバ証明書も、却って悪意ある者の身元を、正当なサーバ証明書に隠してしまう結果になります。上の引用記事での、Microsoftから12月上旬に声明が出された、鍵アイコンによる確認方法は12月中旬のブラウザのXSS脆弱性によって無効になってしまっています。しかしながら一般の利用者にとってこれほど理解に苦しむ点はないかもしれません。ひょっとすると鍵アイコンでSSLサーバ証明書を確認して大丈夫、安心だと思った利用者が、実はXSS脆弱性によるニセログイン画面を通じてセンシティブな情報を入力してしまうかもしれません。ブラウザのXSS脆弱性は危険極まりないことなのです。サーバの脆弱性ならば少数の技術者がパッチを与えるなどの対処をすれば良いでしょうけれど、ブラウザの安全性を保持・リカバリーできる者は多数の一般の人間、非技術者なのです。

SecuniaによるTEST結果を見てみる

SecuniaによるTEST結果の画像を用意してみました。TEST直後にステータスバーから鍵アイコンをダブルクリックしサーバ証明書を見たものです。(今回はWin98)

ブラウザのXSS脆弱性を突いて、httpsを使ったpaypalのトップページのコンテンツ内容が、Secuniaが用意したコンテンツに書きかえられています。URLアドレスバー、ページのプロパティーのURLアドレス表示、サーバ証明書の内容、の3点について、およびにページの内容について以下にまとめてみます。

  • URLアドレスバー:正しい
  • ページのコンテンツ内容:ブラウザのXSS脆弱性を突破口にしてSecuniaにより、偽装されている。
  • ページのプロパティーのURLアドレス:正しい
  • ステータスバーの鍵アイコンから得られるサーバ証明書の内容:正しい

今回のSecuniaのテストは単純なアドレスバー偽装ではありません。むしろアドレスバーの偽装などなされていないことにご注意ください。また、SSLサーバ証明書の偽装もなされていませんしページのプロパティーのアドレスを見ても偽装されていないことがわかります。この場合、アドレスはまっとうアなものですので、ドメインPayPal、ですから、PayPalの為のcookieなどへの悪意ある操作もしたい放題であるという怖さです。

単純なアドレスバー偽装とは異なり、SSLサーバ証明書を信用してもなお、ページ内容が信用できない、という点がXSS脆弱性の怖いところでしょうか。一旦このような画面を見てしまった後では、ユーザは今見ている画面が悪意を含むものであるかどうかの判定手段を持ち得ません。その上、任意のサイトにこの手段が悪用されえますので、とても怖い事態なのです。サーバなどに侵入されるタイプの脆弱性は大きく取り上げられますが、ブラウザのXSS脆弱性が重視されないこと、ちょっと心許なく思っています。

報道における誤解を与える表現について

IT Pro ニュースの勝村幸博氏は、いつも素晴らしい記事を書いています。同種の記事を他者が書いていても、比べればいつも勝村氏が一番正確でツボをついています。いつも参考にさせて頂き、勉強させて頂いている次第です。しかし、今回ばかりは、ちょっとあいまいな点を残してしまいました。

以下の記事を参照して下さい。

記事中に上写真は,Secuniaが用意するデモ・ページにアクセスした際の表示結果(拡大表示)。アドレス・バーには米CitibankのURLが表示されているが,表示されているのはSecuniaのサイトに置かれたコンテンツである。この方法は,オンライン詐欺「フィッシング」などに悪用可能。 とあります。この拡大表示というところに拡大画像へのリンクがあります。その画像は以下の通りです。

拡大表示文中にこのページの「プロパティ」情報も偽装されていると記述されています。しかし、いったいどこが偽装されているのでしょう?正常な場合と比べての差異はプロパティーにおけるページタイトル、「Secunia - Internet Explorer Cross Site Scripting Demonstration」のみです。そしてこれは、SecuniaがXSS脆弱性で混入させたページコンテンツのタイトル要素なのです。Secuniaは善意をもってわざとTESTであることを明示しでいます。悪意ある者は恐らく正当なものと同じものにすることでしょう。では、そのほかに偽装した部分はあるのでしょうか?ありません。このプロパティーは正しく表示されていますし、XSS脆弱性で変更可能な部分は先のページタイトルだけです。ですので、IT Pro ニュースが言うところのこのページの「プロパティ」情報も偽装されているという表現は、不正確でありもうちょっと工夫する必要があります。

また、記事中に、SSLサーバ証明書の件も触れられていなかったので残念です。

さりとて、他社の報道で良い記事があったかと言えばそうでもありません。やはり、勝村氏のIT Pro ニュースの記事が一番素晴らしかったことには間違いがないのです。

しつこいようですがもう一度書いておきます。単なるアドレスバー偽装ではありません。何でも出来るXSS脆弱性なのです。

  • URLアドレスバー:正しい
  • ページのコンテンツ内容:ブラウザのXSS脆弱性を突破口にしてSecuniaにより、偽装されている。
  • ページのプロパティーのURLアドレス:正しい
  • ステータスバーの鍵アイコンから得られるサーバ証明書の内容:正しい

SSLサーバ証明書でも見ぬく事ができない、コンテンツ内容のみの差し替えと思ってよいのです。Microsoftの声明における「フィッシング詐欺の中には、ブラウザウィンドウの下端に偽のステータスバーと偽のアイコンを表示するものも出てきている。Windows XP SP2のInternet Explorerでは常に本物のステータスバーを表示することから、ユーザーはそのアイコンが本物かどうかを見分けることができる」ということは確かにその通りです。ですが、その時にページコンテンツが悪意あるスクリプトに侵されているかどうかまでは保証されません。特にブラウザにXSS脆弱性があるときには・・・

さて、参考までに海外でのニュース記事をあげておきます。きちんと書かれていると思います。