マカフィー株式会社 公式ブログ

McAfee Labs] 2011年4月15日 更新

偽ウイルス対策ソフトや、トロイの木馬と関わりを持つルートキット

 

マルウェアには様々な亜種が存在しているのが一般的ですが、DNSサーバーの設定を変えるマルウェア「DNSChanger.ad」も同様です。この亜種は、大抵FakeAlert(偽ウイルス対策ソフト)や、DNSChangerといった種類のトロイの木馬と関わりを持つルートキットをダウンロードします。ダウンロードされたシステムファイルは、時間の経過に応じて名前が「tdss*.sys」から「seneka*.sys」「skynet*.sys」といったように変化していきます。このルートキットにメモリー検査・クリーニングを実施したところ、「Generic Rootkit.d」であることが判明しました。このマルウェアが使用する手口は既に判明しています。基本的には「IofCallDriver」、「IofCompleteRequest」、「NtFlushInstructionCache」、「NtEnumerateKey」などにインラインフックを設けます。更に、自身のレジストリ項目から各種権限を消去します。

今回のマルウェアは、「system32\drivers」フォルダ内に「skynet*.sys」といった名前のシステムファイルを隠します。マルウェアによって設けられたインラインフックは、ルートキット分析ツールの他、デバッガ「WinDbg」でも修復可能であり、インラインフックを修復すれば攻撃用ファイルが見えるようになります。その一方で、このマルウェアは削除されたファイルを元に戻す機能を備えています。マルウェアが「監視」や構成コンポーネントの復旧を試みることはよくあります。ただ興味深いのは、ファイル監視機構「File Monitor」(filemon)でこのような活動を捉えらることができないのと同時に、他のAPI追跡手段でもファイル復旧と思われる動きを見つけられないことです。

詳しく調べたところ、「KeDelayExecutionThread」で作成したループの中で遅延システムワーカースレッドを使用し、一定の間隔で「ZwCreateFile」を呼び出していました。この処理に関連するコードとスレッドを以下に示します。

ファイル生成処理ループ

この処理から、削除したファイルが復活する仕組みが分かります。このスレッドはマルウェアのレジストリを監視しており、以下のコードを使用してシステム用サービスのアドレス格納テーブル「System Service Descriptor Table」(SSDT)を絶えず改変しています。この影響により、SSDTにフックを設けて各種活動を調べる監視ユーティリティが機能しなくなります。

SSDTの書き換え

SSDTを書き換えられただけであれば、filemonはこのファイルに関する活動を報告できるはずです。ところがこのマルウェアは、ファイルシステムフィルタドライバを全て削除してしまいます。filemonもファイルシステムフィルタを使用しているため、このドライバ削除によって報告できなくなっていました。感染前後のデバイススタックの内容を以下に示します。感染後に全てのフィルタが駆除されています。

感染前後のデバイススタックの内容

また以下は、割り当てられていたフィルタを削除するコードです。

フィルタ削除コード

なお、割り当てられているこのNTFS用デバイスフィールドだけがnullで、これ以外のスタックは改変されず残っています。

このように、filemon用フィルタドライバだけではなく、Filter Managerも削除されていた事が分かります。全てのフィルタを削除しSSDTを書き換えることで、これらに頼る分析ツールの邪魔を行います。ただその一方で、他のソフトウェアの動きを阻むこともあり得ます。ほぼ全ての環境でルートキットの動きを隠すことができるのであれば、他のソフトウェアが動かなくてもマルウェアとしては問題ないのです。このようなトレードオフは、多くのマルウェアに見られます。今回のマルウェアもその一例と言えるでしょう。

Also Find Us On

マカフィーは、インテルコーポレーション(NASDAQ:INTC)の完全子会社であり、企業、官公庁・自治体、個人ユーザーが安全にインターネットの恩恵を享受できるよう、世界中のシステム、ネットワーク、モバイルデバイスを守るプロアクティブで定評のあるセキュリティソリューションやサービスを提供しています。詳しくは、http://www.mcafee.com/japan/をご覧ください。

 

Copyright © 2003-2014 McAfee, Inc. All Rights Reserved.