1. TOP
  2. ブログ
  3. webアプリケーション技術者向け、クロスサイトリクエストフォージェリ(CSRF)の原理について

webアプリケーション技術者向け、クロスサイトリクエストフォージェリ(CSRF)の原理について

webアプリケーションに対する攻撃方法で最も多いのは、クロスサイトスクリプティング(XSS)であるが、もう一つ、クロスサイトリクエストフォージェリ(CSRF)という攻撃手法がある。

webサービスを作っている技術者であれば、知っていて当然、という方もいるだろうが、原理についてよく知らない、という技術者もいるとのことで、今回は、CSRFについて、解説する。

IPAの説明によれば、CSRFとは以下のようなものである。

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

ウェブサイトの中には、サービスの提供に際しログイン機能を設けているものがあります。ここで、ログ インした利用者からのリクエストについて、その利用者が意図したリクエストであるかどうかを識別する仕 組みを持たないウェブサイトは、外部サイトを経由した悪意のあるリクエストを受け入れてしまう場合があ ります。このようなウェブサイトにログインした利用者は、悪意のある人が用意した罠により、利用者が予 期しない処理を実行させられてしまう可能性があります。このような問題を「CSRF(Cross-Site Request Forgeries/クロスサイト・リクエスト・フォージェリ)の脆弱性」と呼び、これを悪用した攻撃を、「CSRF 攻 撃」と呼びます。

(IPA 安全なウェブサイトの作り方 https://www.ipa.go.jp/files/000017316.pdf

この説明はあまり分かりやすいものではないが、同資料の絵が比較的分かりやすい。

https   www.ipa.go.jp files 000017316.pdf

クロスサイトリクエストフォージェリは、5つの手続きにより攻撃が行われる。

1.一般の利用者が、webアプリケーションにログインする。この時点では攻撃が行われていない。

2.webサーバからセッションIDが発行され、端末が認証される。(ログイン成功)

3.利用者が、ログインを継続したまま、ほかのサイトを閲覧する。

4.その中で、悪意のある攻撃者のサイトにアクセスすると、一般ユーザーの端末に特殊なデータが仕込まれる利用者は、この段階で知らず知らずのうちに攻撃されている。が、実際の被害はまだ出ていない。

5.元のwebアプリケーションに戻って、操作を継続すると、攻撃者が仕込んだデータがサーバ側に送信され、意図しない動作が起きる。例えば、設定変更や掲示板への投稿、時にはユーザー削除なども起こりえる。

 

このように、クロスサイトリクエストフォージェリは、シンプルに言ってしまうと、攻撃者が、何も知らないユーザーに「なりすまし」て行う攻撃である。

すなわち、本来のユーザーが入力した情報と、サーバーに誤認させ、任意の攻撃者のデータを送信する、というものである。

対策としては、CSRF対策の施してあるwebアプリケーションフレームワークを使うこと。Joomlaや.net framework、ruby on railsなどは、すでに対策が施してある。

基本的にはサーバーが発行する入力フォームに、乱数を仕込むなど、「まちがいなく正規のサーバが発行したリクエストである」という合い言葉を入れておくことで対策を行っている。

 

 

(参考:JPCERTコーディネーションセンター)

    ホワイトペーパーフォームバナー

    【DL可能な資料タイトル】

    • ・プログラムによる建築/土木設計のQCD(品質/コスト/期間)向上
    • ・BIM/CIMの導入から活用までの手引書
    • ・大手ゼネコンBIM活用事例と建設業界のDXについて
    • ・デジタルツイン白書
    • ・建設業/製造業におけるデジタルツインの実現性と施設管理への応用

    詳細はこちら>>>

    PAGE TOP