終わらないWebサイトの改ざん―counter.phpと*stats.php

2014年1月15日

2013年はWebサイトの改ざんが非常に多い年でした。始まったばかりの2014年もその傾向は続いており、毎日多くの改ざんされたWebサイトが見つかっています。

カスペルスキーの日本オフィスでは、改ざんされてマルウェアが設置されたWebサイトの管理者やインターネットサービス事業者(以下ISP)に、注意喚起のメールを送っています。Webサイトの管理者にインシデントが発生していることに気づいてもらい、対応をお願いすることが目的です。
マルウェアに感染する人が少しでも減ることを願ったボランティア活動なので、時期によって多少の変動があるのですが、2013年12月は約500通のメールを送りました。つまり、たった1か月の間に日本のWebサイトの改ざんは少なくとも約500件発生したということです。弊社で確認できていない改ざんされたWebサイトもあると思いますので、実際にはこれ以上のWebサイトが被害に遭ったと考えられます。

下の図は、2013年12月に送った注意喚起メール数のグラフです。

注意喚起メール数:2013年12月

では、改ざんされたWebサイトとは、一体どういったサイトなのでしょうか?

Webサイトの管理者が知らないうちに、悪意を持つ第三者によってマルウェアが設置されたり、マルウェアをダウンロードさせるための仕組みを付け加えられたWebサイトを、「改ざんされている」と言います。(いたずらや示威目的でWebサイトが書き換えられることも多くありますが、ここではマルウェア感染という視点に絞ります。)

セキュリティが甘い環境(※1)から、これらの改ざんされたWebサイトを閲覧しただけで、マルウェアに感染します。一般的に、「ドライブバイダウンロード」と呼ばれる攻撃手法です。
先に2013年12月は約500件のWebサイトの改ざんが起きたと述べましたが、これらのサイトを閲覧した、何千、何万のユーザーがマルウェアに感染した可能性があります。
そんなバカな、と思われる方もいらっしゃるかもしれませんが、頻発するWebサイトの改ざんの中でも際立つ、2つの事例について紹介します。

counter.php

counter.phpは、日本では2013年2月頃より観測され始めました。何人の訪問者がいたかを知るためのアクセスカウンターをWebサイトに設置するのは一般的なことなので、このファイル名を見る限りcounter.phpはアクセスカウンターのように見えます。しかし、この実態は悪質なリダイレクター(※2)でした。

実際に改ざんされたWebサイトのソースコードを見てみましょう。

counter.php:ソースコード

赤枠で囲われている部分が悪性のコードです。

悪性のコードは特徴的で、HTMLのクローズタグの後にiframeが挿入されています。この挿入したiframeを使って、Webサイト閲覧時に、ユーザーの意図とは関係なく外部のWebサイトへ誘導し、誘導先で別のマルウェアに感染させるという手法を取ります。
カスペルスキーではこれをTrojan.JS.Iframe.aeqとして検知します。

ユーザーが改ざんされたWebサイトにアクセスすると、counter.phpはいくつかの条件の下でコードを返します。最初の条件はIPアドレスです。興味深いことに、同じIPアドレスから2回アクセスすることはなく、1つのIPアドレスから初回のアクセスでのみ動作します。同じ環境からブラウザーを再読み込みし2回目にアクセスしたとしても、初回と同様のコードは返ってきません。
非ブラウザー環境での実行を回避するための典型的なチェックが終わり、コードが実行されると、エクスプロイト(※3)が設置されたWebサイトへ誘導されます。ここでは、OSの種類やJava、Adobe Readerなどのバージョンを調べるためのプラグイン検知機能で確認したJavaのバージョンに従って、そのユーザーの環境に合わせたエクスプロイトが選択され、ダウンロードされます。

counter.phpについてはカスペルスキーのアナリストが詳細な記事を書いていますので、こちらも併せてご参照ください(『Visit from an old friend: Counter.php』、『Malicious counter.php』)。

このcounter.php自体は新しいものではありませんし、この攻撃手法自体も多くの人が知るところとなりました。問題は、今現在もcounter.phpで他のWebサイトへリダイレクトされる仕組みが残っているまま、放置されているWebサイトが数多くあるということです。counter.phpという名前はありがちなので、Webサイトの管理者が気づいていないのかもしれませんし、何年も放置されていて誰も管理していない野良Webサイトなのかもしれません。いずれにせよ、悪意のある第三者が、Webサイトを勝手に書き換えていることには変わりないので、Webサイトの管理者が一刻も早く対応してくれることを願います。

不思議なことがもう1つあります。今現在のcounter.phpの状況を見てみると、多くの誘導された先のWebサイトでマルウェアはダウンロードされません。
攻撃するためのシステムは残したまま、まるでお休みしているかのようです。十分成果を上げたので攻撃者が新たな方法を模索中なのか、年末年始の長期休暇か、はたまた攻撃者が攻撃システムをレンタルで借りていて、そのレンタル期間が終了したのかなど、いろいろ想像の余地はありますが、実態は不明です。
この記事の執筆時点(2014年1月9日現在)、マルウェアはダウンロードされないので、WebサイトのオーナーやISPに報告をしても、「何が問題であるか」ということが、なかなか理解してもらえない場合があります。
Webサイトが改ざんされてコードが残っており、マルウェアに感染する仕組みが存在する以上、いつまたマルウェアが設置され、ダウンロードが始まるかわかりません。改ざんされたWebサイトは、悪意のある第三者がそのWebサーバーに対して書き込み権限を持っているということなので、早急に侵入経路の調査とセキュリティホールを塞ぐ対応が求められます。

