問1 CSRF に効かない対策

情報処理​安全確保​支援士 令和6年度 春期 午前II、全25問のうちの問1。

出典:令和6年度 春期 情報処理安全確保支援士試験 午前II 問1

クロスサイトリクエストフォージェリ攻撃の対策として,効果がないものはどれか。

  1. アWeb サイトでの決済などの重要な操作の都度,利用者のパスワードを入力させる。
  2. イWeb サイトへのログイン後,毎回異なる値を HTTP レスポンスボディに含め,Web ブラウザからのリクエストごとに送付されるその値を,Web サーバ側で照合する。
  3. ウWeb ブラウザからのリクエスト中の Referer によって正しいリンク元からの遷移であることを確認する。
  4. エWeb ブラウザからのリクエストを Web サーバで受け付けた際に,リクエストに含まれる“<”,“>”などの特殊文字を,“&lt;”,“&gt;”などの文字列に置き換える。
答えと解説を開く

正解はエです。

CSRF は、ログイン中の利用者に罠のページを開かせ、そのブラウザから本物のサイトへ、利用者の意図しないリクエストを送らせる攻撃です。リクエストには利用者の cookie が付くので、サーバからは本人の操作に見えます。対策は、そのリクエストが本当に自分のサイトの画面から出たものかを確かめることです。エの特殊文字の置き換え (エスケープ) は、送られてきた文字を画面に出すときにスクリプトとして動かないようにする XSS の対策で、リクエストの出どころは確かめません。正解はエです。

ほかの選択肢が違う理由

  • ア重要な操作のたびにパスワードを入れさせると、罠のページはパスワードを知らないので、偽のリクエストを完成させられません。CSRF の対策になります。
  • イ画面ごとに推測できない値 (トークン) を埋め込み、送られてきた値と照合する方法です。罠のページはその値を知らないので、CSRF の代表的な対策になります。
  • ウReferer を見ると、リクエストがどのページから来たかが分かります。自分のサイト以外から来たリクエストを断れるので、CSRF の対策になります。

仕組み

CSRF の要点は、攻撃者が利用者の cookie を盗まなくてよいことです。ブラウザが cookie を自動で付けて送るので、利用者のブラウザに送らせるだけで成り立ちます。

今のブラウザでは、cookie に SameSite 属性の Strict か Lax を付けると、ほかのサイトから送られる POST などのリクエストに cookie が付かなくなります。Lax では、ほかのサイトのリンクから移る GET には付きます。トークンの照合と組み合わせると、さらに確かになります。

この問に出る言葉