Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

rootkit(ルートキット)とは | 意味や読み方など丁寧でわかりやすい用語解説

rootkit(ルートキット)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

ルートキット (ルートキット)

英語表記

rootkit (ルートキット)

用語解説

rootkit(ルートキット)とは、コンピュータシステムへの不正侵入後に、自身の存在や活動の痕跡を隠蔽し、攻撃者がシステムへのアクセスを維持するために使用する一連のツールやプログラムの集合体を指す。その名前は、Unix系システムにおける最高権限を持つユーザー「root」と、道具一式を意味する「kit」に由来している。システムが不正に侵害された後、攻撃者は自身の活動を隠し、永続的にシステムを制御しようとする。rootkitは、まさにその目的のために用いられる。

rootkitの主な目的は、システムに潜伏しながら、検出されないように振る舞うことである。例えば、攻撃者が作成した不正なファイルやプロセス、ネットワーク接続などを、通常のシステム監視ツールから見えなくすることで、攻撃の痕跡を隠蔽する。これにより、不正アクセスが長期間にわたって発覚しにくくなり、攻撃者は自由にシステムを操作したり、機密情報を窃取したり、他の攻撃の踏み台として利用したりすることが可能となる。rootkitは単独のマルウェアというよりも、バックドアやキーロガー、あるいは他のマルウェアと連携して機能することが多く、非常に高度で悪質な攻撃に利用される。

rootkitがどのようにして自身の存在を隠すのか、その動作原理は多岐にわたるが、基本的にはオペレーティングシステム(OS)の深部に干渉し、システムが提供する基本的な情報を改ざんすることで実現される。例えば、攻撃者がシステムに作成した不正なファイルがあるとする。通常のファイル一覧表示コマンドを実行すると、そのファイルは表示されるはずである。しかし、rootkitが稼働している場合、ファイル一覧表示コマンドがOSの内部でファイル情報を取得する際に、rootkitがその処理に介入し、不正なファイルを意図的に除外した情報を返すようOSに細工する。その結果、ユーザーやセキュリティツールは不正なファイルの存在を検知できなくなる。これはプロセスやネットワーク接続の隠蔽についても同様であり、タスクマネージャーから特定のプロセスを隠したり、不正な通信を監視ツールから見えなくしたりする。

rootkitはその潜伏する層によっていくつかの種類に分類される。最も一般的なのは「ユーザーモードRootkit」と「カーネルモードRootkit」である。ユーザーモードRootkitは、アプリケーションが動作する層、つまりOSの比較的表層で動作する。これは、アプリケーションがOSのサービスを利用するためのインターフェース(API)をフックし、不正な情報を隠蔽する。比較的新しいOSでは対策が進んでいるため、検出はカーネルモードRootkitに比べれば容易な場合が多い。

一方、カーネルモードRootkitは、OSの心臓部であるカーネル、つまりシステムの最も深い部分に潜伏する。カーネルはOSのすべての機能、例えばファイルの読み書きやプロセスの管理、メモリの割り当てなどを直接制御する。カーネルモードRootkitは、これらのカーネルの機能を改ざんしたり、正規のデバイスドライバになりすましてシステムにロードされたりすることで、非常に強力な隠蔽能力を持つ。OSの根幹を操作するため、通常のセキュリティツールでは、自らが騙されていることに気づかずに、rootkitが提供する偽の情報に基づいて「システムは正常である」と判断してしまう可能性が高い。そのため、検出と除去が非常に困難である点が特徴だ。

さらに進化したrootkitとしては、「ファームウェアRootkit」や「ハイパーバイザーRootkit」がある。ファームウェアRootkitは、BIOS/UEFIのようなハードウェアのファームウェアに感染する。OSが起動するよりも前に動作するため、OSレベルのセキュリティ対策では検出が極めて困難であり、感染した場合はハードウェア自体の交換が必要になるケースもある。ハイパーバイザーRootkitは、仮想化技術を悪用し、仮想環境のOSの下層に位置するハイパーバイザーとして動作する。これにより、本来のOSが仮想マシン(ゲストOS)として動作する形となり、ゲストOSからは自身の存在を全く認識できない。これは「Blue Pill」のようなコンセプトで知られており、高度な攻撃手法の一つとされている。

rootkitの感染経路は、他のマルウェアと共通する部分が多い。例えば、トロイの木馬としてシステムに侵入したり、脆弱性を悪用したドライブバイダウンロードによってユーザーが気づかないうちにインストールされたりする。また、OSやアプリケーションの脆弱性を突いて、権限昇格を伴いながらrootkitが展開されることもある。一度感染すると、上述のように検出が非常に困難であるため、システム管理者にとっては最も厄介な脅威の一つとなる。

rootkitの検出は、その隠蔽能力の高さゆえに一筋縄ではいかない。通常のアンチウイルスソフトウェアでは、OSから得られる情報に依存するため、rootkitによって改ざんされた情報に基づいてしまうと、不正な存在を見つけることができない場合がある。そのため、rootkit対策に特化したツール(rootkitスキャナー)や、OSが起動する前にシステムをスキャンするオフラインスキャン、あるいはシステムの整合性をチェックする手法(例えば、重要なファイルのハッシュ値が変更されていないかを確認する)などが用いられる。また、システムの不審な挙動を監視するIDS/IPS(不正侵入検知・防御システム)も有効な対策となることがある。

rootkitからシステムを保護するための対策としては、まずOSやインストールされているすべてのソフトウェアを常に最新の状態に保ち、既知の脆弱性を塞ぐことが重要である。また、信頼できないウェブサイトからのダウンロードや不審なメールの添付ファイルを開かないなど、基本的なセキュリティ意識の徹底も欠かせない。強力なアンチウイルスソフトウェアを導入し、特にrootkit検出機能を備えた製品を選ぶことも有効である。万が一rootkitに感染してしまった場合、完全に除去することは非常に困難であるため、多くの場合、OSのクリーンインストールが最も確実な対処法とされている。ファームウェアRootkitの場合は、該当するハードウェアのファームウェアアップデートや、最悪の場合はハードウェア自体の交換も視野に入れる必要がある。システムエンジニアを目指す上で、rootkitはサイバーセキュリティにおいて非常に重要な概念であり、その原理と対策を理解しておくことは必須だと言えるだろう。

関連コンテンツ

関連IT用語

関連ITニュース