コース: サイバーセキュリティの基礎

ルートキットを利用した遠隔操作

コース: サイバーセキュリティの基礎

ルートキットを利用した遠隔操作

基礎的な隠蔽やクローキングの手口を 使っているマルウェアは、 知識と調査力があれば 見つかってしまいます。 そのため、さらに高度なサイバー攻撃では、 マルウェアをアプリケーションや プロセスではなく、 オペレーティングシステムの心臓部に インストールするテクニックが 編み出されました。 このようなマルウェアを、 ルートキットといいます。 攻撃者は、まず標的のシステムに侵入し、 ドロッパーと呼ばれる仕組みを使って ルートキットをインストールします。 ルートキットはドロッパーに 格納されていることもあれば、 ダウンロードで インストールされることもあります。 ドロッパーは、そのシステムに先行する ルートキットが存在していないか、 仮想マシン上で動作しているシステムか、 そのシステムがどの国で運用されているか といったことを調べます。 そして、標的としてふさわしいことが 確認できると、システムに ルートキットを埋め込んで、 システムを再起動し、 ルートキットがスタートするように 設定します。 ルートキット自体は脆弱性をつく エクスプロイトを行いません。 密かに動きながら、 正常なシステム機能を使って ミッションを遂行します。 ルートキットはウイルスでもありません。 標的の中に埋め込まれて存在していますが、 自身を複製して 拡散することはないからです。 ただし、システムにインストールされた ウイルスなどの拡散を助ける働きを する場合はあります。 ルートキットは、侵入検知システムに かからないよう設計されています。 例えば、特定のアンチウイルスソフトや ホスト侵入検知ソフトがあるかを調べて、 それらが機能しないようにするコードを 含んでいることがあります。 フォレンジック分析でも 見つからないようにするための 最適な隠れ場所といえば、 オペレーティングシステムのカーネルです。 オペレーティングシステムの 核心部分にあたるカーネルは、 侵入検知システムでも容易に 調べられないからです。 カーネルに埋め込むには、 ルートキットを 「ローダブルカーネルモジュール」 と呼ばれる特別な形式のプログラムに することが必要です。 ドライバーもこの一種です。 Microsoft は、 ローダブルカーネルモジュールの開発用に、 「Windows ドライバー開発キット」、 通称 DDK(ディーディーケー)を 提供しています。 ドライバーの開発には 複雑なコーディング技術が必要なので、 あまり詳しい説明まではしませんが、 「リングゼロ」と呼ばれる カーネルの最深部で動作するドライバーなら カーネルのあらゆるデータ構造に アクセスできる、ということは 知っておいてください。 ルートキットをカーネルに埋め込むと、 高い権限を行使できることも重要です。 できないことがほとんどない上に、 きわめて見つかりにくくなります。 カーネル内にあることで高い権限を持つ ルートキットには、 「DKOM(ディーコム)」と略称される カーネルオブジェクトの直接操作が 可能です。 カーネルは、データ構造を利用して 自らの状態を把握しています。 その1つが、プロセスモジュールにある プロセスデータ構造です。 各エントリーに2つのポインターがある 2重リンクのリストになっています。 リストの冒頭のエントリーから 1つ後ろのエントリーへと順番に リンクする前向きのポインターと、 最後のエントリーから 1つ前のエントリーへと順番にリンクする 後向きのポインターがあります。 カーネルは、これらのポインターを 利用してプロセスの監視と マネジメントを行います。 ユーザーがタスクマネージャーを開くと、 タスクマネージャーのアプリケーションが ロードされ、カーネルにアプリケーションと プロセスのリストを要求します。 カーネルは内部のデータ構造をチェックし、 リストを作成して、 これをタスクマネージャーに送って、 それが表示されるわけです。 さて、ルートキットがロードされると、 まずすることの1つが、 プロセスリストの確認です。 前向きのポインターを辿って、 自身とその直前および直後のプロセスを 確認すると、 直前のプロセスから自身に向かう ポインターを、1つ後ろのプロセスに向くよう 変更します。 同様に、後向きのポインターも、 自身を飛ばして1つ前に向くよう 変更します。 DKOM を利用したルートキットの出現が 最初に確認されたのは、 2006 年ごろのことでした。 このルートキットが使った手口が、 まさにこのようなプロセスデータ構造の ポインターの迂回です。 それによって、このルートキットの動作は、 タスクマネージャーからも イベントスケジューラーからも 見えなくなりました。 DKOM は、ドライバーや オープンポートのリストなどの データ構造に活用できます。 ほかにもルートキットは、 ディレクトリやファイルリストに自らが 記載されるのを防いだり、 記載を削除したりします。 遠隔操作の方法で一般的なのは、 SSH(エスエスエイチ)と呼ばれる セキュアシェル接続を使って 暗号化したチャンネルを作ることです。 これによって、攻撃者はシステムを 遠隔操作することが可能になり、同時に、 ダウンロードされるマルウェアも 暗号化することでネットワークベースの 侵入検知システムに見つからないように することができます。 SSH を使うと、ユーザー名と パスワードの入力を要求することで、 バックドアからルートキットへの アクセスを攻撃者自身に 限定することができます。 例えば、Dogma Millions という 犯罪集団が作り出したルートキット、 「Trojan Downloader 3」、 通称 TDL3 は、 プリンタードライバーとして システムに入り込むことで、 カーネルモードの権限を獲得します。 このルートキットは、自身のために 暗号化されたファイルシステムを インストールして、 ハードディスクの終端部分から 逆方向にデータを蓄積していきます。 Windows はこの部分を、 何も書かれていないフリースペースと 認識するため、通常のウイルススキャンでは 見つけることができません。 TDL3 は、すべてのインストールについて 日時と購入者を記録する 課金モデルを使ってルートキットを 拡散しました。 TDL3 のルートキットは、 キーボード入力の監視や DoS 攻撃の実行など、 さまざまな悪意ある ペイロードモジュールのダウンロード、 インストール、隠蔽に使われました。

目次