*stats.php

「stats」は日本語で「統計」という意味があります。2013年12月始め頃から目につくようになった*stats.phpは、先に述べたcounter.phpと同様に、Webサイトに悪意のあるiframeが挿入され、ユーザーがそのWebサイトを閲覧すると他のWebサイトへ誘導されるものです。誘導される先のドメインは、最近では12月11日に登録されたものがありました。弊社のアナリストが確認している*stats.phpのURLは60を数えます
下に紹介するのはその誘導先URLの例です。

http://omakase***.jp/sample-morikawa36/agedstats.php?id=228637
http://emedemarg***.com/avidstats.php?id=500988
http://b-**.net/chat/calmstats.php?id=165216
http://dog***hotel.com/cyanstats.php?id=163513
http://hak12***.xsrv.jp/cyanstats.php?id=280379
http://kostenlo***zimmervermittlung-berlin.de/edgystats.php

便宜上*stats.phpと呼んでいますが、「ある文字列 + stats.php」の形式となっており、stats.phpの前に「aged」や「avid」などさまざまな単語が入っています。

次のキャプチャは、挿入されたiframe で*.stats.phpが指定されているWebサイトのソースコードです。

stats.php:ソースコード

これらのURLは、適切なリファラー(※4)やCookieの情報がなければ直接のアクセスはできません。もし動いたとしても、アクセスできるのはたった一度だけです。初回のアクセスの後、アクセスしたIPアドレスはブロックされるので、同じIPアドレスから最新のデータ(マルウェア)のダウンロードはできないようになっています。

そのたった一度のアクセスが成功した(=マルウェアに感染した)ネットワークのトラフィックは次のように見えます。

stats.php:トラフィック

コードがダウンロードされ実行されると、さらに悪性のスクリプトをダウンロードし、*.jar と *.pdf の実行可能なファイルがダウンロードされました。現在観察されている最終的なペイロード(※5)はzbotです。オンラインバンクのアカウントとパスワードを狙うマルウェアが、*stats.phpを入口にして侵入します。
カスペルスキーでは、*.stats.phpが指定されたiframeをHEUR:Trojan.Script.Genericとして検知します。サンプルのMD5ハッシュ値はa8d23ca3eb1e532f8ddfc8de77b85418です。

マルウェアがダウンロードされる仕組みの複雑さから、残念なことにセキュリティ各社の対応は不十分です。つまり、多くのセキュリティ製品で検知できていません。

特筆すべきなのは、*stats.phpを指定したiframeが挿入されたWebサイトは、ほとんどが日本にあるということです。2013年にオンラインバンキングの不正送金で巨額の被害が出た事実を考えると、サイバー犯罪者が引き続き日本を狙っているのは明らかです。

Webサイトの管理者が対応しない限り、Webサイトを訪れる多くの人がこの危険なマルウェアに感染する可能性があります。

どうやってWebサイトを改ざんしているのか?

counter.phpと*stats.phpについて、概要を理解いただいたと思います。しかし、ある根本的な疑問が残ります。「Webサイトの改ざんは、どう行われているか?」という点です。

冒頭で述べた、改ざんされたWebサイトの管理者への注意喚起メールを送付する活動の中で、ある方から非常に興味深いお返事をいただくことができました。
Webサイトのindex.htmlにiframeが挿入され、*stat.phpのURLに誘導されていたのですが、FTPのアカウントとパスワードが何らかの原因で流出し、悪意のある何者かが海外からアクセスしてWebサイトを改ざんしていたそうです。

OSやソフトウェア、セキュリティソフトがいつも最新の状態であれば、マルウェア感染のリスクは下がります

私たちはWebサイトが改ざんされていることの発見はできますが、実際にどう行われたかを確認するためには、Webサーバーのログを調査するしかありません。今回実際に対応にあたった方から詳細な情報を教えてもらうことで、改ざんする方法の1つが明らかになりました。もしカスペルスキーからの注意喚起の連絡を受け取り、対応された方がいらっしゃいましたら、ごく簡単で構いませんので結果を教えていただければ幸いです。

2013年から続くWebサイトの改ざんの流行は、2014年もまだまだ続くと予想されます。しかし、OSやソフトウェア、セキュリティソフトがいつも最新の状態であれば、マルウェア感染のリスクは下がります。
カスペルスキーを含む世界中のセキュリティベンダーが、おまじないのように唱える「OSとソフトウェアの更新をしてください」という言葉の意味はここにあります。

—————————————————
※1更新されていない古いOS、ソフトウェアの脆弱性が残ったままで、セキュリティソフトをインストールしていないなどの環境
※2 あるURLから他のURLに転送させること
※3 ソフトウェアの脆弱性を利用して、不正な動作を行うプログラム
※4 Webサイトから別のWebサイトへ移動するときの元のWebサイトのこと
※5 データ本体のこと