a-squared HiJackFree 2.0を使ってマルウェアを駆除する

a-squared HijackFreeはあらゆるタイプのハイジャッカ、スパイウェア、アドウェア、トロイの木馬、ワームの検出を支援する、上級ユーザのためのシステム詳細解析ツールです。これについては製品ホームページでも読むことが出来ますが、実際、具体的にはどのように働くのでしょうか?このチュートリアルではいくつかの事例を用いて、マルウェアの専門家がどのようにコンピュータにマルウェアを感染させる可能性を探っているのかを説明してゆきます。

目次 

1. マルウェアの基礎
1.1. 疑わしいプロセスをフィルタリングする
1.2. 特定されたマルウェアを駆除する
2. TCP/UDP ポート
3. 自動実行
4. Windows のサービス
5. その他
5.1. エクスプローラのアドオン
5.2. LSP プロトコル
5.3. ホスト ファイル
5.4. ActiveX のモジュール
6. 要約

1. マルウェアの基礎

トロイの木馬やスパイウェアといった最近のマルウェアのほとんどは、通常、独立したプロセスとして活動しています。唯一の例外は、実行されるために、別のプログラムに添付されている古典的なウィルスです。しかし、ここでは、スタンドアロンのマルウェアに限って扱うことにします。現在実行中のプロセスについての知識があると、該当するマルウェアのプロセスを発見し、それを終了させて無効にすればよいだけなので役に立ちます。

1.1. 疑わしいプロセスをフィルタリングする

いずれかのプログラムを終了したり、削除する前に、それが正常なシステムの運用に必要な正統なソフトウェアではないことを確認する必要があります。そのために全てのプロセスをそれぞれ詳細に分析する必要があります。この時、以下の項目を確認してください。

−どこから来たプログラムか?
−誰が作成したプログラムか?
−そのプログラムはコンピュータ外部からの命令を受取るために TCP または UDO ポートを開いているか?
−そのプログラムは自動実行エントリによって自動的に起動されているか?
−そのプログラムは Windows のサービスとして実行されているか?

平均的なPCでは、通常、50個程度のプロセスが実行されているので、Windows が提供する標準ツールを使ってこれらの質問に答えていると、始めたそうそう退屈な作業になってしまいます。ここで a-squared HiJackFree が役立ちます。HiJackFree の利点は、マルウェアを特定するために必要とされる、まさにこれらの質問により早く回答してくれるという点です。

以下に、どのように動作するのかを説明します。

  • まず、 [プロセス] セクションを開いて、ウィンドウ右上のボタンバーの最初にある [オンラインデータのリフレッシュ] をクリックしてください。HiJackFree は実行中のプロセス リストを、オンライン プロセス データベースと比較します。このオンライン プロセス データベースは無害なソフトウェア、悪意のあるソフトウェア、それぞれが通常使用するプロセスについての情報を格納しています。プロセス リストは緑、黄色、赤、白に色分けされます。

  • 緑 はプロセス データベースで無害なソフトウェアのみに当てはまるプロセス名です。これらのプロセスは悪意のあるものではない可能性がかなり高いと考えることが出来ます。けれども、このことは、これらが無害なプロセスであると保障するものではありません。単に、同じ名前の悪意のあるプロセスがプロセス情報データベースに含まれていないということです。

  • 黄色 はマルウェア、無害なソフトウェア両方で使用されているプロセス名です。この場合は、その項目をクリックして、下方にある [詳細ウィンド] の一番下の [オンライン情報] までスクロールします。これによりプロセス データベースで利用可能な全ての情報を閲覧することが出来ます。ここに記載されているプログラム パスとあなたのPCで実行中のプロセス パスを比較してください。ここではある程度、勘がものをいいます。例えば、以下のパス名でプロセスが実行されており、

    c:\programs\knownmanufacturer\program.exe

    プロセス データベースに program.exe. を含む項目が 2 種類あるとします。そのうち一方は、以下のパス名を持つ悪意のあるプロセスについての記述です。

    c:\windows\program.exe

    そして、もう一方は以下のパス名を持つ無害なプロセスについての記述です。

    c:\programs\knownmanufacturer\version 2\program.exe

    このプログラムパスは、無害であると定義されているプロセスとほんのわずか違っているだけなので、無害なプロセスだと考えることが出来ます。(この場合では、フォルダ名のバージョン番号が違っているだけです。)もし、製作者の名前から、そのプロセスが意図的にインストールされた無害なプロセスだと分れば、確信を持ってこのプログラムに "無害" と印をつけ、次のプロセスにすすみます。

  • 赤 はプロセス データベースの中に、悪意のあるプログラムとしての情報しか含まれていないプロセス名です。これには二つの理由が考えられます。本当にマルウェアのプロセスである場合と、プロセス データベースに、そのプロセス名で無害なプロセスとしての情報が収録されていない場合です。どちらの理由にしても、このプロセスについてはより詳細に調べてゆくほうがよいでしょう。

    インターネット上の別のプロセス データベースからの情報を得るために、あなたの好きなサーチ エンジンに疑わしいプロセスの、例えば、ファイル名を入力して検索してみてください。こうして得られた情報およびパス情報から、そのプロセスが無害なものか悪意のあるものかを判断することが出来ます。HiJackFreeの [詳細] ウィンドウはこの判断をするときに役立つ有益な情報を大量に収録しています。[ファイル プロパティ] セクションでは製作者名や製品名など、関連するプログラム ファイルのプロパティを見ることが出来ます。[プロセスの詳細] では、そのプロセスが Windows のサービスとして実行されているものか (危険性は少ない)、自動実行エントリによって起動されたものか (疑わしい)、TCP または UDP ポートを開いているか (かなり疑わしい) を確認することが出来ます。

  • リスト中の白の項目は、オンラインで情報が見つからないプロセスです。ここに分類されたファイル名についてもウェッブ検索をして、更に情報を収集するとよいでしょう。

