XSRF攻撃の対策で効果がないも|情報処理安全確保支援士 平成31年 春期午前Ⅱ試験 問10

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

クロスサイトリクエストフォージェリ(CSRF)攻撃は、ログイン済みの利用者をだまして、利用者の意図しないリクエストをWebサイトへ送信させる攻撃です。

CSRF

選択肢エの特殊文字を「&lt;」や「&gt;」などへ置き換える処理は、入力内容がHTMLタグやスクリプトとして解釈されることを防ぐための対策です。主にクロスサイトスクリプティング(XSS)への対策であり、第三者サイトから不正なリクエストを送信させるCSRF攻撃には効果がありません。

したがって、が効果のない対策です。

❌他選択肢が効果のある理由
ア:Webサイトでの決済などの重要な操作の都度,利用者のパスワードを入力させる。
⇒攻撃者は通常、利用者のパスワードを把握していないため、重要な操作の直前に再認証を求めることで、利用者の意図しない処理の実行を防ぎやすくなります。
イ:Webサイトへのログイン後,毎回異なる値をHTTPレスポンスに含め,Webブラウザからのリクエストごとに送付されるその値を,Webサーバ側で照合する。
⇒CSRFトークンを利用する対策です。攻撃者が推測できない値を正規の画面に埋め込み、リクエスト時に照合することで、外部サイトから作成された不正なリクエストを拒否できます。
ウ:Webブラウザからのリクエスト中のRefererによって正しいリンク元からの遷移であることを確認する。
⇒Refererを確認し、自サイトの正規画面から送信されたリクエストかどうかを判定することで、外部サイトを起点とする不正なリクエストを拒否できます。ただし、Refererが送信されない場合もあるため、一般にはCSRFトークンなどと組み合わせます。
TSUNAGARU-ADVICE

まず押さえたいこと

クロスサイトリクエストフォージェリ(CSRF)は、ログイン済みの利用者に意図しないリクエストを送らせ、重要な操作を実行させる攻撃です。対策では、リクエストが本当に利用者の意思で送られたものかを確認するため、再認証・CSRFトークン・Referer確認などが有効です。

迷ったときの判断軸

重要操作の都度パスワードを入力させる方法、毎回異なる値を照合するCSRFトークン、Refererによる遷移元確認は、CSRF対策として使われます。一方、「<」や「>」などの特殊文字を無害化する処理は、主にXSS対策です。CSRFでは、不正なリクエスト送信を防ぐ対策かどうかで判断しましょう。

科目Bにつなげるために

科目Bでは、CSRF・XSS・SQLインジェクションなどの対策が混同されやすく出題されます。CSRFは「利用者の権限で勝手にリクエストを送らせる攻撃」、XSSは「ブラウザ上で不正スクリプトを実行させる攻撃」と整理し、攻撃がどこで成立するかを意識しましょう。