安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構の、「セッション管理の不備」から一部抜粋する。(この資料はPDFでしか提供されていない)
セッションIDの推測
- 悪意のある人は、セッションIDの生成規則を割り出し、有効なセッションIDを推測します。
セッションIDの盗用
- 悪意のある人は、罠を仕掛けたり、ネットワークを盗聴したりし、利用者のセッションIDを盗みます。
セッションIDの固定化 (Session Fixation)
- 悪意のある人は何らかの方法で自分が取得したセッションIDを利用者に送り込み、利用者のログインを 狙って、その利用者になりすまします。
注意が必要なウェブサイトの特徴
運営主体やウェブサイトの性質を問わず、ログイン機能を持つウェブサイト全般に注意が必要な問題です。ログイン後に決済処理等の重要な処理を行うサイトは、攻撃による被害が大きくなるため、特に注意が必要です。
- 金銭処理が発生するサイト
- ネットバンキング、ネット証券、ショッピング、オークション 等
- 非公開情報を扱うサイト
- 転職サイト、コミュニティサイト、ウェブメール 等
- その他、ログイン機能を持つサイト
- 管理者画面、会員専用サイト、日記サイト 等
根本的解決
- (i) セッションIDを推測が困難なものにする。
- (ii) セッションIDをURLパラメータに格納しない。
- (iii) HTTPS通信で利用するCookieにはsecure属性を加える。
- (iv)-a ログイン成功後に、新しくセッションを開始する。
- (iv)-b ログイン成功後に、既存のセッション ID とは別に秘密情報を発行し、ページの遷移ごとにその値を確認する。
保険的対策
- (v) セッションIDを固定値にしない。
- (vi) セッションIDをCookieにセットする場合、有効期限の設定に注意する。
関連CWE
- CWE-330: Use of Insufficiently Random Values
- CWE-522: Insufficiently Protected Credentials
- CWE-614: Sensitive Cookie in HTTPS Session Without ‘Secure’ Attribute
- CWE-384: Session Fixation
参考URL
- IPA: 知っていますか?脆弱性 (ぜいじゃくせい) 「6. セッション管理の不備」
- 産業技術総合研究所 高木浩光: 「CSRF」と「Session Fixation」の諸問題について