2003-01-18 18:54:29 Netscape Mailのゴミ箱は空にしても消えない
2003-01-18 21:12:02 IEのXSSバグで任意サイトのCookieが漏洩
2003-01-19 01:59:16 各社のJava VMに砂場の枠が外れる脆弱性
2003-01-19 03:55:16 Cookieをオフにするなら「UserDataの常設」もオフに
IEネタの採用は早いなあ(^_^;)。13分。はや。たまたまなんだろうけどね。Netscapeネタは小ネタでしたか。
帰ってきてみると、採用されていたIEネタのストーリーがずいぶんと荒れている。脆弱性ネタをここにタレこむのは一昨年の暮れから始めた。一時期はBUGTRAQをウォッチするとともにできるだけ早くタレこむようにしていた。当初からずっと同じ方針で、BUGTRAQで既に公開されてしまった攻撃方法を日本語で伝えるようにしてきた。日本の技術者には言語の壁があって、この種の情報に疎くなっていると以前から思っていたからだ。以前はあんな反応はなかったのだけどなあ。
のだという。
つまり、ユーザ名とパスワードを含むURLが漏れたのは、ログインに失敗したときなのだろうというわけだ。
この状況について同氏は、ユーザが次のようにしている場合には問題となっているだろうとしている。
ほとんど滅多にそんな場合はないという感じだが、同氏が挙げなかった次のシナリオも考えられるのではないだろうか。
こちらは、それなりに該当者がいそうな気がするので、注意が必要だと思う。
同氏は、slashcodeを次のように変更すると述べている。
今現在、slashdot.jpで試してみると、ログインに失敗したときもリダイレクトされるようになっているようだ。既に対策されたバージョンに置き換えられているのだろうか。
まずは、スラッシュドットにログインした状態でパスワードの変更の画面に行ってみてほしい。「jbeef (1278)のパスワード変更」のタイトルの下に以下のメッセージがあるはずだ。
このリンク をクリックすると,自動的にログインすることができます.クリックした先のページをブックマークしてください.全く安全ではないですが,とても便利です.
「リンク」の部分のリンク先は以下のようなURLとなっているはずだ。
http://srad.jp/index.pl?op=userlogin&upasswd=05a671c66aefea124cc08b76ea6d30bb&unickname=jbeef
「upasswd=」の右側はパスワードのハッシュ値(MD5)となっている。上の例はデモとしてパスワードを仮に「testtest」とした場合の値で、もちろん今は別のパスワードにしている。 このURLには、ユーザ名とパスワード(のハッシュ値)が両方含まれているので、このURLにアクセスするだけでログインができる。これをブックマークとして登録しておけば、メニューからそれを選ぶだけでログインできるので「とても便利です」というわけだ。
説明には「クリックした先のページをブックマークして」とあるが、実際にやってみると、クリックした先のページは、
http://srad.jp/index.pl
となることが観察されることと思う。これは、ログイン手続きが完了した後に、このURLにリダイレクト(自動ジャンプ)しているためだ。「クリックした先のページをブックマークして」(本家の原文では「You can automatically log in by clicking This Link and Bookmarking the resulting page」)という指示に単純に従うと、
http://srad.jp/index.pl
をブックマーク登録することになるので、この説明は正しくない。 正しくない説明となっているのはなぜだろうか。考えられるのは、古いバージョンのslashcodeではリダイレクトされなかった可能性だ。説明文だけ元のまま残ったものなのかもしれない。
何が問題かというと、表示中のページのURLは容易に第三者に漏れてしまうものであり、URLにパスワードやユーザ名を含めることは危険だという点である。具体的には、上の方法でログインした直後に、トップページにあるストーリーのリンクをクリックして、リンク先にジャンプすると、リンク先のサーバに対して、リンク元のURL、すわなち、
http://srad.jp/index.pl?op=userlogin&upasswd=...
が、リンク先のサーバに送信されてしまう。これは、Webブラウザの機能であり、アクセスのリクエストデータの中に
Referer: http://srad.jp/index.pl?op=userlogin&upasswd=...
という形式で挿入されて送信される。これは、サーバ側では、(サーバがApacheの場合)「referer_log」ないし「access_log」に記録されるようになっていることが多い。
先に述べたように、ログイン後のURLは
http://srad.jp/index.pl
にリダイレクトされるのだから、Refererでユーザ名やパスワードが漏れることはないはずである。ところが、私のサーバのアクセスログを調べてみたところ、昨年11月のログに、1件だけだが
http://srad.jp/index.pl?op=userlogin&upasswd=...
の形式で、あるユーザのログイン用URLが記録されているのが見つかった。なぜ漏れてきたのだろうか?また、なぜ1件だけと少ないのか?
この疑問には、18日のJamie McCarthy氏の報告で、ある程度納得することができる。これについては次のエントリで。
2002-09-15 09:12:50 Slashcodeが一部ユーザのパスワードを漏らす (security,slashdot) (審査待ち)
1週間前のタレコミが審査待ちのままなので、ここに書いてみることにする。これだけ時間が経ってしまうと、これから採用するのもやりにくくなっていくのではないか。すぐに採用できないのには事情があったことだろうと思う。事実確認をしたり、開発元に状況を確認する時間が必要だったのかもしれない。 ただ、当時のパスワード(のMD5値)が漏れた人がいるのは事実で、このことが知らされれば当事者には対策をとるチャンスが与えられる。
18日にはJamie McCarthy氏からの詳しい分析結果がBUGTRAQに追加報告された。当初のタレコミの内容には追記すべき点が生まれたので、ますます採用されにくくなったように思う。以下にまず15日に書いたタレコミ文を掲載し、次のエントリで18日のJamie McCarthy氏の報告文について紹介する。
9月15日にタレ込んだ文章:
スラッシュドットのユーザページにある「パスワード」というリンクの先には、
このリンクをクリックすると,自動的にログインすることができます.クリックした先のページをブックマークしてください.全く安全ではないですが,とても便利です.
というリンクがある。 そのURLにはユーザ名とパスワード(のMD5値)が含まれているので、アクセスするだけでログインできるわけだが、このURLがRefererによって漏れているという指摘が11日にBUGTRAQに投稿された。これに対して、slashcodeのメンテナの一人であるJamie McCarthy氏は、「『This is totally insecure, but very convenient(全く安全ではないですが,とても便利です)』ときちんと警告している」と弁明した。 すると報告者は、「なぜ安全でないのかが説明されていない。多くの人達が、ブックマークにパスワードを持つことが問題とされているのだと思い込んでいるかもしれず、これを外部に送出していることに気付いていない」 と指摘した。
私のサーバのアクセスログを「grep slashdot | grep passwd」してみたところ、ユーザ名とパスワードを含むRefererが1件見つかった。私のサーバへのリンクのあるタレコミが掲載されたトップページで、その人物がそのリンクを辿ったときに記録されたものだと思われる。
現在では、ブックマークのURLにアクセスすると自動的に問題のないURLにリダイレクトされるようになっており、もう秘密のURLが漏れることはないようだ。これは対策されたということなのだろうか。 しかし、既に漏れてしまったパスワードは取り返しがつかない。過去にこのブックマーク機能を使用していた方はパスワードを変更した方がよいだろう。
身近な人の偉大さは半減する -- あるアレゲ人