お問い合わせ

CSRF(クロスサイトリクエストフォージェリ)

英語表記
Cross-Site Request Forgery
読み
しーえすあーるえふ(くろすさいとりくえすとふぉーじぇり)
別名
シーサーフ/リクエスト強要

ログイン中の利用者を罠のページに誘導し、本人が意図しない処理を実行させるWebアプリケーションへの攻撃。

解説

CSRFは、Webサイトにログインした状態の利用者に、攻撃者が用意した罠を経由してリクエストを送らせ、利用者本人の意図しない処理を実行させる攻撃手法です。IPA(情報処理推進機構)は、被害の例として、不正な送金、意図しない商品の購入、望まない退会処理、パスワードなどの設定の変更、掲示板への書き込みを挙げています。

仕組み

CSRFの攻撃は、次の流れで成立します。

  • 利用者が、対象のWebサイトにログインした状態のままでいる
  • 利用者が、別のサイトやメールに仕掛けられた罠のリンクを開く
  • 罠が、対象サイトの送信処理を呼び出すリクエストを、利用者のブラウザから送らせる
  • 対象サイトは、ログイン中の本人による正規の操作と区別できず、処理を実行する

IPAは、根本的な対策として3つの方法を示しています。1つ目は、フォームのhiddenパラメータに第三者が推測できない秘密情報(トークン)を埋め込み、送信時に値が正しい場合だけ処理を実行する方法です。2つ目は、処理を実行する前にパスワードを再入力させる方法です。3つ目は、リクエストのリンク元(Referer)が正しいかを確認する方法です。さらに、重要な操作が実行されたときに登録済みのメールアドレスへ通知する方法も、利用者が異変に気づくきっかけとなる保険的な対策として挙げられています。

実務での使われ方

問い合わせフォームや会員情報の変更画面は、CSRFの対策が必要な画面にあたります。そのため、フォーム作成ツールを使う場合は、トークンによる検証などの対策が組み込まれているかを確認します。一方で、フォームや変更画面を自社で実装している場合は、対策の有無を開発担当者に確認しておきます。