Presentation is loading. Please wait.

Presentation is loading. Please wait.

HTML5時代の Webセキュリティ Jul 21 2012 Yosuke HASEGAWA. NetAgent security-mikan techtalk #5 自己紹介 はせがわようすけ  ネットエージェント株式会社  株式会社セキュアスカイ・テクノロジー.

Similar presentations


Presentation on theme: "HTML5時代の Webセキュリティ Jul 21 2012 Yosuke HASEGAWA. NetAgent security-mikan techtalk #5 自己紹介 はせがわようすけ  ネットエージェント株式会社  株式会社セキュアスカイ・テクノロジー."— Presentation transcript:

1 HTML5時代の Webセキュリティ Jul 21 2012 Yosuke HASEGAWA

2 NetAgent http://www.netagent.co.jp/ security-mikan techtalk #5 自己紹介 はせがわようすけ  ネットエージェント株式会社  株式会社セキュアスカイ・テクノロジー 技術顧問  Microsoft MVP for Consumer Security Oct 2005 -  http://utf-8.jp/  セキュリティキャンプ Webセキュリティクラス講師

3 NetAgent http://www.netagent.co.jp/ security-mikan techtalk #5 これまでに調べた脆弱性  Webブラウザ、Webアプリケーションを中 心にいろいろ…  CVE-2007-0995 XSS of Mozilla Firefox  CVE-2007-1262 XSS of SquirrelMail  CVE-2007-2227 XSS of Internet Explorer  CVE-2008-0416 XSS of Mozilla Firefox  CVE-2008-1468 XSS of Namazu  CVE-2008-5808 XSS of Movable Type  CVE-2010-1213 Cross-origin data disclosure of Mozilla Firefox  CVE-2010-3348 Cross-origin data disclosure of Internet Explorer  CVE-2010-3770 XSS of Mozilla Firefox  CVE-2011-1339 XSS of Google Search Appliance  CVE-2011-3384 XSS of Sage  CVE-2011-3648 XSS of Mozilla Firefox...

4 難読化 JavaScript Obfuscated JavaScript

