我々は、改ざんサイトのコンテンツファイルでも設定ファイル「.htaccess」でもなく、Apache拡張モジュールに注目しました。その結果、管理者に心当たりのないモジュールが勝手に組み込まれていることが明らかとなりました。このモジュールこそが「Darkleech Apache Module」だったのです。
被害報告を集約していった結果、不正モジュールであるDarkleechモジュールには、以下のように一見、正規のモジュールと混同させるような単語を組み合わせた命名規則が採用されていることが確認できました。このため、心当たりのないモジュールであったとしても、見過ごす可能性が高いと言えます。
接頭辞 | 中間語 | 接尾辞 |
---|---|---|
mod_ | balance_ | alias.so |
bench_ | cache.so | |
bulid_ | charset.so | |
cgiz_ | config.so | |
chart_ | env.so | |
get_ | expires.so | |
load_ | filter.so | |
local_ | headers.so | |
pool_ | log.so | |
preg_ | mem.so | |
sec2_ | mime.so | |
spm_ | proxy.so | |
string_ | version.so | |
uni_ | - | |
vies_ | - | |
表1 Darkleechモジュールのファイル名は「接頭辞_中間語_接尾辞.so」をランダムに組み合わせて構成されている(例:「mod_balance_proxy.so」) |
Darkleechモジュールは、ELF(Executable and Linkable Format)形式のバイナリファイルです。
解析の結果、「不審なサイトへ転送される」という報告と「すでに転送されなくなっている」という報告が入り乱れた理由が明らかになりました。Darkleechモジュールが作動するには、「接続元が特定の条件を満たしている必要があった」のです。すなわち、特定条件を満たしている場合に限り、犯罪者の指定した悪意あるコード(IFRAME / JavaScript)の注入が行われるという挙動でした。
Darkleechモジュールは、アクセス時のリファラやUserAgentなどの項目をチェックしています。これにより、インターネット検索エンジンからのアクセスは除外し、一定条件を満たすクライアントに対してのみ悪意あるコードを注入できるように設計されています。
またCookieの仕組みを使うことで、1クライアントにつき1回限りの注入を実現しています。この仕組みについて詳しく見ていきましょう。
Darkleechモジュールは、初めて訪れたクライアントに対し、以下のように固有のIDを割り当てたCookieをセットします。
Set-Cookie: PHP_SESSION_ID=(固有のID);
このCookie情報を基にして悪意あるコードをクライアントに送ります。クライアントが再びDarkleechモジュールが仕掛けられたサイトを訪れると、Cookieの値を「-1」に変えます。
Set-Cookie: PHP_SESSION_ID=-1;
Darkleechモジュールは、Cookieの値を参照することで、接続クライアントの感染履歴を知ることができるようになっています。そして、1度感染させたクライアントに対しては、悪意あるコードを応答しません。これにより、被害調査を目的としたアクセスを困難にし、自身の存在を隠蔽する効果を高めていると考えられます。
このように、Darkleech Apache Moduleはより巧妙な方法を用いて、踏み台となる「リダイレクタ」を構築する攻撃手法であったと言えます。リダイレクタの役割を果たすサーバを作成するために取った方法が、レスポンスに不正なスクリプトを埋め込むもので、Webサーバに保存されているファイルそのものを改ざんするわけではないという点が注目されました。
従って、システム管理者が静的コンテンツの改ざんを監視していても、異常に気づくのが困難になるという新たな問題を提起することになりました。
では、犯罪者の最終目的となる不正プログラム配布サイト「インフェクタ」に違いはあったかというと、使用しているツールこそ異なるものの、大きな違いはありませんでした。脆弱性を突いて、閲覧するだけで不正プログラムに感染させ、犯罪者にとって金銭獲得につながる攻撃基盤(インフラ)を作り上げているという点でも共通性が見られます。
一連の攻撃において、インフェクタサイトへと導いていくために採られた攻撃手法は「Blackhole Exploit Kit Version 2」(BHEK2)です。BHEK2によってリダイレクタの感染連鎖が作り込まれていました。
インフェクタに仕掛けられていた不正プログラムは、「偽セキュリティソフト」のみならず、「オンライン銀行詐欺ツール」や「アカウント盗用ツール」など多岐にわたっています。しかしながら、実害に至るまでの連鎖を断ち切る方法としては、「Gumblar」インシデントの際に得られた、「クライアント側のデファクトスタンダードとなっているソフトウェアの脆弱性に対策を施す」という教訓をそのまま活用できるものでした。
ここまで、国内で猛威を振るったDBD攻撃である「Gumblar」、そしてコンテンツの書き換えを伴わないサイト改ざん、「Darkleech Apache Module」について解説を行いました。
次回はいまだに続いている改ざんの事例について考察するとともに、万が一改ざん被害にあった場合の対処について解説します。
Copyright © ITmedia, Inc. All Rights Reserved.