クロスサイトリクエストフォージェリ|情報処理安全確保支援士試験 令和6年春期午前Ⅱ 問1

出典:令和6年春期 午前Ⅱ 問1 分野:セキュリティ / セキュリティ実装技術
クロスサイトリクエストフォージェリ攻撃の対策として,効果がないものはどれか。
  • ア:Webサイトでの決済などの重要な操作の都度,利用者のパスワードを入力させる。
  • イ:Webサイトへのログイン後,毎回異なる値をHTTPレスポンスボディに含め,Webブラウザからのリクエストごとに送付されるその値を,Webサーバ側で照合する。
  • ウ:Webブラウザからのリクエスト中のRefererによって正しいリンク元からの遷移であることを確認する。
  • エ:WebブラウザからのリクエストをWebサーバで受け付けた際に,リクエストに含まれる"<"や">"などの特殊文字を,"<"や">" などの文字列に置き換える。
解説

CSRF(クロスサイトリクエストフォージェリ)とは、利用者がログイン中のWebサイトに対して、本人が気づかないうちに勝手な操作をさせる攻撃です。

CSRF

たとえば、利用者がショッピングサイトにログインしたまま、悪意のある別のWebページを開いたとします。その悪意のあるページには、ショッピングサイトへ勝手にリクエストを送る仕掛けが入っていることがあります。

その結果、利用者本人は何も操作したつもりがなくても、ログイン中の状態を悪用されて、次のような操作を実行されるおそれがあります。

  • 商品を購入される
  • 登録情報を変更される
  • 退会処理をされる
  • パスワードやメールアドレスを変更される

つまりCSRFは、「ログイン済みの利用者になりすまして、勝手に操作を実行させる攻撃」です。

CSRFを防ぐには、重要な操作を確定する前に、「本当に本人が意図して行った操作なのか」を確認する仕組みが必要です。主な対策には、次のようなものがあります。

対策 効果
CSRFトークンを使う Webサイト側が、画面ごとに特別な合言葉のような値を用意します。 正しい画面から送られたリクエストだけを受け付けることで、不正な操作を防ぎます。
パスワードを再入力させる 退会・決済・メールアドレス変更などの重要な操作では、もう一度パスワードを入力させます。 これにより、勝手に送られたリクエストだけでは処理を完了できなくなります。
リファラーを確認する リファラーとは、「どのページからリクエストが送られてきたか」という情報です。 正しいWebサイトの画面から送られてきたかを確認し、不審な場所からのリクエストを拒否します。

まとめると、CSRFは「利用者がログイン中であることを悪用し、別のサイトから勝手に操作を実行させる攻撃」です。

そのため、Webサイト側では、重要な処理の前にトークン・パスワード再入力・リファラー確認などを使って、本人の操作かどうかを確認する必要があります。

したがって、が適切です。

❌他選択肢が誤りの理由
ア:Webサイトでの決済などの重要な操作の都度,利用者のパスワードを入力させる。
⇒重要操作の都度、再認証を行う対策であり、CSRF対策として有効です。
イ:Webサイトへのログイン後,毎回異なる値をHTTPレスポンスボディに含め,Webブラウザからのリクエストごとに送付されるその値を,Webサーバ側で照合する。
⇒CSRFトークンを用いた対策です。リクエストが正規の画面から送られたものかを確認できるため、CSRF対策として有効です。
ウ:Webブラウザからのリクエスト中のRefererによって正しいリンク元からの遷移であることを確認する。
⇒Referer確認による対策です。完全ではありませんが、CSRF対策として一定の効果があります。
TSUNAGARU-ADVICE

まず押さえたいこと

CSRF対策では、リクエストが正規の利用者から送られたものかだけでなく、利用者本人の意思に基づいて送信されたものかを確認することが重要です。

迷ったときの判断軸

パスワードの再入力、トークンの照合、Refererの確認は、利用者の意思や正しい遷移を確認する対策になります。一方で、特殊文字を置き換える処理はXSS対策であり、CSRF対策にはなりません。攻撃の成立条件が異なると整理すると判断しやすくなります。

科目Bにつなげるために

科目Bでは、Web攻撃の対策を暗記するだけでなく、その対策が何を防いでいるのかを対応付けて判断する力が問われます。CSRFは意図しないリクエスト送信、XSSはスクリプト実行やHTML解釈の悪用として切り分けて理解しておきましょう。