sg security_general threat_vulnerability unauthorized_access data_leakage sg-security-overview
まず結論
クロスサイトリクエストフォージェリ(CSRF)は、ログイン済みの利用者になりすまして、意図しないリクエストを送らせる攻撃です。
SG試験では「本人の操作に見せかける攻撃かどうか」を見抜けるかがポイントになります。
直感的な説明
イメージとしては、
- 銀行にログインしたまま別のサイトを見る
- そのサイトに「見えない送金ボタン」が仕込まれている
- 気づかないうちに送金リクエストが実行される
という状態です。
ポイントは
👉 自分は何もしていないのに、勝手に操作が行われること
です。
定義・仕組み
クロスサイトリクエストフォージェリ(CSRF)は、
- 利用者がログイン済みの状態を利用して
- 攻撃者が用意したページやリンクを踏ませ
- 正規のWebサイトに対して不正なリクエストを送らせる
攻撃です。
仕組みの流れ
- 利用者が正規サイトにログイン(Cookie保持)
- 攻撃者のページを閲覧
- 見えない形でリクエスト送信(例:送金・設定変更)
- サーバは「ログイン済みユーザの操作」と誤認
重要ポイント
- サーバ側は「正規ユーザの通信」と区別できない
- 攻撃の成立条件は「ログイン状態」
どんな場面で使う?
起きやすい場面
- ログイン状態を保持するWebサービス
- 銀行
- ECサイト
- SNS
- ワンクリックで実行される処理
- 送金
- パスワード変更
- メール変更
現場での対策の考え方
- トークン(CSRFトークン)の付与
- 再認証(重要操作時)
- Refererチェック
👉 「その操作、本当にユーザ本人が意図した?」を確認する仕組みが重要
よくある誤解・混同
❌ XSSと混同する
- XSS:スクリプトを実行させる攻撃
- CSRF:ユーザの操作を悪用する攻撃
👉 SG試験ではここをよく狙われます
❌ 「不正アクセス」だと考える
- CSRFはログイン済みユーザを利用する
- ID・パスワードを破るわけではない
👉 「なりすまし操作」がキーワード
❌ 「ユーザが怪しい操作をした」と思う
- 実際はユーザは気づいていない
👉 「本人の意思ではない」が重要
確認問題(SG試験対策)
次のうち、最も適切なものはどれか。
A. CSRFは、閲覧者のブラウザで不正スクリプトを実行させることでCookieを盗む攻撃である。
B. CSRF対策として、重要処理のリクエスト時にCSRFトークンを確認する方法が有効である。
C. CSRFは、通信経路を盗聴してパケット内容を改ざんする攻撃である。
D. CSRF対策は、ログイン失敗回数の制限だけで十分である。
答えと解説を見る
正解:B
解説
- A:誤り。これはXSSの説明に近く、CSRFの本質(ログイン状態を悪用した不正操作)とは異なります。
- B:正しい。CSRFは「正規サイトへの不正リクエスト送信」を防ぐ必要があり、トークン検証が有効です。
- C:誤り。これは中間者攻撃に関する説明で、CSRFの攻撃手法ではありません。
- D:誤り。ログイン失敗回数制限は総当たり攻撃対策であり、CSRFの主要対策にはなりません。
👉 判断ポイント
「不正スクリプト実行(XSS)」か「ログイン状態の悪用(CSRF)」かで切り分ける。
まとめ(試験直前用)
- CSRF=ログイン状態を悪用したなりすまし操作
- サーバは正規ユーザの操作と区別できない
- XSSは「スクリプト実行」、CSRFは「リクエスト悪用」
- 選択肢で「本人の意思でない操作」があればCSRFを疑う
🔗 関連記事
- 攻撃者の種類とは?目的と特徴で整理する【情報セキュリティマネジメント】
- 認証方式とは?3要素と多要素認証を整理【SG試験】
- ブラックリストとホワイトリストの違いとは?判断基準を整理【情報セキュリティマネジメント】
- ブロック暗号とストリーム暗号の違いとは?暗号方式を整理【SG試験】
- ボットとは?遠隔操作される仕組みを理解する【情報セキュリティマネジメント】