[#40361] 1.8のcgi/session.rb — Takeyuki Fujioka <fuji@...>

藤岡です。

55 messages 2004/12/07
[#40362] Re: 1.8のcgi/session.rb — Yukihiro Matsumoto <matz@...> 2004/12/07

まつもと ゆきひろです

[#40363] Re: 1.8のcgi/session.rb — Takeyuki Fujioka <fuji@...> 2004/12/07

藤岡です。

[#40364] Re: 1.8のcgi/session.rb — akira yamada / やまだあきら <akira@...> 2004/12/07

2004-12-07 (火) の 22:09 +0900 に Takeyuki Fujioka さんは書きました:

[#40365] Re: 1.8のcgi/session.rb — Takeyuki Fujioka <fuji@...> 2004/12/08

藤岡です。

[#40366] Re: 1.8のcgi/session.rb — Yukihiro Matsumoto <matz@...> 2004/12/08

まつもと ゆきひろです

[#40367] Re: 1.8のcgi/session.rb — Takeyuki Fujioka <fuji@...> 2004/12/08

藤岡です。

[#40368] Re: 1.8のcgi/session.rb — Tietew <tietew-ml-ruby-list@...> 2004/12/08

Tietew です。

[#40369] Re: 1.8のcgi/session.rb — Yukihiro Matsumoto <matz@...> 2004/12/08

まつもと ゆきひろです

[#40370] Re: 1.8のcgi/session.rb — Takeyuki Fujioka <fuji@...> 2004/12/08

藤岡です。

[#40371] Re: 1.8のcgi/session.rb — Yukihiro Matsumoto <matz@...> 2004/12/08

まつもと ゆきひろです

[#40372] Re: 1.8のcgi/session.rb — Takeyuki Fujioka <fuji@...> 2004/12/08

藤岡です。

[#40375] Re: 1.8のcgi/session.rb — akira yamada / やまだあきら <akira@...> 2004/12/08

Takeyuki Fujioka wrote:

[#40377] Re: 1.8のcgi/session.rb — Takeyuki Fujioka <fuji@...> 2004/12/09

藤岡です。

[#40378] Re: 1.8のcgi/session.rb — Yukihiro Matsumoto <matz@...> 2004/12/09

まつもと ゆきひろです

[#40379] Re: 1.8のcgi/session.rb — Takeyuki Fujioka <fuji@...> 2004/12/09

藤岡です。

[#40380] Re: 1.8のcgi/session.rb — Yukihiro Matsumoto <matz@...> 2004/12/09

まつもと ゆきひろです

[#40384] Re: 1.8のcgi/session.rb — Yukihiro Matsumoto <matz@...> 2004/12/09

まつもと ゆきひろです

[#40386] Re: 1.8のcgi/session.rb — Takeyuki Fujioka <fuji@...> 2004/12/09

藤岡です。

[#40398] Re: 1.8のcgi/session.rb — 植田裕之 <ueda@...> 2004/12/13

植田@ネットフォレストと申します。

[#40399] Re: 1.8のcgi/session.rb — Yukihiro Matsumoto <matz@...> 2004/12/13

まつもと ゆきひろです

[#40400] Re: 1.8のcgi/session.rb — Takeyuki Fujioka <fuji@...> 2004/12/13

藤岡です。

[#40401] Re: 1.8のcgi/session.rb — Yukihiro Matsumoto <matz@...> 2004/12/13

まつもと ゆきひろです

[#40403] Re: 1.8のcgi/session.rb — TAKAHASHI Masayoshi <maki@...> 2004/12/13

高橋征義です。

[#40404] Re: 1.8のcgi/session.rb — Yukihiro Matsumoto <matz@...> 2004/12/13

まつもと ゆきひろです

[ruby-list:40388] Re: 1.8のcgi/session.rb

From: "H.Shimura" <shimurahiroyuki@...>
Date: 2004-12-09 07:53:48 UTC
List: ruby-list #40388
		志村

In message "[ruby-list:40387] Re: 1.8のcgi/session.rb", 
<1102575512.375771.23099.nullmailer@x31.priv.netlab.jp>, 
Yukihiro Matsumoto wrote...

 >|Web アプリケーションはあまり詳しくないのですが、一般に session id を外
 >|部から決定できるということは session fixation attack と呼ばれる攻撃に
 >|対して脆弱になるという話を聞いたことがあります。
 >|http://www.atmarkit.co.jp/fsecurity/rensai/webhole03/webhole01.html
 >|
 >|cgi/session.rb の場合にはそういう脆弱性を持たないような事情があるので
 >|しょうか?
 >
 >変更前のcgi/session.rbはまさにそういう問題を内包してますね。
 >で、「存在しない時には新しいセッションをスタートする」対応な
 >らばこの問題は発生しなさそうです。

攻撃者が自分で作ったIDか、新たにその場で発行されたIDかによらず、
Webセッションの途中で有効なセッションIDを取得出来てしまうという点で
問題があります。

この問題を防ぐには、常に「存在しない時には新しいセッションをスタートする」
ケースであったかどうかをチェックして、その場合には適切な行動をとる
(ID認証や入り口ページへの誘導など) ように、明示的にプログラミング
してやる必要があります。大変です。忘れ易いです。省略しがちです。

 >もっとも、現時点では私は例外をrescueして対応した方が良いと思っ
 >ているのですが。

こちらの方が良いと思います。


==想定してるWebセッションの流れ

1. 入り口、ID認証、新規セッションIDの発行、何かセッション変数の初期化
2. セッションIDを引き継いでいろいろ処理、その一
3. いろいろ処理、その二、その三、、、
4. 出口ページや、時間切れ、等による、セッションの無効化


この 2. とか 3. のタイミングで、Fixation。ID認証なしでなんかできる!?
攻撃者指定のセッションID か、新たに発行したセッションID かは
余り重要ではなく、Webセッションの途中からセッションが始まることが問題。

その問題を解決するために
  * 2. や 3. の冒頭で新規セッションIDなのかを判定する。
  * 冒頭で、別途 1.で何か定義しておいたセッション変数を判定する。
とかさせる位なら、最初からエラーにする (場合によっては rescueで救済) 
ようになっている方が安心です。

---------------------------------------+---------+---------+以上 2004/12/9

志村弘之  mailto: shimurahiroyuki@obun.co.jp


In This Thread