14
ローカルプロキシを用いた CSRF 攻撃検出手法の検討 Researches on CSRF Attacks Detection Method Using Local Proxy 染川 敦 1 Atsushi Somekawa 鈴木 秀和 1 Hidekazu Suzuki 旭 健作 1 Kensaku Asahi 渡邊 晃 1 Akira Watanabe 名城大学大学院理工学研究科 1 Graduate School of Science and Technology, Meijo University 1 はじめに クロスサイトリクエストフォージェリ (Cross Site Re- quest Forgeries,以下 CSRF) 攻撃とは,ユーザが攻撃 者の用意した Web サイトにアクセスすると,別の脆弱 性のある Web サイトに対してユーザの意図しないリク エスト (例えば掲示板への書き込み) が送信される攻撃 である.本稿では,ローカルプロキシを用いたユーザ側 での CSRF 攻撃検出手法の検討を行った. 2 CSRF 攻撃の概要 1 CSRF 攻撃の概要を示す.ユーザが攻撃者の 用意した Web サイトに HTTP でアクセスし,その応答 を受け取ると,端末内で悪意のあるスクリプトが実行さ れ,ユーザの端末から脆弱性のある Web サイトへユー ザの意図しない通信が行われる. CSRF 攻撃は攻撃者が用意した Web サイトへのリン クをクリックすることで起こる攻撃であり,攻撃者の用 意した Web サイトへのリンクと正常な Web サイトへの リンクの判別は難しい.ゆえに,一般的に CSRF 攻撃の 対策はトークンを発行するなどの方法で,Web サーバ 側で行われる.しかし,このような対策がとられていな Web サーバが存在することも考えられるため, CSRF 攻撃の対策をユーザ側で実施できると有用である.関連 研究として,ブラウザにプラグインとして CSRF 攻撃 の検出をする方法 [1] があるが,ブラウザごとにプラグ インを開発しなければならない. ユーザ ユーザ 攻撃者が用意した Webサーバ 脆弱性のある Webサーバ HTTP要求 HTTP応答(悪意のある スクリプト付き) 意図しない通信 スクリプト実行 1 CSRF 攻撃の概要 3 提案方式 本稿では,ブラウザと Web サーバ間の通信を自端末 内に置かれるローカルプロキシで監視することにより, ユーザ側で CSRF 攻撃を検出する手法を提案する.図 2 ブラウザ ローカルプロキシ 攻撃者が用意した Webサーバ HTTP要求 HTTP要求 HTTP応答(悪意のある スクリプト付き) スクリプトを 仮想的に実行 アラームを送信 ユーザ 2 提案方式の概要 に提案方式の概要を示す.ブラウザは攻撃者が用意した Web サイトにアクセスするための HTTP の要求をロー カルプロキシへ送信する.ローカルプロキシは攻撃者が 用意した Web サイトへ HTTP の要求を送信する.そし て,攻撃者が用意した Web サイトからローカルプロキ シへ悪意のあるスクリプトが付いた HTTP の応答が送 信される. 本提案ではブラウザと Web サーバ間の通信をローカ ルプロキシで監視し, HTTP 応答に含まれるスクリプト を仮想的に実行し,通信している Web サーバと異なる ドメインの Web サーバへリクエストを送信するような 処理が行われた場合,ブラウザに CSRF 攻撃が行われ る可能性があるとして,ローカルプロキシからブラウザ へアラームを送信する. 4 まとめ ブラウザと Web サーバ間の通信をローカルプロキシ で監視し,HTTP 応答に含まれるスクリプトを仮想的に 実行することにより,ユーザ側で CSRF 攻撃を検出する 手法を提案した.今後は,実装方法について検討する. さらに,本提案が XSS Cross Site Scripting)などの他 Web サイトへの攻撃手法にも適応可能かどうかを検 討する. 参考文献 [1] Shahriar, H. , Zulkernine, M. : 2010 IEEE 21st In- ternatioal Symposium on Software Reliability En- gineering, 2010, 358-367

ローカルプロキシを用いたCSRF攻撃検出手法の検 …...CSRFとはユーザが攻撃者が用意したWebサイトに対 してユーザの意図しないリクエストが送信される攻撃

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ローカルプロキシを用いたCSRF攻撃検出手法の検 …...CSRFとはユーザが攻撃者が用意したWebサイトに対 してユーザの意図しないリクエストが送信される攻撃

ローカルプロキシを用いたCSRF攻撃検出手法の検討Researches on CSRF Attacks Detection Method Using Local Proxy

染川 敦 1

Atsushi Somekawa

鈴木 秀和 1

Hidekazu Suzuki

旭 健作 1

Kensaku Asahi

渡邊 晃 1

Akira Watanabe

名城大学大学院理工学研究科 1

Graduate School of Science and Technology, Meijo University

