数カ月前、話題になったDarkmegiは、マイクロソフト製品の脆弱性CVE-2012-0003(MIDIのリモートでコードが実行される脆弱性)を悪用した脅威として初めて確認されたものです。最近では、Gong Da Packエクスプロイトキットの一部として、CVE-2011-3544(Java Runtimeのリモートでコードが実行される脆弱性)を利用したドライブ・バイ・ダウンロード攻撃でも確認されています。Darkmegiは、カーネルルートキットコンポーネントを使って、感染したシステム内で拠点を維持します。
フックのインストール
一般的に、ルートキットは自身のファイルやレジストリキーの読み取りを拒否したり、アクセスを削除したりしますが、Darkmegiも例外ではありません。DarkmegiはDriversディレクトリのcom32.sysにカーネルドライバをドロップします。また、ユーザーモードコンポーネントであるcom32.dllもドロップします。このコンポーネントはexplorer.exe、iexplore.exeに挿入されます。また、ntfs.sys(IRP_MJ_CLOSE、IRP_MJ_CREATE、IRP_MJ_DEVICE_CONTROL)およびfastfat.sysのDispatchテーブルにフックし、アプリケーションがcom32.dll、com32.sysファイルを読み取れない(またはスキャンできない)ようにします。
フックの影響
一度ルートキットがOSを乗っ取ると、保護されたファイルのコピーや読み取りは拒否されます。
正規ファイルを装うマルウェア
また、Darkmegiは、もうひとつの手段として、自身のマルウェアファイルに25MBもの意味のないデータを埋め込みます。一般的なマルウェアのサイズは1MB未満であるため、それによって正規のファイルのように見せかけるのです。実際、25MBを超える既知のマルウェアは0.03%以下にとどまっています。このように、マルウェアの作成者は、ファイルを中心としたセキュリティの観点を回避するために、様々な戦略を練っているのです。
ただし、Darkmegiはファイルの格納場所は隠しません。
半ステルス性
では、手間をかけてルートキットを作成しながら、ファイルを隠さない理由は何でしょうか。ひとつは、ルートキット対策ツールの中にWindows APIから返されるファイルのリストをNTFSのロースキャンで作成されるツール作成リストと比較するものがあるということが挙げられます。ここに矛盾があれば、疑いが出てしまうというわけです。
Windows 7上のDarkmegiに対して、オンデマンドのルートキット対策ツールがどう対処するかは興味のあるところですが、マイクロソフトのRootkitRevealerといった人気の高いものも含めて、今のところほとんどWindows 7に対応していないようです。
ひとつだけ感染時にカーネルドライバに保護されているユーザーモードコンポーネントを識別できるものがありましたが、修復の完了には再起動が必要でした。1回目の再起動ではシステムがハングアップし、2回目の再起動後にクリーンアップ完了のメッセージが表示されましたが、検出されなかったカーネルドライバによってユーザーモードコンポーネントが復元され、元通り挿入されてしまいました。
また、感染後に使用するタイプの別のツールは、Darkmegiの悪質な実行ファイルを識別しましたが、ファイルを削除しようとすると、システムの問題を引き起こす可能性があるため推奨しないという表示が出ました。かまわず削除したところ、システムがブルースクリーンループに陥り、セーフモードでも抜け出すことができませんでした。
Windows 7では成功しませんでしたが、ファイル比較ツールを感染したWindows XPシステムで試してみることにしました。テストの結果、読み取りではなく、ファイルのリストアップを許可する手法により、いくつかのツールが回避される可能性があることが判明しました。
以上により、感染後にルートキット削除ツールを実行しても、望ましくない結果に終わることがわかります。OSが支配される前に検知することが理想的です。
リアルタイムにマルウェアを捕えるDeep Defender
McAfee Deep Defenderは、カーネルメモリーのリアルタイム監視により、悪質なイベントをブロックし、問題のルートキットをブラックリストに入れ、削除することができます。
ルートキットが削除または無力化されれば、ユーザーモードコンポーネントはロードされず、同様に無力化されます。
※この記事は、McAfeeの運営しているブログから、注目のエントリーを編集部でピックアップし、転載しているものです。