CSRF(クロスサイトリクエストフォージェリ)とは?
CSRF(クロスサイトリクエストフォージェリ)とは、Webアプリケーションの脆弱性を悪用するサイバー攻撃の一種です。
「Cross Site Request Forgeries」の頭文字から作られており、下記の特徴があります。
- 攻撃者は攻撃専用のWebページを作成して、ユーザーがアクセスするように誘導する
- 作成した攻撃専用Webページにアクセスすると、事前に用意されていた不正リクエストが対象サーバーに送付される
- 対象サーバー上のWebアプリケーションが不正リクエストを処理して、ユーザーの意図しない処理が行われてしまう
Webサービスによって不正リクエストの内容は変わりますが、Webサービスの設定が変更されたり、身に覚えのない操作が実行されたりするので覚えておきましょう。
ユーザーの意図しない情報やリクエストが送信されてしまうため、「リクエスト強要」と呼ばれています。
そのためユーザーは何が起きたか気づかず、後になって被害にあったと気づくことも特徴です。
CSRFの仕組み
CSRFの仕組みとなる最初のステップとして、ログイン中のアカウントに状態変更のリクエストを送信します。
送信する目的は、Webアプリケーションに悪意ある要求を送信するように仕向けるためです。
CSRFを実行するには、下記が必要なので覚えておきましょう。
- 対象ユーザーがログインしている状態
- 対象ユーザーの状態を変更するための偽造リクエスト
- 対象サーバーがリクエストを正しく処理するために、予測不可能なパラメーターが含まれていないこと
CSRFでは、SameSite CookieポリシーがないアプリケーションでCookieを使用する手口が最も一般的です。
対象ユーザーを悪意あるWebページに誘導する際は、不安を煽る言葉や文章を使って騙そうとします。
心理的に不安な状態にさせた状態で、リクエスト強要に誘導する傾向があるので注意しましょう。
CSRFによる影響・被害
CSRFによる影響・被害として、下記が挙げられます。
- 不正な送金
- いたずらな書き込み
- 不正なWebサイトへの誘導
- ユーザーが意図しない退会処理
- ユーザーが意図しない商品の購入
- アンケートフォームへの不正な書き込み
- 不正な書き込みを行うことによるDoS攻撃
攻撃者は自身で対象のWebサーバーにアクセスせずに、対象のアプリケーションを任意で処理できます。
また、不正なWebサイトに誘導されたユーザーには直接的な被害はありません。
しかし不正なリクエストを送信した攻撃者として、認識される恐れがあります。
CSRFの対策が必要なサイトの特徴
CSRFの対策が必要なWebサイトの特徴は、「金銭処理が発生する」「ログイン機能を持つ」の2つです。
具体例として、下記が挙げられます。
金銭処理が発生するWebサイト | ログイン機能を持つWebサイト |
|
|
さらにCSRFを受けるWebサイトの特徴は、下記の技術を活用してセッションを管理している3つがあります。
- Basic認証
- SSLクライアント認証
- Cookieを活用したセッション管理
ログイン後で決済処理が必要なWebサイトの場合は、被害が大きくなる可能性があるので注意しましょう。
こちらの記事では、Basic認証の仕組みやメリット・デメリット、Basic認証以外の認証システムについて解説しているので、ぜひ参考にしてください。
CSRF(クロスサイトリクエストフォージェリ)への対策
ここまでCSRFの概要や仕組み、影響・被害、対策が必要なWebサイトの特徴をお伝えしました。
続いて、CSRF(クロスサイトリクエストフォージェリ)への対策を解説します。
- ユーザーができる対策
- Web管理者ができる対策
- IT管理者ができる対策
それぞれ解説していきます。
ユーザーができる対策
ユーザーができる対策は、下記の3つです。
- 対策1:不審なページへアクセスしない
- 対策2:サービス利用後にログアウトする
- 対策3:不審な操作履歴があれば確認する
ひとつずつ解説していきます。
対策1:不審なページへアクセスしない
CSRFをユーザーが対策する方法は、不審なページにアクセスしないことです。
Webサイトにアクセスしただけで、不審であるかどうかの判断は簡単ではありません。
しかしセキュリティソフトを活用すれば、不審なWebサイトへのアクセスをブロックできます。
対策2:サービス利用後にログアウトする
ユーザーがCSRFを防ぐ方法として、サービスを利用した後のログアウトが挙げられます。
CSRFが攻撃を行う対象は、Webサイトにログインしているユーザーのみです。
つまりWebサービスを利用した後でログアウトする習慣をつければ、被害の多くを防げます。
ログイン状態で保持はせずに、Webサービスを利用した後はログアウトしましょう。
対策3:不審な操作履歴があれば確認する
CSRFを防ぐ方法は、不審な操作履歴があった際の確認です。
ユーザーが警戒することによって、サイバー攻撃を受けるリスクは減らせます。
とはいえ、全ての悪意ある攻撃を防げるわけではありません。
もしも不審な操作履歴があった際はサイト運営者に連絡して、確認と状況説明を行いましょう。
事態によっては、警察への速やかな相談も必要です。
Web管理者ができる対策
次に、Web管理者ができる対策は、下記の5つです。
- 対策1:リクエストの正当性をチェックする
- 対策2:パスワード認証を実装する
- 対策3:正しいリンク元かどうかチェックする
- 対策4:キャプチャ確認を実装する
- 対策5:プリフライトリクエストを検証する
それぞれ解説していきます。
対策1:リクエストの正当性をチェックする
Web管理者がCSRFを対策する方法は、リクエストの正当性のチェックです。
例えば、画面遷移において「入力→確認→登録」となる場合、不正な登録される状態を防がなければいけません。
そのため確認画面が表示される際は、秘密情報となるトークンを「hiddenパラメーター」に出力しましょう。
そこから登録画面に移った際に、リクエストに含まれているトークンが一致しているか確認します。
トークンが一致しなければ、リクエストを拒むことでCSRFを防げます。
対策2:パスワード認証を実装する
CSRFは、パスワード認証を実装することで対策が可能です。
パスワード認証を実装する効果として、下記が挙げられます。
- ユーザーの意思を念押できる
- 共用のパソコンであれば、正規ユーザー以外の利用者が処理を実行することを防げる
ほかにもパスワードを変更する際に、現在のパスワード入力させることでCSRFを防げるでしょう。
対策3:正しいリンク元かどうかチェックする
CSRFを防ぐには、リンク元が正しいかどうかをチェックする方法もあります。
通常のWebブラウザには、「HTTP」に参照元となるページURLが挿入されています。
参照元を確認して画面遷移が正しいか判断できれば、CSRFを対策できるでしょう。
ただしWebブラウザやセキュリティソフトによっては、参照元が送信されない設定になっている場合があるので覚えておきましょう。
こちらの記事では、HTTPとHTTPSの違いをセキュリティや速度、リダイレクトの役割などの観点から解説しているので、ぜひ参考にしてください。
対策4:キャプチャ確認を実装する
Web管理者ができるCSRFの対策は、キャプチャ確認の実装です。
キャプチャ確認では、ランダムで書かれた英数字の画像を表示させてフォームに同じ情報を入力させることで、人もしくはコンピューターのどちらが操作しているかを判別できます。
ユーザーは目視で確認しながら情報を入力する必要があるため、フォームに自動書き込みを行うCSRFを防げるでしょう。
対策5:プリフライトリクエストを検証する
CSRFは、プリフライトリクエストの発行・検証によって対策できます。
プリフライトリクエストとは、実際のリクエスト送信前にWebブラウザへ送信することで、安全であるかどうかをチェックする方法です。
正規ルートのリクエストであるか確認できるため、CSRFを防げるでしょう。
ただし、プリフライトリクエストは最終手段なので、それ以前の段階で防ぐ対策が重要です。
IT管理者ができる対策
IT管理者ができる対策は、下記の通りです。
- 総合的なセキュリティソフトを導入して、常にエンドポイントを最新の状態にする
- ゲートウェイ上のさまざまな攻撃メールの受信をブロックする
ほかには、ネットワーク内部から外部の不正サイトへのアクセスをブロックする対策もあります。
まとめ
今回は、CSRF(クロスサイトリクエストフォージェリ)の概要や影響・被害、対策方法を解説しました。
CSRFとは、Webアプリケーションの脆弱性を悪用するサイバー攻撃の一種です。
実際にCSRFを受けると、下記の影響・被害があるとお伝えしました。
- 不正な送金
- いたずらな書き込み
- 不正なWebサイトへの誘導
- ユーザーが意図しない退会処理
- ユーザーが意図しない商品の購入
- アンケートフォームへの不正な書き込み
- 不正な書き込みを行うことによるDoS攻撃
本記事でお伝えしたユーザー・Web管理者・IT管理者ができる対策も参考にして、CSRFの対策を行いましょう。
【SNSフォローのお願い】
kyozonは日常のビジネスをスマートにする情報を毎日お届けしています。
今回の記事が「役に立った!」という方はtwitterとfacebookもフォローいただければ幸いです。
twitter:https://twitter.com/kyozon_comix
facebook:https://www.facebook.com/kyozon.comix
こちらの記事では、本文の中にあった「SSL」の特徴や種類、導入メリット・デメリットを解説しているので、ぜひ参考にしてください。