本文へ移動

くろすさいとりくえすとふぉーじぇり

クロスサイトリクエストフォージェリ

CSRF = Cross-Site Request Forgery

ログイン中のWebサイトに対して、ユーザーが意図しないリクエストを送信させる攻撃です。

詳しい説明

1. 定義

クロスサイトリクエストフォージェリとは、ログイン中のユーザーに対して、意図しないWebサイトでの操作を行わせる攻撃です。ユーザーが既にログインしているWebサイトの権限を悪用し、掲示板への書き込みやパスワードの変更などを実行させます。

2. 仕組みと種類

攻撃者が用意した罠のWebサイトにユーザーがアクセスすると、ブラウザが自動的にログイン中のWebサイトに対してリクエストを送信してしまいます。ユーザーは操作したつもりがなくても、裏側で勝手に処理が完了してしまいます。

これは、Webサイトがリクエストの送信元を適切に検証していない場合に発生します。ユーザーは正規のユーザーとして認証されているため、Webサイト側はリクエストを正当なものと判断して処理を実行してしまうため、被害が防ぎにくいのが特徴です。

3. 試験ごとの視点

情報セキュリティマネジメント試験や基本情報技術者試験では、Web認証の脆弱性として問われます。クロスサイトスクリプティングがブラウザでスクリプトを実行させるのに対し、クロスサイトリクエストフォージェリはブラウザにリクエストを強制送信させるという違いを明確にする必要があります。

4. 紛らわしい語との違い

クロスサイトスクリプティングは、Webサイトの表示内容を改ざんしたり情報を盗んだりしますが、クロスサイトリクエストフォージェリは、ユーザーの権限で勝手に操作を行わせることが主目的です。両者ともWebサイトの認証状態を悪用する攻撃として対比されます。

5. 身近な例

ログインしたままの会員制サイトで、罠サイトにアクセスしただけで、勝手に退会手続きが完了していたり、パスワードが変更されていたりするケースが挙げられます。本人に気づかれないうちに操作されるのが脅威です。

試験で問われること

情報セキュリティマネジメント試験

  • ユーザーのログイン状態(セッション)を悪用する攻撃である。
  • 意図しないリクエストをWebサイトに送信させ、不正な操作を行わせる。
  • クロスサイトスクリプティング(ブラウザで不正コード実行)と混同しないよう注意する。

基本情報技術者試験

  • 攻撃の仕組みとして、正規サイトへの自動的なリクエスト送出が問われる。
  • 対策として、リクエストに秘密のトークンを付与する方式が有効である。
  • ログイン状態を悪用する攻撃として代表的である。