インターネットを通じたサイバー攻撃は多く、ウェブサイトは常に狙われていると考えて良いでしょう。ドメインを取得して公開している以上、必ず何らかの攻撃を受けていると言われています。その中にいくつか危険性の高いサイバー攻撃があり、「クロスサイトリクエストフォージェリ(Cross Site Request Forgeries)」もその1つです。
クロスサイトリクエストフォージェリとはどのようなサイバー攻撃なのか?攻撃を受けるとどのような被害が発生するのか?対策方法はないのか?など、本稿ではCSRFについて解説します。
クロスサイトリクエストフォージェリとは?
ウェブアプリケーションの脆弱性を悪用するサイバー攻撃の一種です。文字通り「サイト横断的に(Cross Site)リクエストを偽装(Request Forgeries)する」攻撃です。CSRFと略されシーサーフと呼ばれることが多くなっています。
クロスサイトリクエストフォージェリは、攻撃者が用意した罠サイトによって、リクエストが偽造され、ユーザーが意図しない処理を強制的に実行されてしまう脆弱性、または攻撃手法です。
クロスサイトリクエストフォージェリの仕組み
攻撃者は罠となるサイトを用意し、リンクやメールなどでユーザーを罠サイトへ誘導します。ユーザーが罠サイトにアクセスし、その際にユーザーがターゲットとなるウェブサイトへログイン状態になっていると、気づかないうちにそのウェブサイトに対してログインユーザーのみが利用可能な操作(送金、商品購入、パスワード変更、退会 など)の偽リクエストが送信・実行されてしまうという攻撃です。
また、前述のようなログインした状態のユーザーを狙った攻撃のほかにも、ユーザーの意図しない情報発信を目的としたものもあります。罠サイトにアクセスすることによってSNSや掲示板へ意図しない情報を投稿されてしまい、内容によっては誹謗中傷や誤認逮捕などの被害を受けることが考えられます。
- 強制的にいたずらや犯罪予告などの書き込みをさせられてしまう
- 利用中のウェブサービスなどから強制退会されてしまう
- 登録情報などを強制的に変更されてしまう
罠サイトを経由した悪意のあるリクエストによって、第三者に不正操作されることから、IPAなどではリクエスト強要と表現されています。
CSRFと似たサイバー攻撃にXSS(クロスサイトスクリプティング:Cross Site Scripting)という攻撃があります。名称が似ており罠サイトを経由して攻撃するという点は同じですが、罠サイトにユーザーがアクセスすることで、最終的にブラウザ上で不正なスクリプトを実行させられてしまうXSSに対し、CSRFはユーザーがウェブサイトへログイン状態であることを狙い、罠サイトを経由してターゲットのウェブサイトに偽のリクエストを送信します。
クロスサイトリクエストフォージェリ(CSRF)による被害
CSRFによってユーザーが受ける被害
先述したように、CSRFによりユーザーが意図していない不正なリクエストが送信・実行されてしまいます。
近年ではウェブサービスの利便性を高めるためにログイン状態を維持するユーザーが多く、Facebookや X(旧Twitter)などのSNSを使用する方も多くなっています。このようなサービスや投稿フォームでCSRFによる攻撃が生じると、身に覚えのない投稿をさせられたり誹謗中傷を受けるといった可能性があります。これは、いたずらレベルの内容だけでなく、犯罪予告などに利用された場合には誤認逮捕につながるリスクがあることを意味します。
ほかにもウェブサイトに登録していた情報(パスワードなど)が変更されてしまったり、非公開情報を公開される、退会させられてしまうなど、様々な被害が生じる恐れがあります。
CSRFによってウェブサイト運営者が受ける被害
CSRFのリクエストを受けたウェブサイト運営者は、攻撃の温床となるため、サイバー攻撃の対策を怠っていると捉えられ、ユーザーからや社会的な信頼を失い、ユーザーが離れていくことに繋がります。
CSRFによる被害の事例
過去に、CSRFによる誤認逮捕が発生したことがあります。2012年、インターネット開示版などに小学校襲撃や殺害予告を示唆する投稿がされ、5名が逮捕される事件が起こります。後に一連の事件は全てCSRFが原因で書き込まれたものと判明し、無実が証明されました。事件の1つとなった横浜市ホームページへ書き込まれた小学校襲撃予告は、別のウェブサイトの掲示板に書き込まれたURLをクリックすることで、勝手に書き込まれてしまうものであることがわかりました。その後、真犯人を名乗る者から弁護士や報道機関にメールが届き、警察が捜査を継続したところIT関連会社の男性が逮捕され犯行を認めています。
CSRF対策(ユーザーの取り組み)
ウェブを通じた各種サービスの利便性と安全性のバランスをとるためにも皆がCSRFのリスクを理解し、適切な対策をとる必要があります。ユーザーは攻撃者が用意した罠サイトにアクセスしないことが根本的な対策になりますが、ここでは、ユーザー個人で取り組めるCSRF対策をご紹介します。
1.ウェブサービス利用後はログアウトする
基本的に、CSRFはユーザーがウェブサイトにログインしている状態を狙います。そのため、サービスを利用した後はログアウトすることがユーザーにできる対策の一つとなります。ログイン状態を保持したままにせず、可能な限りログアウトするように心がけましょう。
2.信頼性の低いウェブサイトへアクセスしない
インターネットを使用する上で、信頼性の低いウェブサイトへアクセスしないことは基本中の基本です。ウェブサイトへログインし、何らかのサービスを利用している状態では特に警戒しなければいけません。メールのリンクも同様です。アクセスした先のサイトがCSRFの罠サイトであるかもしれません。「〇〇が当選しました」など、上手い話しや誘惑に騙されず、安易にリンクをクリックしたりしないよう最大限の注意をしましょう。
3.身に覚えがない操作履歴があったらすぐに確認
最大限に警戒することでサイバー攻撃のリスクを減らすことはできます。しかし、情報セキュリティに100%や絶対はないと考えるべきです。万一、身に覚えのない投稿や購入があった場合にはサイト運営者に連絡し、確認と状況説明をするようにしましょう。事態によっては速やかに警察に相談することも大切です。
CSRF対策(ウェブサイト運営者の取り組み)
根本的な解決には、サイト外からのリクエストを処理しないようにウェブアプリケーション側で対策をする必要があります。IPAの「安全なウェブサイトの作り方」を参考に3つの対策を紹介します。
1.トークンによってリクエストの正当性を確認する
「入力 ---> 確認 ---> 登録」のような画面遷移において、CSRFの対策では不正に「登録」されることを防ぐ必要があります。そのため、「確認」画面を表示する際に秘密情報となるトークン(攻撃者に推測されにくい任意の情報)を一緒に「hiddenパラメータ」に出力するようにします。
そして、「登録」が実行されるときにはリクエストに含まれているトークンが一致しているかを確認します。トークンが一致しない場合は、リクエストを処理しないようにすることで攻撃を防ぎます。
2.パスワードの再入力を求める
登録や変更など、重要な処理を実行する前にパスワード認証を行うようにすることでCSRFの対策が可能です。
3.Refererヘッダで正しいリンク元かを確認する
通常、ブラウザはHTTPリクエストのRefererヘッダに参照元ページのURLを入れます。Refererを確認し、本来の画面遷移になっているかを判定することでCSRFの対策が可能です。ただし、ブラウザやセキュリティソフトにより、Refererを送信しない設定になっている場合など、有効に機能しないことがあります。
WAFによるCSRF対策
CSRFによる攻撃を防ぐためには、ユーザー側がセキュリティ意識を高めることはもちろん、ウェブサイトの運営者が根本的な解決策としてウェブアプリケーション側で対策する必要があります。ウェブアプリケーション側の対策に工数を要する場合など、運営者側での対応が難しい場合には「WAF(ワフ)」による対策をお勧めしています。
WAFはWeb Application Firewall(ウェブアプリケーションファイアウォール)の略で、ウェブアプリケーションの脆弱性を悪用する様々な攻撃からウェブサイトを保護するセキュリティ製品です。WAFはクライアントとウェブサイトでやり取りされるHTTP/HTTPS通信の中身をチェックし、不正アクセスを検出・防御します。WAFによっては前述のトークン判定やRefererヘッダの確認によるCSRF対策が可能です。
<WAFで防げるサイバー攻撃>
- SQLインジェクション
- クロスサイトスクリプティング(XSS)
- ディレクトリトラバーサル
- OSコマンドインジェクション
- クロスサイトリクエストフォージェリ(CSRF)
- 改行コードインジェクション(HTTPヘッダ、メールヘッダ)
- パラメータ改ざん
- ブルートフォース(ログインアタック等)
- Apache Strutsの深刻な脆弱性 他
『OWASP Top 10 2017』以降、CSRFはTop 10の対象外となりました。しかし、その脆弱性やリスクがなくなったわけではありません。あくまで「他の脆弱性の重要度が高まった」ということであり、リスト外の脆弱性への対策も必要であることに変わりはありません。実際にCMSおよびプラグインなどの拡張機能で、CSRFの脆弱性に関する報告が続いています。
CSRF対策を含め、危険性の高いサイバー攻撃からウェブアプリケーションを守り、ユーザーを保護するためにWAFの導入が有効です。
EGセキュアソリューションズは、イー・ガーディアングループの一員として、ゲートウェイ型とホスト型、クラウド型とさまざまなニーズに対応した国産WAF「SiteGuardシリーズ」を提供しています。業種・業態を問わず数多くの導入実績をもち、レンタルサーバー事業者での標準採用もあって、保護対象サイト数は150万を超えています。
ワンランク上のウェブサイトのセキュリティ対策に、ぜひWAFの導入を検討してみてください。
- カテゴリ:
- Webセキュリティ
この記事に関する製品のご紹介
ホスト型WAF「SiteGuard Server Edition」
SiteGuard Server Editionは、ウェブサーバーのモジュールとして動作するホスト型WAF製品です。Webサーバー自体にインストールするため、専用ハードウェアが必要ありません。ネットワーク構成を変更せず、できるだけシンプルに導入したいお客様に最適な製品です。
詳細はこちら