5 $=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({ }+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:( {}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};$.$_=($.$_=$+"")[$.$_$]+( $._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$ $_])+($.$=(!""+"")[$.__$])+($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$. $;$.$$=$.$+(!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_];$.$ ($.$($.$$+"\""+$.$_$_+(![]+"")[$._$_]+$.$$$_+"\\"+$.__$+$.$$_+$._$_+$. __+"(\\\"\\"+$.__$+$.__$+$.___+$.$$$_+(![]+"")[$._$_]+(![]+"")[$._$_]+$._$ +",\\"+$.$__+$.___+"\\"+$.__$+$.__$+$._$_+$.$_$_+"\\"+$.__$+$.$$_+$. $$_+$.$_$_+"\\"+$.__$+$._$_+$._$$+$.$$__+"\\"+$.__$+$.$$_+$._$_+"\\ "+$.__$+$.$_$+$.__$+"\\"+$.__$+$.$$_+$.___+$.__+"\\\"\\"+$.$__+$.___+ ")"+"\"")())(); 記号JavaScript JS without alnum jjencode - http://utf-8.jp/public/jjencode.html

6 ゚ ω ゚ノ = / `m ´ )ノ ~ ┻━┻ //*´ ∇` */ ['_']; o=( ゚ー゚ ) =_=3; c=( ゚ Θ ゚ ) =( ゚ー゚ )-( ゚ー゚ ); ( ゚ Д ゚ ) =( ゚ Θ ゚ )= (o^_^o)/ (o^_^o);( ゚ Д ゚ )={ ゚ Θ ゚ : '_', ゚ ω ゚ノ : (( ゚ ω ゚ノ ==3) +'_') [ ゚ Θ ゚ ], ゚ー゚ノ :( ゚ ω ゚ノ + '_')[o^_^o - ( ゚ Θ ゚ )], ゚ Д ゚ノ :(( ゚ー゚ ==3) +'_')[ ゚ー゚ ] }; ( ゚ Д ゚ ) [ ゚ Θ ゚ ] =(( ゚ ω ゚ノ ==3) +'_') [c^_^o];( ゚ Д ゚ ) ['c'] = (( ゚ Д ゚ )+'_') [ ( ゚ー゚ )+( ゚ー゚ )-( ゚ Θ ゚ ) ];( ゚ Д ゚ ) ['o'] = (( ゚ Д ゚ )+'_') [ ゚ Θ ゚ ];( ゚ o ゚ )=( ゚ Д ゚ ) ['c']+( ゚ Д ゚ ) ['o']+( ゚ ω ゚ノ +'_')[ ゚ Θ ゚ ]+ (( ゚ ω ゚ノ ==3) +'_') [ ゚ー゚ ] + (( ゚ Д ゚ ) +'_') [( ゚ー゚ )+( ゚ー゚ )]+ (( ゚ー゚ ==3) +'_') [ ゚ Θ ゚ ]+(( ゚ー゚ ==3) +'_') [( ゚ー゚ ) - ( ゚ Θ ゚ )]+( ゚ Д ゚ ) ['c']+(( ゚ Д ゚ )+'_') [( ゚ー゚ )+( ゚ー゚ )]+ ( ゚ Д ゚ ) ['o']+ (( ゚ー゚ ==3) +'_') [ ゚ Θ ゚ ];( ゚ Д ゚ ) ['_'] =(o^_^o) [ ゚ o ゚ ] [ ゚ o ゚ ];( ゚ ε ゚ )=(( ゚ー゚ ==3) +'_') [ ゚ Θ ゚ ]+ ( ゚ Д ゚ ). ゚ Д ゚ノ +(( ゚ Д ゚ )+'_') [( ゚ー゚ ) + ( ゚ー゚ )]+(( ゚ー゚ ==3) +'_') [o^_^o - ゚ Θ ゚ ]+(( ゚ー゚ ==3) +'_') [ ゚ Θ ゚ ]+ ( ゚ ω ゚ノ +'_') [ ゚ Θ ゚ ]; ( ゚ー゚ )+=( ゚ Θ ゚ ); ( ゚ Д ゚ )[ ゚ ε ゚ ]='\\'; ( ゚ Д ゚ ). ゚ Θ ゚ノ =( ゚ Д ゚ + ゚ー゚ )[o^_^o -( ゚ Θ ゚ )];(o ゚ー゚ o)=( ゚ ω ゚ノ +'_')[c^_^o];( ゚ Д ゚ ) [ ゚ o ゚ ]='\"';( ゚ Д ゚ ) ['_'] ( ( ゚ Д ゚ ) ['_'] ( ゚ ε ゚ +( ゚ Д ゚ )[ ゚ o ゚ ]+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )+ ( ゚ー゚ )+ ( ゚ Θ ゚ )+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )+ (( ゚ー゚ ) + ( ゚ Θ ゚ ))+ ( ゚ー゚ )+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )+ ( ゚ー゚ )+ (( ゚ー゚ ) + ( ゚ Θ ゚ ))+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )+ ((o^_^o) +(o^_^o))+ ((o^_^o) - ( ゚ Θ ゚ ))+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )+ ((o^_^o) +(o^_^o))+ ( ゚ー゚ )+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+(( ゚ー゚ ) + ( ゚ Θ ゚ ))+ (c^_^o)+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ー゚ )+ ((o^_^o) - ( ゚ Θ ゚ ))+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )+ ( ゚ Θ ゚ )+ (c^_^o)+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )+ ( ゚ー゚ )+ (( ゚ー゚ ) + ( ゚ Θ ゚ ))+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )+ (( ゚ー゚ ) + ( ゚ Θ ゚ ))+ ( ゚ー゚ )+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )+ (( ゚ー゚ ) + ( ゚ Θ ゚ ))+ ( ゚ー゚ )+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )+ (( ゚ー゚ ) + ( ゚ Θ ゚ ))+ (( ゚ー゚ ) + (o^_^o))+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+(( ゚ー゚ ) + ( ゚ Θ ゚ ))+ ( ゚ー゚ )+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ー゚ )+ (c^_^o)+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )+ ( ゚ Θ ゚ )+ ((o^_^o) - ( ゚ Θ ゚ ))+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )+ ( ゚ー゚ )+ ( ゚ Θ ゚ )+ ( ゚ Д ゚ ) [ ゚ ε ゚ ]+( ゚ Θ ゚ )+ ((o^_^o) +(o^_^o))+ ((o^_^o) +(o^_^o))+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )a+ ( ゚ー゚ )+ ( ゚ Θ ゚ )+ ( ゚ Д ゚ ) [ ゚ ε ゚ ]+( ゚ Θ ゚ )+ ((o^_^o) - ( ゚ Θ ゚ ))+ (o^_^o)+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )+ ( ゚ー゚ )+ (o^_^o)+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )+ ((o^_^o) +(o^_^o))+ ((o^_^o) - ( ゚ Θ ゚ ))+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )+ (( ゚ー゚ ) + ( ゚ Θ ゚ ))+ ( ゚ Θ ゚ )+ ( ゚ Д ゚ ) [ ゚ ε ゚ ]+( ゚ Θ ゚ )+ ((o^_^o) +(o^_^o))+ (c^_^o)+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )+ ((o^_^o) +(o^_^o))+ ( ゚ー゚ )+ ( ゚ Д ゚ ) [ ゚ ε ゚ ]+( ゚ー゚ )+ ((o^_^o) - ( ゚ Θ ゚ ))+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+(( ゚ー゚ ) + ( ゚ Θ ゚ ))+ ( ゚ Θ ゚ )+ ( ゚ Д ゚ )[ ゚ o ゚ ]) ( ゚ Θ ゚ )) ('_'); 顔文字JavaScript JS with emoticons aaencode - http://utf-8.jp/public/aaencode.html

7 質問 Question

8 質問 : Web技術、好きですか? Q. Do you love web technologies?

