クロスサイトリクエストフォージェリ(CSRF)
クロスサイトリクエストフォージェリ(CSRF)は、Webアプリケーションの脆弱性を悪用するWebベースの攻撃手法です。CSRFという用語は、脆弱性そのものを直接指す場合もあります。
WebアプリケーションにCSRF脆弱性がある場合、攻撃者は正規ユーザーを欺き、明示的な同意なしに、脆弱なサイト上で意図しない操作を実行させる可能性があります。想定される影響には、ユーザーデータの変更、データの意図しない削除や改変、不正な取引の実行、対象アプリケーション内での未承認の操作の開始などがあります。
一般的なCSRF攻撃は、次のように進行します。
- 攻撃者は、標的とするアプリケーションのユーザーを誘導し、その攻撃用に特別に作成した悪意のあるWebページにアクセスさせます。
- 被害者がこの悪意のあるページにアクセスすると、攻撃者は脆弱なアプリケーションに対して不正なPOSTリクエストを発生させます(場合によっては、ユーザーがそれ以上操作しなくても、Webページにアクセスしただけで悪意のあるリクエストが発生することがあります)。
- 標的となったアプリケーションが不正なPOSTリクエストを処理し、認証済みユーザーに代わって意図しない操作を実行します。
CSRF攻撃を緩和するには、アプリケーションで受信したPOSTリクエストの正当性を検証する必要があります。広く採用されている方法の1つは、「nonce」値(「number used once」)と呼ばれるトークンを実装することです。nonceは、ユーザーのリクエストに応じて正規のHTTPフォームに埋め込まれる、一意のランダム生成識別子です。その後POSTが送信されると、アプリケーションはnonceを検証し、リクエストの真正性と完全性を確認します。
正当なGETリクエストに応答してフォームを送信する際、サーバーは一意で予測不可能なnonce値を含めます。クライアントから対応するPOSTリクエストを受信すると、アプリケーションはnonceを検証し、リクエストが改ざんされておらず正当なものであることを確認します。
さらに、F5 BIG-IP Application Security Managerが提供するWeb Application Firewall(WAF)などのセキュリティソリューションは、悪意のあるリクエストを特定してブロックし、CSRF脆弱性の悪用を防ぐうえで非常に効果的です。

