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

2018.06.07

Webセキュリティ

Security‐measures‐you‐want‐to‐know

CSRFとはクロスサイトリクエストフォージェリの略であり、Webアプリケーションの脆弱性を利用したサイバー攻撃の一種です。
インターネット回線の高速化やデバイスの普及によって、気軽にオンラインサービスを利用する方も増えました。
しかし、クロスサイトリクエストフォージェリによってサービス提供者とユーザーの両方に迷惑や被害が起こる可能性があります。CSRF(クロスサイトリクエストフォージェリ)とはどんなサイバー攻撃なのか。また、クロスサイトリクエストフォージェリによって起こり得る被害や対策についてご説明します。

目次

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

オンラインサービスを利用するユーザーがログイン状態を保持したまま悪意のある第三者の作成したURLなどをクリックした場合などに、本人が意図しない形で情報・リクエストを送信されてしまうことを意味します。リクエスト強要とも呼ばれており、ユーザー側は何が起きたのか気が付くことなく、後から被害にあったことに気が付きます。

1-1.ログインしたままの状態を狙った攻撃

クロスサイトリクエストフォージェリの一例として、SNSにログインしたままの状態で、他のサイトで興味深いURLをクリックします。クリックされたURLにはSNSに勝手に投稿する仕組みが備わっており、悪意のある第三者が用意した文章を勝手に発信されてしまいます。もし、SNSではなくオンラインバンキングやクレジットカード情報を利用したものであると想像すれば、どれだけ恐ろしい攻撃かわかるのではないでしょうか。

1-2.リクエストを強要されてしまう

クロスサイトリクエストフォージェリの恐ろしいところは、リクエストを強要させられてしまうことであり、ログインしている状態やサービスを利用しているかどうかの有無を区別せず、広い範囲で罠を作って置き、また、複数の種類のオンラインサービスに対しての罠なので、被害に遭う可能性が高いということです。
また、罠が設置してあるWebページによっては、不安を煽るような文言や言葉巧みな文章でユーザー騙し、心理的不安にさせることで、選択肢を迫り、利用しているサービスを選ばされてしまう可能性も考えられます。

2.CSRF(クロスサイトリクエストフォージェリ)で起こり得る被害

クロスサイトリクエストフォージェリによる事例を調べたところ、SNSで意図しない情報を発信されてしまうだけでなく、犯罪予告などを発信されてしまい、誤認逮捕まで進んでしまった例もあります。

2-1.意図しない情報の発信やサービスの悪用

ユーザーIDとパスワードを入力することで、個人を判別するのですが、ブラウザ上にログイン情報を残すことで、何度もログイン入力をしなくて良いサービスはいくつもあります。正しい使い方であればユーザーの利便性も高くなりますし、面倒を省くことで情報の発信だけでなく、サービスに対する利用も増えやすくなります。今の時代は個人ユーザーも一つのサービスだけでなく、買い物でもオンラインバンキングでもSNSでも複数のサービスを利用することが増えたため、クロスサイトリクエストフォージェリによる攻撃を受けやすくなり、場合によっては金銭的被害、誹謗中傷を手伝わされてしまったり、炎上や犯罪予告への加担など、たったワンクリック・ワンタップしただけで、大きな被害を受けてしまうのです。

2-2.他のサイバー攻撃と組み合わさると被害が大きい

例として、既にサイバー攻撃によって、パソコンやスマートフォンが乗っ取られている状態で、クロスサイトリクエストフォージェリの罠に引っかかってしまった場合、個人情報を知られてしまったり、利用しているサービスを特定されてしまう恐れがあります。
悪意のある第三者は個人情報と利用しているサービスを元に、金銭的被害だけでなく、なりすましや偽メールなどで友人や知人を巻き込み、二次的な被害を生むようなことまで起こす可能性も考えられるのです。

3.個人ユーザーが取るべきCSRF(クロスサイトリクエストフォージェリ)の対策

オンラインサービスのユーザーがとるべきクロスサイトリクエストフォージェリの対策には、どのようなものがあるかチェックしておきましょう。

3-1.オンラインサービスを利用後はログオフする

クロスサイトリクエストフォージェリは基本的にログインしている状態を悪用するので、サービスを利用しない時はログオフしておくのが効果的です。また、SNSなどの常時ログインしているようなサービスを利用する場合には、怪しいURLや身に覚えのないメールやメッセージに注意し、甘い言葉や怪しいサイトに騙されないようにすることも大切です。

3-2.身に覚えのない送金や購入・発言があれば運営に連絡

クロスサイトリクエストフォージェリによる被害を受けた場合、自覚することがまず難しいです。例えば利用しているSNSのサービスで自分が知らない間に投稿をされても、周囲が指摘するまで全く気が付けない場合もあります。また、何らかの形でオンラインバンキングの不正利用、クレジットカードの悪用に発展した場合も、後から気が付く形になるのがほとんどです。身に覚えのない金銭的な被害があった場合は、利用するサービスの運営もとにすぐに連絡することが重要です。

4.サービス提供者が取るべきCSRF(クロスサイトリクエストフォージェリ)の対策

サービス提供者がクロスサイトリクエストフォージェリの対策を考える場合、システム面で防ぐ他ありません。クロスサイトリクエストフォージェリはいわば外部からの不正なリクエストをシステム内で処理してしまうことが問題だからです。

4-1.リクエストに対する照合や脆弱性の排除

クロスサイトリクエストフォージェリの手順として、何らかのURLかリクエストをユーザー側に送信させる必要があります。不正なリクエストを強要するためにはWebページかアプリケーションを準備する必要がありますが、ドメインやIPアドレスを正しいサービスのものと同じにすることは難しいと思われます。もちろん、表示上は正規のサービスのように振る舞った偽のページを作ることはできますが、リクエストの送信元のIPアドレスやドメインなどは記録に残る可能性もあります。
サービス提供者が考えるべき対策の一つに、どこから送られたリクエストなのか。このリクエストはユーザーが送ったものなのかを照合するシステムや、送信元のURLに対する照合、リクエストを送る時のパラメータに対する照合など、必要に合わせて適用し、脆弱性を排除しておくことが求められます。言い方を変えれば、サービス提供者がしっかりとしていれば、ユーザーがクロスサイトリクエストフォージェリによる被害を受けなくて済む可能性も高くなるという意味合いです。

4-2.ユーザーの被害を最小限に留める体制を意識する

クロスサイトリクエストフォージェリによってユーザーが被害を受けた場合、サービス提供者としては被害を最小限に留めるだけでなく、しっかりと保証する形も考えなくてはいけません。また、ユーザーへの注意喚起をする姿勢や、被害に遭った時に連絡しやすい雰囲気作り、連絡が来た時にすぐに対応できる組織作りをすることも大切です。善意のユーザーが悪意のある第三者からの攻撃を受けて、被害を受けてしまうというのは、せっかく利便性を求めてサービスを利用したのに、損をしたとして信頼性を損なうだけでなく、悪評による風評被害も受けてしまう恐れもあるので、十分注意しましょう。

まとめ

CSRF(クロスサイトリクエストフォージェリ)の意味とその対策、クロスサイトリクエストフォージェリによって起こり得る被害などについてご説明しました。クロスサイトリクエストフォージェリも含めて、もともとは脆弱性ではなく、ユーザーの利便性やごく当たり前の手順によって作られたものを悪用し、脆弱性として扱っているサイバー攻撃は非常に多くあります。悪意のある第三者は非常に高度な技術を持ち、インターネットに繋がる組織や個人、全ての人間を対象として攻撃してきます。
Webセキュリティへの興味を持ち、常日頃から意識することは、自分の身を守るために必要なことであると理解し、一個人、一ユーザーだから大丈夫と過信しないように十分注意しましょう。サービス提供者としても、ユーザーに被害を与えるべくサービスを提供しているのではないのですから、何らかの形でユーザーに被害が及ばないよう、また、被害が出た場合でも迅速に対処し、ユーザーが安心できる対応ができるように心がけるようにすることも求められます。