CSRFとは?
しーえすあーるえふ
CSRFとは、ユーザーが意図しないリクエストを悪意あるサイトから正規サービスへ送信させるWebセキュリティ攻撃手法です。
CSRF(Cross-Site Request Forgery:クロスサイトリクエストフォージェリ)は、ユーザーがログイン済みのWebサービスに対し、悪意あるサイトや仕掛けを通じて本人の意図しないリクエストを送らせるサイバー攻撃です。セッションハイジャックとは異なり、セッション情報自体を盗むのではなく、ブラウザが自動的にCookieを送付する仕組みを悪用します。
典型的な攻撃の流れは以下の通りです。
- 被害者が銀行サイトAにログイン中(CookieにセッションIDが存在)
- 攻撃者が用意した罠サイトに被害者がアクセスする
- 罠サイトが銀行サイトAへの送金リクエストを自動送信する
- ブラウザが自動的にCookieを付けてリクエストを送るため、銀行サイトは正規ユーザーのリクエストと判断してしまう
主な対策方法は以下の通りです。
- CSRFトークン:フォームに推測不能なトークンを埋め込み、サーバー側で検証する
- SameSite Cookie属性:クロスサイトリクエスト時のCookie送信を制限する
- OriginヘッダーやRefererヘッダーの検証
- ダブルサブミットCookieパターン
LaravelやRailsなどの主要WebフレームワークはデフォルトでCSRF対策を組み込んでいますが、APIとフロントエンドを分離した構成では個別の対策が必要です。OWASPが重大なセキュリティリスクとして長年挙げている脆弱性のひとつです。
使い方・例文
ログイン中のSNSサービスで、別のサイトに置かれた画像タグやフォームが自動送信されて意図せず「フォロー」や「投稿」が行われてしまう事例がCSRFの典型例です。CSRFトークンによってこのような攻撃を防げます。
この用語をシェア
最終更新: