Windowsを狙うマルウエアは進化が著しく,マシンがマルウエアに感染しているかどうか見極めるのすら難しくなっている--。フィンランドF-SecureのAntti Tikkanen氏が開催中の「RSA Conference 2007」で,マルウエアを見つけ出す手法に関する講演を行い,最新のマルウエア事情を語った。


写真:フィンランドF-SecureのAntti Tikkanen氏
[画像のクリックで拡大表示]

 Tikkanen氏(写真)はまず,「Haxdoor」というトロイの木馬を例に,最新のマルウエアが「できること」を説明した。Haxdoorは,トロイの木馬本体だけでなく,カーネル・ドライバをサービスとしてインストールするのが特徴だ。このカーネル・ドライバは,いわゆるルートキット技術を使っており,他のトロイの木馬のコンポーネントを隠蔽する働きをする。

 しかも,このカーネル・ドライバは「自己防衛機能」を持っている。他のプロセスを終了する能力を持っており,ウイルス対策ソフトウエアの無効化を図るほか,ウイルス対策ソフトウエアによる定義ファイルのダウンロードなどを防ぐために,セキュリティ・ソフトウエアが使用するDNS名を「microsoft.com」にリダイレクトしてしまうという。

 Haxdoorは,TCPの16661ポートを使って攻撃者によるコマンド入力を待つように設計されている。いわゆるバックドアである。Haxdoorが持つネットワーク機能としては,ファイルのアップロードやダウンロード,ファイルやディレクトリのリストの送信,外部からのレジストリ改変などだという。

ユーザーを「偽銀行サイト」におびき出す

 Tikkanen氏は続いて,Haxdoorがもたらす被害について説明した。Haxdoorは,感染したマシンを利用するユーザーの情報を盗み出すトロイの木馬である。「IMAPやPOPのメール・パスワードや,ICQのログオン情報,Webマネーのパスワードなどを盗み出す」(Tikkanen氏)。また,オンライン・バンクも攻撃対象としており,「Internet Explorer(IE)などのウインドウのタイトル情報(どのWebサイトにアクセスしているかなど)に基づいて,テキスト・フィールドの入力を盗み出すかどうか判断している。トラフィックは,IEがSSLで暗号化するまえに盗み出されるので,SSLを使ったWebサイトだからといって安心できない」(Tikkanen氏)。

 またHaxdoorには,ファーミングと呼ばれる手法も搭載されている。ユーザーがオンライン・バンクのWebサイトにアクセスしようとすると,それを妨害して,ユーザーのアクセスを「偽銀行サイト」にリダイレクトし,そこでIDやパスワードを入力させようとする。

 Haxdoorの特徴は「どのような情報を盗み出すのか,どのようなコマンドをリモートから実行させるのか,ユーザーをどの偽サイトにアクセスさせるのか,などを簡単に設定できる『開発ツール』が付属していたこと」(Tikkanen氏)だ。Tikkanen氏によればHaxdoorの開発ツールはGUIベースで,コマンドの送信なども容易であったという。

困難を極めるマルウエアの発見

 Haxdoorのようなマルウエアは,自身を隠蔽する機能を持っているため,発見すら非常に難しい。マルウエアの感染の有無を調べるには,サービスを自動起動するレジストリ・キーをチェックしたり,不審なプロセスをチェックしたりするのが基本であるが,そういった調査活動自体が困難になるからだ。

 「レジストリ・エディタもプロセス・マネージャも,みんなWindowsのAPI(アプリケーション・プログラミング・インターフェース)を使って情報を入手しているが,APIが返す情報は改ざん可能であり,信用してはならない」(Tikkanen氏)。レジストリ・エディタを見て,自動起動させるプロセスに名前が連なっていなくても,自動起動してしまうプロセスはいくらでもある,とTikkanen氏は語る。

 Tikkanen氏は,「多くのマルウエアは,プロセスを探そうという動きを妨害する機能を備えている」と語り,実際に仮想マシン上でマルウエアを実行して,マルウエアのプロセスがプロセス・マネージャに表示されないことをデモしてみせた。

 Tikkanen氏は,メモリーを直接ダンプして,レジストリやプロセスを調査しなければ,マルウエアを見つけ出せなくなったと主張する。「カーネルの動きを知りたいのなら,Microsoftが公開するカーネル・デバッガ『WinDBG』を使いこなせるようになるのが必要だ」(Tikkanen氏)と語る。例えば,WinDBGで「!idt -a」といったコマンドを使えば,データを経路上で中継(インターラプト)しょうとするプロセスの一覧を表示できる。

 Tikkanen氏は「プロセスを探したり終了させたりするのに,OS付属のプロセス・マネージャを使っても無駄」と断言し,WinDBGのようなデバッグ・ツールの使用を推奨した。