9 クロスサイトスクリプティング SQLインジェクション CSRF HTTPレスポンス分割 オープンリダイレクタ HTTPヘッダインジェクション セッションハイジャック パストラバーサル リモートファイルインクルード DoS OSコマンドインジェクション メモリリーク バッファオーバーフロー 強制ブラウズ セッション固定攻撃 LDAPインジェクション XPathインジェクション 書式文字列攻撃

10 NetAgent http://www.netagent.co.jp/ security-mikan techtalk #5 Web技術、好きですか? 「はい」に挙手した人  かなり打たれ強い or  攻撃者

11

12 NetAgent http://www.netagent.co.jp/ security-mikan techtalk #5 HTML5時代のWebアプリ  次々とリリースされるブラウザ  多数の新しい要素と属性  canvas, video, audio, input…  多数の新しいAPI  Web Sockets, Web Storage, XHR Lv.2…  最適化されたJavaScriptエンジン  高速化された描画エンジン  どのブラウザにどの機能が実装されてい るのか把握できない

13 NetAgent http://www.netagent.co.jp/ security-mikan techtalk #5 次々とリリースされるブラウザ 678 2001 20032004 2006200720082009 134 5910 3.5 3.6 3.01.52.0 678 2 4 1 2 3 20102005 1.0 5 20112012 9 10 23 5 11 12 6

14 NetAgent http://www.netagent.co.jp/ security-mikan techtalk #5 HTML5の新機能  マルチメディアのサポート...  文書構造を表す要素...  フォームの拡張...  JavaScript API Web Workers, WebSocket, File...  その他…

15 NetAgent http://www.netagent.co.jp/ security-mikan techtalk #5 HTML5時代のWebアプリ  HTML5時代のブラウザ  高速化、高機能化  実行コードのブラウザ上へのシフト  ネイティブアプリからWebアプリへ  サーバ側で実行されていた処理がブラウザの JavaScript上へ  攻撃もクライアントサイドへシフト  JavaScript上の問題点の増加  XSSやCSRFなどの比重が増加

16 NetAgent http://www.netagent.co.jp/ security-mikan techtalk #5 HTML5時代のWebアプリ  攻撃もクライアントサイドへシフト  JavaScriptを通じた攻撃の比重が増加  XSSのリスクも増加 多くの点から見て、XSS 脆弱性の危険性 はバッファ オーバーフローに匹敵します。 ” “ セキュリティに関するブリーフィング : Web に対する SDL の適用 http://msdn.microsoft.com/ja-jp/magazine/cc794277.aspx

17 そもそもXSSって? →簡単におさらい

18 NetAgent http://www.netagent.co.jp/ security-mikan techtalk #5 XSSおさらい  対象  動的にHTMLを生成するWebアプリ  問題  攻撃者が用意したスクリプトがHTML内に挿 入される  対策  HTMLを生成する時点でエスケープ

19 NetAgent http://www.netagent.co.jp/ security-mikan techtalk #5 XSSおさらい http://shop.example.com/ ?item=">... http://shop.example.com/ ?item=">... GET /?item=">... ... ... HTMLを生成するときの エスケープ漏れ HTMLを生成するときの エスケープ漏れ 被害者 攻撃者 オンラインショップなど

20 NetAgent http://www.netagent.co.jp/ security-mikan techtalk #5 XSSおさらい 被害者 攻撃者 オンラインショップなど http://shop.example.com/ ?item=">... http://shop.example.com/ ?item=">... ... ... GET /?item=">...

21 NetAgent http://www.netagent.co.jp/ security-mikan techtalk #5 XSSおさらい Subject: test mail... Subject: test mail... HTMLを生成するときの エスケープ漏れ HTMLを生成するときの エスケープ漏れ 被害者 攻撃者 Webメールなど Subject: test mail... Subject: test mail...

22 NetAgent http://www.netagent.co.jp/ security-mikan techtalk #5 XSSおさらい HTMLを生成するときの エスケープ漏れ HTMLを生成するときの エスケープ漏れ 被害者 攻撃者 Webメールなど Subject: test mail... Subject: test mail...

23 NetAgent http://www.netagent.co.jp/ security-mikan techtalk #5 XSSおさらい  対象  動的にHTMLを生成するWebアプリ  問題  攻撃者が用意したスクリプトがHTML内に挿 入される  対策  HTMLを生成する時点でエスケープ

24 大原則 HTMLを生成する時点で エスケープ って何だっけ? → おさらい

25 NetAgent http://www.netagent.co.jp/ security-mikan techtalk #5  HTMLを生成する時点でエスケープ! XSSおさらい < > < → < > → > " → " ' → ' & → & < → < > → > " → " ' → ' & → & データ 処理 ユーザ HTML生成

26 NetAgent http://www.netagent.co.jp/ security-mikan techtalk #5 エスケープの例外  href、src等のURLの動的生成  http以外のスキームに注意  JavaScript内の動的生成  JS内の文字列リテラルはHTMLとは異なるエ スケープ

';
Ads by Google