(57)【特許請求の範囲】
【請求項１】
コンピュータ・システム上で稼動する悪意あるサービスエージェントの存在を検知するためのコンピュータが実行する方法であって、
ローカルの前記コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在を検知する目的で、前記コンピュータ・システム上で現在稼動しているタスクおよびネットワークサービスのローカルにおいて使用されているそれぞれのポートを列挙したリストを含むローカルの一覧表を生成するため、ローカルの前記コンピュータ・システムでローカルに問い合わせるステップと、
前記コンピュータ・システム上で稼動している前記悪意あるサービスエージェントの存在を検知する目的で、ローカルの前記コンピュータ・システム上で現在稼動しているタスクおよびネットワークサービスのリモートから取得したローカルの前記コンピュータ・システム上の使用されているそれぞれのポートを列挙したリストを含むリモートの一覧表のリストを生成するため、ネットワークを通じリモートコンピュータ・システムからリモートでローカルの前記コンピュータ・システムに問い合わせるステップと、
前記コンピュータ・システム上で稼動している前記悪意あるサービスエージェントの存在を検知するため、タスクおよびネットワークサービスの前記ローカルの一覧表と、タスクおよびネットワークサービスの前記リモートの一覧表との間に相違があれば特定する目的で、タスクおよびネットワークサービスの前記ローカルの一覧表およびタスクおよびネットワークサービスの前記リモートの一覧表を比較するステップと、
を含む、方法。
【請求項２】
前記ローカルで前記コンピュータ・システムに問い合わせるステップは、
前記コンピュータ・システム上で稼動している前記悪意あるサービスエージェントの存在を検知するステップと、
検知するステップに応答して、前記コンピュータ・システムにローカルで問い合わせるために前記コンピュータ・システムのローカルスキャンを実行するステップと、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記リモートでローカルの前記コンピュータ・システムに問い合わせるステップは、
前記コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在をリモートで検知するステップと、
リモートで検知するステップに応答して、前記コンピュータ・システムにリモートで問い合わせるためにローカルの前記コンピュータ・システムのリモートスキャンを実行するステップと、
をさらに含む、請求項１に記載の方法。
【請求項４】
前記それぞれのポートのうちの一つは、
開放ポート、クローズド・ポート、およびフィルタリングされたポートのうち少なくとも一つを含む、請求項１に記載の方法。
【請求項５】
前記コンピュータ・システム上で稼動している前記悪意あるサービスエージェントの存在を判定するため、前記特定された相違を評価する更なるテストを実施するよう、前記特定された相違がある前記コンピュータ・システムに警告するステップ、をさらに含む、請求項１に記載の方法。
【請求項６】
前記ローカルおよび/またはリモートのスキャンを行うステップはさらに、前記コンピュータ・システム上で開放されていると特定された前記またはそれぞれのポートと通信を開始し、それぞれの特定された開放ポートについて、前記開放ポートと共に動くサービスが既知のサービスか判定するステップ、をさらに含む、請求項２または３に記載の方法。
【請求項７】
コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在を検知するシステムであって、
ローカルの前記コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在を検知する目的で、前記コンピュータ・システム上で現在稼動しているタスクおよびネットワークサービスのローカルにおいて使用されているそれぞれのポートを列挙したリストを含むローカルの一覧表を生成するため、ローカルの前記コンピュータ・システムでローカルに問い合わせる手段と、
前記コンピュータ・システム上で稼動している前記悪意あるサービスエージェントの存在を検知する目的で、ローカルの前記コンピュータ・システム上で現在稼動しているタスクおよびネットワークサービスのリモートから取得したローカルの前記コンピュータ・システム上の使用されているそれぞれのポートを列挙したリストを含むリモートの一覧表のリストを生成するため、ネットワークを通じリモートコンピュータ・システムからリモートでローカルの前記コンピュータ・システムに問い合わせる手段と、
前記コンピュータ・システム上で稼動している前記悪意あるサービスエージェントの存在を検知するため、タスクおよびネットワークサービスの前記ローカルの一覧表と、タスクおよびネットワークサービスの前記リモートの一覧表との間に相違があれば特定する目的で、タスクおよびネットワークサービスの前記ローカルの一覧表およびタスクおよびネットワークサービスの前記リモートの一覧表を比較する手段と
を含む、システム。
【請求項８】
前記ローカルで前記コンピュータ・システムに問い合わせる手段は、
前記コンピュータ・システム上で稼動している前記悪意あるサービスエージェントの存在を検知する手段と、
検知する手段に応答して、前記コンピュータ・システムにローカルで問い合わせるために前記コンピュータ・システムのローカルスキャンを実行する手段と、
をさらに含む、請求項７に記載のシステム。
【請求項９】
前記リモートでローカルの前記コンピュータ・システムに問い合わせる手段は、
前記コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在をリモートで検知する手段と、
リモートで検知する手段に応答して、前記コンピュータ・システムにリモートで問い合わせるためにローカルの前記コンピュータ・システムのリモートスキャンを実行する手段と、
をさらに含む、請求項７に記載のシステム。
【請求項１０】
前記それぞれのポートのうちの一つは、
開放ポート、クローズド・ポート、およびフィルタリングされたポートのうちの少なくとも一つを含む、請求項７に記載のシステム。
【請求項１１】
前記コンピュータ・システム上で稼動している前記悪意あるサービスエージェントの存在を判定するため、前記特定された相違を評価する更なるテストを実施するよう、前記特定された相違がある前記コンピュータ・システムに警告する手段、をさらに含む、請求項７に記載のシステム。
【請求項１２】
前記ローカルおよび/またはリモートのスキャンを行う手段はさらに、前記コンピュータ・システム上で開放されていると特定された前記またはそれぞれのポートと通信を開始する手段、およびそれぞれの特定された開放ポートについて、前記開放ポートと共に動くサービスが既知のサービスか判定する手段、をさらに含む、請求項８または９に記載のシステム。
【請求項１３】
コンピュータが請求項１ないし請求項６のいずれか１項に記載のステップを実行するためのコンピュータ実行可能なプログラム。

