情報セキュリティ

基本情報技術者試験クロスサイトリクエストフォージェリ」の問題

情報セキュリティ情報セキュリティ難易度:hard
ある会員サイトの送金処理にCSRF対策としてトークンを導入することになった。開発者が以下の実装案を検討している。CSRF対策として有効に機能する実装はどれか。
毎回異なる予測困難な値をフォーム本文に埋め込んで送らせ、サーバ保持値との一致を確かめる。
フォーム表示のたびに誰でも分かる決まった文字列を埋め込んでおき、送信時にその文字列が含まれているかどうかだけを確かめる。
値はCookieだけに入れて送らせ、サーバはそのCookie中に値が存在しているかどうかだけを確かめる。
金額や宛先が大きい送金にだけ値を付与し、少額の送金では付与を省いて手続きを簡素にする。
正解
毎回異なる予測困難な値をフォーム本文に埋め込んで送らせ、サーバ保持値との一致を確かめる。

CSRFトークンは『正規画面からの要求でしか持ち得ない秘密の値』である必要がある。毎回異なる予測困難な値をフォーム本文に埋め込んでサーバ保持値と突き合わせれば、外部の罠サイトはその値を知り得ず偽要求を送れない。秘匿性・一意性・サーバ側照合の三点を満たす本案が有効である。

?選択肢ごとの解説

ウ ○CSRFトークンは『正規画面からの要求でしか持ち得ない秘密の値』である必要がある。毎回異なる予測困難な値をフォーム本文に埋め込んでサーバ保持値と突き合わせれば、外部の罠サイトはその値を知り得ず偽要求を送れない。秘匿性・一意性・サーバ側照合の三点を満たす本案が有効である。
ア ×誰でも分かる決まった文字列は予測可能な値であり、攻撃者が偽要求に同じ文字列を含めれば検証を通過してしまうため対策にならない。
イ ×値をCookieにのみ入れて存在確認するだけでは、ブラウザがCSRF要求時にもCookieを自動送信するため、攻撃者の偽要求でも値が付与され検証を通過してしまう…
エ ×金額で対策を出し分けると、少額の送金や攻撃者が選ぶ条件では値の付与が省かれ防御に穴が生じるため、全要求を一律に保護しなければCSRFは防げない。
この問題の「深掘り・誤答の完全解説・試験のコツ・覚え方」はアプリで。

基本情報技術者試験の全問を、一問ごとにAIの8-ways解説つきで。SRS暗記カード・全真模試・弱点診断まで。まずは無料で。

無料ではじめる →

作成・校閲:ukamiru編集部 · 基本情報技術者試験 過去問 · fe-b-sec-0099

【基本情報技術者試験】クロスサイトリクエストフォージェリの問題と解答・解説|ukamiru 過去問