CSRFの原理と対策を簡単に解説

male Icon

CSRFって、CSVファイルの進化版みたいなものでしょ?

違うよ!それはただの表データ!
CSRFは、自分が意図しない操作を勝手に実行させられてしまう、とても危険な攻撃なの

female Icon

male Icon

じゃあ“勝手に見積書.csvが上司に送られる”かんじ?

まぁ…近いけど現実なら大惨事!
今日はCSRFの原理と対策、ちゃんと解説するね

female Icon

CSRF(クロスサイトリクエストフォージェリ)とは?

CSRF(クロスサイトリクエストフォージェリ)とは、Webアプリケーションのセキュリティ上の脆弱性を突くサイバー攻撃の一つです。ユーザーの意図とは異なるリクエストを、ユーザーの権限で送信させる点が特徴です。

CSRFでは、例えば、自身のネットバンキングにログインした状態のユーザーに対し、攻撃者が悪意あるWebサイトへのアクセスを誘導します。ネットバンキングにログインしたままのユーザーが、攻撃者が仕掛けたWebサイトでリンクをクリックするなどの操作をすることで、セッション情報が悪用され、知らないうちに攻撃者への送金処理が実行されてしまうことがあります。

CSRFの特徴は、攻撃者がユーザーのログイン情報を直接盗むのではなく、既にログイン中のユーザーのセッションを悪用する点にあります。

CSRF(クロスサイトリクエストフォージェリ)の仕組み

CSRFはどのような仕組みで攻撃されるのでしょうか。IPA(情報処理推進機構)の情報をもとに、以下に、CSRF攻撃の基本的な流れを紹介します。

CSRF攻撃の仕組み

  1. ユーザーが信頼されたWebアプリケーションにログインします。
  2. Webアプリケーション側が、セッションIDを発行します。
  3. ユーザーはログアウトせずに、ログインした状態を維持します。
  4. ユーザーはログインした状態のまま、攻撃者の用意した悪意あるサイト等にアクセスします。
  5. ユーザーが悪意あるサイトで、リンクのクリックなどを実行することで、攻撃者の仕込んだ不正なリクエストを送信します。
  6. Webアプリケーションは不正なリクエストを、正当なリクエストとして処理します。その結果、ユーザーの意図しない処理(不正送金、購入など)が実行されてしまいます。

このように、CSRF攻撃ではユーザーが意図しない形で権限のある操作を実行されてしまいます。

参考:IPA(情報処理推進機構)安全なウェブサイトの作り方 – 1.6 CSRF(クロスサイト・リクエスト・フォージェリ)

CSRF(クロスサイトリクエストフォージェリ)とXSS(クロスサイトスクリプティング)の違い

CSRFとXSSは、どちらもWebアプリケーションを標的にした攻撃手法ですが、目的と仕組みが異なります。

攻撃 CSRF XSS
目的 不正操作の実行 ユーザー情報の盗難
攻撃方法 ユーザーの認証済みセッションを悪用して、不正なリクエストを送信 悪意のあるスクリプトをWebページに埋め込み、ユーザーのブラウザで実行
攻撃例 アカウント設定変更、不正送金など Cookie情報の漏洩によるセッションIDや個人情報の取得

CSRFは、ログイン中の「ユーザーの認証済みセッションを悪用する」攻撃です。対してXSSは、ユーザーのブラウザで悪意のあるスクリプトを実行させ、Cookie情報にあるセッションIDや個人情報などの「ユーザーの個人情報を狙う」攻撃です。

CSRFとXSSは攻撃のアプローチが異なりますが、どちらもWebサイトやWebアプリケーションにとって深刻な脅威のため、対策が必要不可欠です。

CSRF(クロスサイトリクエストフォージェリ)攻撃の被害

CSRF(クロスサイトリクエストフォージェリ)攻撃は、ユーザーの意図しない操作をユーザーの権限で実行させるサイバー攻撃の一種です。

この攻撃による被害は、ユーザー個人にとどまらず、サービスを提供する企業や組織にまで及ぶ可能性があります。ここでは、CSRF攻撃による代表的な被害について、紹介します。

1、登録情報やパスワードの改ざん

CSRF攻撃により、ユーザーのアカウント情報(管理者画面、パスワード等)が、本人の知らないうちに書き換えられてしまうことがあります。

2、悪意ある書き込みの投稿

掲示板やSNSなど、投稿機能を備えたサイトでは、悪意のある投稿や犯罪予告に利用される場合があります。

3、金銭的被害

ネットバンキングやオンラインショッピングのように金銭のやり取りがあるWebサービスでは、不正送金や勝手な注文処理など、直接的な金銭被害が発生する可能性があります。

4、機密情報の漏洩

