サイバー攻撃

CSRF(クロスサイトリクエストフォージェリ)とは?仕組みや被害、対策を解説

Written by 田村 彩乃

CSRF(クロスサイトリクエストフォージェリ)とは?仕組みや被害、対策を解説

失敗しないための脆弱性診断実施のコツ

セキュアな開発・サービス提供に必須!はじめての脆弱性診断 正し進め方ガイド

資料をダウンロードする

【TOP5】Webアプリケーション脆弱性診断で検出数の多い「注意したい指摘ポイント」とは?

MOTEXの診断員がよく発見する「Webアプリの5つのリスク」について概要・対策を解説します

資料をダウンロードする

CSRF(クロスサイトリクエストフォージェリ)とは、Webアプリケーションへのリクエストを偽装することで、サイト利用者が意図していない処理を実行させられる脆弱性を指し、これを利用した攻撃をCSRF攻撃と言います。

CSRF攻撃の被害に遭うと、意図しない悪質な情報を発信してしまったり、不正送金、会員情報の書き換えがされてしまったりなどの被害が想定されます。

本記事では、CSRF攻撃の仕組みや有効なセキュリティ対策をわかりやすく解説します。

    ▼この記事でわかること

  • CSRF攻撃とはなにか
  • CSRF攻撃の仕組み
  • CSRF攻撃がもたらす被害
  • サービスの利用者・提供者それぞれがおこなうべき対策

CSRF攻撃は「Webアプリケーションの脆弱性を狙うサイバー攻撃」の中でも発生率が高く、弊社の診断サービスでも検出回数が非常に多い攻撃のひとつです。

ぜひ本記事を参考として、CSRF攻撃への対策を実施してください。

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

CSRF(クロスサイトリクエストフォージェリ)とは、Webアプリケーションへのリクエストを偽装することで、サイト利用者が意図していない処理を実行させる脆弱性です。

そして、この脆弱性を利用した攻撃を「CSRF攻撃」と言います。

攻撃者は、Webアプリケーションにログイン中のユーザーに不正なリンクを踏ませるなどして、あたかもそのユーザーが操作をしたかのように、Webアプリケーションに不正なリクエストを送信。アプリケーション側は「ログイン中のユーザーからのリクエストである」と誤認し、不正なリクエストを実行してしまいます。

CSRF攻撃に遭うと、ユーザーは「ECサイトやオンラインバンキングで身に覚えのない決済をさせられる」あるいは「SNSや掲示板で意図しない投稿をされる」などの被害が生じてしまいます。

ログインした利用者からのリクエストが、正規のリクエストか、それとも不正なリクエストなのかを識別する仕組みを持たないWebアプリケーションは、攻撃対象になりやすくなってしまいます。

CSRF攻撃の仕組み・流れ