【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・システムおよびソフトウェアの分野に関し、特にコンピュータ・システム上で稼動している悪意あるサービスエージェント(Service Agent)のような、悪意あるソフトウェアの存在を検知する技術に関する。
【背景技術】
【０００２】
好ましからざるソフトウェアおよびマルウェア（malware）は、ホストのユーザーからこれらの導入を隠すために、複雑な技術をたびたび用いる。ルートキット（rootkits）および他の隠密の導入技術を検知するため、さまざまな技術が提案されてきた。これら既存の技術は、電源が入った状態および入っていない状態それぞれで、ローカルでホストへ問い合わせをすることを要する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
これら既存の技術、特に電源の入っていない状態でホストを評価するプロセスは、かなり混乱を起こさせるものであると同時に時間がかかる。そのため、管理者がホストの電源を切ることなく、効率的にそのような導入の存在を特定する必要がある。
【課題を解決するための手段】
【０００４】
本発明は、実施例に従えば、プログラムやツールを使用し、悪意あるソフトウェアおよびマルウェアの存在を検知するためのシステム、方法およびプログラムにおけるものである。当該方法は、コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在を検知するため、前記コンピュータ・システム上で現在稼動しているタスクおよびネットワークサービスのローカルの一覧表を列挙するように、コンピュータ・システムにローカルで問い合わせることであって、列挙されたタスクやネットワークサービスのローカル一覧表はコンピュータ・システム上で使用されているそれぞれのポートも含むことと、コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在を検知するため、コンピュータ・システム上で現在稼動しているタスクおよびネットワークサービスのリモートの一覧表を列挙するように、ネットワークを通じリモートコンピュータ・システムから当該コンピュータ・システムにリモートで問い合わせることであって、列挙されたタスクとネットワークサービスのリモート一覧表は前記コンピュータ・システム上で使用されているそれぞれのポートも含むことを有する。更に、その方法は、列挙されたそれぞれタスクおよびネットワークサービスのローカルの一覧表を収集することおよび列挙されたそれぞれタスクおよびネットワークサービスのリモートの一覧表を収集すること、当該コンピュータ・システム上で稼動している前記悪意あるサービスエージェントの存在を検知するため、列挙されたタスクおよびネットワークサービスのローカルの一覧表と列挙されたタスクおよびネットワークサービスのリモートの一覧表の間に相違があれば特定するよう、列挙されたタスクおよびネットワークサービスのローカルの一覧表および列挙されたタスクおよびネットワークサービスのリモートの一覧表を比較すること、を含む。
【０００５】
一実施例において、そのローカルで問い合わせは、当該コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在をローカルで検知するため第１のツールを提供すること、前記コンピュータ・システムにローカルで問い合わせするため、当該コンピュータ・システムにローカルのスキャンを行うのにその第１のツールを使用すること、をさらに含む。一実施例において、そのリモートで問い合わせは、当該コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在をリモートで検知するため第２のツールを提供すること、当該コンピュータ・システムにリモートで問い合わせするため、当該コンピュータ・システムにリモートのスキャンを行うのにその第２のツールを使用すること、をさらに含む。一実施例では、それぞれのポートの一つは開放ポート(open port)、クローズド・ポート(closed port)、およびフィルタリングされたポート(filtered port)のうちの少なくとも１つを含む。一実施例において、その方法はさらに、当該コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在を見つけ出すため、特定されたあらゆる相違を評価する更なるテストを実施する目的で、特定されたあらゆる相違がある当該コンピュータ・システムに警告(flagging)すること、を含む。
【０００６】
第１の側面からみると、本発明はコンピュータ・システム上で稼動している悪意あるサービスエージェントの存在を検知するための方法を提供し、この方法は、コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在を検知するため、コンピュータ・システム上で現在稼動しているタスクおよびネットワークサービスのローカルの一覧表を含むリストを生成するようにコンピュータ・システムにローカルで問い合わせするステップであって、その一覧表にはコンピュータ・システム上の使用されているそれぞれのポートを列挙したリストもさらに含むステップと、コンピュータ・システム上で稼動している前記悪意あるサービスエージェントの存在を検知するため、当該コンピュータ・システム上で現在稼動しているタスクおよびネットワークサービスのリモートの一覧表のリストを生成するようにネットワークを通じリモートコンピュータ・システムから当該コンピュータ・システムにリモートで問い合わせするステップであって、その一覧表には前記コンピュータ・システム上の使用されているそれぞれのポートを列挙したリストもさらに含むステップと、前記タスクおよびネットワークサービスのローカルの一覧表および前記タスクおよびネットワークサービスのリモートの一覧表を収集するステップと、前記コンピュータ・システム上で稼動している前記悪意あるサービスエージェントの存在を検知するように、前記タスクおよびネットワークサービスのローカルの一覧表と前記タスクおよびネットワークサービスのリモートの一覧表との間の相違点があれば特定するために、前記タスクおよびネットワークサービスのローカルの一覧表と前記タスクおよびネットワークサービスのリモートの一覧表を比較するステップとを含む。
【０００７】
好ましくは、本発明は、前記ローカルで問い合わせは、当該コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在を検知するステップ、および検知するステップに応答して、前記コンピュータ・システムにローカルで問い合わせするため当該コンピュータ・システムのローカルのスキャンを行うステップ、をさらに含む方法を提供する。
【０００８】
好ましくは、本発明は、前記リモートで問い合わせは、当該コンピュータ・システム上で稼動している前記悪意あるサービスエージェントの存在をリモートで検知するステップ、および検知するステップに応答して、当該コンピュータ・システムにリモートで問い合わせするため当該コンピュータ・システムのリモートのスキャンを行うステップ、をさらに含む方法を提供する。
【０００９】
好ましくは、本発明は、前記それぞれのポートの一つのポートは、開放ポート、クローズド・ポート、およびフィルタリングされたポートのうちの少なくとも一つを含む、方法を提供する。
【００１０】
好ましくは、本発明は、前記コンピュータ・システム上で稼動している前記悪意あるサービスエージェントの存在を判定するため、前記特定された相違を評価する更なるテストを実施するよう、前記特定された相違がある前記コンピュータ・システムに警告するステップ、をさらに含む方法を提供する。
【００１１】
好ましくは、本発明は、前記ローカルおよび/またはリモートのスキャンを行うステップはさらに、前記コンピュータ・システム上で開放されていると特定された前記またはそれぞれのポートと通信を開始し、それぞれの特定された開放ポートについて、前記開放ポートと共に動くサービスが既知のサービスか判定すること、を含む方法を提供する。
【００１２】
第２の側面からみると、本発明はコンピュータ・システム上で稼動している悪意あるサービスエージェントの存在を検知するシステムを提供し、前記システムは、コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在を検知するため、前記コンピュータ・システム上で現在稼動しているタスクおよびネットワークサービスのローカルの一覧表を含むリストを生成するようにコンピュータ・システムにローカルで問い合わせする手段であって、その一覧表には前記コンピュータ・システム上の使用されているそれぞれのポートを列挙したリストもさらに含む手段と、コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在を検知するため、前記コンピュータ・システム上で現在稼動しているタスクおよびネットワークサービスのリモートの一覧表を含むリストを生成するようにネットワークを通じリモートコンピュータ・システムから当該コンピュータ・システムにリモートで問い合わせする手段であって、その一覧表には前記コンピュータ・システム上の使用されているそれぞれのポートのリストを列挙したリストもさらに含む手段と、前記タスクおよびネットワークサービスのローカルの一覧表および前記タスクおよびネットワークサービスのリモートの一覧表を収集する手段と、前記コンピュータ・システム上で稼動している前記悪意あるサービスエージェントの存在を検知するため、前記タスクおよびネットワークサービスのローカルの一覧表と前記タスクおよびネットワークサービスのリモートの一覧表との間の相違点があれば特定するように、前記タスクおよびネットワークサービスのローカルの一覧表と前記タスクおよびネットワークサービスのリモートの一覧表を比較する手段とを含む。
【００１３】
好ましくは、本発明は、前記ローカルで問い合わせは、コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在を検知する手段、および検知する手段に応答して、コンピュータ・システムにローカルで問い合わせするためコンピュータ・システムのローカルのスキャンを行う手段、をさらに含むシステムを提供する。
【００１４】
好ましくは、本発明は、前記リモートで問い合わせは、コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在をリモートで検知する手段、およびリモートで検知する手段に応答して、当該コンピュータ・システムにリモートで問い合わせするため当該コンピュータ・システムのリモートのスキャンを行う手段、をさらに含むシステムを提供する。
【００１５】
好ましくは、本発明は、前記それぞれのポートの一つのポートは、開放ポート、クローズド・ポート、およびフィルタリングされたポートのうちの少なくとも一つを含む、システムを提供する。
【００１６】
好ましくは、本発明は、コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在を判定するため、特定された相違を評価する更なるテストを実施するよう、特定された相違がある当該コンピュータ・システムに警告する手段、をさらに含むシステムを提供する。
【００１７】
好ましくは、本発明は、前記ローカルおよび/またはリモートのスキャンを行う手段はさらに、コンピュータ・システム上で開放されていると特定された前記またはそれぞれのポートと通信を開始する手段、およびそれぞれの特定された開放ポートについて、前記開放ポートと共に動くサービスが既知のサービスか判定する手段、を含むシステムを提供する。
【００１８】
本発明の別の態様では、本発明は、コンピュータ上で稼動したとき、上述した前記発明を実行するよう機能するソフトウェアのコード部分を含む、デジタルコンピュータの内部メモリーにロードされうるコンピュータプログラム、を提供する。
【００１９】
別の側面からみると、本発明は、ホストコンピュータ・システム上で稼動している悪意あるサービスエージェントの存在を検知するシステムで、ネットワーク通信チャネル、前記ネットワーク通信チャネルに接続されたホストコンピュータ・システム、前記ホストコンピュータ・システム上で稼動している悪意あるサービスエージェントの存在をローカルで検知するため、前記ホストコンピュータ・システムのローカルで導入され前記ホストコンピュータ・システムのローカルのスキャンを実施する、第１のツール、前記ネットワーク通信チャネルに接続されたリモートコンピュータ・システム、前記ホストコンピュータ・システム上で稼動している前記悪意あるサービスエージェントの存在をリモートで検知するため、前記リモートコンピュータ・システムに導入され前記ホストコンピュータ・システムのリモートのスキャンを実施する第２のツール、前記ホストコンピュータ・システムのローカルスキャンと前記ホストコンピュータ・システムのリモートスキャンから収集した結果の相互の関係を比較するための結果相関エンジンであって、前記ホストコンピュータ・システム上で稼動している前記悪意あるサービスエージェントの存在を検知するため、前記ホストコンピュータ・システムの前記ローカルスキャンと前記リモートスキャンとの間の相違点があれば特定するものである前記結果相関エンジン、を含むシステムを提供する。
【００２０】
好ましくは、本発明は、さらに相違レポートであって、前記ホストコンピュータ・システム上で稼動している前記悪意あるサービスエージェントの存在を検知するため、前記ホストコンピュータ・システムの前記ローカルスキャンと前記リモートスキャンとの間の特定された相違点があれば報告する前記相違レポート、を提供するための第３のツールを含むシステムを提供する。
【００２１】
好ましくは、本発明は、第１のツールが前記ホストコンピュータ・システムで現在稼動しているタスクおよびネットワークサービスのローカルの一覧表を列挙するためローカルで前記ホストコンピュータ・システムに問い合わせをするシステムであって、そのタスクおよびネットワークサービスのローカルの一覧表には前記ホストコンピュータ・システム上で使用されているそれぞれのポートを含み、前記ホストコンピュータ・システム上で現在稼動しているタスクおよびネットワークサービスの一覧表の中の前記それぞれのポートの一つのポートは、開放ポート、クローズド・ポート、およびフィルタリングされたポートのうちの少なくとも一つを含む、システムを提供する。
【００２２】
好ましくは、本発明は、前記第２のツールが前記ホストコンピュータ・システムで現在稼動しているタスクおよびネットワークサービスのリモートの一覧表を列挙するためリモートで前記ホストコンピュータ・システムに問い合わせをするシステムであって、前記タスクおよびネットワークサービスのリモートの一覧表には前記ホストコンピュータ・システム上で使用されているそれぞれのポートを含み、前記ホストコンピュータ・システム上で現在稼動しているタスクおよびネットワークサービスのリモートの一覧表の中の前記それぞれのポートの一つのポートは、開放ポート、クローズド・ポート、およびフィルタリングされたポートのうちの少なくとも一つを含む、システムを提供する。
【００２３】
好ましくは、本発明は、コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在を検証するため、相違点があれば評価する更なるテストを実施するよう、特定された相違点がある前記ホストコンピュータ・システムに警告(flagging)するための、第４のツールをさらに含むシステムを提供する。
【００２４】
さらに別の側面からみると、本発明は、ホストコンピュータ・システム上で稼動している悪意あるサービスエージェントの存在を検知するコンピュータプログラムで、コンピュータ読み取り可能記憶媒体、前記コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在を検知するため、前記コンピュータ・システム上で現在稼動しているタスクおよびネットワークサービスのローカルの一覧表の列挙のためコンピュータ・システムにローカルで問い合わせする第１のプログラム命令であって、その一覧表には前記コンピュータ・システム上の使用されているそれぞれのポートも含む命令と、前記コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在を検知するため、前記コンピュータ・システム上で現在稼動しているタスクおよびネットワークサービスのリモートの一覧表の列挙のためコンピュータ・システムにネットワークを通じリモートコンピュータ・システムからリモートで問い合わせする第２のプログラム命令であって、その一覧表には前記コンピュータ・システム上の使用されているそれぞれのポートも含む命令と、それぞれ列挙されたタスクおよびネットワークサービスの前記ローカルの一覧表を収集しおよびそれぞれ列挙されたタスクおよびネットワークサービスの前記リモートの一覧表を収集する第３のプログラム命令と、前記コンピュータ・システム上で稼動している前記悪意あるサービスエージェントの存在を検知するため、列挙されたタスクおよびネットワークサービスの前記ローカルの一覧表と列挙されたタスクおよびネットワークサービスの前記リモートの一覧表との間の相違点があれば特定する目的で、列挙されたタスクおよびネットワークサービスの前記ローカルの一覧表と列挙されたタスクおよびネットワークサービスの前記リモートの一覧表を比較する、第４のプログラム命令と、そして前記第１、２、３、４のプログラム命令は前記コンピュータ読み取り可能記憶媒体に記録されている、を含むコンピュータプログラムを提供する。
【００２５】
好ましくは、本発明は、前記いかなる相違も評価する更なるテストを実施する目的で、特定されたいかなる相違も有する前記コンピュータ・システムに警告(flagging)する５番目のプログラム命令であって、その５番目のプログラム命令は前記コンピュータ読み取り可能記憶媒体に記録されている、をさらに含む、コンピュータプログラムを提供する。
【００２６】
好ましくは、本発明は、前記第１のプログラム命令が、前記コンピュータ・システム上で稼動している悪意あるサービスエージェントの存在をローカルで検知するための第１のツールを提供し、コンピュータ・システムのローカルのスキャンを実行するため前記第１のツールを使用してローカルで前記コンピュータ・システムに問い合わせる命令をさらに含む、コンピュータプログラムを提供する。
【００２７】
好ましくは、本発明は、前記第２のプログラム命令が、前記コンピュータ・システム上で稼動している前記悪意あるサービスエージェントの存在をリモートで検知するための第２のツールを提供し、前記コンピュータ・システムのリモートのスキャンを実行するため前記第２のツールを使用してリモートで前記コンピュータ・システムに問い合わせる命令をさらに含む、コンピュータプログラムを提供する。
【００２８】
好ましくは、本発明は、前記それぞれのポートの一つのポートは、開放ポート、クローズド・ポート、およびフィルタリングされたポートのうちの少なくとも一つを含む、コンピュータプログラムを提供する。
【００２９】
添付の図面は、本明細書の一部をなすものであるが、本発明の本質を説明するため、説明と共に、本発明の態様を図示する。
【図面の簡単な説明】
【００３０】
【図１】図１は、本発明の好適な実施例に従い、コンピュータ・システム上で稼動している悪意あるサービスエージェントおよびマルウェアの存在を検知するための、システムの態様を図示した略ブロック図である。
【図２】図２は、本発明の好適な実施例に従い、前記コンピュータ・システム上で稼動している悪意あるソフトウェアおよびマルウェアの存在を検知するため、前記コンピュータ・システムのローカルスキャンを行うローカルスキャンツールを配置した、コンピュータ・システムの態様を図解している。
【図３】図３は、本発明の好適な実施例に従い、リモートコンピュータ・システム上で稼動している悪意あるソフトウェアおよびマルウェアの存在を検知するため、前記リモートコンピュータ・システムのリモートスキャンを行うリモートスキャンツールを配置した、コンピュータ・システムの態様を図解している。
【図４】図４は、本発明の好適な実施例に従い、コンピュータ・システム上で稼動している悪意あるソフトウェアおよびマルウェアの存在を検知するため、受領した前記ローカルスキャンの結果および受領した前記リモートスキャンの結果を分析または評価するための結果相関エンジンを配置した、コンピュータ・システムの態様を図解している。
【図５】図５は、本発明の好適な実施例に従い、コンピュータ・システム上で稼動している悪意あるソフトウェアおよびマルウェアの存在を検知するためのコンピュータのインフラストラクチャーを図解している。
【図６】図６は、本発明の好適な実施例に従い、ホストコンピュータ・システム上で稼動している悪意あるソフトウェアおよびマルウェアの存在をローカルで検知するための前記ホストコンピュータ・システムで行うステップを説明するフローチャートを図解している。
【図７】図７は、本発明の好適な実施例に従い、ホストコンピュータ・システム上で稼動している悪意あるソフトウェアおよびマルウェアの存在をリモートで検知するためのリモートコンピュータ・システムで行うステップを説明するフローチャートを図解している。
【図８】図８は、本発明の好適な実施例に従い、前記ホストコンピュータ・システム上で稼動している悪意あるソフトウェアおよびマルウェアの存在を検知するための、結果相関コンピュータ・システムによって行う全体のステップを説明するフローチャートを図解している。
【発明を実施するための形態】
【００３１】
本明細書で説明されている機能ユニット(functional unit)の多くは、実装の独立性をより強調したいがために、モジュールと呼ばれている。たとえば、モジュールは、カスタム超大規模集積回路（VLSI）やゲートアレイ、論理チップ、トランジスタまたは他の個別部品などの市販の半導体、からなるハードウェア回路で実装されうる。モジュールは、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレー・ロジック(programmablearray logic)、プログラム可能論理回路などの、プログラマブル・ハードウェア・デバイスの形で実装することもできる。
【００３２】
モジュールは、様々なタイプのプロセッサーによって処理されるソフトウェアで実装することも可能である。特定されたモジュールまたは実行可能コードのコンポーネントは、例えばオブジェクト、プロシージャまたはファンクションとして構成されうる、例えばコンピュータ命令の１つ以上の物理的または論理的ブロックからなることも可能である。それにもかかわらず、特定されたモジュールの実行ファイルは、物理的に一緒に置かれている必要はなく、別々の場所に保存され、論理的に結合したときに、モジュールを構成しモジュールについての上述の目的を達成する、種々の異なる命令から構成されてもよい。
【００３３】
さらに、実行可能コードのモジュールは、単一の命令、または多数の命令でよく、またいくつかの別々のコード部分、別々のプログラムの中、またはいくつかのメモリーデバイスにわたって分散していてもよい。同様に、運用データはここでモジュールの中で特定され説明されうるが、いかなる形態もとりえデータ構造のいかなる適切なタイプにも構成されうる。前記運用データは、単一のデータセットとして収集されうる、または別々のストレージデバイスや種々の異なるメモリーデバイスを含む、別々の場所にわたって分散するか、少なくとも部分的に、単にシステムまたはネットワーク上の電子信号として、存在し得る。
【００３４】
また、モジュールは、ソフトウェアおよび一つ以上のハードウェアデバイスの組み合わせとして実装することも可能である。例えば、モジュールはメモリーデバイスに保存されたソフトウェア実行可能コードの組み合わせで具現化することができる。他の例として、モジュールは、運用データのセットを遂行するプロセッサーの組み合わせでありえる。さらに、モジュールは伝送回路を通じて通信する電子信号の組み合わせで実装され得る。
【００３５】
本明細書中、「一つの実施例」、「ある実施例」、または類似の言葉は、前記実施例に関連して説明される特定の特徴、構造、または特質が、本発明の少なくとも一つの実施例に含まれることを意味する。それゆえ、「一つの実施例に」、「ある実施例に」、または類似の言葉のフレーズが本明細書中に記載されていても、それらはすべて同じ実施例を参照していることもあるし、必ずしもそうでないこともある。
【００３６】
さらに、本発明の前記説明された特徴、構造、または特質が一つ以上の実施例と、いかなる適切な方法でも組み合わせることが可能である。当業者には、本発明の技術的範囲および主旨から逸脱することなく、本発明に種々の修正および変更が可能であることは明らかであろう。それゆえ、これらの修正および変更は、添付の特許請求の範囲およびそれらの均等物の範囲内に収まる限り、本発明によってカバーされるものとする。以降は本発明の好適な実施例について詳細を述べる。
【００３７】
一つの実施例では、本発明は、本発明のある実施例により、コンピュータ・システムまたはホストシステム上で稼動している悪意あるソフトウェアおよびマルウェアの存在を検知するためのシステムを提供する。図１を参照すると、参照番号１００は、本発明のある実施例により、コンピュータ・システム上で稼動している悪意あるサービスエージェントのような、悪意あるソフトウェアおよびマルウェアの存在を検知するためのシステムの実施例を概略的に図示している。図１で示されているように、前記システムインフラストラクチャー１００は、ネットワーク１２０にリモートで接続されている第１のホストコンピュータ・システム１０２を含む。一実施例において、第１のホストコンピュータ・システム１０２上には、第１のホストコンピュータ・システム１０２のローカルの問い合わせまたは取調べを遂行するための、ローカル取調べエージェントプログラム、ローカルスキャニングエージェントまたはツールが導入されている。前記ローカル取調べエージェントまたはソフトウェアは、第１のホストコンピュータ・システム１０２上で現在稼動しているローカルタスクおよびネットワークサービスを見つけ出すため、第１のコンピュータ・システム１０２上で稼動されている。さらに、システムインフラストラクチャー１００は、ネットワーク１２０に接続されており、第１のホストコンピュータ・システム１０２とはリモートである、第２のホストコンピュータ１０４を含む。一実施例において、第２のホストコンピュータ１０４は、第１のホストコンピュータ・システム１０２上で現在稼動しているタスクおよびネットワークサービスのリモートの一覧表を列挙するため、第１のホストコンピュータ・システム１０２のリモートの問い合わせまたは取調べを遂行するネットワーク取調べツールを含む。また、システムインフラストラクチャー１００は、前記ネットワーク１２０に接続されており、第１のコンピュータ・システム１０２および第２のコンピュータ・システム１０４から受領した結果を相互に比較する結果相関エンジンを導入した、第３のコンピュータ・システム１０６を含む。一実施例において、第３のコンピュータ・システム１０６は、第１のホストコンピュータ・システム１０２によって遂行されたローカルの問い合わせまたは取調べの結果を収集する。そして、第３のコンピュータ・システム１０６は、第２のホストコンピュータ・システム１０４によって遂行された、第１のホストコンピュータ・システム１０２についての、リモートの問い合わせまたは取調べの結果も収集する。さらに、第３のコンピュータ・システム１０６上に配置された前記結果相関エンジンは、第１のホストコンピュータ・システム１０２上で稼動している悪意あるサービスエージェントのような、悪意あるソフトウェアの存在を検知するため、第１のホストコンピュータ・システム１０２から取得した前記ローカルの一覧表の結果と第２のホストコンピュータ・システム１０４から取得した前記リモートの一覧表の結果の間の相違点があれば特定する目的で、第１のホストコンピュータ・システム１０２によって列挙されたタスクおよびネットワークサービスの前記ローカルの一覧表と第２のホストコンピュータ・システム１０４によって列挙されたタスクおよびネットワークサービスの前記リモートの一覧表を比較する。また、一実施例において、第３のコンピュータ・システム１０６は、第１のホストコンピュータ・システム１０２上で稼動しているいかなる悪意あるソフトウェアの存在をも検知するため、第１のホストコンピュータ・システム１０２によって遂行された前記ローカルスキャンと第２のホストコンピュータ・システム１０４によって遂行された第１のホストコンピュータ・システム１０２についての前記リモートスキャンとの間の相違点があれば特定する相違レポート１０８を生成するレポートツールを含む。
【００３８】
図２を参照すると、参照番号２００は、本発明のある実施例により、コンピュータプログラム、すなわち、悪意あるソフトウェアが稼動している疑いのあるホストコンピュータ・システムのローカルのスキャンまたは取調べを遂行するための、ローカルスキャニングエージェントプログラムまたはツール、が配置されたホストコンピュータ・システムまたはサーバー（例えば、図１に示されたホストコンピュータ・システム１０２）、の実施例を示している。一実施例において、ローカルスキャニングツールまたはプログラム２２０がホストコンピュータ・システムまたはサーバー２００の中で稼動している。好ましくは、前記コンピュータ・システム２００は、中央処理装置（ＣＰＵ）２０４、ローカルストレージデバイス２０２、ユーザーインタフェース２０６、ネットワークインターフェース２０８、およびメモリー２１０を含むコンピュータ・システムまたはサーバーである。ＣＰＵ２０４は一般的に、前記ホストコンピュータ・システム／サーバー２００の中の操作を実行するよう構成されている。ユーザーインタフェース２０６は、一つの実施例では、コンピュータ・システム２００のローカルスキャンを遂行するためのコマンドおよび／またはデータの入力を可能にすることを含む、ユーザーまたはオペレータがコンピュータ・システムまたはサーバー２００とやりとりすることを可能にするよう構成されている。ネットワークインターフェース２０８は、一つの実施例では、図１で示されたネットワーク１２０のような、ネットワークの通信チャネル上でホストシステムまたはサーバー２００のネットワーク通信を促進するよう構成される。一実施例において、メモリー２１０はワープロアプリケーションや表計算アプリケーションなどの一つ以上のアプリケーションまたはプログラム２１２を保存するよう構成されている。一つの実施例では、図２に示すように、ホストサーバーまたはシステム２００上で稼動しているローカルスキャニングエージェントプログラムまたはツール２２０は、ホストコンピュータ・システム上で稼動しているタスクおよびネットワークサービスのローカルの一覧表を列挙するため、ホストコンピュータ・システム２００のローカルスキャンを遂行する必要なステップを機能的に実行するよう構成された複数のモジュールを含む論理ユニットからなる。一実施例において、図２で示すように、ホストコンピュータ・システム２００上で稼動しているローカルスキャニングツールまたはエージェントプログラム２２０は、起動モジュール２２２、タスクモジュール２２４、ネットワークサービスモジュール２２６、リスト生成モジュール２２８、結果ログモジュール２３０、転送モジュール２３２および通信モジュール２３４を含む。一実施例において、起動モジュール２２２は、ホストコンピュータ・システム２００のローカルスキャンを起動するよう構成されている。タスクモジュール２２４は、ホストコンピュータ・システム２００上で稼動しているすべてのタスクを列挙しまたはリストするよう構成されている。さらに、ネットワークサービスモジュール２２６は、ホストコンピュータ・システム２００上で稼動しているすべてのネットワークサービスを列挙しまたはリストするよう構成されている。一実施例において、リスト生成モジュール２２８は、ホストコンピュータ・システム上で稼動しているすべてのタスクとネットワークサービスを列挙しリストを生成するよう構成されている。結果ログモジュール２３０は、前記ホストコンピュータ・システム上で実行された前記ローカルスキャンの結果ログを生成するよう構成されている。一実施例において、結果ログモジュール２３０によって生成されたローカルスキャン結果ログ２１４は、ホストコンピュータ・システム２００中のローカルストレージ２０２の中に保存される。転送モジュール２３２は、ホストコンピュータ・システム２００から受領した前記ローカルスキャン結果を評価するために、ホストコンピュータ・システム２００上で実行された前記ローカルスキャンの結果を、結果相関エンジン（例えば、図４に示したコンピュータ・システム４００）を含む他のコンピュータ・システムに転送するように構成される。通信モジュール２３４は、ローカルスキャニングツール２２０の種々のモジュール、メモリー２１０、ローカルストレージ２０２と、ネットワーク上で前記ホストコンピュータ・システムと接続されている、前記結果相関エンジンを含む前記コンピュータ・システムのような、外部のコンピュータ・システムとの間での通信を可能にするように構成されている。
【００３９】
図３を参照すると、参照番号３００は、本発明のある実施例により、コンピュータプログラム、すなわち、前記第１のホストコンピュータ・システムとの接続を開くため、または、悪意あるソフトウェアが稼動している疑いのある前記第１のホストコンピュータ・システムのリモートのスキャンや取調べを遂行するための、リモートスキャニングエージェントプログラムまたはツール、が配置されたリモートホストコンピュータ・システムまたはサーバー（例えば、図１に示されたリモートホストコンピュータ・システム１０４）、のある実施例を示している。一実施例において、リモートスキャニングツールまたはプログラム３２０が第２のホストコンピュータ・システムまたはサーバー３００の中で稼動している。好ましくは、コンピュータ・システム３００は、中央処理装置（ＣＰＵ）３０４、ストレージデバイス３０２、ユーザーインタフェース３０６、ネットワークインターフェース３０８、およびメモリー３１０を含むコンピュータ・システムまたはサーバーである。ＣＰＵ３０４は一般的に、ホストコンピュータ・システム／サーバー３００の中の操作を実行するよう構成されている。ユーザーインタフェース３０６は、一つの実施例では、図２に示されたコンピュータ・システム２００のような、コンピュータ・システム３００からリモートにあるホストコンピュータ・システムのリモートスキャンを遂行するためのコマンドおよび／またはデータの入力を可能にすることを含む、ユーザーまたはオペレータがコンピュータ・システムまたはサーバー３００とやりとりすることを可能にするよう構成されている。ネットワークインターフェース３０８は、一つの実施例では、図１で示されたネットワーク１２０のようなネットワークの通信チャネル上でホストシステムまたはサーバー３００のネットワーク通信を促進するよう構成される。一実施例において、メモリー３１０はワープロアプリケーションや表計算アプリケーションなどの一つ以上のアプリケーションまたはプログラム３１２を保存するよう構成されている。一つの実施例では、図３に示すように、ホストサーバーまたはシステム３００上で稼動しているリモートスキャニングエージェントプログラムまたはツール３２０は、リモートホストコンピュータ・システム２００上で稼動しているタスクおよびネットワークサービスのリモートの一覧表を列挙するため、リモートホストコンピュータ・システム２００（図２）のリモートスキャンを遂行する必要なステップを機能的に実行するよう構成された複数のモジュールを含む論理ユニットからなる。一実施例において、図３で示すように、ホストコンピュータ・システム３００上で稼動しているリモートスキャニングツールまたはエージェントプログラム３２０は、起動モジュール３２２、タスクモジュール３２４、ネットワークサービスモジュール３２６、リスト生成モジュール３２８、結果ログモジュール３３０、転送モジュール３３２および通信モジュール３３４を含む。一実施例において、起動モジュール３２２は、ネットワーク上で前記リモートホストコンピュータ・システム２００のすべてのポートのリモートスキャンを起動するよう構成されている。タスクモジュール３２４は、リモートホストコンピュータ・システム２００上で稼動しているすべてのタスクを列挙しまたはリストするよう構成されている。さらに、前記ネットワークサービスモジュール３２６は、リモートホストコンピュータ・システム２００上で稼動しているすべてのネットワークサービスを列挙しまたはリストするよう構成されている。一実施例において、リスト生成モジュール３２８は、リモートホストコンピュータ・システム２００上で稼動しているすべてのタスクとネットワークサービスを列挙しリストを生成するよう構成されている。結果ログモジュール３３０は、リモートホストコンピュータ・システム２００上で実行された前記リモートスキャンの結果ログを生成するよう構成されている。一実施例において、結果ログモジュール３３０によって生成されたリモートスキャン結果ログ３１４は、ホストコンピュータ・システム３００中のローカルストレージ３０２の中に保存される。転送モジュール３３２は、リモートホストコンピュータ・システム２００について実行された前記リモートスキャンの結果を、ホストコンピュータ・システム３００から受領した前記リモートスキャン結果を評価するために、結果相関エンジンを含む他のコンピュータ・システム（例えば、図４に示したコンピュータ・システム４００）に転送するように構成される。通信モジュール３３４は、リモートスキャニングツール３２０の種々のモジュール、メモリー３１０、ローカルストレージ３０２と、ネットワーク上でホストコンピュータ・システム３００と接続されている、前記結果相関エンジンを含むコンピュータ・システム４００（図４に示される）のような、外部のコンピュータ・システムとの間での通信を可能にするように構成されている。
【００４０】
図４を参照すると、参照番号４００は、本発明の実施例により、コンピュータプログラム、すなわち、第１のコンピュータ・システム上で稼動しているいかなる悪意あるソフトウェアの存在をも検知するため、第１のホストコンピュータ・システムまたはサーバーから受領したローカルスキャン結果と第２のホストコンピュータ・システムまたはサーバーから受領した前記第１のホストコンピュータ・システムについてのリモートスキャン結果を相互に比較する結果相関プログラムまたはツールまたはエンジン４２０、が配置された、コンピュータ・システムまたはサーバー（例えば、図１に示されたコンピュータ・システム１０６）のある実施例を示している。好ましくは、コンピュータ・システム４００は、中央処理装置（ＣＰＵ）４０４、ストレージデバイス４０２、ユーザーインタフェース４０６、ネットワークインターフェース４０８、およびメモリー４１０を含むコンピュータ・システムまたはサーバーである。ＣＰＵ４０４は一般的に、ホストコンピュータ・システム／サーバー４００の中の操作を実行するよう構成されている。ユーザーインタフェース４０６は、一つの実施例では、コンピュータ・システム２００（図２）および／またはコンピュータ・システム３００（図３）のような、一つ以上のコンピュータ・システムまたはサーバーからのスキャン結果を収集するためのコマンドおよび／またはデータの入力を可能にすることを含む、ユーザーまたはオペレータがコンピュータ・システムまたはサーバー４００とやりとりすることを可能にするよう構成されている。ネットワークインターフェース４０８は、一つの実施例では、図１で示されたネットワーク１２０のようなネットワークの通信チャネル上でコンピュータ・システムまたはサーバー４００のネットワーク通信を促進するよう構成される。一実施例において、メモリー４１０はワープロアプリケーションや表計算アプリケーションなどの一つ以上のアプリケーションまたはプログラム４１２を保存するよう構成されている。一つの実施例では、図４に示すように、コンピュータサーバーまたはシステム４００上で稼動している結果相関プログラムまたはツール４２０は、ホストコンピュータ・システム２００上で稼動しているいかなる悪意あるソフトウェアまたはマルウェアの存在をも検知するため、ローカルホストコンピュータ・システム２００（図２）およびリモートホストコンピュータ・システム３００（図３）から受領した前記スキャニング結果の評価を遂行する必要なステップを機能的に実行するよう構成された複数のモジュールを含む論理ユニットからなる。一実施例において、図４に示すように、コンピュータ・システムまたはサーバー４００上で稼動している前記結果相関プログラムまたはツール４２０は、受領モジュール４２２、比較モジュール４２４、評価モジュール４２６、警告モジュール４２８、レポート生成ツール４３０、および通信モジュール４３２を含む。一実施例において、受領モジュール４２２は、悪意あるソフトウェアまたはマルウェアが稼動している疑いのあるホストコンピュータサーバーまたはシステムのローカルのスキャン結果、およびネットワークを通じ前記ホストコンピュータ・システムまたはサーバーのリモートのスキャンを実行したリモートコンピュータ・システムまたはサーバーからのリモートスキャン結果、を受領するよう構成されている。比較モジュール４２４は、前記ローカルスキャンが遂行された結果としてのホストコンピュータ・システム２００で稼動しているすべての列挙されたタスクのリストと、ホストコンピュータ・システム２００について遂行されたリモートスキャンの結果としての前記ホストコンピュータ・システム２００で稼動しているすべてのリモートの列挙されたタスクのリストを比較するよう構成されている。一実施例において、比較モジュール４２４は、前記ローカルコンピュータ・システムによって前記ローカルポートから取得されたサービスのリストと、前記リモートコンピュータ・システムによって前記同じポートからリモートに取得されたサービスのリストを比較する。さらに、評価モジュール４２６は、前記ローカルスキャニング結果と前記リモートスキャニング結果との間に何か相違が見つかったかについて、ローカルストレージ４０２内の相関結果ログ４１４に保存する相関結果を生成するため、比較モジュール４２４によって行われた前記比較を評価するよう構成されている。警告モジュール４２８は、評価モジュール４２６によって行われた評価の結果として、悪意あるソフトウェアまたはマルウェアが稼動している疑いのあるコンピュータ・システムに警告するよう構成されている。レポート生成ツール４３０は、コンピュータ・システム４００によって評価された前記ローカルスキャンと前記リモートスキャンとの間で見つかった前記相違点を列挙する相違レポートを生成するよう構成されている。通信モジュール４３２は、一実施例において、結果相関ツール４２０の種々のモジュール、メモリー４１０、ローカルストレージ４０２と、ネットワーク上でコンピュータ・システム４００と接続されている、コンピュータ・システム２００（図２に示される）およびコンピュータ・システム３００（図３に示される）のような、外部のコンピュータ・システムとの間での通信を可能にするように構成されている。
【００４１】
図５を参照すると、本発明の実施例に従い、コンピュータプログラム、すなわち、ホストコンピュータ・システム５０４のローカルスキャンを動的に実行する本発明を実装するローカルスキャニングエージェントプログラムまたはツール５１４を配置した、サーバーまたはコンピュータ・システム５０４を含むインフラストラクチャー５０２が中にある、システム５００を図解している。前記コンピュータプログラムは、プログラムコード、すなわち、コンピュータサーバー、コンピュータ・システムまたはあらゆる命令実行システムによって使用するためのまたは関連した、ローカルスキャニングエージェントプログラムまたはツール５１４、を提供するコンピュータ読み取り可能またはコンピュータ使用可能記憶媒体からなる。ローカルスキャニングエージェントプログラムまたはツール５１４は、磁気テープまたはディスク、光メディア、ＤＶＤ、メモリースティック、半導体メモリなどのような、コンピュータ読み取り可能記憶媒体参考番号５１６から、または前記それぞれのシステムまたはサーバー上に導入されたネットワークアダプターカード（参照番号５１８）を通じサーバーからダウンロードされ、ホストコンピュータ・システム５０４のメモリー５１２にロードされうる。図５で表現されているように、システム５００は、コンピュータインフラストラクチャー５０２を含み、それは、セキュアな環境（アクセスコントロールが実行されている）が維持されるすべてのタイプのコンピュータアーキテクチャーを示すことを意図している。さらに示されているように、インフラストラクチャー５０２は、ローカルスキャニングエージェントプログラムまたはツール５１４を含むアプリケーションサーバーまたはシステム５０４などを一般的に示す、コンピュータサーバーまたはシステム５０４を含む。示されていないが、インフラストラクチャー５０２に、他のハードウェアおよびソフトウェアコンポーネント（さらなるコンピュータ・システム、ルーター、ファイアウォール等）が含まれ得る。
【００４２】
一般的にホストシステム５０４はネットワークを通じインフラストラクチャー５０２に接続されている。ホストシステム５０４は、ホストシステム５０４上で現在稼動している前記タスクおよびネットワークサービスのローカルのスキャンを遂行するための、ホストシステム５０４で稼動しているローカルスキャニングエージェントプログラムまたはツール５１４を含む。さらに、図５で示すように、図１に関して上述したように、ホストシステム５０４（図１のコンピュータ・システム１０２）は、ネットワーク（図１の参照番号１２０）を通じ、コンピュータ・システムサーバーまたはシステム５３０（図１のコンピュータ・システム１０４）および／またはコンピュータサーバーまたはシステム５４０（図１のコンピュータ・システム１０６）と通信できる。例えば、コンピュータ・システムまたはサーバー５３０は、磁気テープまたはディスク、光メディア、ＤＶＤ、メモリースティック、半導体メモリなどのような、コンピュータ読み取り可能記憶媒体参照番号５３２から、または前記それぞれのシステムまたはサーバー５３０上に導入されたネットワークアダプターカード（参照番号５５４）を通じサーバーからダウンロードされ、ホストコンピュータ・システム５３０のローカルメモリー５３３にロードされる、リモートスキャニングプログラムまたはツール５３４を使用し、コンピュータ・システムまたはサーバー５０４のリモートスキャンを行うため、インフラストラクチャー５０２とインターフェースをとりうる。同様に、コンピュータ・システムまたはサーバー５４０は、システムまたはサーバー５０４によって遂行されたローカルスキャンの結果を受領するため、インフラストラクチャー５０２とインターフェースをとることができ、サーバー５３０によって遂行された、コンピュータ・システムまたはサーバー５０４の前記リモートスキャンの結果を受領することができる。一実施例において、結果相関ツールまたはプログラムは、磁気テープまたはディスク、光メディア、ＤＶＤ、メモリースティック、半導体メモリなどのような、コンピュータ読み取り可能記憶媒体参照番号５４２から、またはそれぞれのシステムまたはサーバー５４０上に導入されたネットワークアダプターカード（参照番号５５６）を通じサーバーからダウンロードされ、ホストコンピュータ・システム５４０のローカルメモリー５４３にロードされる。そのようなものとして、コンピュータ・システムまたはサーバー５４０は、コンピュータ・システム５０４によって実行された前記ローカルスキャンの結果および、コンピュータ・システム５０４についてコンピュータ・システム５３０が実行した前記リモートスキャンの結果を受領し、ホストシステム５０４で悪意あるソフトウェアまたはマルウェアが稼動しているか判定するため、前記ローカルスキャンの結果と前記リモートスキャンの結果を比較することができる。本発明では、インフラストラクチャー５０２が、プロバイダー５２６のような団体、または、独立した組織によって、所有されたりおよび／または運用されたりし得ることは当然である。それにもかかわらず、インフラストラクチャー５０２の使用と本明細書で説明された教示内容は、登録によるまたは手数料方式で提供可能である。
【００４３】
前記ホストコンピュータ・システムまたはサーバー５０４は、ＣＰＵ（以下処理装置５０６）、メモリー５１２、バス５１０、および入出力（Ｉ／Ｏ）インターフェース５０８を含むように示されている。さらに、サーバー５０４は、外部Ｉ／Ｏデバイス／リソース５２０およびストレージシステム５２２と通信するよう示されている。一般的には、処理装置５０６は、コンピュータ・システム５０４上で現在稼動している前記タスクおよびサービスを判定するためのローカルスキャニングエージェントプログラムまたはツール５１４のような、メモリー５１２に保存されたコンピュータプログラムコードを実行する。一実施例において、ローカルスキャニングエージェントプログラムまたはツール５１４の実行によって作成されたローカルスキャニング結果５２４は、ストレージ５２２に保存される。図５には示されていないが、コンピュータ・システムまたはサーバー５３０および５４０は、コンピュータ・システム５０４と同じように、それぞれＣＰＵ、メモリー、バス、および入出力（Ｉ／Ｏ）インターフェースを含む。さらに、サーバー５３０は、外部Ｉ／Ｏデバイス／リソース（図示されていない）およびストレージシステム５３６と通信するし、コンピュータ・システムまたはサーバー５４０は、Ｉ／Ｏデバイス／リソース（図示されていない）およびストレージシステム５４６と通信する。
【００４４】
一般的に、処理装置５０６は、コンピュータ・システム５０４上で現在稼動している前記タスクおよびサービスを判定するための前記ローカルスキャニングエージェントプログラムまたはツール５１４のような、メモリー５１２に保存されたコンピュータプログラムコードを実行し、コンピュータ・システム５３０の処理装置は、コンピュータ・システム５０４上で稼動しているタスクおよびサービスを判定するための前記リモートスキャニングエージェントプログラムまたはツール５３４のような、メモリー５３３に保存されたコンピュータプログラムコードを実行する。同じように、コンピュータ・システム５４０の処理装置は、コンピュータ・システム５０４の前記ローカルスキャンと前記リモートスキャンの間にいかなる相違もあるか判定するための結果相関ツールまたはプログラム５４４のような、メモリー５４３に保存されたコンピュータプログラムコードを実行する。
【００４５】
また、一実施例において、コンピュータ・システム５０４で稼動するローカルスキャニングエージェントプログラムまたはツール５１４の実行によって作成されるローカルスキャニング結果５２４はストレージ５２２に保存され、一方、リモートスキャニングエージェント５３４の実行によって作成された前記リモートスキャニング結果５３８はコンピュータ・システム５３０のストレージ５３６に保存され、また他方で、コンピュータ・システム５４０上の結果相関ツール５４４の実行によって遂行される前記相関結果５４８はコンピュータ・システム５４０のストレージ５４６に保存される。コンピュータ・システム５０４上の前記ローカルスキャニングエージェントツールまたはプログラム５１４を実行している間に、処理装置５０６は、ストレージ５２２に保存されたローカルスキャニング結果５２４のようなデータを、メモリー５１２、ストレージシステム５２２、および／またはＩ／Ｏインターフェース５０８へ／から、読み込むおよび／または書き出すことができる。あるいは、ローカルスキャニングツール５１４は、メモリー５１２にローカルスキャニング結果５２４を保存することができる。バス５１０は、インフラストラクチャー５０２の中で情報を通信させることができるよう、コンピュータ・システム５００のそれぞれの構成コンポーネントの間で通信リンクを提供する。外部デバイス５２０は、ユーザーがコンピュータ・システム５００とやりとりすることを可能にするいかなるデバイス（例えば、キーボード、ポインティングデバイス、ディスプレイなど）、および／またはホストシステム５０４がサーバー５３０および／または５４０のような一つ以上のコンピューティングデバイスと通信することを可能にするいかなるデバイス（例えばネットワークカード、モデムなど）を含み得る。同じように、コンピュータ・システム５３０上のリモートスキャニングエージェントツールまたはプログラム５３４を実行している間に、前記処理装置は、ストレージ５３６に保存されたリモートスキャニング結果５３８のようなデータを、メモリー５３３、ストレージシステム５３６、へ／から、読み込むおよび／または書き出すことができる。あるいは、前記リモートスキャニングツール５３４は、メモリー５３３に前記リモートスキャニング結果５３８を保存することができる。また、コンピュータ・システム５４０上の結果相関ツールまたはプログラム５４４を実行している間に、前記処理装置は、ストレージ５４６に保存された相関結果５４８のようなデータを、メモリー５４３、ストレージシステム５４６、へ／から、読み込むおよび／または書き出すことができる。あるいは、前記結果相関ツール５４４は、メモリー５４３に前記相関結果５４８を保存することができる。
【００４６】
コンピュータインフラストラクチャー５０２は、本発明を実施するための種々のタイプのコンピュータインフラストラクチャーの例示にすぎない。例えば、一つの実施例では、コンピュータインフラストラクチャー５０２は、本発明の様々なプロセスステップを実行するためネットワーク上で通信する２つ以上のサーバーグループまたはクラスター（Cluster）から構成し得る。さらに、コンピュータ・システム５００は、多くのハードウェアの組み合わせを含み得る、種々のあり得るコンピュータ・システムの典型例にすぎない。この点で、他の実施例では、コンピュータ・システム５００は、特定の機能を実行するハードウェアおよび／またはコンピュータプログラムコードからなるあらゆる特定目的のコンピュータ製品、または特定目的および一般用のハードウェア／ソフトウェアの組み合わせからなるあらゆるコンピュータ製品、などから構成され得る。それぞれのケースで、前記プログラムコードおよびハードウェアは、それぞれ標準のプログラムおよびエンジニアリング技術を用いて作成され得る。また、処理装置５０６は、一つの処理装置、または一つ以上のロケーションで、例えばクライアントおよびサーバー上で、一つ以上の処理装置が分散している、から構成することもできる。同じように、メモリー５１２および／またはストレージシステム５２２は、１つ以上の物理的ロケーションに存在する、種々のタイプのデータストレージおよび／または伝送媒体のあらゆる組み合わせから構成し得る。さらに、Ｉ／Ｏインターフェース５０８は、１つ以上の外部デバイス５２０と情報をやりとりするためのあらゆるシステムから構成し得る。さらにまた、図５には示されていない、一つ以上の追加の構成コンポーネント（例えば、システムソフトウェア、数値計算コプロセッサ・ユニット（mathco-processing unit）など）がコンピュータ・システム５００に含まれてもよい。
【００４７】
ストレージシステム５２２、５３６、および５４６は本発明の下で情報の保存する場所を提供し得るあらゆるタイプのシステム（例えばデータベース）であり得る。この点で、ストレージシステム５２２、５３６、および５４６は、磁気ディスクドライブ、または光学ディスクドライブのような、一つ以上のストレージデバイスを含み得る。他の実施例では、ストレージシステム５２２、５３６、および５４６は、データが、例えば、ローカルエリアネットワーク（ＬＡＮ），ワイドエリアネットワーク（ＷＡＮ）またはストレージエリアネットワーク（ＳＡＮ）（示されていない）にわたって分散して存在しているのも含む。図示されていないけれども、追加のコンポーネント、キャッシュメモリー、通信システム、システムソフトウェア、などがコンピュータ・システム５００に組み込まれ得る。
【００４８】
他の実施例では、本発明は、コンピュータ・システムまたはホストコンピュータ・システム上で稼動する悪意あるソフトウェアおよびマルウェアの存在を検知するための、方法またはプロセスを提供する。図６の参照番号６００を今度は参照すると、本発明の実施例に従い、望まないマルウェアまたは悪意あるソフトウェアが稼動している疑いがあるホストコンピュータ・システムによって実行されるステップの概要を説明している。図６で示されるように、ステップ６０２において、現在稼動しているまたはアクティブなネットワークサービスのリストを取得するため、悪意あるソフトウェアまたはマルウェアが存在する疑いのある「疑わしい」ホストコンピュータ・システム上で、ローカルスキャニングソフトウェアツールまたはエージェントプログラムをローカルで稼動させられる。ステップ６０４において、前記ホストコンピュータ・システム上でローカルで稼動している、前記ローカルスキャニングツールまたはエージェントプログラムは、前記ホストコンピュータ・システム内で、現在稼動しているもしくはアクティブなサービス、およびそれらの使用されているそれぞれのポートを列挙し、リスト化する。前記ホストコンピュータ・システムの中でアクティブなサービスおよびそれらの使用されているそれぞれのポートのリスト化または列挙された前記ローカルのスキャン結果は、図８について後述されるように、ネットワーク上の他のコンピュータ・システム、すなわち、前記スキャニング結果の比較および評価のための結果相関エンジンを稼動している結果相関コンピュータ・システム、に送られる（ステップ６０６）。
【００４９】
次に、図７の参照番号７００を参照すると、本発明の実施例に従い、前記ホストコンピュータ・システム上で稼働している望まないマルウェアまたは悪意あるソフトウェアの存在を検知するための、前記ホストコンピュータ・システムとはリモートの位置にあるコンピュータ・システムであるリモートコンピュータ・システムによって実行されるステップの概要を説明している。リモートスキャニングツールまたはエージェントプログラムが、ネットワーク上で前記ホストコンピュータ・システムとリモートに接続するためおよび、前記ホストコンピュータ・システム上の開放ネットワークポートのリストを取得するため、ステップ７０２において、前記リモートコンピュータ・システム上で稼動させられる。ステップ７０４において、前記リモートスキャニングツールまたはエージェントプログラムは、前記ホストコンピュータ・システム内で、現在稼動しているもしくはアクティブなネットワークサービス、およびそれらの使用されているそれぞれのポートを列挙し、リスト化するため、前記ホストコンピュータ・システムにリモートで接続する。一実施例において、前記リモートスキャニングコンピュータ・システムは前記ホストコンピュータ・システム上のそれぞれの開放ポートに接続を試み、サービスが既知のまたは一般的なサービスかどうか判定するために稼動しているサービスに取り調べを実行する。そのようなものとして、前記リモートコンピュータ・システムによって、開放ポート、クローズド・ポート、およびフィルタリングされたポートのリストが取得される。さらに、前記ネットワーク上から可視の前記ネットワークポートおよびサービスのリストしたまたは列挙した前記リモートスキャン結果は、図８について後述されるように、ステップ７０６において、前記スキャニング結果の比較および評価のための結果相関エンジンを稼動している前記結果相関コンピュータ・システムに送られる。
【００５０】
次に、図８の参照番号８００を参照すると、本発明の実施例に従い、前記ホストコンピュータ・システム上の望まないマルウェアまたは悪意あるソフトウェアの存在を検知するための、前記結果相関コンピュータ・システムによって実行されるステップの概要を説明している。ステップ８０２において、前記結果相関コンピュータ・システムは、前記ホストコンピュータ・システムから前記ローカルスキャニング結果を受領し、ステップ８０４において、前記結果相関コンピュータ・システムは、前記リモートコンピュータ・システムから前記リモートスキャニング結果を受領する。結果相関エンジンを稼動している前記結果相関コンピュータ・システムは、ステップ８０６において、いかなる相違もあるか、前記ホストコンピュータ・システム上で稼動しているネットワークサービスの前記ローカルリスト（前記ローカルスキャンに対応する）および前記リモートリスト（前記リモートスキャンに対応する）を比較する。見つかったどんな相違も、隠れたサービスを示し、望まないソフトウェアまたはマルウェアを示す。ステップ８１０において、前記結果相関エンジンは、前記ローカルリストと前記リモートリストとの間で相違があるかどうか判定する。もし前記結果相関エンジンが、ステップ８１０において、前記ホストコンピュータ・システム上で稼動しているネットワークサービスの前記ローカルリストおよび前記リモートリスト間で相違がないと判定した場合は、疑わしいネットワークの相違は見つからなかったということで、プロセスはステップ８１２で終了する。しかし、もし前記結果相関エンジンが、ステップ８１０において、前記ホストコンピュータ・システム上で稼動しているネットワークサービスの前記ローカルリストおよび前記リモートリスト間で一つ以上の相違があると判定した場合は、前記ホストコンピュータ・システム上で稼動する望まないまたは悪意あるソフトウェアに関連付けられそうな、見つけられた疑わしいネットワークの相違があるということで、前記結果相関エンジンは、ステップ８１４において、前記相違を記録しログをとる。さらに、ステップ８１６において、前記結果相関エンジンは、感染の可能性があるとして、前記「疑わしい」ホストコンピュータ・システムを警告し特定する。加えて、ステップ８１８において、前記警告を受けたホストコンピュータ・システム上でさらなるテストが行われ、前記見つけられた相違の特質および前記ホストコンピュータ・システム上に現在導入されている悪意あるまたは望まないソフトウェアを評価するため、警告を受けたホストコンピュータ・システムは監視され、プロセスが終了する。一実施例において、前記結果相関エンジンによって見つけられたあらゆる相違をテストしおよび／または評価するため、一つ以上のテストプログラムを、前記ホストコンピュータ・システム上に配置する。当業者には、前記ホストコンピュータ・システムの前記テストおよび評価は、必要に応じ、管理者によって、手動で行われ得ることは当然であろう。
【００５１】
したがって、本発明は、コンピュータ・システムまたはホストコンピュータ・システム上で稼動する悪意あるソフトウェアおよびマルウェアの存在を検知するための、システム、方法およびプログラムを提供する。本発明は、前記ホストコンピュータ・システムにローカルおよびリモート両方で取り調べが可能であることが必要である。ローカルでの取り調べは、ローカルで導入されたエージェント（ユーザーまたは管理者レベルアクセス）を通じて、または一般的に管理者レベルアクセスが必要な標準ネットワークサービス取り調べ技術を通じて、行うことができる。前記ホストコンピュータ・システムのリモートのサービス取り調べは、標準ポートスキャニングおよび脆弱性スキャニング技術をもって行うことができる。「疑わしいホスト」と分類されたデバイスは元々「疑わしい」場合もあればそうでない場合もあり、前記ホストの問い合わせは、悪意ある活動および望まないサービスの導入を先手を打って検知するための定期的な／予定されたイベントでもあり得る。ローカルホストのネットワークサービスを列挙することは、デフォルトのオペレーティングシステムの問い合わせツールまたはカスタムツールを使用することで行うことができる。前記ネットワーク取調べは、開放ポートを特定するため標準リモートポートスキャニング技術を使うこと、およびそれらの背後にあるサービスを列挙することができる。前記結果相関エンジンは、前記「ローカルスキャニング結果」および前記「リモートスキャニング結果」との間のあらゆる相違について行動する、スタンドアロンのデバイス、ネットワーク取調べツールセットの一部、または追加のソフトウェアスイート(software suite)の一部であり得る。
【００５２】
本発明の特定の実施例の前述の説明は例示および説明を目的として示された。網羅的であることまたは開示された形態の発明に限定されることを意図するものではなく、上述のガイドを踏まえ、明らかに多くの修正および変更が可能であろう。実施例は、本発明の原理および実用的な応用例を最もよく説明するために、および、当業者が、意図する特定の用途に適するような種々の修正を伴う種々の実施例に関して本発明を利用することを可能にするために、選ばれ且つ記述された。本発明の範囲は添付する請求の範囲およびその均等物によって定義されるよう意図されている。
【図１】
0005490127.tif 000002
【図２】
0005490127.tif 000003
【図３】
0005490127.tif 000004
【図４】
0005490127.tif 000005
【図５】
0005490127.tif 000006
【図６】
0005490127.tif 000007
【図７】
0005490127.tif 000008
【図８】
0005490127.tif 000009