HiJackFree はプロセスがマルウェアか否かについての具体的な判定を提供できるものではありません。しかし、通常のシステム プロセス全てをフィルタリングする際、多いに役立ちます。まず、黄色、赤、白の項目に焦点をあわせて作業を進めると、かなりの時間が節約できます。しかし、決して、色分けを盲信するということのないようにしてください。

1.2. 特定されたマルウェアを駆除する

いったん 明確に 悪意のあるプロセスであると特定されたら、次のステップは、それをコンピュータから消し去ることです。
  • 活動中のマルウェアのプロセスを止めるには、終了させる、つまり "キル" させなければなりません。まず、リストからプロセスを選択して、画面左側にあるメニューから [キル プロセス] ボタンをクリックします。しかし、次にシステムを始動させたとき、このプロセスが再び活動を開始する可能性も十分考えられます。

  • そのため、このプロセスに対応しているプログラムも削除しなければなりません。[ファイルの削除] チェックボックスを選択してください。完全に削除するのではなく、まず、検疫してみると、もし、そのプロセスがマルウェアではなく必要なプログラムだと分った時にリストアできるので良いでしょう。このためには [バックアップとして保存] チェックボックスを選択してください。

  • マルウェアは、いわゆる "自動実行" エントリによってシステムの起動時にロードされる場合が多いので、これに関連するエントリは全て削除する必要があります。このためには [レファレンスの削除] チェックボックスを選択してください。まれに、ファイルは削除されているのに、 "停止中" のオートスタート エントリがまだ存在していて、この消去されたファイルを参照するために、システムが不安定になることもあります。
 

2. TCP/UDP ポート
TCP または UDP ポートは、プログラムがインターネットを介してコマンドを受取るために使われるデータ チャネルです。通常使用される TCP ポートとしては、Webサーバの ポート80、 FTP の ポート21、 SMTP の ポート25 、 POP3 の ポート110 などがあります。しかし、バックドアを開けるトロイの木馬もまた、インターネットを介してコンピュータを遠隔コントロールするためにポートを開きます。どのポート番号でも選ばれる可能性はありますが、そのポートを一時に使用できるのは一つのプログラムのみです。

HiJackFree のポート セクションはあなたのコンピュータ上で開いている全てのポートと関連するプロセスを表示します。プロセス リストの場合と同様に全てのエントリをよく調べて、使用されているポートを確認してゆきます。場合によっては、巧妙にプロセス名をつけてうまくカモフラージュされているため、プロセス リストでは、すぐに分らないものもあります。しかし、ポート リストからも隠しておくということはできません。オープン ポートは基本的には悪意のあるものではありません。プログラムがポートを開くための妥当な理由があるかどうかを確認しましょう。例えば、ワードプロセシングを行うプログラムは、普通、ポートを開く必要はありません。


