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

 2020.06.12  株式会社ジェイピー・セキュア

インターネットを通じたサイバー攻撃は多く、ウェブサイトは常に狙われていると考えて良いでしょう。ドメインを取得して公開している以上、必ず何らかの攻撃を受けていると言われています。その中にいくつか危険性の高いサイバー攻撃があり、「クロスサイトリクエストフォージェリ(Cross Site Request Forgeries)」もその1つです。

クロスサイトリクエストフォージェリとはどのようなサイバー攻撃なのか?攻撃を受けるとどのような被害が発生するのか?対策方法はないのか?など、本稿ではCSRFについて解説します。

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

クロスサイトリクエストフォージェリは、ウェブアプリケーションの脆弱性を悪用するサイバー攻撃の一種です。文字通り「サイト横断的に(Cross Site)リクエストを偽装(Request Forgeries)する」攻撃です。CSRFと略されシーサーフと呼ばれることが多くなっています。

具体的に説明します。攻撃者は罠となるサイトを用意し、ユーザーが罠にかかるのを待つかリンクやメールなどで利用者を罠サイトへ誘導します。誘い込まれたユーザーが罠サイトにアクセスし、その際にユーザーがターゲットとなるウェブサイトへログイン状態になっていると、そのウェブサイトに偽のリクエストが送信・実行されてしまうという攻撃です。

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

  • 強制的にいたずらや犯罪予告などの書き込みをさせられてしまう
  • 利用中のウェブサービスなどから強制退会されてしまう
  • 登録情報などを強制的に変更されてしまう

罠サイトを経由した悪意のあるリクエストによって、第三者に不正操作されることから、IPAなどではリクエスト強要と表現されています。

CSRFと似たサイバー攻撃にXSS(クロスサイトスクリプティング:Cross Site Scripting)という攻撃があります。名称が似ており罠サイトを経由して攻撃するという点は同じですが、罠サイトにユーザーがアクセスすることで、最終的にブラウザ上で不正なスクリプトを実行させられてしまうXSSに対し、CSRFはユーザーがウェブサイトへログイン状態であることを狙い、罠サイトを経由してターゲットのウェブサイトに偽のリクエストを送信します。

WAFとは~WAF選定・導入のポイントとSiteGuardが選ばれる理由~
ジェイピー・セキュアソフトウェアライセンス価格表

CSRFによる被害

では、CSRFによってどのような被害が生じるのでしょうか?先述したように、CSRFによりユーザーが意図していない不正なリクエストが送信・実行されてしまいます。近年ではウェブサービスの利便性を高めるためにログイン状態を維持するユーザーが多く、FacebookやTwitterなどのSNSを使用する方も多くなっています。このようなサービスや投稿フォームで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導入を是非ご検討ください。

信頼の純国産ソフトウェア型WAF SiteGuardシリーズ製品概要

RECENT POST「技術動向」の最新記事


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

RANKING人気資料ランキング

RECENT POST 最新記事

ブログ無料購読

RANKING人気記事ランキング