CSRF攻撃が企業の管理者向け画面に仕掛けられると、ユーザー情報や業務データといった重要な機密情報が、外部に漏れてしまう恐れがあります。特に、社内システムや管理者権限が関わる領域では、被害が深刻化しやすく注意が必要です。

5、社会的信用の損失

CSRF攻撃によってサービスの安全性が疑問視されると、企業や組織の社会的信用が低下する恐れがあります。

CSRFは正規のユーザー操作に見えるため、防御が難しい攻撃の一つです。企業は適切に対策することが重要です。

CSRF(クロスサイトリクエストフォージェリ)の標的にされやすいWebサイトの特徴

CSRFは、幅広いWebサイトが対象となる恐れがあります。中でも以下のような特徴を持つサイトは、攻撃を受けやすい傾向にあります。

セッション情報を使った認証方式

  • Cookieによるセッション管理
  • Basic認証(ユーザーIDとパスワードでのログイン)
  • SSLクライアント認証

これらの方式は、一度ログインするとブラウザが認証情報を保持したままになるため、セキュリティ対策が不十分な場合、ユーザーが意図しないリクエストでもそのまま通ってしまう可能性があります。

攻撃による影響が大きくなりやすいサイト

特に、ログイン後にユーザーの資産や個人情報に関わる操作を実施するようなWebサイトは、CSRF攻撃の影響が深刻化しやすいと言えます。

  • 金銭的処理が発生するサイト
    ネットバンキング、オンライン証券、ECサイト、オークションサイトなど
  • ログイン後に各種設定や操作が可能なサイト
    管理者向けの管理画面、会員制サービス、個人用のブログ・日記サイトなど

このようなサイトが攻撃された場合、ユーザーが意図しない送金や情報の改ざんといった被害が発生し、サービス提供側にも大きな損失が生じるおそれがあります。

CSRF(クロスサイトリクエストフォージェリ)の対策

深刻な被害をもたらす恐れがあるCSRF攻撃を防ぐためには、効果的な対策を講じることが必要不可欠です。以下に、代表的な対策方法を紹介します。

1、セッションIDと機密情報でリクエストの正当性を判断する

CSRFでは、セッションIDだけでユーザーを認証してしまうと、攻撃者に悪用される可能性があります。そのため、単にセッションIDだけでユーザー認証するのではなく、トークンなどの追加の機密情報と組み合わせてリクエストの正当性を判断する仕組みが必要です。

2、ワンタイムトークンなどを利用する

ワンタイムトークンの利用もCSRF対策として有効です。ワンタイムトークンは、各フォーム送信や重要なリクエストに対して、セッションごとに異なるトークンを発行し、そのトークンが正しいかをサーバー側で確認します。トークンが一致しない場合は、リクエストは拒否されます。セッションごとに異なるトークンを発行するため、攻撃者がトークンを事前に予測するのは難しくなります。

3、Refererヘッダで正しいリンク元かを確認する

リクエスト時に送信されるRefererヘッダを利用することで、リクエストが正しい画面から発行されたものかを判断します。Referer が適切なリンク元を示していない場合や、情報が送られてこない場合には、処理を実施しないことで、不正なアクセスを防ぎます。

ただし、ユーザー側で、ブラウザやパーソナルファイアウォール等の設定でRefererを送信しないようにしている場合、そのサイトを利用できなくなる可能性があります。そのため、補助的な手段として利用し、ワンタイムトークンなど他の対策と併用することが望まれます。

4、脆弱性診断を実施する

CSRFの対策を導入していても、設定ミスや漏れ、特殊な実装による意図しない脆弱性が残っている可能性はゼロではありません。そのため、専門家による脆弱性診断を定期的に実施することが重要です。

脆弱性診断により、開発段階・運用段階では気付きにくい問題を発見し、被害が発生する前に対処することが可能です。

CSRFの対策

まとめ

CSRF(クロスサイトリクエストフォージェリ)は、WebサイトやWebアプリケーションにおいて重大なセキュリティリスクです。ユーザーが意図しない操作を実行させるCSRFは、ユーザーだけでなく、社会的信頼の失墜など企業にも大きな損失を与える可能性があります。

CSRF対策として、技術的な対応に加えて、専門家による定期的な脆弱性診断を実施することで、リスクを効果的に抑えることが可能になります。

株式会社GENZでは、経験豊富な専門家による脆弱性診断サービスを提供しています。

自社の対策が十分かわからない、どの画面が狙われやすいのか不安などのお悩みがある場合は、ぜひ脆弱性診断サービスをご活用ください。

GENZの脆弱性診断について詳しく知りたい方は、こちらをご覧ください。

脆弱性診断サービス詳細

そのほか、システムに関するお悩みがございましたら、お気軽にお問い合わせください。
GENZは、診断やテストを通じて、お客様のシステムの信頼性と品質向上をサポートいたします。

お問い合わせはこちら