1 はじめにクロスサイトリクエストフォージェリ (Cross Site Re-

quest Forgeries,以下 CSRF)攻撃とは,ユーザが攻撃者の用意したWebサイトにアクセスすると,別の脆弱性のあるWebサイトに対してユーザの意図しないリクエスト (例えば掲示板への書き込み)が送信される攻撃である.本稿では,ローカルプロキシを用いたユーザ側での CSRF攻撃検出手法の検討を行った.

2 CSRF攻撃の概要図 1に CSRF攻撃の概要を示す.ユーザが攻撃者の

用意したWebサイトにHTTPでアクセスし,その応答を受け取ると,端末内で悪意のあるスクリプトが実行され,ユーザの端末から脆弱性のあるWebサイトへユーザの意図しない通信が行われる.CSRF攻撃は攻撃者が用意したWebサイトへのリン

クをクリックすることで起こる攻撃であり,攻撃者の用意したWebサイトへのリンクと正常なWebサイトへのリンクの判別は難しい.ゆえに,一般的にCSRF攻撃の対策はトークンを発行するなどの方法で,Webサーバ側で行われる.しかし,このような対策がとられていないWebサーバが存在することも考えられるため,CSRF攻撃の対策をユーザ側で実施できると有用である.関連研究として,ブラウザにプラグインとして CSRF攻撃の検出をする方法 [1]があるが,ブラウザごとにプラグインを開発しなければならない.

 

ユーザユーザ攻撃者が用意した

Webサーバ

脆弱性のある

Webサーバ

HTTP要求

HTTP応答(悪意のある

スクリプト付き)

意図しない通信

スクリプト実行

 図 1 CSRF攻撃の概要

 

3 提案方式本稿では,ブラウザとWebサーバ間の通信を自端末

内に置かれるローカルプロキシで監視することにより,ユーザ側でCSRF攻撃を検出する手法を提案する.図 2

 

ブラウザ ローカルプロキシ攻撃者が用意した

Webサーバ

HTTP要求

HTTP要求

HTTP応答(悪意のある

スクリプト付き)

スクリプトを

仮想的に実行

アラームを送信

ユーザ

 図 2 提案方式の概要

 

に提案方式の概要を示す.ブラウザは攻撃者が用意したWebサイトにアクセスするための HTTPの要求をローカルプロキシへ送信する.ローカルプロキシは攻撃者が用意したWebサイトへHTTPの要求を送信する.そして,攻撃者が用意したWebサイトからローカルプロキシへ悪意のあるスクリプトが付いた HTTPの応答が送信される.本提案ではブラウザとWebサーバ間の通信をローカ

ルプロキシで監視し,HTTP応答に含まれるスクリプトを仮想的に実行し,通信しているWebサーバと異なるドメインのWebサーバへリクエストを送信するような処理が行われた場合,ブラウザに CSRF攻撃が行われる可能性があるとして,ローカルプロキシからブラウザへアラームを送信する.

4 まとめブラウザとWebサーバ間の通信をローカルプロキシ

で監視し,HTTP応答に含まれるスクリプトを仮想的に実行することにより,ユーザ側でCSRF攻撃を検出する手法を提案した.今後は,実装方法について検討する.さらに,本提案がXSS(Cross Site Scripting)などの他のWebサイトへの攻撃手法にも適応可能かどうかを検討する.

参考文献[1] Shahriar, H. , Zulkernine, M. : 2010 IEEE 21st In-

ternatioal Symposium on Software Reliability En-

gineering, 2010, 358-367

Page 2: ローカルプロキシを用いたCSRF攻撃検出手法の検 …...CSRFとはユーザが攻撃者が用意したWebサイトに対 してユーザの意図しないリクエストが送信される攻撃

名城大学大学院 理工学研究科

染川 敦, 鈴木 秀和, 旭 健作, 渡邊 晃

Page 3: ローカルプロキシを用いたCSRF攻撃検出手法の検 …...CSRFとはユーザが攻撃者が用意したWebサイトに対 してユーザの意図しないリクエストが送信される攻撃

Cross Site Request Forgeries

ユーザが攻撃者の用意したWebサイトに対してユーザの意図しないリクエストが送信される攻撃◦ 例:掲示板への書き込み

2006年から継続的に脆弱性に関する届け出がある

1

Page 4: ローカルプロキシを用いたCSRF攻撃検出手法の検 …...CSRFとはユーザが攻撃者が用意したWebサイトに対 してユーザの意図しないリクエストが送信される攻撃

1. ユーザ→攻撃者HTTP要求

2. 攻撃者→ユーザHTTP応答

3. ユーザ悪意のあるスクリプトの実行

4. ユーザ→脆弱性のあるWebサーバ

意図しない通信が開始

2

ユーザユーザ攻撃者が用意したWebサーバ

対策が取られいないWebサーバ

HTTP要求

HTTP応答(悪意のあるスクリプト付き)

意図しない通信

スクリプト実行

書き込みが成立する