CSRF攻撃は、以下の流れで実行されます。

  • (1)ユーザーがWebアプリケーションに通常通りログインする
  • (2)Webアプリケーション側が、ユーザーがログインした状態でセッションIDを発行する
  • (3)ユーザーがログアウトせずにアプリケーションを閉じる
  • (4)メールやSMSなどを使って攻撃者が「罠サイト」へ誘導する
  • (5)ユーザーが罠サイトにアクセスする
  • (6)罠サイトのリンクをクリックすることで「不正なリクエスト」がWebアプリケーションに送信される
  • (7)Webアプリケーションが不正なリクエストを処理する
  • (8)不正送金や不正購入などのユーザーが意図しない処理が実行される
  • 銀行のWebアプリケーション(オンラインバンキング)を例にとって、CSRF攻撃の具体的な流れを解説します。

    アプリにログインしているユーザーを「Aさん」、攻撃者を「攻撃者B」とします。

    クロスサイトリクエストフォージェリ攻撃を受け、オンラインバンキングから不正に現金を出勤されてしまうイメージ画像

    Aさんは、自身の預金残高を確認しようと銀行のWebアプリへログインし、そのままログアウトをせずサイトを離れました。その後、攻撃者Bからメールで送られてきた「罠のサイト」のURLをクリックし、アクセスしてしまいます。

    この罠サイトは、「攻撃対象のWebアプリケーション(今回は銀行サイト)に不正なリクエストを送信すること」を目的として、攻撃者Bが事前に作成したものです。

    Aさんが銀行のWebアプリにログインした状態でこの罠サイトにアクセスしたことで、銀行のWebアプリに不正なリクエストが自動送信され、Aさんの口座から攻撃者Bの口座へ、意図せず10万円が振り込まれてしまいました。

    このようにCSRF攻撃では、サービスにログイン中のユーザーに対し、攻撃者の意図にそったリクエストを実行させることができてしまいます。

    CSRF攻撃とXSS(クロスサイトスクリプティング)攻撃の違い

    CSRF攻撃と混同しやすい攻撃として、XSS(クロスサイトスクリプティング)攻撃が挙げられます。

    どちらの攻撃もWebサイト・Webアプリケーションの脆弱性を突いたサイバー攻撃という点で似ていますが、攻撃手法や悪用する脆弱性に違いがあります。

    前述した通りCSRF攻撃は、Webアプリケーションのセッション管理に潜む脆弱性を悪用するサイバー攻撃です。

    たとえば、AmazonやSNSにログインしたままのユーザーのセッション情報を乗っ取り、ユーザーのリクエストを偽装して、あたかも本人がログインしているかのような操作を不正に実施します。

    一方のXSS攻撃は、個人情報の入力画面(申し込みフォームなど)のような、ユーザーが情報を入力する動的なWebサイトの脆弱性を悪用する攻撃です。

    脆弱性のあるWebサイトに「不正なスクリプト(命令文)」を埋め込むことで、情報の入力や書き込みをしたユーザーに、意図しないスクリプトを実行させます。ユーザーは知らないうちに、入力した個人情報を盗まれたり、マルウェアに感染したりします。

    CSRF攻撃とXSS攻撃の違いを4つの観点でわかりやすくまとめた表が下記です。

    クロスサイトリクエストフォージェリ
    (CSRF)
    クロスサイトスクリプティング
    (XSS)
    攻撃方法 ユーザーのログインした状態を悪用し、リクエストを偽装する ユーザーに不正なスクリプトを実行させる
    狙う脆弱性 Webアプリケーションの”セッション管理”の脆弱性を狙う 動的なWebアプリケーション(Webサイト)の脆弱性を狙う
    攻撃対象の例 ログインを必要とするWebアプリケーション
    ・オンラインバンキング
    ・SNS
    ・ECサイト など
    情報入力を行うWebサイト
    ・インターネットの掲示板
    ・個人情報の入力フォーム
    ・アンケートサイト など
    被害内容 ・個人情報の漏洩
    ・アカウント情報の変更
    ・不正な入出金や購入
    ・意図しない投稿や書き込み
    ・個人情報の漏洩
    ・Webサイトの改ざん・削除
    ・不正な入出金や購入
    ・意図しない投稿や書き込み

    XSS攻撃についてより詳しく知りたい方は、下記の記事をあわせてご参照ください。

    関連ページ

    【簡単解説】クロスサイトスクリプティング(XSS)とは?仕組みや事例・対策をわかりやすく紹介

    CSRF攻撃による被害

    先述の通り、CSRFは「ユーザーのログインした状態」を悪用するサイバー攻撃です。よって、受ける被害も「”ログインが必要”なWebアプリケーションやサービス」を起点に発生します。

    CSRF攻撃を受けた場合、発生しうる被害リスクは以下の通りです。

  • 登録情報やパスワードの勝手な変更
  • 不正送金
  • 掲示板などへの不正な書き込み
  • 情報漏洩
  • 本来であれば、ログイン後のユーザーのみが利用可能なサービス・編集可能な情報を悪用されたり改ざんされたりするのが、CSRF被害の特徴です。

    また、CSRF攻撃はユーザーに気づかれにくい攻撃であるため、被害に遭ってもすぐに対処できないという厄介な特性があります。

    【TOP5】Webアプリケーション脆弱性診断で検出数の多い「注意したい指摘ポイント」とは?

    MOTEXの診断員がよく発見する「Webアプリの5つのリスク」について概要・対策を解説します

    資料をダウンロードする

    CSRF攻撃を受けやすいWebサイトの特徴

    CSRF攻撃を受けやすいWebサイトの特徴として、以下のようなものが挙げられます。

    • Cookie(ブラウザに保存される情報)を使ってセッション管理をおこなっているWebサイト
    • アクセス時に認証ダイアログが起動して、ユーザーIDやパスワードの入力を求められるような「Basic認証」を行っているWebサイト
    • ブラウザに電子証明書を提示させ、接続元を認証する「SSLクライアント認証」をおこなっているWebサイト

    そのほか、ネットバンキングやECサイト、オークションサイトなど、「金銭処理をおこなうサイト」「会員情報サイト」「管理画面をもつサイト」は、CSRF攻撃のと対象になりやすい傾向があります。

    Basic認証…ユーザー名(ID)とパスワードを入力し、ユーザーに閲覧権限を与える認証。ベーシックな方法である一方、情報を盗聴されやすいという懸念もある
    SSLクライアント認証…Webサイトのアクセス時、(一般的には)第三者機関の発行する「クライアント証明書」を用いて認証を行う仕組み。通常のログインよりセキュリティレベルが高い点が強み

    CSRF攻撃の被害事例

    CSRF攻撃によって第三者のPCが遠隔操作された事例を紹介します。

    2012年6月、CSRFによって第三者のセッションを踏み台にした攻撃者が、関東圏の市のホームページに無差別殺人予告を書き込むという事件が発生しました。

    この時、CSRFによってPCを乗っ取られた4名の被害者が、無差別殺人予告を書き込んだ罪で誤認逮捕される事態となりました。誤認逮捕が次々と発生した理由は、当時の警察が「サイバー攻撃に関する詳しい知識を持たなかったため」と言われています。

    攻撃者は犯行を行ったサイトにアクセスする際、暗号化によって足取りを掴めないように工作するなど狡猾な手口を使っていたため、犯人の特定にますます時間を要することとなりました。

    犯人が逮捕されたのは翌年の2013年2月のことであり、事態が一旦の収拾を見せるまでに、実に半年以上もの時間がかかる事件となりました。

    参考:Yahooニュース|PC遠隔操作事件ってどんな事件? 片山被告が無実主張(2014/3/21)

    CSRF攻撃に有効なセキュリティ対策(サービス利用者編)

    CSRF攻撃の被害を防ぐには、Webアプリケーションの利用者・提供者の双方が適切な対策を講じる必要があります。

    まずは、サービス利用者側ができるCSRF攻撃への対策を3つ解説します。

    1.オンラインサービス利用後は、こまめにログアウト

    前述のように、CSRF攻撃は「ログアウトされていないサービスのリクエストを偽装する」サイバー攻撃です。そのため、オンラインサービスの利用後は、ログインしたままにせず、こまめなログアウトを徹底しましょう。

    通常、すでにログアウト済みのサービスのセッションを乗っ取ることはできないため、被害を未然に回避できる可能性が高くなります。

    2.不審なWebサイトやリンクにアクセスしない

    CSRF攻撃の被害にあわないためには、攻撃者が作成した罠サイトにアクセスしないことが重要です。

    そのため、信頼性の低いWebサイトの閲覧は避けるようにしましょう。

    また、Webサイトを訪問した際に、掲示板などに不審なURLが書き込まれているケースもあります。

    そのようなURLをクリックすることでもCSRF攻撃の被害に遭う可能性があるため、Webに掲載されたURLは安易にクリックせず、安全性をよく確かめてからアクセスするようにしましょう。

    3.記憶にない送金履歴や情報発信はサービス元に報告する

    CSRF攻撃は、ネットバンキングやECサイトなどの金銭を扱うサイトや、掲示板などの情報発信を行えるサイトで、特に被害が発生しやすいサイバー攻撃です。

    そのため入出金履歴を確認して「記憶にない送金履歴」が残っていたり、「書き込んだ覚えのない投稿」が掲示板に書き込まれていたりした場合は、速やかにサービス元へ連絡することが大切です。

    サービス元へ連絡せずに放置すると、同様の被害者が増えたり、自身の被害額が増加したりする可能性があるため、早急な対処が重要になります。

    CSRF攻撃に有効なセキュリティ対策(サービス提供者編)

    次に、Webアプリケーションを運営する「サービス提供者側」がおこなうべき対策を4つ解説します。

  • セッションIDと機密情報の両方でリクエストの可否を判断する
  • CSRFトークンなどを使い、リクエストの照合を強化する
  • Refererヘッダで正しいリンク元かを確認する
  • 脆弱性診断を定期的に実施する
  • 1.セッションIDと機密情報の両方で、リクエストの可否を判断する

    Webアプリケーションに「セッションIDと機密情報がどちらも正しい場合のみリクエストを許可する」という仕組みを設定することで、CSRF攻撃の被害にあうリスクを低減することが可能です。

    具体的には、掲示板やWebフォームの入力画面を表示する際、hiddenパラメーターに機密情報を持たせて、セッションIDと一緒にWebサーバーへ送信します。

    すると、Webサーバー側ではセッションIDと機密情報を別々に保有し、リクエストがあった際に両者が合致した場合のみ、そのリクエストを許可できるようになります。

    攻撃者がユーザーのセッションIDを乗っ取り、Webサーバーへ不正なアクセスを試みたとしても、攻撃者は機密情報を持たないため、リクエストを通過することができません。

    結果的にCSRF攻撃を食い止めることが可能です。

    「hiddenパラメーター」とは、データを実際に画面には表示せずに保持しておくことが出来る仕組み

    2.CSRFトークンなどを使い、リクエストの照合を強化する

    「CSRFトークン」などを活用し、リクエストの照合を強化する手法も有効です。

    CSRFトークンとは、ネットバンキングなどの金銭処理を必要とするWebアプリケーションで特によく使われている手法です。

    まず、ログインのたびにランダムな文字列によるリクエストを生成してhiddenパラメーターでWebサーバーへ送信します。
    次にリクエスト先のWebサーバーに保存されたトークンと、ログインしようとしているリクエストのトークンが一致するかをチェックすることで、不正アクセスを防止します。

    トークンによるランダムな文字列でリクエストの固定化を回避することにより、CSRFによる悪意のあるリクエストが通過する確率を、大きく下げる効果が期待できます。

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

    Referer(リファラ)ヘッダにて、リクエスト元が正しいリンクであるかを確認し、不正なリクエストを弾く方法もあります。

    Refererヘッダには「リクエストを送信したユーザーが、どのURLからリクエストを行っているのか」の情報が含まれています。仮に、Refererヘッダを見て「本来あるべき画面を遷移していない」場合、攻撃者によるCSRFの可能性が高いでしょう。

    WebサーバーでRefererヘッダをチェックすることで、正しいリクエストであった場合のみリクエストを通過させることが可能。仮に不正なリクエスト元からアクセスがあったときは、サーバー側がリクエストを拒否することができます。

    4. 脆弱性診断を定期的に実施する

    定期的に脆弱性診断を実施することで、CSRF攻撃に悪用される危険性がある脆弱性を明らかにすることができます。

    重要度の高い脆弱性から迅速に修正することで、CSRF攻撃をはじめとしたサイバー攻撃から自社を守ることができるでしょう。

    関連ページ

    脆弱性診断とは?なぜ必要?やり方・費用などもカンタン解説

    【TOP5】Webアプリケーション脆弱性診断で検出数の多い「注意したい指摘ポイント」とは?

    MOTEXの診断員がよく発見する「Webアプリの5つのリスク」について概要・対策を解説します

    資料をダウンロードする

    CSRF対策ならLANSCOPE プロフェッショナルサービスの「Webアプリケーション診断(脆弱性診断)」

    CSRF対策に有効な方法として、LANSCOPE プロフェッショナルサービスの「Webアプリケーション診断(脆弱性診断)」をご紹介します。
    「LANSCOPE プロフェッショナルサービス」は、12,000件以上のサービス提供実績と90%以上という高いリピート率を誇る、サイバーセキュリティに特化したサービスです。

    「Webアプリケーション脆弱性診断」では、当社のセキュリティ・スペシャリストがきめ細かい診断を行い、CSRFの要因となる、WEBアプリケーションの脆弱性(課題・弱点)を洗い出し、必要な対策案を優先順位づけしてご提案します。

    診断結果は詳細な「報告書」でまとめ、Webアプリケーションが抱えるリスクを「点数」で可視化することが可能です。

    関連ページ:LANSCOPE プロフェッショナルサービス |「Webアプリケーション脆弱性診断」はこちら

    より手ごろな価格帯で「WEBアプリケーション脆弱性診断」を受けていただける「セキュリティ診断パッケージ」も提供しているため、自社のセキュリティ状況や課題にあわせて、ぜひ最適な診断の実施をご検討ください。

    関連ページ:低コスト・短期で診断を行う『セキュリティ健康診断パッケージ』の詳細はこちら

    まとめ

    本記事では、CSRF攻撃について、概要や想定される被害、対策方法について解説してきました。

    本記事のまとめ

    • CSRF攻撃は、Webアプリケーションにおけるセッション管理の脆弱性を悪用し、ユーザーのログイン状態を不正利用するサイバー攻撃である
    • CSRF攻撃の被害としては、不正な入出金や意図しない情報発信、ログイン情報の書き換えなどが挙げられる
    • CSRF攻撃を防ぐためには、ユーザー・提供者の双方が対策を講じる必要がある
    • CSRF攻撃の対策には、定期的な脆弱性診断が効果的である

    はじめて脆弱診断を実施する方向けに、脆弱性診断を始める前にやるべきことや進め方、失敗しない方法をまとめた資料をご用意しました。

    脆弱性診断の実施を検討している企業の方は、ぜひダウンロードして、ご確認ください。

    【TOP5】Webアプリケーション脆弱性診断で検出数の多い「注意したい指摘ポイント」とは?

    MOTEXの診断員がよく発見する「Webアプリの5つのリスク」について概要・対策を解説します

    資料をダウンロードする


    失敗しないための脆弱性診断実施のコツ

    セキュアな開発・サービス提供に必須!はじめての脆弱性診断 正し進め方ガイド

    資料をダウンロードする