3. 自動実行
a-squared HiJackFree のこのセクションでは、コンピュータシステムの中の全ての自動実行エントリを表示します。これらの自動実行エントリはシステム起動時に様々なプログラムを自動的に起動するために使われています。レジストリ内の標準的な自動実行の場所に加えて、システムの中には、裏づけがはっきりしていないにもかかわらず、プログラムを自動的に起動しているものが多数あります。HiJackFree は 30 箇所の自動実行の場所を表示します。[トリッキ スタートアップ] セクションに入っているエントリには特に注意を払う必要があります。どれを消去する場合でも、事前に専門家に相談したり、Webから詳細な情報を入手しなければなりません。そうしなければあっという間にシステムが使えなくなってしまう可能性があります。

最も重要な自動実行は [レジストリ] セクションに表示され、二つのサブカテゴリに分かれています。つまり、システム全体の全てのユーザ (HKLM) に適用される自動実行と、現在ログオン中のユーザ (HKCU) に適用される自動実行です。このセクションでは、自動実行エントリの活動を無効にして、それがシステムに対してどのような影響があるかを観察することが出来ます。無効にされたエントリは後で再び有効にすることもできます。完全に削除する必要はありません。

[オンライン データのリフレッシュ] ボタンはプロセス リストの場合と同じように、自動実行のリストをオンライン データベースと比較して、マルウェアの自動実行エントリを特定する作業を軽減します。

ここでもまた、リストアップされたプログラム全てを、常に実行させている必要が本当にあるかどうかを確認しなければなりません。バックグラウンドで常に実行されているプログラムはシステム リソースを必要とし、コンピュータの処理速度を低下させることに注意しなければなりません。しかし、セキュリティ ソフトウェアの自動実行エントリは削除しないで下さい。これらのエントリがないと、システムを再起動した後、コンピュータが保護されていない状態になってしまいます。

ティップ ツリーのエントリ (例えば [実行] など) をダブルクリックするとレジストリ エディタが開き、レジストリの該当する部分に直接アクセスすることができます。

4. Windows のサービス
[サービス] セクションは Windows のサービス マネージャとよく似ています。主要な違いは HiJackFree では、サービスのフルパスを見ることができることと、[詳細ウィンド] で追加情報を多数、得ることが出来る点です。

通常、サービス リストはプロセス リストとあまり変わりません。一種のフィルタがシステムのサービスとして登録されているプログラムを表示するのですが、現在停止しているサービスや、通常は隠れていて見ることのできないドライバ (..SYS) も表示してくれます。サービスは、ユーザがログオンする前のシステム起動時に Windows によってロードされます。このため、あなたがユーザとして PC を操作できるようになる前に、サービスとして登録されたマルウェアは既に活動状態になっているのです。

5. その他
[その他] セクションにはマルウェアを削除するために便利なツールが入っています。

5.1. エクスプローラのアドオン
  • IE ツールバー
    ある種のスパイウェア プログラムは不正な Internet Explorer ブラウザのツールバーをあなたの PC にインストールします。ここで、それぞれのツールバー モジュールを削除することができます。

  • シェル 拡張
    例えば、エクスプローラで、ファイルをマウスで右クリックすると、ポップアップの[コンテクスト メニュ] が現れいくつかの項目が表示されます。このリストに別のモジュールを追加することもできます。a-squared Scanner をインストールしていると、このリストに [a-squared でスキャン] という項目が表示されます。スパイウェアはこのタイプのモジュールでも活性化されます。

  • シェル フック
    これらも、無害な機能、悪意のある機能どちらを提供する場合にもエクスプローラに追加されるモジュールです。

  • ブラウザ ヘルパ オブジェクト - BHO
    これらは IE ツールバーに似た Internet Explorer のプラウザ拡張機能で、ウェッブサイトの表示を変更します。スパイウェアは主として、このようなヘルパ オブジェクト (BHO) を使って広告を追加したり、閲覧したことのあるウェッブサイトへのポップアップを出したりします。

  • ActiveX
    これもまた、Internet Explorer に影響するものです。これらのモジュールはブラウザ機能の拡張を可能にします。良く知られているブラウザの ActiveX モジュールとしては、例えば、フラッシュ アニメーションを表示する Flash Player やコンピュータのマルウェア感染をスキャンする a-squared Web Malware Scanner などがあります。

