水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > XSS大王さらにその後

XSS大王さらにその後

2003年6月24日(火曜日)

XSS大王さらにその後

ITPro ニュース:@niftyの電子掲示板に「クロスサイト・スクリプティングぜい弱性」,緊急メンテナンスを実施 (itpro.nikkeibp.co.jp)」という記事が出ていますね。

気になった点をいくつか。

@niftyの場合、XSSぜい弱性によって以下のような問題が起こる可能性があった。あるクラッカが他の電子会議室へのリンクと見せかけて、“騙しスクリプト”を含むメッセージを書き込む。それを善意のユーザーがクリックすると、@niftyの会員認証ダイアログに見せかけた偽のダイアログが表示され、そのユーザーが打ち込んだIDとパスワードはまんまとクラッカの手に渡ってしまう。この際、セッション自体がSSLで保護されていようがいまいが関係なく、クラッカに通信の乗っ取りを許してしまうのが、この問題のたちが悪いところだ。注意深いユーザーでも、Webブラウザの鍵マークを見て安心してしまうだろう。

うーん、微妙に混同しているような……。べつに「掲示板にスクリプトを書いて捏造フォームに誘導する」必要はなく、「掲示板にスクリプトを書いてセッション Cookie を盗む」こともできましたし、「掲示板に(スクリプトを含まない)リンクを書き込んで捏造フォームに誘導する」こともできました。

という二つの別々の問題があって、これはそれぞれ単独でセキュリティホールとして成立します。それを合わせ技のように解説しているのがちょっと変な感じですね。しかも後者は Webフォーラムの書き込みとは何ら関係ありません。ログインフォーム自体が持っていた脆弱性です。

※細かいですけど、ログインパスワードを求められる画面はダイアログじゃないです……。

同社は10カ月以上にわたって「問題の存在に気付かなかった」(広報室)とのことだが、今年6月19日の深夜に一部のフォーラム管理者から指摘を受けると迅速に事態に対応した。現在は、書き込んだタグを正常に表示できないこと以外、電子掲示板の機能は動作しており、読み書きが可能である。

「問題の存在に気づかなかった」のではなく、「問題の重大性を理解していなかった」というのが正確なところではないかと思量します。根拠など詳しいことはちょっと書けないのですが、オープン直後にこの問題を認識していた人がいるのは確かで、おそらくニフティは報告を受けていたでしょう。ただ、理解はしていなかったのだと思います。

余談ですが、この問題が存在することは、昨年の 10月時点で既に公になっていました。りゅうさん偽偽夜食日記 (rryu.sakura.ne.jp)に、以下のように書かれています。

とりあえずWebフォーラムの情報のメッカは「Web活用フォーラム」らしい。そこをさらっと読むだけでWebフォーラムのシステムの混乱ぶりが見て取れるので、実際はもっと凄いことになっているのだろう。たとえば旧形式の掲示板では「>」を書くには>と書かないといけなかったとか。エスケープしてないのかよっ。XSSバリバリ!?

以上、偽偽夜食日記の部屋 2002年10月 より

では何故今になって「迅速な対応」をしたのかというと、その理由の一つには、「具体的な exploit コードが既に公開されていた」という点があるのでしょう。

※って、他人事のように言っていますが公開したのは他ならぬ私です、はい。ニフティのフォーラム部と関わるのが嫌だったというのが理由ですが、動きの鈍いニフティのお尻を叩く効果もあったようで、最終的には良い結果を招いたと思います。

それから引用が前後しますが、一番気になったのがこの見出し。

注意深いユーザーでも騙される、ただし現在までに実害はなし

「現在までに実害はなし」と、どうして断言できるのかが本当に謎です。私は、とあるメールでこういうことを書きました。

このご発言の背後には、現時点ではまだこの脆弱性が「悪意のある方に利用」 されていないという暗黙の了解があるように思います。

しかし、ご理解いただいているとは思いますが、この脆弱性を利用すれば、攻撃者は「ひそかに」ユーザの個人情報や ID、パスワードを収集することができます。攻撃者は当然、ユーザが被害を受けていることに気づかないように気を配るでしょう。ID やパスワードの奪取に成功した場合、密かにログインし、個人情報を収集してすぐにログアウトすれば、ほとんどのユーザは被害には気づかないはずです。被害報告がないことを理由に、被害が発生していないと判断することはできません。

そういうことで、簡単に「被害がない」と断言することはできないはずなのです。

今までの全ログを綿密に調査すればクロスサイトスクリプティング脆弱性を利用したリクエストがあったかなかったかは調査できるかもしれません。しかし、本当にそれを行ったのなら、「被害がない」という結論は出ないはずなのです。なぜなら、私は脆弱性を利用したリクエストを実際に行って exploit コードが動作することを確認しているわけで、過去に「捏造フォーム」が作られた事実は確実に存在しています。それがテストのためのものなのか、実際に ID とパスワードが盗まれたのかは、その送信先のサーバのログを見ない限り分からないはずです。

ちなみに、私が公開していた exploit は http://altba.com に GET メソッドでデータを送信するものでした。altba.com には、その捏造フォームからデータが送られてきたログが 4件残っています。そのうち 2件は私のテストなので問題ありませんが、あとの 2件は私のテストではないので、複数のサーバから複数回の捏造フォーム作成が行われていたことは間違いありません。

ニフティ側のログには、「http://altba.com に GET でデータを送る偽フォームが作られた」痕跡が少なくとも 4回以上はあるはずです。そしてニフティは、altba.com にユーザ ID やパスワードが漏れたかどうかについて問い合わせてきていません (私の知る限りでは)。記事が「実害なし」と言っているのは、単にニフティが「実害なし」と主張しているからに過ぎず、その主張にも裏付けはないと考えた方が良いでしょう。

それで、この記事の最大の問題点なのですが……それは、「メンテナンスを実施」してとりあえず危機は回避されたかのように読めてしまうこと。実は、このセキュリティ問題はまだ解決していないのですよね。まあ、それを悟れというのも無理な話なので、ある意味しようがないのですが。

関連する話題: Web / セキュリティ / ニフティ / XSS大王

最近の日記

関わった本など