SRT 奥天です。
最近感じていることなのですが、Rootkit って、昔から話題になりながらもなんだかピンと来ない攻撃手法の代表的ものではないかと思っています。が、最近この攻撃方法が一般化しているようなので、取り上げたいです。
Rootkit 自体は、カーネルモードのたとえばドライバとして動作するものと、DLL インジェクションの一種で API コードを書き換えるタイプが主流ですが、過去にあったように痕跡の改ざんを目的としたものではなく、プロセスやレジストリ、ファイル全般を UI から見せなくする、そういった手の込んだカーネル Rootkit が確認されています。
ある情報では、企業内でウイルスやハッキングが行われたマシンのかなりの割合で、プロセスの隠蔽が行われているようです。最近のウイルスは、ウイルスコンテナとしての役割であって、感染しても Bot のようにその事実を隠そうとしますし、さらに巧妙にするためにこの Rootkit で積極的に隠蔽しようとしているわけですね。
さて、実際に使用されることが増え危機感が高まっている Rootkit ですが、なぜ話題になりきらないのでしょう?それは、見つからないことが理由だと思います。ご存知のとおり、最近の Malware は、亜種の開発が非常に短期間になっています。ただでさえ頻繁な開発によりウイルス対策ソフトの定義ファイルが遅れ気味なことに加え、ユーザーが感染に気がつかないことから検体を対策ベンダーへ提供する機会が減っていると思います。検体が提供されないために結局発見がされず、発見されないから検体が・・・という悪循環が引き起こされるわけです。
今までの、ウイルスの開発と、検出および駆除のバランスが、この Rootkit の存在で崩れる可能性があると考えられますし、ソフトウェアの開発メーカーとしても何らかの対策を行わなければならない、と感じています。
セキュリティ更新プログラムを適用し、ファイアウォールを使用して、コンテナウイルスの検出を行う、という対策は最低限として、Windows XP SP2 なら、IE でダウンロードしたファイルや、OE であればメールに添付されているファイルをうっかり実行してしまうミスも減らせるかなと。もちろん実行したくて実行したものをとめることは難しいですが・・・
では Rootkit を見つけるにはどうするか?これは、Safe モードや Single User モードと呼ばれる、ドライバの組み込みを最小限に抑えたモードで起動し、保存されている実行ファイルやレジストリのダンプを取り、通常起動時の結果と見比べる、もしくは、http://www.sysinternals.com/ で公開されている RootkitRevealer や、検出ソフトウェアを使うことになります。マイクロソフトのエンジニアの中には、Kernel Debugging で発見する方法を語る輩もいますが、それはカスタムメイドな Rootkit の検出のためなのですべてのユーザーが対応できるものではないですよね。
Rootkit の種類によっては、どの情報を隠蔽しているのかが特定できていないと的を絞りにくいというのがありますが、プロセスとファイル、netstat によるポート、レジストリなどチェックする項目が定まらないので完全な方法、と言い切れないのが難しくさせています。
一説には、この Rootkit は侵入済みホストの何割かに入り込んでいるという話もありますので、どうもありえないパケットが出ているとか idol time が減っているがプロセスがいないとか、不自然な動きが見つかれば疑ってみるのも一つかと思います。またその場合には、出来る限りマシンの再構築をお勧めします。
ちなみに、米国ではこんな技術情報があるくらいポピュラー。
http://support.microsoft.com/kb/897079
あと、研究開発部門も、これについて調べてます。
http://research.microsoft.com/rootkit/
ということで、今後間違いなく話題になってきそうです、と言い残して長文を終わります。