安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構の、「CSRF(クロスサイト・リクエスト・フォージェリ)」から一部抜粋する。(この資料はPDFでしか提供されていない)
注意が必要なウェブサイトの特徴
次の技術を利用してセッション管理を実装しているウェブサイトが、CSRF 攻撃による影響を受ける可能性があります。
- Cookie を用いたセッション管理
- Basic 認証
- SSL クライアント認証
また、上記を実装するウェブサイトのうち、ログイン後に決済処理等の重要な処理を行うサイトは、攻撃による被害が大きくなるため、特に注意が必要です。
- 金銭処理が発生するサイト
- ネットバンキング、ネット証券、ショッピング、オークション 等
- その他、ログイン機能を持つサイト
- 管理画面、会員専用サイト、日記サイト 等
根本的解決
- (i)-a 処理を実行するページを POST メソッドでアクセスするようにし、その「hidden パラメータ」に秘密情報が挿入されるよう、前のページを自動生成して、実行ページではその値が正しい場合のみ処理を実行する。
- (i)-b 処理を実行する直前のページで再度パスワードの入力を求め、実行ページでは、再度入力されたパスワードが正しい場合のみ処理を実行する。
- (i)-c Refererが正しいリンク元かを確認し、正しい場合のみ処理を実行する。
保険的対策
- (ii) 重要な操作を行った際に、その旨を登録済みのメールアドレスに自動送信する。
CWE
- CWE-352: クロスサイト・リクエスト・フォージェリ(CSRF)
- CWE-352: Cross-Site Request Forgery (CSRF)
参考URL
- IPA: 知っていますか?脆弱性 (ぜいじゃくせい) 「3. CSRF (クロスサイト・リクエスト・フォージェリ)」
- 産業技術総合研究所 高木浩光: 「CSRF」と「Session Fixation」の諸問題について
- JPCERT/CC: HTML5 を利用した Web アプリケーションのセキュリティ問題に関する調査報告書