概要

CSRF(クロスサイトリクエストフォージェリ:Cross Site Request Forgery)とは、Webサイトにログイン中の利用者を罠サイトなどに誘導し、本人の意図しない操作(書き込み・設定変更・送金など)を勝手に実行させる攻撃です。「リクエスト強要」とも訳されます。

利用者がログイン状態を保持していることを悪用し、攻撃者が用意した不正なリクエストを本人になりすまして正規サイトに送らせるのが本質です。利用者は気づかないうちに退会・パスワード変更・投稿などをさせられてしまいます。

詳細(仕組み・XSSとの違い)

攻撃の流れ

  1. 利用者が正規サイトにログインした状態にある。
  2. 攻撃者が用意した罠ページ(リンク・画像・自動送信フォーム)を踏ませる。
  3. 罠ページから正規サイトへ、本人の権限で不正なリクエストが送られる。
  4. 正規サイトは本人の操作と誤認して処理してしまう。
項目XSSCSRF
実行場所利用者のブラウザでスクリプト実行正規サーバ側で処理を実行
本質不正スクリプトの実行意図しないリクエストの強要
CSRFのキーワードは「ログイン中の利用者になりすまし、意図しない操作をさせる」。XSS(スクリプト実行)との違いを問う問題が頻出です。

対策

CSRFの定番対策は「トークン」です。正規の画面でしか知り得ない秘密の値をリクエストに含めさせることで、罠サイトからの偽リクエストを見破ります。

インシデント事例

掲示板への不正な書き込み事件

かつて、罠サイトを踏んだ利用者のブラウザから掲示板へ犯行予告が自動投稿され、身に覚えのない利用者が誤認逮捕される事態に発展した事例があります。CSRFの危険性と、攻撃者と実行者が異なりうることを社会に知らしめました。

会員サイトの設定変更

CSRF対策が不十分なサイトで、罠ページを踏んだ利用者のメールアドレスやパスワードが勝手に変更され、アカウントを乗っ取られる被害もあります。

試験での問われ方