★阿修羅♪ 現在地 HOME > 掲示板 > IT6 > 315.html
 ★阿修羅♪
次へ 前へ
IEやMozillaなどにセキュリティ・ホール,なりすましを許す可能性あり【IT_Pro記事】クロスドメインクッキー脆弱
http://www.asyura2.com/0406/it06/msg/315.html
投稿者 クエスチョン 日時 2004 年 9 月 22 日 18:54:48:WmYnAkBebEg4M
 

IEやMozillaなどにセキュリティ・ホール,なりすましを許す可能性あり【IT_Pro記事】クロスドメインクッキー脆弱
http://itpro.nikkeibp.co.jp/free/ITPro/NEWS/20040921/150222/

 デンマークSecuniaなどは9月18日,Internet Explorer(IE)やMozilla,Firefox,KonquerorといったWebブラウザに,Cookieの取り扱いに関するセキュリティ・ホールがあることを公表した。悪用されると,正規ユーザーになりすました攻撃者にWebアプリケーションなどにログインされる可能性がある。ただし,危険性はそれほど高くはない。Secuniaでは,深刻度を「Less Critical」としている。ユーザーの対策は,信頼できないリンクをクリックしないこと。Konquerorについてのみ,修正パッチが公開されている。

Cookieの取り扱いに問題

 WebブラウザとWebサーバーのやり取りに使われるHTTPは,ステート・レスなプロトコルである。Webサーバーには,あるHTTPアクセスが,同じユーザーからの連続したアクセスなのか,別のユーザーからのアクセスなのか区別できない。そこで,誰からのアクセスであるのかを識別するために,セッションを管理する必要がある。

 現在,セッション管理にはCookieがよく利用される。Webサーバーは,セッションIDを含めたCookieをWebブラウザに送信しておく。WebブラウザがそのWebサーバーにアクセスするたびにCookieは自動的に送信されるので,サーバーはどのユーザーからのアクセスなのかを識別できる。

 Webブラウザは,Cookieが送られてきたサーバー(ドメイン)へアクセスするときだけ,そのCookieを送信する。つまり,例えば「red.example.com」から送られたCookieは,red.example.comへアクセスするときだけ送信する。別のドメインから送られたCookieをred.example.comへ送信することはない。red.example.comから送られたCookieを別のドメインへ送信することもない。

 ところが,IEやMozillaなどは,あるドメインから送られたCookieを別のドメインへ送信する場合がある。つまり,悪意があるドメインから,正規のドメイン(Webでサービスを提供するドメイン)へ送られるCookieを送り込まれる危険性がある。それが,今回明らかにされたセキュリティ・ホールである。Secuniaでは「Cross-Domain Cookie Injection Vulnerability」と呼んでいる。

 もう少し具体的に説明しよう。Cookieには,「domain」属性と呼ばれるオプションがある。例えば,「domain=.example.com」としたCookieがred.example.comから送られてきた場合には,red.example.comだけではなく,ドメイン名が「.example.com」で終わるドメインにアクセスするときにはいつもそのCookieが送られることになる。

 ただし,domain属性にトップ・レベル・ドメイン(TLD)を指定した場合,例えば「domain=.com」などとした場合には,ブラウザはこのCookieを受け付けないようになっている。もしこれを許すと,悪意があるcomドメインから送り込まれたCookieを,他のcomドメインにアクセスするたびに送信することになるからだ。HTTPのセッション管理などを規定したRFC2965には,「The value for the Domain attribute contains no embedded dots」と記述されている。

 だが,実際にはこの規定だけでは不十分である。TLDではなく,「.co.uk」や「.ne.jp」のように,国別ドメインを持つドメインがあるからだ。例えば,red.example.co.ukから「domain=.co.uk」としたCookieが送られると,そのCookieは,.co.ukで終わるドメインすべてに送られることになる。実際,MozillaやFirefoxは,この仕様になっている。

 今回のセキュリティ・ホールを報告したWestpointによると(Secuniaの発表情報はWestpointの情報に基づいている),IEやKonquerorでは,RFC2965の規定に加えて,国別ドメインにも対応している。具体的には,domain属性に指定されたドメインが「セカンド・レベル・ドメインが2文字以下の場合(xx.yyやx.yyで終わるドメイン)」と「comやnet,milなどと国別ドメインの組み合わせの場合((com|net|mil|org|gov|edu|int).yy)には,そのCookieを受けつけないようにしている。

 しかしWestpointでは,これでも不十分だとしている。.ukドメインを例に取れば,「ltd.uk」「.plc.uk」「.sch.uk」「.nhs.uk」といったdomain属性は許してしまうからだ。IEや(パッチ未適用の)Konquerorでも,対象は限定されるものの,別のドメインへ送信するようなCookieを送り込まれる可能性があるのだ。

