| 情報セキュリティと サイバーセキュリティ |
|---|
| 対象別カテゴリ |
| 隣接領域 |
| 脅威 |
| 防御 |
ルートキット(rootkitあるいはroot kit)は、コンピュータシステムへのアクセスを確保した後に、第三者(通常は侵入者)によって使用されるソフトウェアツールのパッケージである。侵入者が管理者権限を奪ったあとに、コンピュータやIoT、ネットワークを全て乗っ取る目的で使用される。これらのツールには、作動中のプロセスやファイル、システムデータを隠蔽する機能があり、ユーザに気付かれないように侵入者がシステムへのアクセスを維持することを支援する。ウイルス対策ソフトやセキュリティ対策ソフトを無効化するため数年間発見されないこともあり、APT攻撃でも使用される。
ルートキットは多くの機能を持つ。キーロガーによって、クレジットカードの番号やオンライン銀行の口座の情報、パスワードなどの認証情報を盗むことができる。また、ボットネットのように、他のコンピュータやサーバーへの攻撃の踏み台として使われることもある。ウイルス対策ソフトやセキュリティ対策ソフトからルートキット自身を守るためのセキュリティ対策ソフト無効化ツールや、盗んだ情報を送信し、ルートキットが除去されたあとに再び侵入するためのバックドアも含まれる。
ルートキットは、2005年のSony BMG CD XCP問題で争点となり、この事件を契機に、技術コミュニティのみならず一般大衆にもルートキットの概念が広く知られるようになった。
日本国内で許可なく他人のPCやスマートフォン、IoTデバイスなどにルートキットをインストールする行為は、不正アクセス禁止法によって禁じられており、刑事罰を受ける可能性がある。
ルートキットは、Linuxコンピュータの管理者権限である「root」と、ツールのセットを意味する「kit」を組み合わせて作られた言葉になる。侵入者がシステムアドミニストレータにシステムを確認されても"root"権限を保持し続けるために、通常なら表示される侵入の痕跡を隠すようにリコンパイルされたUnixのソフトウェア群、例えばps、netstat、w、passwdといったツールを指していた。
現在では、この言葉はUnix系OSに限らず、Microsoft Windowsなどの非Unix系OS("root"というアカウントは存在しないが)で、同様のタスクを実行するツールにも広く用いられている。
1990年代のルートキットは、システムの管理ツールをルートキットに変更するだけでコンピュータを乗っ取ることができた。ルートアクセス権を取得し、侵入者の活動を正当なシステム管理者から隠蔽することができた。
これら第一世代のルートキットは、Tripwire などのツールを使用することで簡単に検出することができた。1990年に、Lane Davis と Steven Dake はサン・マイクロシステムズのSunOS UNIXオペレーティングシステム向けに、記録に残されている中では世界初のルートキットを作成した。また、Unix の作成者の 1 人であるベル研究所のケン・トンプソンは、1983 年にチューリング賞を受賞した際の講演で、UnixのCコンパイラをハッキングする理論を提唱し、エクスプロイトについて議論した。 改ざんされたコンパイラは、Unixのloginコマンドのコンパイルを検知し、ユーザーの正しいパスワードと攻撃者が知っている追加の「バックドア」パスワードも受け入れるように変更されたコードを生成する。さらに、改ざんされたコンパイラは新しいバージョンのコンパイラを検知し、同じエクスプロイトを新しいコンパイラに挿入する。loginコマンドまたは更新されたコンパイラのソースコードを調べても、悪意のあるコードは見つからない。このエクスプロイトがルートキットそのものであった。
1986年に発見された世界で最初の記録に残されているマルウェアは、拡張メモリ領域を使用することで自身を隠蔽した。Brainウイルスはブートセクタの読み取りを傍受し、読み取り先をディスク上の別の場所にリダイレクトした。そこには元のブートセクタのコピーが保存されていた。1980年代後半から1990年代前半にかけて、DOSウイルスの隠蔽方法は進化して巧妙になった。その一つがINT 13Hと呼ばれる隠し領域を作成する方法である。また、ウイルス対策ソフトのスキャンが始まったときにウイルス自身をディスクから消去して、スキャン後に再びディスクにウイルスを書き込むことで、ウイルス対策ソフトのスキャンから逃れる方法も開発された。
1999年には、Windows NT OSの最初のルートキットが実際に攻撃できることを証明するために発表された。これは「NTRootkit」と呼ばれるトロイの木馬で、セキュリティ研究家のGreg Hoglundによって作成された。NT Rootkitに続いて、2003 年には悪意のあるルートキットである「HackerDefender」が報告された。Mac OS Xを標的とした初のルートキット「WeaponX/Weapox」は 2004 年に概念実証として発表された。2010年には、スタックスネットが発見された。このマルウェアは産業用コンピュータであるプログラマブルロジックコントローラ (PLC) を標的とした、世界初のワームだった。
2005年、ソニーBMG社 (現在はソニー・ミュージックエンタテインメント)はコピーガードとデジタル著作権管理(DRM)の機能をもつソフトウェア「Extended Copy Protection」を入れたコンパクトディスク(CD)を発売した。Extended Copy ProtectionはFirst 4 Internet社によって開発された。Extended Copy Protectionには音楽プレイヤーが付属しており、この音楽プレイヤーで音楽を再生するときに、密かにルートキットをPCにインストールしていた。このルートキットは、CDのファイルの情報の一部を利用者から見ることのできないようにアクセス制限をしていた。
また、ルートキット自身を隠すために、$sys$で始まるファイルを表示させないようにしていた。
ルートキットを調査するツール「RootkitRevealer」を開発したソフトウェア・エンジニアのマーク・ルシノビッチは、ソニーのルートキットを彼のパソコンから発見した。ソニーの不祥事が明らかになったことで、ルートキットの存在が世間に知れ渡ることになった。ルシノヴィッチがこのマルウェアを報告してすぐに、ルートキットの利用価値は高いと判明した。あるBBCの解説者は、「広報戦略におけるの悪夢のようなスキャンダル」だと評した。
Sony BMGはルートキットをアンインストールするパッチを配布したが、そのパッチにも脆弱性が含まれていた。最終的に、問題となったCDはリコールの対象になって市場から回収された。米国では、ソニーBMG社に対して集団訴訟が起こされた。
ギリシャの盗聴事件(2004~2005年)は、ギリシャ政府関係者や高官が所有するボーダフォン・ギリシャのネットワーク上の100台以上の携帯電話が違法に盗聴された事件である。ギリシャのウォーターゲート事件とも呼ばれる。盗聴は2004年8月初旬頃に始まり、犯人が判明しないまま2005年3月に終了した。侵入者はエリクソン社の電話交換機に対してルートキットをインストールした。IEEE Spectrumによると、これは「ルートキットが特殊な用途のシステムで確認された最初の事例」であった。侵入者は、交換機が稼働中にメモリにパッチをあてて、監査ログを無効にしながら盗聴を行った。ルートキットは、アクティブなプロセスとアクティブなデータブロックを表示するコマンド、そしてデータブロックのチェックサム検証コマンドの結果を改ざんするように設計されていた。また、「バックドア」により、管理者権限を持つオペレーターは監視機能に関連する交換機のトランザクションログ、アラーム、アクセスコマンドを無効化することができた。
このルートキットは、侵入者が欠陥のあるアップデートをした後に発見された。このアップデートによりSMSテキストが配信されず、障害レポートが生成された。障害の調査をしたエリクソン社のエンジニアが、監視対象の電話番号のリストを含む隠されたデータブロックと、不正なルートキットを発見した。
2010年に発見されたスタックスネットは、イランの核施設を標的としたワームである。アメリカ国家安全保障局(NSA)とイスラエルの8200部隊の共同作戦によって開発された。このワームはマルウェアのファイルやプロセスを隠蔽するWindowsカーネルモード・ルートキットを組み込んでおり、それによって産業用制御システム(SCADA)を密かに妨害し、破壊するサイバー兵器だった。スタックスネットは、検知を免れつつ、イランのウラン濃縮用遠心分離機を破壊することに成功した。
2015年半ば、レノボ社から、組み込み型ルートキットのように動作するファームウェアをインストールしたPCが出荷されていたことが明らかになった。問題となった「Lenovo Service Engine」と呼ばれる機能はBIOSに組み込まれており、Windowsの起動よりも前の段階で実行されていた。Lenovo Service Engineは、レノボ社のシステム更新ユーティリティや関連するプリインストール・プログラムが削除された場合に自動的に再インストールを行い、それらが確実にシステムに残り続けるように設計されていた。問題となったコードがファームウェア内に存在していたため、ユーザーがそのコードを検知したり削除したりすることは困難だった。WindowsをクリーンインストールしてもLenovo Service Engineは削除されず、次のPCの起動時に再びインストールされる仕組みになっていた。
その後、セキュリティ研究者によって、Lenovo Service Engineからセキュリティ上の脆弱性が発見された。その脆弱性は、バッファオーバーフローを悪用して管理者権限を奪取する権限昇格攻撃を可能にするものだった。これを受けてレノボ社は2015年、Lenovo Service Engineを無効化・削除するためのBIOSアップデートと削除用ユーティリティを配布した。また、MicrosoftもWindowsのセキュリティガイドラインを改定してこのようなファームウェアの動作を禁止し、事実上、レノボ社に対してのLenovo Service Engineの使用停止の措置となった。以降のモデルからはLenovo Service Engineが削除された。レノボ社は顧客に対し、セキュリティ上の問題を解消するためにファームウェアをアップデートするように推奨した。
ルートキットは、侵入者がエクスプロイトした後(侵入に成功した後)にPCやスマートフォン、IoTデバイスの遠隔操作を維持し続けるための悪意のあるツールのセットである。エクスプロイト(侵入そのもの)に使われるツールではない。個人情報などの機密情報や認証情報の窃取、継続した盗撮、ボットネットの踏み台など、密かに継続してデバイスやネットワークを乗っ取り続ける必要があるときに使用される。継続して遠隔操作するために使うマルウェアという性質上、APT攻撃でも使用される。
オペレーティングシステム(OS)のあるデバイスであれば、ルートキットで攻撃できる。すなわち、冷蔵庫や温度計などのIoTデバイスも踏み台としてボットネットのDoS攻撃に参加させられてしまう。
ルートキットに含まれるツールには、キーロガーなど「情報を窃取するためのツール」、バックドアと呼ばれるマルウェアや盗んだ情報を「送受信するためのツール」、ウイルス対策ソフトを無効化するツールやアンチフォレンジクスのツールなど「活動を隠匿するためのツール」が含まれる。
直接的な機能ではないが、デバイスのパフォーマンスが落ちて、被害端末やネットワークの作業効率が落ちたり通信速度が遅くなったりすることがある。
ルートキットは、フォレンジック調査など正規の用途で使用することもある。
キーボードの入力を窃取する「キーロガー」、通信の内容を盗聴する「スニッファー」が存在する。これらのツールによって、個人情報などの機密情報やメールの内容、クレジットカードの番号、認証情報などを盗まれてしまう。
「バックドア」と呼ばれるマルウェアは、被害者から隠された経路でマルウェアやマルウェアのアップロードを行い、また、遠隔操作のためのコードを記述したファイルやコマンドを送信する。 被害者から盗んだデータを持ち出すときにも使用する。これらの通信が暗号化されていることもある。 マルウェアが消去されたときに再び侵入するための経路も、バックドアを使って作成する。ファイアーウォールを改ざんし、また無効化することで通信の経路を作成することもある。
これらのツールを使用することで、ボットネットの踏み台としてDoS攻撃に参加させられてしまう。また、スパムメールを送信する踏み台にさせられてしまう。マイクやカメラの付属したデバイスの場合は、遠隔操作によって盗聴・盗撮されてしまう。
ウイルス対策ソフトの検知から逃れるための「ウイルス対策ソフト無効化ツール」が存在する(無効化攻撃参照)。セキュリティの専門家の調査から証拠を隠匿するための「アンチフォレンジクスツール」を使用して、ログオンやプロセスの情報、イベントログやアーティファクトに対して、改ざんや削除をすることもできる。隠された領域を作成し、作成した領域にルートキット自身やランサムウェアを隠すことができる。通信先を隠匿するために、隠匿したい通信先の代わりにダミーの通信先を表示させるものもある。
ルートキットには少なくとも5つのタイプが存在し、ファームウェアという最下層(最高権限を持つ)に位置するものから、Ring 3で動作する最も権限の低いユーザーベースのものまで多岐にわたる。ユーザーモードとカーネルモードを組み合わせたハイブリッド型も存在する。

