My Photo

« セッション管理の不備 その2 | Main | たぶん今年最後の釣り »

November 12, 2013

セッション管理の不備 その3

関連記事:
セッション管理の不備 その1
セッション管理の不備 その2


URL埋め込みのセッションID

発生箇所 セッションIDを生成している箇所
影響を受けるページ セッション管理を利用しているすべてのページ。特に秘密情報の表示や重要な処理をするページは影響が大きい。
影響の種類 成りすまし
利用者の関与の度合い 必要→リンクのクリック、メール添付のURLの閲覧

PHPやJava、ASP.NETはセッションIDをURLに埋め込む機能をサポートしている。
過去のNTTドコモの携帯電話ブラウザはクッキーをサポートしていなかったので、携帯電話向けWebアプリケーションではURL埋め込みセッションIDが広く用いられている。

攻撃手法

PHPは設定でセッションIDをURL埋め込みにすることができる。php.iniの設定項目は以下。

項目説明デフォルト
session.use_cookiesセッションIDの保存にクッキーを使うOn
session.use_only_cookiesセッションIDをクッキーのみに保存On
session.use_trans_sidセッションIDをURLに自動埋め込みOff

上表の項目の組み合わせにより、セッションIDをどこに持つかを下表のように決まる。

セッションIDの保存場所use_cookiesuse_only_cookies
セッションIDをクッキーのみに保存OnOn
クッキーが使える場合はクッキーに、使えない場合はURL埋め込みOnOff
無意味な組み合わせOffOn
セッションIDを常にURLに埋め込むOffOff

session.use_trans_sidはOnの場合はセッションIDがURLに自動的に埋め込まれ、Offの場合はアプリケーション側で明示的にセッションID埋め込みの処理をしている場合のみセッションIDが埋め込まれる。

RefererによりセッションIDが漏洩する条件は以下の2点を満たすサイトである。

  • URL埋め込みのセッションIDを使える。
  • 外部サイトへのリンクがある。あるいはリンクを利用者が作成できる。

RefererからのセッションID漏洩は意図的な攻撃と事故により漏れる場合がある。
意図的な攻撃を仕掛けることができるのは利用者がリンクを作成できる場合に限られる。具体的にはWebメール、掲示板、ブログ、SNSなどがある。
Webメールからの攻撃では、攻撃者はターゲットアプリケーションの利用者に対してURL付きのメールを送信して攻撃者のサイトに誘導する。利用者が攻撃者のサイトを閲覧すると、WebメールのURLに埋め込まれたセッションIDが攻撃者のサイトにRefererとして漏洩する。

事故として漏洩するのは次のような場合である。
利用者がURLを書き込めないサイトの場合でも外部サイトへのリンクがあればそれらの外部サイトに対してセッションIDが漏洩することになる。
また、利用者がセッションID付きのURLを自ら掲示板などに投稿したり、セッションID付きのURLが検索サイトに登録されることもある。

脆弱性が生まれる原因

セッションIDがURLに埋め込まれる直接の原因は不適切な設定あるいはプログラミングである。
不適切な設定には意図的な場合と不注意による場合がある。前者のでは理由として以下の2つが考えられる。

  • 2000年前後にプライバシーの観点から「クッキー有害論」が起こり、クッキーを避けようという機運が一部にあった。
  • NTTドコモの携帯電話のブラウザが過去にクッキーに対応していなかったため、携帯電話向けWebアプリケーションでURL埋め込みセッションIDを使用している。

「クッキー有害論」とは第三者クッキーが利用者のアクセス履歴を追跡できるということから起こったものである。現在ではブラウザ側の第三者クッキーを拒否する機能が一般的になったため、通常のクッキーまでも拒否する根拠はくなった。
携帯電話に関しては現在でもクッキー非対応ブラウザが使われているためURL埋め込みのセッションIDを完全になくすのは難しい状況である。

対策

クッキーにセッションIDを保存するように設定する。PHPでは以下のようになる。

[Session]
session.use_cookies = 1
session.use_only_cookeis = 1

参考文献:体系的に学ぶWebアプリケーションの作り方 4.6.3 URL埋め込みのセッションID

体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践
徳丸 浩

ソフトバンククリエイティブ 2011-03-03
売り上げランキング : 4070

Amazonで詳しく見る
by G-Tools

« セッション管理の不備 その2 | Main | たぶん今年最後の釣り »

PHP」カテゴリの記事

セキュリティ」カテゴリの記事

Comments

Post a comment

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/58564575

Listed below are links to weblogs that reference セッション管理の不備 その3:

« セッション管理の不備 その2 | Main | たぶん今年最後の釣り »

May 2017
Sun Mon Tue Wed Thu Fri Sat
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof