「クロスサイトリクエストフォージェリ(CSRF)」は、Webサイトのユーザーと運営企業の双方に大きな被害をもたらすサイバー攻撃です。
古くから存在するサイバー攻撃ながら、昨今でも多くのWebサイトがCSRF攻撃の被害を受けています。
Webサイトを運営する全ての企業にとって、適切なCSRF対策を講じることが重要です。
そこで今回は、クロスサイトリクエストフォージェリとは何か、基本からわかりやすく解説します。本記事で手口や対策を知っておきましょう。
- もくじ
1.クロスサイトリクエストフォージェリ(CSRF)とは
クロスサイトリクエストフォージェリ(CSRF)とは、特定Webサイトへの不正なリクエスト(要求)を、ユーザーに送信させる攻撃のことです。
フォージェリ(forgery)には「偽造」といった意味があります。正当なユーザーの認証情報を悪用し、Webサイトへのリクエストを偽造するのです。
CSRF対策が不十分な場合、ログイン済みユーザーからの正当なリクエストと誤認しかねません。
そうなれば、高額な決済などの不正な操作・取引が行われてしまいます。CSRF攻撃はWebサイトの黎明期から存在しますが、依然として被害企業が後を絶ちません。
クロスサイトスクリプティング(XSS)との違い
クロスサイトリクエストフォージェリと名前の似ているサイバー攻撃に「クロスサイトスクリプティング(XSS)」があります。両者の違いを押さえておきましょう。
クロスサイトスクリプティングとは、特定のWebサイトに不正なスクリプト(プログラム)を埋め込み、ユーザーに実行させるサイバー攻撃のことです。XSS攻撃は、ユーザーのブラウザ上でスクリプトを実行させることで、個人情報の不正取得などを図ります。
XSS攻撃とCSRF攻撃では、攻撃者が狙いとする脆弱性が違います。XSS攻撃は、ユーザーからの入力データやWebページへの出力データが適切にケアされていない弱みを突き、スクリプトを埋め込むものです。つまり、入出力処理の不備を突いた攻撃といえます。
一方でCSRF攻撃は、「セッション管理」の不備を突いた攻撃です。セッション管理とは、ユーザーとの一連のやり取り(セッション)に関する情報を正しく保持・更新・破棄する仕組みを指します。セッション管理が不適切だと、ユーザーのセッション情報を攻撃者が悪用できてしまい、不正な操作・取引が成立するのです。
なお、クロスサイトスクリプティングについて詳しくは、次の記事をご覧ください。
2.クロスサイトリクエストフォージェリ(CSRF)の代表的な手口
クロスサイトリクエストフォージェリ(CSRF)の代表的な手口を見ていきましょう。
CSRF攻撃では多くの場合、まず攻撃者が偽のWebサイトを用意します。この偽サイトに、正当な標的サイトへ偽リクエストを送るためのスクリプトを仕込むのです。ユーザーを信用させるために、実在するWebサイトを模倣するケースも珍しくありません。
次に、偽サイトへのリンクを含むメールやSMSなどを送ります。偽サイトへ誘導するために、受信者を不安にさせる文章を添えることが多いです。特定の標的者にターゲットを絞らず、不特定多数の人々へ送ります。あくまで標的はWebサイトであり、攻撃が成立する条件(特定サイトの会員など)さえ満たしていれば、ユーザーは特定の個人に限定されません。
ユーザーが誤って偽サイトへアクセスしたり、ボタンをクリックしたりした場合、不正なリクエストが送信されます。ただし、ユーザーが標的サイトのアカウントを持ち、かつログイン中でなければ成功しません。ユーザーが不正なリクエストを送った場合、正当な認証情報が送られ、標的サイトが不正な操作・取引を許可してしまう恐れがあります。
このように、ログイン中のユーザーをだまして不正なリクエストを標的サイトへ送らせるのがCSRF攻撃の手口です。
3.クロスサイトリクエストフォージェリ(CSRF)の標的にされやすいWebサイトの特徴
クロスサイトリクエストフォージェリ(CSRF)において、どのようなWebサイトが標的となるのでしょうか。ここでは、CSRF攻撃の標的にされやすいWebサイトの特徴を4つ紹介します。
3-1 セッション管理にCookieを用いている
やや具体的な話となりますが、セッション管理に「Cookie」を用いているWebサイトはCSRF攻撃の標的にされやすいといえます。Cookieとは、ユーザーのブラウザにWebサイトの利用情報を保存する仕組みです。
一般的に、セッション管理にCookieを用いる場合、セッションを識別する「セッションID」がブラウザに保存されます。CSRF攻撃では、このセッションIDが悪用されやすいのです。
セッション管理にCookieを用いる手法はごく一般的であり、非常に多くのWebサイトが該当します。そのため、Webサイトの種類に関わらずセッション管理の徹底・見直しが大切です。
3-2 ユーザーが多い
ユーザーが多いWebサイトは、CSRF攻撃の標的にされやすいといえます。
ログインしたまま放置しているユーザーも必然的に多くなるためです。CSRF攻撃の成立条件に該当する人々が多ければ、攻撃の成功チャンスも多いでしょう。
3-3 長期間のログインが許容されている
長期間のログインが許容されているWebサイトも標的にされやすいです。
ログインしたまま放置しているユーザーが多くなり、CSRF攻撃が成功しやすくなってしまいます。
3-4 重要な取引を行える
決済などの重要な取引を行えるWebサイトも危険です。攻撃者の多くは、不正な取引により金銭や物品を得たいと考えるでしょう。
重要な取引を行えるWebサイトは、CSRF攻撃成功時のリターンが大きくなるため、標的にされやすいといえます。
4.クロスサイトリクエストフォージェリ(CSRF)攻撃により懸念される被害
クロスサイトリクエストフォージェリ(CSRF)が成功すると、Webサイトのユーザーにも、その運営企業にも直接的な被害が懸念されます。CSRF攻撃により懸念される被害について、事例も交えて見ていきましょう。
4-1 不正な取引の実行
CSRF攻撃が成功すると、Webサイトで不正な取引が実行される恐れがあります。
ユーザーの正当な認証情報を用いるため、ログイン中のユーザーにしか行えない決済などの取引も成立してしまいます。そうなれば、ユーザーは多額の金銭を失いかねません。
また、自社の販売サイトなどが不当な発注を受理した場合、運営企業は在庫を失うばかりか、商品代金を回収できなかったり、商品発送などの人件費をロスしたりすることになります。
4-2 Webサイトでの迷惑行為
CSRF攻撃が成功すると、Webサイトで迷惑行為を働かれる恐れがあります。攻撃者はユーザーの認証情報を悪用するため、ログイン者しか行えない操作も可能です。
たとえば、掲示板に悪意のある書き込みをしたり、被害ユーザーの設定を不正に変更したりできます。
最悪の場合、被害ユーザーが誤認逮捕されてしまうケースもあります。ある地方自治体の事例では、CSRF攻撃によってホームページに殺害予告が書き込まれ、被害ユーザーが誤認逮捕されてしまいました。
4-3 ユーザーからの信頼失墜
ユーザーが不正な取引や迷惑行為により被害を受ければ、Webサイトの信頼は失墜してしまいます。
前述のように、ユーザーの多いWebサイトが標的となることは珍しくありません。人気WebサイトがCSRF攻撃を許せば、メディアで大々的に報じられるでしょう。
その結果、「危険なWebサイト」とレッテルを貼られかねません。
また、Webサイトや運営企業の規模に関わらず、ステークホルダーへの報告は必要です。信頼性の低い企業として評価が下がれば、ユーザーや取引先の離反も懸念されます。
4-4 対応にともなう金銭的損失
CSRF攻撃を受けたWebサイトの運営企業は、対応にともない多額の金銭を失うことになります。
ユーザーが不正送金や誤認逮捕といった被害を受けた場合、Webサイトの運営企業が訴訟を起こされても不思議はありません。
ステークホルダーへの謝罪や報告にともなう人件費、裁判費用など、さまざまな金銭的損失が運営企業にとって痛手となるでしょう。
5.クロスサイトリクエストフォージェリ(CSRF)を防ぐための対策方法
クロスサイトリクエストフォージェリ(CSRF)のリスクは、適切な対策を施すことで軽減できます。CSRF攻撃を防ぐための主な対策方法3つを知っておきましょう。
5‐1 CSRFトークンを活用する
昨今では「CSRFトークン」を活用するCSRF対策がポピュラーです。まずはCSRFトークンの活用を考えましょう。
CSRFトークンとは、セッション(ユーザーとのやり取り)ごとにランダムな文字列を生成し、一時的に使える「証明書」として扱う仕組みです。
Webサイトのサーバー側では、セッションを作成する際にCSRFトークンを発行してWebページに埋め込み、ユーザーに送信します。このとき、画面上に表示されない「hiddenパラメータ」として送ることが一般的です。
ユーザーが同じWebサイトへ再度アクセスする際、CSRFトークンを含めてサーバー側へ送信します。送信されたCSRFトークンがサーバー側の保存内容と一致しなければ、偽リクエストと判断するのです。攻撃者は、サーバー側に保存されたCSRFトークンを把握できない限り偽造できないため、偽リクエストの作成が困難になります。
主要なプログラミング言語のライブラリやフレームワークの多くは、CSRFトークンに対応しています。そのため、ほかの方法と比べて実装しやすいでしょう。
5‐2 Refererをチェックする
Webサイトのサーバー側で「Referer」をチェックすることも有効です。Refererはユーザーからのリクエストに含まれる情報の1つで、ユーザーが直前に遷移したリンクのURLが格納されます。
ユーザーがWebサイト上で通常の画面遷移を行った場合、Refererには同じWebサイト内のURLが格納されるはずです。
しかし、攻撃者が偽サイトから不正なリクエストを送らせたとすれば、偽サイト内のURLが格納されるでしょう。つまり、RefererのURLを確認すれば、ユーザーによる正当なリクエストかどうかチェックできるのです。
ただし、ユーザーがRefererを送信しないように設定していると、正当なユーザーの利用が阻害されるケースもあります。Refererの利用時には注意しましょう。
5‐3 重要な手続きの直前にパスワード認証を追加する
決済のように重要な手続きを行う直前にパスワード認証を追加することも、1つの手段です。
認証プロセスを追加すれば、リクエストされた手続きが即時で受理される心配がありません。ユーザーが入力したパスワードが正しかった場合のみ手続きを実行できます。
想定していないタイミングでパスワード認証画面が表示されることで、ユーザーが異常に気付きやすくなるでしょう。ただし、この対策を施す場合、Webサイトの画面設計から見直しが必要となるデメリットがあります。
6.ユーザーが被害を受けないための対策方法
クロスサイトリクエストフォージェリ(CSRF)は、Webサイトの運営企業だけでなく、あらゆる個人が被害を受けうる脅威です。Webサイトのユーザー視点で被害を受けないための対策方法2つも知っておきましょう。
6-1 発信元が信頼できないリンクなどをクリックしない
CSRF攻撃は、ユーザーがメールやSMSなどのリンクをクリックし、偽サイトを訪問することによって引き起こされるケースが多く見受けられます。
そのため、発信元が信頼できないリンクなどをクリックしないようにしましょう。
6-2 決済などの連絡がないか定期的にチェックする
一般的なWebサイトでは、重要な取引の際にメールを送信することが一般的です。
仮にCSRF攻撃を受けた場合は、身に覚えのないメールが届いているかもしれません。
連絡先として使っているメールアドレスに、決済などの連絡がないか定期的にチェックするとよいでしょう。異常を早期発見できれば、カード会社への連絡といった事後対応を迅速に行えます。
7.効率よくクロスサイトリクエストフォージェリ(CSRF)対策を施すためには
クロスサイトリクエストフォージェリ(CSRF)の対策を施す場合、まずは脆弱性(セキュリティ上の弱み)を特定する必要があります。脆弱性の特定には、セキュリティやプログラミングなどの専門知識が要求されるため、決して容易ではありません。
効率よくCSRF対策を施したい場合は、脆弱性診断サービスの活用がおすすめです。サイバー攻撃の脆弱性や手口を熟知したセキュリティのプロに力を借りることで、CSRF攻撃に限らず幅広い脆弱性を検出できます。また、対策のアドバイスも得られるでしょう。
なお、当サイトを運営するバルテスでも、Web・モバイル・IoTデバイスなどの幅広いIT資産の脆弱性診断サービスを提供しています。ツールによる効率性の高い診断に、プロによる確実性の高い手動診断を組み合わせたサービスです。
「CSRF攻撃を自社だけで防げるか不安」「労力をかけずに高品質な診断結果を得たい」といった場合は、ぜひご利用ください。
また、継続的にクロスサイトリクエストフォージェリ等の攻撃を防ぐためにはWAFの導入も検討しましょう。
WAFとは、ネットワークを介した攻撃を防ぐ、Webアプリケーションに特化したセキュリティ対策です。ファイアウォールやIPSでは防ぎきれなかった不正アクセスを判別し、Webアプリケーションを保護できる強みがあります。
そのため、クロスサイトリクエストフォージェリのようなWebサイトを狙った攻撃にも有効です。
バルテスでもクラウド型のWAFサービスを提供しています。良心価格で使いやすいツールとなっていますので、まずはトライアルからお試しください!
まとめ
クロスサイトリクエストフォージェリ(CSRF)とは、特定Webサイトへの不正なリクエストを、ユーザーに送信させる攻撃のことです。
CSRF攻撃を受けると、ユーザーが不正送金や誤認逮捕といった被害を受けることもあり、Webサイトの信頼失墜が懸念されます。
CSRF攻撃を防ぐためには、正しい対策方法を知り、早期に対策することが大切です。CSRF対策を講じる際には、今回の内容をぜひ参考にしてください。
なお、WebサイトはCSRF攻撃以外にもさまざまなサイバー攻撃の標的となります。そのため、CSRF攻撃への脆弱性に対処するだけでは不十分です。Webサイトの脆弱性について理解を深め、効果的に対策したい場合は、弊社の脆弱性に関するレポートをご覧ください。