Cross-Site Request Forgery(CSRF)

概要

悪意のあるサイトに悪意のあるHTTPリクエスト送信を仕込み、閲覧者に対して重要な処理を正規のアクションとして実行させてしまう脆弱性

 0. 利用者がexample.jpにログインしている
 1. 攻撃者が罠を用意する
 2. 被害者が罠を閲覧する
 3. 罠のJSにより、被害者のブラウザ上で攻撃対象サイトに対し、新しいPWがPOSTメソッドで送られる
 4. PWが変更される

 GETリクエストによる例
  imgタグを利用→imgタグはsrcに記載されたURLに対してGETリクエストを送信するため

  

対策例

 ・CSRF対策の必要なページを区別する
  →画面遷移図等で確認。
 ・正規利用者の意図したリクエストを確認できるよう実装する
  →3種類
   -トークンの埋め込み
     リクエスト生成時にトークンを送り、その内容を確認
     受け取る際はPOSTで受ける
   -パスワード再入力
     処理の前にPWを再入力させる、以下の追加効能
      ・購入等に先立ち、正規利用者を再確認
      ・共有PCで別人が操作、といった状況でなく、本人が操作していること確認
   -Refererチェック
     シンプルに追加できる、ただし動作しなくなるユーザもいる

脆弱性が入るパターン

トークンの埋め込み
  →埋め込んだトークンを削除したら?
   値を変えてみたら?

関連レポート


以上