ユーザーモードのルートキットは、低レベルのシステムプロセスではなく、アプリケーションと同様にユーザーとしてリング3で実行される。アプリケーションプログラミングインターフェース(API)の標準的な動作を傍受・改変するためのインストール経路は複数存在する。Windowsでは.DLLファイル、Mac OS Xでは.dylibファイルなど、動的リンクライブラリを他のプロセスに注入することで、ターゲットプロセス内で実行してそのプロセスを偽装できるものもあれば、特権を持つ場合にターゲットのアプリケーションのメモリを上書きするものもある。挿入のメカニズムには以下のものがある。
ユーザーモードのルートキットとして、「Hacker Defender」が挙げられる。
カーネルモードのルートキットは、カーネルやカーネルに関連するデバイスドライバ(ドライバ)を含むコアオペレーティングシステムにコードを追加したり置き換えたりすることで、オペレーティングシステムの最高権限(リング 0)で実行される。ほとんどのオペレーティングシステムは、カーネルモードのデバイスドライバをサポートしている。そのため、多くのカーネルモードのルートキットは、Linux のロード可能なカーネルモジュールや Microsoft Windows のデバイスドライバなど、ドライバまたはロード可能なモジュールとして開発されている。このクラスのルートキットはセキュリティアクセスに制限がないものの、作成は困難である。複雑さゆえにバグは発生しやすく、カーネルレベルで動作するコードのバグはシステムの安定性に深刻な影響を与え、ルートキットの発見につながる可能性がある。 最初に広く知られるようになったカーネルルートキットの 1 つは、Microsoft Windows NT 4.0用に開発され、1999 年にGreg HoglundによってPhrack誌で公開された「NT Rootkit」である。カーネルルートキットはオペレーティングシステム自体と同じセキュリティレベルで動作するため、検出して削除することは極めて難しく、オペレーティングシステムの操作を傍受したり、妨害したりすることができる。ルートキットに感染したシステムで実行されているウイルス対策ソフトなども同様に無効化できる。カーネルルートキットに感染した状況では、システムの全体が信頼できない。
カーネルルートキットは、システムコールにパッチをあてたりフックしたり置換したりして攻撃者の情報を隠蔽する。 また、カーネルオブジェクトの直接操作(DKOM) と呼ばれる方法を使用して、Windows カーネルのデータ構造を変更する方法もある 。 この方法は、プロセスを隠蔽するために使用する。カーネルモードのルートキットは、システムサービス記述子テーブル (SSDT) をフックしたり、ユーザーモードとカーネルモード間のゲートを変更したりして、自身を隠蔽することもできる。同様に、Linux オペレーティングシステムの場合、ルートキットはシステムコールテーブルを変更してカーネル機能を乗っ取ることができる。 DKOMを悪用するカーネルモードのルートキットに、「FU Rootkit」がある。システムコールを改ざんするカーネルモードのルートキットには、「SuckIT」や「T0rn」、「Ambient's Rootkit (ARK)」が存在する。
他のマルウェアや感染したファイルのオリジナルコピーを隠すための、隠された暗号化ファイルシステムを作成することもある。
オペレーティングシステムは、カーネルモードのルートキットの脅威に対抗するために進化している。たとえば、Microsoft Windows の 64-bit 版では、信頼できないコードが最高権限で実行されるのを防ぐために、すべてのカーネルドライバに署名が義務付けられるようになった。
正規の用途で使用するカーネルモードのルートキットも存在する。「nProtect GameGuard」が挙げられる。
ブートキットはオペレーティングシステムを起動するUEFIやBIOSに感染するマルウェアである。デバイスを起動したとき、最初にファームウェアが起動される。UEFIやBIOSは、ファームウェアが起動した後にオペレーティングシステムを起動するまでの橋渡しをする。UEFIやBIOSが橋渡しする段階でマルウェアが起動するため、オペレーティングシステムよりも先にマルウェアは起動してしまう。
BIOSに感染するブートキットは、マスターブートレコード(MBR)、Volume boot record(VBR)、ブートセクタなどの起動コードに感染する。マルウェアのブートローダーは、カーネルがロードされた後も存続し、カーネルを乗っ取る。MBRに感染するブートキットに「Stoned Bootkit」がある。Stoned BootkitはMBRを改ざんする。ブート時に改ざんされたMBRが読み込まれると、Stoned Bootkitのモジュールが呼び出される。「Alureonルートキット」もMBRを改ざんすることで、Windows 7の64-bitカーネルモードドライバの署名の検証を回避する。 フルディスク暗号化システムを攻撃するために利用されることもある(参考: ディスク暗号化)。ディスク暗号化に対する攻撃の一例としては、「悪意あるメイド攻撃」が挙げられる。この攻撃では、攻撃者が無人のコンピュータにUSBメモリを差し込んで、ブートキットをインストールする。
UEFIのブートマネージャに感染するブートキットに、「BlackLotus」が挙げられる。Black Lotusは Windows に感染し、ブートローダをBaton drop (CVE-2022-21894)の脆弱性のあるものに置き換えることで、セキュアブートのメモリ領域をブートローダーの初期化時に消去して無効化する。さらに、Windows Defenderを無効化し、C2サーバとHttpsの通信をするダウンローダーをカーネルドライバを利用して展開する。
ブート起動で感染するという特性を持つため、USBメモリや外付けハードディスクなどからも感染する。
ウイルス対策ソフトの会社で、ブートキットを削除するための無料のユーティリティやプログラムを提供しているところもある。
ファームウェア・ルートキットは、デバイスまたはプラットフォームのファームウェアを使用して、ルーター、ネットワークカード、ハードディスクドライブ、BIOSなどのハードウェアに永続的なマルウェアのイメージを作成する。 ルートキットはファームウェアの内部に潜伏する。ファームウェアはコードの整合性について検証されず、さらにウイルス対策ソフトでもスキャンできないため、マルウェアの検出が難しい。
ジョン・ヒーズマンは、ACPIファームウェア内のルーチンと PCI拡張カード ROMの両方で、ファームウェア・ルートキットを作成した。 2008 年 10 月、犯罪者はヨーロッパのクレジットカード読み取り機を改ざんした。これらのデバイスは、モバイル・ネットワークを介してクレジットカードの情報を傍受し、送信した。2009 年 3 月、セキュリティ研究者のアルフレド・オルテガとアニバル・サッコは、ディスクの交換やオペレーティングシステムの再インストールでも駆除できないBIOS レベルの Windows ルートキットを発表した。数か月後、彼らは、一部のノートパソコンには、LoJackとして知られる正規のルートキットが多くの BIOS イメージにプリインストールされて販売されていたことを発見した。このファームウェア・ルートキットは車両の盗難防止用の正規のシステムだったが、後にAPT攻撃グループのファンシーベアに悪用された。2018年、ESETはLoJackに潜む悪意のあるファームウェア・ルートキットである「LoJax」を発見した。LoJaxは、ブート起動時に読み込むマザーボード内部の、SPIフラッシュメモリに常駐する。SPIフラッシュメモリはPCに付属する不揮発性メモリであるため、OSをクリーンインストールしても駆除されずに残り続ける。削除するには、マザーボードを交換するか、SPIフラッシュメモリのファームウェアを正規のものにアップデートするしか方法がない。
2018年、IntelのPC管理機能「Intel Active Management Technology(AMT)」の脆弱性が発見された。AMTはIntel PCのチップセットのファームウェアに含まれる機能であり、電源のオンオフやハードディスクの管理などの操作をブラウザ経由で遠隔操作により行える。このIntel Active Management Technologyのデフォルトの認証パスワードが「admin」だったため、攻撃者がIntel Active Management Technologyの設定を変更することで、容易にPCの乗っ取りができた。
仮想化機能を利用するルートキットも存在する。ハイパーバイザ型のルートキットは、「Ring -1」で動作し、標的となるオペレーティングシステム(OS)をバーチャルマシンとして起動する。これにより、元のOSが行うハードウェアへの呼び出しを傍受することが可能になる。通常のハイパーバイザとは異なり、必ずしもOSより先に読み込まれる必要はない。OSが読み込まれた後に、OSをバーチャルマシンへと移行させることもできる。ハイパーバイザ型のルートキットは、OSを乗っ取るためにカーネルを改変する必要はない。だからといってバーチャルマシンのOSから検出するのは不可能ではない。CPU命令の実行タイミングの遅れから検出できる可能性はある。
例として、APT攻撃グループのUNC3886による攻撃が挙げられる。UNC3886は、バーチャルマシン「VMware ESXi」の脆弱性を利用したハイパーバイザー型のルートキットを使用して、横展開をした。
ハイパーバイザー型のルートキットをルートキット対策として活用した事例もある。 2009年、マイクロソフトとノースカロライナ州立大学の研究者らは、カーネルモードのルートキットに対する保護を提供するハイパーバイザー層のルートキット対策ソフト「Hooksafe」を作成した。Windows 10では、仮想化を利用してルートキット型のマルウェアからオペレーティングシステムを独立して外部から保護する「Device Guard」と呼ばれる機能が導入された。
ルートキットは、システムやネットワークを乗っ取るためにさまざまな手法を用いる。ルートキットの種類によって、エクスプロイトの方法は異なる。最も一般的な方法は、セキュリティの脆弱性を悪用して、権限を昇格させる方法である。また、ソーシャル・エンジニアリングによって、トロイの木馬をユーザーにインストールさせる方法もある。ユーザーモードのルートキットの場合は、管理者権限を必要としないため、インストールは容易になる。 標的のシステムに物理的にアクセスできる場合は、BadUSBを用いてUSBメモリをデバイスに挿入することでインストールすることもできる。この方法は、スタックスネットで用いられた。
ルートキットの中には、システムの所有者または所有者から許可を受けた人物が、従業員の監視などの目的で意図的にインストールするものもある。悪意のあるルートキットの中には、サードパーティーストアで入手したアプリに含まれているものもある。
インストールされたルートキットは、診断、スキャン、監視に使用されるOSのセキュリティツールやアプリケーションプログラミングインターフェイス(API)を改ざんまたは回避することによって、システム内での存在を隠蔽する。ルートキットは、他のプロセスにコードをロードしたり、ドライバやカーネルモジュールをインストールまたは改ざんしたりすることによって、OSのコア部分の動作を変更する。難読化技術には、実行中のプロセスをシステム監視メカニズムから隠蔽したり、システムファイルやその他の構成データを隠したりすることが含まれる。ルートキットが攻撃の証拠を隠蔽するために、オペレーティングシステムのイベントログ機能を無効化することもある。ルートキットは、理論的には、あらゆるオペレーティングシステムの活動を改ざんすることができる。
「完璧なルートキット」は、「完全犯罪」のようなものである。つまり、誰も犯罪行為に気づかないマルウェアである。 ルートキットは、システムへの完全なアクセス権を持つリング 0 (カーネル モード) にインストールされることに加えて、ウイルス対策ソフトによる検出や「駆除」から生き残るためのさまざまな対策も講じる。これには、ポリモルフィックコード(「シグネチャ」を変更し、検出されにくくするコード)、ステルス技術、再感染、ウイルス対策ソフトの無効化などである。さらに、研究者が発見して分析しやすいことから天敵となる、仮想マシンへの攻撃を避けることも考慮する。
あらゆるルートキット検出プログラムには、それが疑わしいシステム上で動作する限り、それにつきものの制約がある。それは、ルートキットはシステム上の全てのプログラムが頼っているライブラリやツールの多くを修正してしまうプログラムだということである。あるルートキットは動いているカーネルを(Linuxや多くのUNIXライクなOSではローダブルモジュールを、MS Windowsなどではおそらくは仮想デバイスドライバなどを通じて)修正する。ルートキット検出の根本的問題は今動いているオペレーティングシステムが信用できないということにある。言い替えれば、全ての作動中のプロセスの表示やディレクトリの中の全てのファイルのリストの表示の要求といった行為の結果が、元々の設計者が意図したような振舞いであると信用できないということである。
もっとも信頼できる最良のルートキット検出の手段は、感染の疑いのあるコンピュータをシャットダウンして、他のメディアから(例えばレスキューCD-ROMやUSBから)起動してストレージを検査することである。動いていないルートキットはその存在を隠すことができず、ほとんどの確立したアンチウイルスプログラムは(おそらくルートキットによって修正されているはずの)標準的なOSコールと低レベルのクエリーに頼るルートキットを検出可能である。なぜならそれらは信頼性を保っているはずだからである。もし何か違いがあればルートキット感染が想定される。ルートキットは検査が終了するまで動いているプロセスを監視して自らの隠蔽行動を停止することで、ルートキットスキャナーに引っかからない、ステルス機能のないマルウェアを装うことで自らを守ろうとすることもある。
セキュリティベンダはルートキット検出を既存のアンチウイルス製品に統合するソリューションを構想している。ルートキットがスキャン中に自分を隠そうとすれば、ステルス検出によって見分けられる。もし一時的にシステムからアンロードしようとするならば、今までのアンチウイルスソフトがパターンファイルによって発見するだろう。この統合された防御によって、ルートキットにメモリからセキュリティソフトウェアを強制的に削除し、実質的にアンチウイルスソフトを殺してしまう反撃機構(retro routine)を攻撃者が実装することを余儀なくされる。
ルートキットを検出できるプログラムはいくつかある。Unix系のシステムでもっとも有名なものを二つ挙げるならchkrootkitとrkhunterだろう。Windowsプラットフォームで個人用でなら無償で使用できるステルススキャナーとしてはBlacklightというソフトがベータ版としてF-Secure社のWebsiteからダウンロードできる。他のWindows用検出ソフトとしてはRootkitRevealerというソフトがSysinternalsから入手できる。これはいまある全てのルートキットをOSの返す一覧と実際にディスクそれ自身から読み出した一覧とを比較することで検出することができる。ただし、いくつかのルートキットはこのプログラムを隠蔽先から外し始め、実質上、二つの一覧の違いを無くすことで検出ソフトによって表示されないようにしてきている。しかしrootkitrevealer.exeというファイル名をランダムな名前に変更することでこれは対処できる。この機能は最新のRkdetectorのリリースにも含まれている。
ルートキットの除去が事実上禁止されているくらい非実用的なものだとする一定の意見が存在する。たとえルートキットの正体と特性がわかっていても、必要な技術や経験をもつシステム管理者の時間と労力はゼロからオペレーティングシステムをインストールすることに費やしたほうがましだというものである。「現存するルートキットは発見されたとしてももっと除去しづらいように作ることはできたはずだと思うが、そうするだけの充分な動機づけはないように思う。なぜなら経験あるシスアドがルートキットで汚染されたシステムを見つけた時の典型的な反応は、データをセーブして再フォーマットをかけることだからだ。これはルートキットが良く知られていて100%削除可能である場合ですらそうだ」Rootkit Question
システムがオンラインの時に他のファイルシステムドライバを用いてルートキットを削除する方法が存在する。Rkdetector v2.0はシステムが作動中の時に自分自身のNTFSもしくはFAT32ファイルシステムドライバを用いて隠しファイルを削除する方法を実装している。一度消去されシステムが再起動されると、データが壊れてしまうためルートキットは動作しなくなる。
コンピュータウイルスとルートキットの鍵となる違いは増殖の仕方にある。ルートキットと同様に、コンピュータウイルスはシステムの中核ソフトウェアコンポーネントを修正し、「感染」の隠蔽を試みたり攻撃者にある種の機能やサービスを提供したりするコード(ウイルスの「ペイロード」)を追加する。
ルートキットの場合、ペイロードはルートキット(システムへと侵入したソフトウェア)の一貫性を維持しようとすることがある --- 例えばルートキットのpsコマンドは実行されるたびにシステムのinitやinetdのコピーをチェックして、それらがのっとられたままであることを確認し、必要なら「再感染」を行なうかもしれない。ペイロードの残りの部分の目的は、侵入者がシステムを制御下に置き続けられるようにすることである。システムの制御は一般に、ハードコードされたユーザ名/パスワードの組、隠されたコマンドラインスイッチ、もしくは秘密の環境変数設定といったバックドアを介して行なわれる。バックドアにより、のっとられていないプログラムが提供するはずの正常なアクセス制御ポリシーを覆すのである。いくつかのルートキットはポートノッキングチェックをinetdやsshdといった既存のネットワークデーモン(サービス)に加えたりする。
コンピュータウイルスはどのような種類のペイロードでも運べるが、それに加えてコンピュータウイルスは他のシステムへの伝播をも試みる。一般にルートキットのすることはひとつのシステムの制御の維持に限られている。
自動的にネットワークをスキャンして脆弱性のあるシステムを探し、脆弱性をついてシステムをのっとるプログラムもしくは一揃いのプログラムはコンピュータワームと呼ばれる。またもっと受動的に動作する形のコンピュータワームもあり、ユーザ名とパスワードを盗聴してそれを使ってアカウントをのっとり、そうして得たアカウントのそれぞれに自分自身のコピーをインストールする(そして普通はのっとったアカウント情報をある種の隠れチャネルを通じて侵入者へ送る)。
勿論混成型も存在する。ワームはルートキットをインストールできるし、ルートキットはひとつないしそれ以上のワームやスニファやポートスキャナのコピーを含んでいるかもしれない。ウイルスであると同時にワームであるようなマルウェアも存在する。こうした言葉は全て使われ方がある程度重なっているものであり容易に合成されるものでもある。
システム攻撃者によって利用されるほとんどのソフトウェアと同様に、多くの実装が共有されてインターネットで容易に入手可能になっている。侵入されたシステムで、一般に入手できる洗練されたルートキットが経験の乏しいプログラマによって書かれたとおぼしい粗雑なワームもしくは攻撃ツールを隠しているのを見るのは珍しいことではない。
インターネットで入手可能なほとんどのルートキットは概念実証(proof of concept)のために作られたものである。それらはコンピュータシステムの中に何かを隠す新しく実験的な手法の実用性を証明するために作られた。しかし実験的であるために、しばしばステルス性のために最適化されていない。そうしたルートキットで攻撃を行なうと、大変に効果的であったりする。しかし発見された時、例えばCDのような信頼できるメディアからオペレーティングシステムが起動されたような場合には、しばしば非常に明瞭な存在の痕跡を残す。例えば、「rootkit」といった名前のファイルをコンピュータシステム上のありがちな場所に残すなどである。