(Mark Minasi)

 「ルートキット」とは,基本的には“トロイの木馬”プログラムであり,ネットワーク上であなたに気づかれることなく動作するものだ。なぜなら,それらはシステム上,透明になり自分たちを隠すからである。[タスクマネージャ]や[エクスプローラ]では,その存在を検知できない。ルートキットは,稼働中のプロセスに関して報告するOSの機能の一部を改変することで,自分たちの存在を隠す。ルートキットはこうして変更されたOSコンポーネントのおかげで,以後は見えないままでいられるのだ。

 私は,ルートキットと戦うために,ウイルス対策ベンダーたちはブート可能なCD-ROM上に独自のスキャン・プログラムを乗せる必要があると以前に主張したことがある。このスキャン・プログラムは,NTFSフォーマットのドライブが読めるだけでなく,IPスタックを起動してウイルス対策ベンダーのサイトから最新のパターン・ファイルをダウンロードできるというものだ。

 多くの読者から「Bart's PE Builder(BartPE)」を教えてもらったが,もちろん私はBart Langerweij氏が作成したこのソフトウエアを知っている。彼の作ったものは,Windows 2000/XPやWindows Server 2003から起動に必要なファイルを抽出し,それをCD-Rディスクにどのように記録するかを判断する。BartPEの価値はお分かりだろう。あなたのシステムを修復するために,そのCDからOSを起動するものである。

 でも,私が探しているのはそういうものではない。ブート可能なCD-ROMが欲しいわけでもない。インターネットからパターン・ファイルを入手できるウイルス対策用スキャナとクリーナが納まったようなブート可能なCD-ROMが欲しいのである。米Trend Microが提供するフリーのActiveXスキャナをWebサイトから入手できる。これと組み合わせれば,BartPEのCD-ROMはこのような仕事をこなせるだろうと思うが,私はTrend Microのサービスを乱用したくない。

OSレベルではルートキットを防げない
 ところで,なぜルートキットはあんなことができるのか?MicrosoftのOSの構造の一部にいくつかいい加減なところがあるからか?それともレドモンド(米Microsoft本社の所在地)の連中による悪巧みの1つか?答えは「No」だ。

 どんなOS上で稼働中のプログラムでも,今稼働しているプロセス(例えばユーザー・アプリケーションやドライバやサービスやOSのコンポーネントなど)のリストを取得できる唯一の方法は,OSにそのリストを要求することだ。私がかつて動かした最初のメインフレーム用OS「IBM OS/360」でもその通りだったし,Windows NTファミリでもそうだった。私の知る限りでは,UNIX/Linuxファミリのあらゆる系列でも,そうなっている。WindowsシステムはOSにフックする少数のAPIを備えており,現在,どのプロセスが稼働しているかを調べるどんなアプリケーションもこのAPIに頼っている。このAPI群はコンピュータのハードディスク上にあるプログラムのセットに過ぎない。

 では,悪意あるユーザーが何か不正なソフトを書こうと思っているとする。例えば,あなたのハードディスクを消したり,分散型のDoS攻撃に加担させたりするプログラムをだ。しかも,彼はあなたのウイルス対策ソフトが,それを検知できないようにしたい。この攻撃者は,ウイルス対策ソフトが特定のプロセス(つまり一緒に組み込まれた不正ソフト)の存在を報告しないようにプログラムを書き換えることができ,さらにあなたのハードディスク上にあるプログラム・ファイルを改変されたバージョンに置き換えられる。彼または彼女は,それから不正ソフトをインストールして,その結果,自動的にあなたのコンピュータを毎日起動してガツンと食らわせるようになる。何か嫌なものをあなたのシステム上で動かすだけでなく,それがあなたに分からないようにするのだ。

 私がいいたい要点は,OSというものはソフトウエア以上の何ものでもない。ソフトウエアはやりたいことをやれるようにしたり,特定のプロセスを無視するようにしたり,書き換えられるのだ。悪意のあるユーザーが,特定のファイルを表示しないように[エクスプローラ]を改変したり,特定のレジストリ・キーを見せないように「regedit」を書き換えたりする可能性もある。私がここで話をちょっと単純化している理由を,どうかご理解いただきたい。典型的な悪い奴は,そういうファイルを実際には変更しないかもしれない。その代わりに,同じ狙いを実現するためにフィルタのようなものをインストールするだろう。

防御策は管理者権限でログオンしないこと
 攻撃者は,あなたのシステムにこのようなフィルタやプログラムを,どうやってインストールするのだろうか。Microsoftはこうした危険からわれわれを守るように,OSを変えられないのだろうか?答えは再び「No」だ。

 こうした透明化するフィルタやプログラムを,あるOSにインストールすることは,パッチや新しい機能をインストールすることと全く変わらない。この種の不正ソフトは,ユーザーが電子メールの添付ファイルを開いてプログラムを起動したり,ActiveXコントロールのインストールに同意したりするから導入されるのだ。そうでなければ,感染したコンピュータ上でコードを稼働しているワームを経由してインストールされる。最後のケースを除けば,こうしたOSの変更を,OSは許してしまう。管理者権限を持つだれかに,それらがインストールされるからである。この問題の一番大事な部分はここだ。われわれのほとんどは,自分たちのコンピュータでは完全な管理者権限を持っているから,不正ソフトをインストールすることが可能なのだ。

 現在のWindowsの使い方では,多くのユーザーはローカル・アドミニストレータとしてログオンしている。ユーザーが管理者権限をIT担当者に譲るか,「RunAs」コマンドを使いいつでも管理者権限に戻せるローカル・ユーザーとして普段はログオンしていない限り,攻撃者はトロイの木馬やルートキット,それに似た悪意あるプログラムを,われわれのシステムにインストールできるだろう。UNIXやLinuxのエキスパートに一日中管理者としてログオンして過ごすのはいいかどうか聞いてみたら,きっと怖い顔をされるだろう。

 結局のところ,Microsoftはトロイの木馬やルートキットの脅威を減らすことをほとんどできないのだ。多くのセキュリティ問題がそうであるように,これはシステムの問題ではなく,人間の問題なのだ。時がたち,使い方が変われば消えうせるだろう。