連載
» 2009年02月06日 00時00分 公開

もいちどイチから! HTTP基礎訓練中(8):これだけは知っておきたいセッション変数の基礎 (4/4)

[杉山俊春,株式会社ユービーセキュア]
前のページへ 1|2|3|4       

並べて足して入れ替えて……


そして週明け……


クウ 「おはよー」

ユウヤ 「おはよ。勉強会はどうだった?」

クウ 「なんか宿題が出たよー!」

ユウヤ 「ああ、なんかWebにも上がってたね」

クウ 「おおっ? そんなところチェックしてるんだ」

ユウヤ 「まあね。いろいろ知っておかないといけないし。それより、宿題解けたんか?」

クウ 「いや……。さっぱり……。難しいよね、あれ」

ユウヤ 「いや、簡単だったぞ?」

クウ 「ええっ! もう解けたの??」

ユウヤ 「……まあ、頑張って解いてくれ」

クウ 「むむむ……」

【関連記事】
基礎のキソ、エブリバディ・セッション管理!
http://www.atmarkit.co.jp/fsecurity/rensai/httpbasic07/httpbasic01.html




クウ 「やっぱり分からないー。答え教えてー」

ユウヤ 「しょうがないなぁ」

クウ 「教えてください><」

ユウヤ 「これは、典型的な脆弱なセッションIDだね。まず並べ替えてみるとよく分かる。まず、先頭の文字で並べ替えてみる」

クウ 「並べ替えて意味あるの?」

c.  23317998991
g.  23317998031
b.  34428009092
j.  34428009172
d.  45539110123
i.  45539110273
e.  56640221344
h.  78862443596
f.  89973554687
a.  90084665648

ユウヤ 「もう、これだけで攻略された、っていっていいくらいなレベルだが、例えば、『c』と『g』を比べてみよう。9、10文字目以外全部同じだ」

クウ 「ホントだ……。『b』と『j』とかもほとんど同じ……」

ユウヤ 「次に、先頭の数字が近い『b』と『c』について比べると、これまたとても似ている」

クウ 「どこが……?」

ユウヤ 「鈍いな……。『c』の各けたに1足したらほとんど同じだ」

c'. 34428009002
b.  34428009092

クウ 「ホントだ……」

ユウヤ 「さらに、同じようにして、全部、先頭が『1』になる値を各けたに足す」

クウ 「ふむ……」

a.  12206887860
b.  12206887870
c.  12206887880
d.  12206887890
e.  12206887900
f.  12206887910
g.  12206887920
h.  12206887940
i.  12206887940
j.  12206887950

ユウヤ 「さすがにこれで、ほぼ連番っぽくなっているのは分かるよな?」

クウ 「おおっ! ホントだ! すごーい!」

ユウヤ 「さらに、これが、最後のけたを除いたら時間、つまり1970年1月1日00:00:00 UTCからの経過秒数だって分かれば完ぺきだな」

クウ 「ふむふむ」

ユウヤ 「脆弱なセッションIDで、『時間』をキーにして単純な変換をするだけというのは簡単に思いつくから結構やってしまいがちだな。だから、見る人が見れば、時間さえ分かればセッションIDが作れてしまうってのは簡単に分かるよ。逆に、この問題がいつ作られたかも丸分かりだね」

クウ 「なるほど……」

ユウヤ 「むしろ、普通は、時間をキーにして作られていないか? から疑ってかかるくらいだけどね」

クウ 「ユウちゃん、よく知ってるね。そんなのどこで習ってくるの?」

ユウヤ 「まあ、常識だな」

クウ 「くぅ……」

 セッションIDのようにランダム性が必要となる値を生成する際には、時刻のように簡単に分かってしまう値をキーにしたり、簡単な変換ルールに頼ってしまったりしないようにする必要がある。また、時刻のように一意にならない可能性のあるものをキーにした場合、異なるユーザーで同じセッションIDを利用してしまう可能性があるため、注意が必要である。

             きょうの格言

           セッション管理は

      セッション変数を理解することから

 

    セッション変数は非常に便利だが、使い方によっては

     考えなければいけない点が多くなる場合がある。

 

     セッション変数の仕組みについて正しく理解し、

           安全に利用しよう!


【クウたちの壁紙カレンダー、配布中!】

 

本連載のイラストを担当しているはるぷさんによる、毎月更新のカレンダーが配布されています。ぜひご利用ください!

 

特製ウォールペーパー

http://www.ubsecure.jp/wallpaper.php


(Illustrated by はるぷ)

Profile

株式会社ユービーセキュア 技術本部 VEXグループ リーダー 兼 セキュリティオーディットコンサルタント

杉山 俊春(すぎやま としはる)

セキュリティコンサルタントとして、主にWebアプリケーションのセキュリティ検査やWebアプリケーション検査ツールの開発などに従事している。大手ショッピングサイトなどの検査実績を持つ。


前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。