Page 5: ローカルプロキシを用いたCSRF攻撃検出手法の検 …...CSRFとはユーザが攻撃者が用意したWebサイトに対 してユーザの意図しないリクエストが送信される攻撃

攻撃者が用意したWebサイトへのリンクをクリックするだけで成立する攻撃

リンク先のURLで攻撃を判別することは困難

ユーザ側での対策が困難

3

Page 6: ローカルプロキシを用いたCSRF攻撃検出手法の検 …...CSRFとはユーザが攻撃者が用意したWebサイトに対 してユーザの意図しないリクエストが送信される攻撃

Webサイトがトークンを発行

対策が取られている掲示板ユーザ

POST(トークンあり)

HTTP要求

HTTP応答(トークンあり)

4

Page 7: ローカルプロキシを用いたCSRF攻撃検出手法の検 …...CSRFとはユーザが攻撃者が用意したWebサイトに対 してユーザの意図しないリクエストが送信される攻撃

トークンを発行している場合

攻撃者が用意したWebサーバ

対策が取られている掲示板ユーザ

POST(トークンなし)

HTTP要求

HTTP応答(悪意のあるスクリプト付き)

トークンなしのPOSTは無効

5

スクリプト実行

Page 8: ローカルプロキシを用いたCSRF攻撃検出手法の検 …...CSRFとはユーザが攻撃者が用意したWebサイトに対 してユーザの意図しないリクエストが送信される攻撃

本研究での検出対象は掲示板への書き込み

ユーザが開いているブラウザはひとつのみ

ユーザ側でCSRF攻撃を検出

6

Page 9: ローカルプロキシを用いたCSRF攻撃検出手法の検 …...CSRFとはユーザが攻撃者が用意したWebサイトに対 してユーザの意図しないリクエストが送信される攻撃

ブラウザにCSRF攻撃を検出するためのプラグインでCSRF攻撃を検出する手法

◦ 宛先ドメインのページ(書き込み先)が実際に開いているウィンドウにあるかどうか

◦ フォームの有無の一致

◦ ブラウザごとにプラグインを作成する必要がある

Shahriar, H. , Zulkernine, M. : 2010 IEEE 21st International

Symposium on Software Reliability Engineering, 2010, 358-367

7

Page 10: ローカルプロキシを用いたCSRF攻撃検出手法の検 …...CSRFとはユーザが攻撃者が用意したWebサイトに対 してユーザの意図しないリクエストが送信される攻撃

ユーザのコンピュータにローカルプロキシを設置し,ブラウザと攻撃者が用意したサーバとの通信を監視することでユーザ側でCSRF攻撃を検出する◦ ローカルプロキシ

自身のコンピュータ内に設置するプロキシ

FQDN(Fully Qualified Domain Name)と,フォームが作成されるスクリプトを検出

ブラウザごとに開発する必要がない.

8

Page 11: ローカルプロキシを用いたCSRF攻撃検出手法の検 …...CSRFとはユーザが攻撃者が用意したWebサイトに対 してユーザの意図しないリクエストが送信される攻撃

FQDN

フォームの作成(formをsubmit)時間間隔

9

ブラウザ 攻撃者が用意したサーバ

対策がとられていない掲示板

ローカルプロキシ

HTTP要求

HTTP要求

掲示板への書き込みを指示するスクリプト

ユーザ

意図しない書き込み

掲示板への書き込みを指示するスクリプト

Page 12: ローカルプロキシを用いたCSRF攻撃検出手法の検 …...CSRFとはユーザが攻撃者が用意したWebサイトに対 してユーザの意図しないリクエストが送信される攻撃

提案手法が有効かどうかローカルなネットワークでCSRF攻撃を行った◦ ②と③の時間間隔を測定

10

ユーザ

誘導用のページ

掲示板

仮想マシン

①誘導用のページにアクセス

②掲示板へ文字列を送信させる

③掲示板へ文字列を送信

Page 13: ローカルプロキシを用いたCSRF攻撃検出手法の検 …...CSRFとはユーザが攻撃者が用意したWebサイトに対 してユーザの意図しないリクエストが送信される攻撃

時間間隔[s]

0.015 0.016 0.015 0.016 0.017

0.015 0.015 0.016 0.017 0.015

11

受け取ったパケットと異なるFQDNへの書き込みが短い時間間隔で発生する.

実験では時間間隔が0.016[s]前後だが,実環境では結果よりも長くなることが考えれられる.

Page 14: ローカルプロキシを用いたCSRF攻撃検出手法の検 …...CSRFとはユーザが攻撃者が用意したWebサイトに対 してユーザの意図しないリクエストが送信される攻撃

CSRFとはユーザが攻撃者が用意したWebサイトに対してユーザの意図しないリクエストが送信される攻撃

ローカルプロキシを設置することでブラウザに依存することなくCSRFの検出が可能

今後の課題◦ ローカルプロキシへの実装

◦ 誤検知実験

◦ XSS(Cross Site Scripting)などの他の攻撃への応用

12