概要
ルートキットとは、標的のPCに侵入するための攻撃ツールを集めたものの総称です。
インストール後に継続的にリモートアクセスするためのツールや、システムを改ざんすることを目的としたツールの集合体です。
一般にルートキットはセキュリティ製品に検知されづらいように、OSの奥深くにインストールされるよう設計されています。
ルートキットは、自身のみを標的PC上に残すように設計されている場合があります。
具体的には、ルートキット以外に第三の攻撃者によって標的PCにインストールされたキーロガーや、重要情報を窃取するための不正なソフトウェア、ウイルス対策ソフトのようなセキュリティ製品を無効化する機能を持っていることがあります。
これは、ルートキットが検出されにくく、かつ安定的に動作をさせることが目的であると考えられています。
侵入したPC上で、複数のマルウェアが動作してしまうとシステムの動作が不安定になってしまうかもしれないためです。
ルートキットの主な動作として、マルウェア本体の活動を隠蔽するために、大きく2つの方法を利用しています。
- OSとアプリケーション間への介入
これは、WindowsなどのOSとアプリケーションの間の情報のやり取りに介入するものです。
一般に多くのアプリケーションは、特定のWindows APIを呼び出して情報を得ています。
そこで、プロセスやネットワークなどの情報を要求するアプリケーションへWindowsから渡される情報のうち、マルウェアに関する情報を削除するなどして、マルウェアの存在を隠蔽します。
- OSが管理する情報の直接操作(DKOM)
2つ目はDKOM(Direct Kernel Object Modification)と呼ばれる手法です。
Windowsが管理する内部情報そのものを削除するなどして、アプリケーションに情報を渡さないように細工をするものです。
DKOMを利用するルートキットはカーネル構造体を操作することで、例えばプロセスやポートを隠し、アクセス権を変更するなどすることで解析者の目をごまかします。
背景と事例
ルートキットには一般にユーザーモードで動作するものと、カーネルモードで動作するものの2つに分類されます。
- ユーザーモードで動作するもの
アプリケーションのレベルで動作するものであり、アプリケーションのプロセスを乗っ取る、アプリケーションが使用するメモリ領域を上書きするなどし、悪意ある動作をする。
- カーネルモードで動作するもの
OSの最下位層で動作し、ルートキットが実行されたシステム上で最も強力な権限を奪取する。
また、近年では「ブートキット」と呼ばれるルートキットが知られています。
OSの読み込み前に実行される下層のソフトウェアに変更を加えることで攻撃を行うものです。
これの代表的なものでは、TDL4やNemesisが知られています。
この一部は、カード決済情報を窃取するために悪用されました。
これらのルートキットが必ずしも悪意があるとは言い切れません。
例えば、2005年10月に報告されたソニーBMG製CDXCP問題がありました。
音楽CDに採用されていたコピー防止技術「XCP」が、ルートキットに類似した動作を行うということが報告され訴訟まで発展しました。
セキュリティ対策ソフトウェアと、マルウェアが、紙一重であると考えさせられる代表的な事案でしょう。