5.2. LSP プロトコル

LSP はレイヤード サービス プロバイダの意味で、プログラムとネットワーク カード間で切り替えられるタイプのネットワーク ドライバを指します。アドウェアはブラウザの入力データ ストリームに広告を挿入するためにこのモジュールを使います。アプリケーションの中には無害なものもあります。例えば、アンチ スパム プログラムはインターネットから受取るデータ ストリームから直接、スパムをフィルタします。

LSPを削除する場合は、常に細心の注意を払ってください !もし、 LSP リストに関連するエントリが残っているのに LSP DLL ファイルが削除されてしまうと、インターネットへの接続が停止してしまいます。このため、 LSP をそっくり取り除くことが重要です。 a-squared HiJackFree はこの作業に役立ちます。

5.3. ホスト ファイル

これまでに述べてきたセクションと同様に、ホスト ファイルも無害な目的にも、悪意のある目的にも利用することができます。ホスト ファイルは、 DNS によるルックアップから独立して、特定の IP アドレスに特殊なホスト ネームを割り振るものです。

これは、ドメイン ネーム システム (DNS) への迂回路になります。例えばブラウザに、 www.emsisoft.com のアドレスを入力すると、まず、最も近くにある DNS サーバがこのウェッブ アドレス (ドメイン) に対応する IP アドレスの問い合わせを受けます。するとこのサーバは、ブラウザにアドレスを 80.237.191.14. として応答します。そしてブラウザは、この IP アドレス (私たちのウェブ サーバ) に接続して要求されたホームページのデータを受信します。

ホスト ファイルはこの DNS サーバに優先するものです。例えば、ホスト ファイル に次の一行を書き込んだとします。

127.0.0.1 www.emsisoft.com

その後、ブラウザを起動して www.emsisoft.com. と入力します。すると、a-squared のウェッブ サーバにアクセスする代わりに、自分自身の PC にリダイレクトされます。 (127.0.0.1はいつも自分の PC です。)

スパイウェアはこの技術を使って、例えば、あなたの銀行のウェッブ アドレスを、オンライン バンキング アプリケーションのコピーが入ったハッカーのサーバにリダイレクトします。あなたは違いに気づきません。そして、暗証番号を入力すると、自分の銀行にログオンするのではなく、あなたの口座を盗もうとしている攻撃者のサーバにログオンしてしまうのです。

この技術は有益な目的にも利用されます。例えば、様々な広告ネットワークのアドレスをリダイレクトして自分のローカル IP アドレスに向けることが出来ます。こうすることによって、閲覧しているウェッブサイトで広告が出なくなります。この目的のために事前にコンフィギャされた Hosts files は MVPS.org などで入手できます。ウェッブ開発者などは、プログラミング時のテストのためにホスト ファイルを利用することもあります。

5.4. ActiveX のモジュール

ブラウザの ActiveX モジュールの場合と対照的に、このセクションではシステム全体に登録された ActiveX の DLL について述べます。これらの DLL は他のプログラムと共通に利用できるプログラム モジュールです。Excel のテーブルを MS Word のドキュメントに挿入する場合、このタイプの ActiveX モジュールがプログラム間コミュニケーションのために使われます。

HiJackFree は活動していない ActiveX のレジストリ エントリもすべて赤に色分けします。"活動していない" というのは、 DLL がもう存在しないモジュールについての情報がレジストリに入っていることを意味します。このようなエントリは問題を引き起こすことなく、削除できます。

6. 要約
a-squared HiJackFreeは効果的なツールですが、初心者向けではありません。Malware scanner とは違い、このプログラムはマルウェアかそうでないかを明確に判断してくれるものではありません。しかし、これは、隠れたマルウェアの痕跡を探し、取り除くときに有効です。

このチュートリアルではマルウェアのプログラマが、あなたのシステムに入り込むために、どんなに様々な技術を使い、抜け道を使うことにたけているかを示してきました。しかしここで述べてきたトピックスは応用できる可能性の氷山の一角にすぎないということを、明確に認識しておかなければなりません。このような技術について詳しく説明していると、本を何冊も書かなければならなくなってしまいます。

それでは、マルウェアの駆除がうまくいくように祈っています。


2006 Copyright All rights Reserved 日本語ローカリゼーション by nextEDGE Technology K.K.