セッション固定攻撃の謎
2005年4月26日(火曜日)
セッション固定攻撃の謎
セッション固定攻撃なるものはそれなりにマイナーなセッションハイジャック手法だと思いますが、疑問が二つありました。
- そもそも、外部から与えられた値をセッション ID として使用してしまうような動作自体が信じがたい。何故こんな動作をしてしまうのか?
- どういうわけか、私が見たセッション固定攻撃可能なアプリケーションはすべて PHP で実装されていた。PHP にはセッション固定を許しやすい要素があるのだろうか?
そもそも私は PHP についてほとんど知らないので、PHP 特有の事情があるのだろうなと想像してはいたものの、それがどんなものなのかよく分かっていなかったのです。
それがようやく何となく理解できました。アシアル株式会社 ニュース (www.asial.co.jp)で公開されている PHPカンファレンス2004 のプレゼンテーション資料を見たのですが、
外部から来たクエリ変数でもPHPのセッション変数として使用されてしまう!
(~中略~)
ログインした時点などの重要なタイミングで session_regenerate_id()関数を呼び出し、セッションIDを変更することが肝要。
ということで、外部から与えられたパラメータをセッション ID として使ってしまうのは PHP のデフォルトの動作のようですね。正直驚きですが、session_regenerate_id() というものを使えば回避できる模様。
- 「セッション固定攻撃の謎」へのコメント (3件)
関連する話題: セキュリティ
- 前(古い): 未承諾広告
- 次(新しい): To: にメールアドレスが入っていないメール