PHP:既知のセキュリティ脆弱性 – Session AdoptionでWebmailアプリケーションであるSquirrelMailとRoundCubeがこの攻撃に脆弱であることを紹介しました。
タイミング良く(?)同じくPHPベースのWebmailアプリであるIMPにクロスサイトスクリプティング脆弱性が発見され修正されました。(IMP-4.3.3未満/IMP-4.2.2未満)
試しに、ソースコードをチェックしてみました。
IMPはsession_regenerate_idを呼び出しています。この為、SquirrelMail/RoundCubeと比べるより安全です。しかし、対策は十分ではありませんでした。
PHP:既知のセキュリティ脆弱性 – Session Adoptionで紹介した簡単なテスト結果では
MomongaLinux5 64bit
Firefox 3.0.5 | www.example.co.jp のクッキーが優先される |
Konqueror 4.1.0 | www.example.co.jp のクッキーが優先される |
WindowsXP 32bit
Firefox 2.0.20 | co.jp のクッキーが優先される |
Internet Explorer 6.0 SP2 | example.co.jp のクッキーが優先される |
Internet Explorer 7.0 | クッキーが設定されない。example.co.jp には設定される。 |
Internet Explorer 8.0 beta1 | example.co.jp のクッキーが優先される |
Safari 3.2.1 | co.jp のクッキーが優先される。 |
Opeara 9.5.0 | www.example.co.jp のクッキーが優先される。 |
Google Chrome 1.0.154.43 | example.co.jp のクッキーが優先される |
のような結果になっています。
webmail.example.com
のようなドメイン名を持つサイトも多いでしょう。クロスサイトスクリプティングにより、半永久的なIDの乗っ取りを可能とするような脆弱なIMPとブラウザは
- Firefox2
- Internet Explorer6/8
- Sarafi
- Google Chrome
になります。
Webmailシステムはもっともセキュリティに敏感でなければならないWebアプリの一つですが、そのようなアプリでもこの状態です。
簡単なソースコードチェックでも、アプリケーションに潜む脆弱性を検出できてしまいます。セミナーなどでソースコードレベルでの監査の重要性を解説しています。残念ながら、まだその重要性が正しく理解されているとは思えません。