再掲:SafariにCookieが漏洩する脆弱性
追記:2003.12.08 11:00
以下の脆弱性は、Security Update 2003-12-05 を適用することで修正されます。よって以下の情報は既に古いものと考えて下さい。
なお、詳細に関しては当日記の『Security Update 2003-12-05』をご覧下さい。
Apple Safari 1.1 (v100) (bugtraq)で報告されている様に、SafariにCookieが漏洩する脆弱性が見付かっています。
また、下記コメント欄にある様に、id:DayTripperさん、通りすがりさん、私の検証により、Mac OS X 10.3 に同梱されてる Safari 1.1 (v100) だけでなく、Mac OS X 10.2.8上の Safari 1.0 (v85.5) にも同様の脆弱性があることが解っています。
追記:2003.11.20 17:20
Security Update 2003-11-19がリリースされておりますが、下記コメント欄でのid:DayTripperさんによる報告(Safari 1.1 (v100.1))、私の手元での検証(Safari 1.0 (v85.6))、/.J Macへのtargzさんのコメント(バージョン不明)、2chのSafariスレへの投稿>>998(バージョン不明)などを考えるに Security Update 2003-11-19ではこの脆弱性は修正されていません。 引き続き下記のような対策が必要でしょう。
なお、手元ではMac OS X 10.2.8+Security Update 2003-11-19+Safari 1.0 (v85.6) でヘチマコンピュータさんのCookieMonsterFix 1.0.1が正常に稼動していることを確認済みです。
id:DayTripper:20031120を見る限り、Mac OS X 10.3.1+Security Update 2003-11-19+Safari 1.1 (v100.1) でも正常に稼動しているようですね。
追記:2003.11.20 16:00
Mac OS X 10.2.6上のSafari 1.0 (v85) も同様に脆弱であることが解りました。また、下記ヘチマコンピュータさんのCookieMonsterFix 1.0.1がMac OS 10.2.6+Safari 1.0 (v85) で正常に動作する事も確認できました。ただし、10.2.8アップデートにより修正されている脆弱性が10.2.6にはありますので、10.2.6を使用し続けるのではなく10.2.8へアップデートの上で下記の対策を施す様にしてください。なお、10.2.8アップデートを適用する事でSafariのバージョンは 1.0 (v85.5) に上がります。
Safariを使用する場合には十分にご注意下さい。
なお対策としては、
- ヘチマコンピュータ さんによる、CookieMonsterFix を利用する。
(私の手元では未検証です)検証しましたがMac OS X 10.2.8では動作しないようです。
CookieMonsterFix 1.0.1によりMac OS X 10.2.8+Safari 1.0 (v85.5) で正常に動作する事を確認しました。 - 他のwebブラウザを利用する。
- Safariを使うのであれば、Cookieの利用を最小限にとどめ利用する際には厳重に管理する。
の3点が挙げられるかと思います。
1. に関しては、ヘチマコンピュータさんの該当ページを良く読んだ上でご利用下さい。
3. に関しては、SecurIT - 産業技術総合研究所 セキュアプログラミング研究チーム による
- 『SecurIT-Advisory 2001-001 : クロスサイトスクリプティング脆弱性蔓延の現状と解決策 − 多数の電子商取引サイトに個人情報漏洩等の危険性 −』の「IV-1. 安全なブラウザの使い方」
- 『SecurIT-Advisory 2002-001 : 秘密情報を含まないCOOKIEに頼ったアクセス制御方式の脆弱性 − 偽COOKIE送信による任意ユーザへの成りすましの問題 − 』の「IV. ユーザの自衛手段」
が参考になるかと思います。
ただし、Safariでは「IV-2. 発行されるCookieを確認するためのブラウザの設定」で説明されているような“発行されるcookieを受け入れる前に確認する方法”は有りませんし、「IV-3. 既に受け入れ済みのcookieの内容を確認する方法」でのURL欄に「javascript:document.cookie;」と入力する方法も利用できません。
よって、上記「IV-1. 安全なブラウザの使い方」にあるように、
セッション限りもしくは 十分に短期間となっている場合には
サービスにログイン中は、決して他のサイトを見に行かない
サービスを利用し終えたら、一旦ブラウザを終了させる
Cookieの有効期限がセッション限りでない場合(永久だったり、数日間といっ た場合)には
そのサイトの利用を終える都 度、Cookieを削除する
をSafariで実現するには、
- 通常は[Safari]メニュー>[環境設定...]>[セキュリティ]の項で[受け入れない]を選択しておき、どうしてもCookieを利用しなければならない場合だけ[訪問したページのサーバからのみ受け入れる]を利用する。可能な限り[常に受け入れる]は選択しない。
- Cookieが有効期限がセッション限りか短期間の場合は、上述の通り。もしくはサービスの利用を終えたら[Safari]メニュー>[Safari をリセット...] を実行する。
- Cookieの有効期限が長期間の場合には、以下2つのどちらかを行います。
の様に実行します。
現時点では、前述の1. のヘチマコンピュータさんによるCookieMonsterFixを利用するか、Safari以外のwebブラウザを利用するのが簡便で確実な対処かと思われます。
追記:2003.11.20 18:50
3. で書いたようなCookieの管理をせずにいて良いと言いたい訳ではありませんが、下記のヘチマコンピュータさんによるCookieMonsterFixのページの文章、及びここの日記の 『再掲:SafariにCookieが漏洩する脆弱性』と同様の脆弱性を持つであろう、WebKitを使用しているアプリケーションに関しての一時的まとめ にあるように、WebKitを使用するアプリケーションに同様の脆弱性があることを考えれば、1. のヘチマコンピュータさんによるCookieMonsterFixを利用するのがもっとも的確な対処ではないかと思います。
なお、ヘチマコンピュータさんによるCookieMonsterFixのページによれば、
Safariに限らずWebKitを使っているアプリケーションでCookie管理をWebKitに任せているものはすべて該当します(拙作 P_BLOG Agent で上記サイトのテストを実行したら漏えいが再現しました)。
とのことですので、Safari以外にもWebKitを利用したアプリケーションでも同様の脆弱性があるようです。
その様なアプリケーションを利用されている方々は十分にご注意下さい。
追記:2003.11.20 18:50
上記ヘチマコンピュータさん以外の各所でのコメントなどを、『再掲:SafariにCookieが漏洩する脆弱性』と同様の脆弱性を持つであろう、WebKitを使用しているアプリケーションに関しての一時的まとめ としてまとめてみました。