攻撃者がセッションIDを“指定”

 それでは,なぜ「悪意があるドメインから,正規のドメインへ送られるCookieを送り込まれる危険性がある」と,なりすましを許す恐れがあるのか。Cookieを盗まれれば,セッションIDを盗まれることになるので,なりすまされる危険性があるが,今回のセキュリティ・ホールは逆である。これを理解するには,他人のセッションIDを知る方法の一つである「Session Fixation(セッション固定)」攻撃を知る必要がある。

 通常,セッションIDを含むCookieは,正規のWebサーバーからユーザーのWebブラウザへ送信される。そして,そのセッションIDでWebサーバーはユーザーを識別する。このセッションIDを盗んで(あるいは推測して),そのユーザーになりすますのが「セッション・ハイジャック」などと呼ばれる攻撃である。

 セッション固定攻撃では,任意のセッションIDを埋め込んだCookieを,攻撃者のサイト(ドメイン)からユーザーのブラウザに送り込んでおく。具体的には,Webページやメールのリンクなどで,攻撃者のサイトへ誘導してCookieを送り込む。例えば,攻撃者のサイトが「mal-attacker.co.uk」の場合には,「domain=.co.uk」とし,セッションID(SID)に任意の文字列を含めたCookieを送り込んでおく。

 そうすれば,そのユーザーがMozillaあるいはFirefoxを使っている場合には,mal-attacker.co.ukに再びアクセスする場合だけではなく,.co.ukで終わるサイトにアクセスする際には,このCookieを送信することになる。そのユーザーが,例えばred.example.co.ukにアクセスした場合には,そのセッションIDでred.example.co.ukにログインを試みることになる。そのユーザーがログインに成功すれば,そのセッションIDは認証されたとみなされる。その後,攻撃者はそのセッションIDを使って,正規ユーザーになりすます。

 現実的なシナリオとしては,以下が想定できる。まず,攻撃者はmal-attacker.co.ukサイトを,red.example.co.ukに見せかけておく。そして,偽のメールなどでred.example.co.ukのユーザーを偽サイト(mal-attacker.co.uk)へ誘導し,任意のセッションIDを含むCookieを送り込む。その後,すぐにred.example.co.ukのログイン・ページにリダイレクトする。ユーザーがログインに成功したら,攻撃者は送り込んだCookieに記述したセッションIDで,そのユーザーになりすます――。

 セッション固定攻撃の詳細は,セキュリティ・ベンダーAcrosが2002年に公開した「Session Fixation Vulnerability in Web-based Applications」に詳しい(PDFファイル)。今回のセキュリティ・ホールがなくても,セッション固定攻撃は可能である。今回のセキュリティ・ホールは,セッション固定攻撃をしやすくするものである。とはいえ,セキュリティ・ホールを“利用”しても,セッション固定攻撃を“成功”させることは,それほど容易ではないと考えられる。しかし,このような攻撃方法が存在することを,ユーザーはもちろん,Webアプリケーションの開発者は知っておくべきだ。Acrosの情報には,開発者が施すべき対策が記述されているので,目を通すことをお勧めする。

◎参考資料
◆Multiple Browser Cookie Injection Vulnerabilities(Westpoint)
◆Internet Explorer Cross-Domain Cookie Injection Vulnerability(Secunia)
◆Mozilla/Mozilla Firefox Cross-Domain Cookie Injection Vulnerability(Secunia)
◆Konqueror Cross-Domain Cookie Injection Vulnerability(Secunia)
◆fix cookie domain checks to not allow .co.uk(Bugzilla)
◆Session Fixation Vulnerability in Web-based Applications(Acros Security,PDFファイル)
◆KDE Security Advisory: Konqueror Cross-Domain Cookie Injection

(勝村 幸博=IT Pro)

 次へ  前へ

IT6掲示板へ



フォローアップ:


 

 

 

  拍手はせず、拍手一覧を見る


★登録無しでコメント可能。今すぐ反映 通常 |動画・ツイッター等 |htmltag可(熟練者向)
タグCheck |タグに'だけを使っている場合のcheck |checkしない)(各説明

←ペンネーム新規登録ならチェック)
↓ペンネーム(2023/11/26から必須)

↓パスワード(ペンネームに必須)

(ペンネームとパスワードは初回使用で記録、次回以降にチェック。パスワードはメモすべし。)
↓画像認証
( 上画像文字を入力)
ルール確認&失敗対策
画像の URL (任意):
投稿コメント全ログ  コメント即時配信  スレ建て依頼  削除コメント確認方法
★阿修羅♪ http://www.asyura2.com/  since 1995
 題名には必ず「阿修羅さんへ」と記述してください。
掲示板,MLを含むこのサイトすべての
一切の引用、転載、リンクを許可いたします。確認メールは不要です。
引用元リンクを表示してください。