(57)【要約】【課題】ワームのような特性を有する疑いがあるプログラムの挙動プロファイルの自動決定の方法および装置を提供すること。【解決手段】ワームのような特性を有する疑いのあるプログラムの挙動プロファイルの自動決定の方法およびシステムは、プログラムによって要求されるデータ処理システム・リソースを分析し、要求されたリソースがワームのような特性を有するプログラムを示さない場合に、そのプログラムを制御された非ネットワーク環境で実行すると同時に、非ネットワーク環境でプログラムの挙動を決定するためにシステム・リソースへのアクセスを監視し、ログ記録することを含む。観察された挙動のログ記録されたレコードを分析して、挙動がワームのような特性を有するプログラムを示すかどうか判定する。非ネットワーク環境は、ネットワークの動作をエミュレートせずに、プログラムに対するネットワークの外見をシミュレートすることができる。
2005534092.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの潜在的にワームの挙動を自動的に決定する方法であって、
ネットワークの動作をエミュレートしない環境で前記プログラムの挙動プロファイルを決定すること、
ワームの挙動を示すプロファイルに対して前記決定された挙動プロファイルを比較すること、および、
前記比較の結果に基づいて潜在的にワームの挙動の表示を提供すること
を含む方法。
【請求項２】
前記挙動プロファイルが、前記プログラムによって要求されるシステム・リソースを決定することによって決定される、請求項１に記載の方法。
【請求項３】
前記挙動プロファイルが、前記プログラムによって参照されるシステム・リソースを決定することによって決定される、請求項１に記載の方法。
【請求項４】
前記挙動プロファイルの前記決定が、
少なくとも１つの既知の非ネットワーク環境で前記プログラムを実行すること、
前記環境を検査する自動化された方法を使用し、前記環境内で発生した変化がある場合に、前記変化を決定すること、および、
前記挙動プロファイルとして、すべての決定された変化を記録すること
を含む、請求項１に記載の方法。
【請求項５】
前記既知の非ネットワーク環境が、ネットワーク関連機能を示すように見える能力を有する、請求項４に記載の方法。
【請求項６】
前記プログラムが前記環境がネットワーク機能を有するかどうか判定しようとすることに応答して、前記プログラムがワームの挙動を示す誘因として前記プログラムにネットワーク・アドレスを提供する、請求項５に記載の方法。
【請求項７】
前記既知の非ネットワーク環境が、存在しないローカル・ネットワーク関連リソースおよびローカル・ネットワーク関連オブジェクトの少なくとも１つを示す、請求項４に記載の方法。
【請求項８】
前記プログラムがファイルに関する情報を決定しようとすることに応答して、前記プログラムがワームの挙動を示す誘因として、前記ファイルが存在するかのように応答する、請求項４に記載の方法。
【請求項９】
前記プログラムがファイルに関する情報を決定しようとすることに応答して、前記プログラムがワームの挙動を示す誘因として、前記ファイルを返す前に前記ファイルを作成する、請求項４に記載の方法。
【請求項１０】
前記プログラムが電子メール・プログラムに関する情報を決定しようとすることに応答して、前記プログラムがワームの挙動を示す誘因として、前記プログラムに前記情報を返す、請求項４に記載の方法。
【請求項１１】
前記プログラムが電子メール・アドレス帳に関する情報を決定しようとすることに応答して、前記プログラムがワームの挙動を示す誘因として、前記プログラムに前記情報を返す、請求項４に記載の方法。
【請求項１２】
前記プログラムの前記挙動プロファイルを決定することが、複数の形で前記プログラムを実行することを含む、請求項１に記載の方法。
【請求項１３】
前記プログラムの前記挙動プロファイルを決定することが、前記プログラムによるダイナミック・リンク・ライブラリの使用状況を決定することを含む、請求項１に記載の方法。
【請求項１４】
前記プログラムの前記挙動プロファイルを決定することが、前記プログラムによってライブラリからインポートされたメソッドの識別を決定することを含む、請求項１に記載の方法。
【請求項１５】
前記プログラムの前記挙動プロファイルを決定することが、前記プログラムによって要求されるリソースを決定することを含む、請求項１に記載の方法。
【請求項１６】
前記リソースが、ネットワーク・アクセス用のダイナミック・リンク・ライブラリ、電子メールを送信する可能な試みを示すダイナミック・リンク・ライブラリからインポートされたメソッド、ならびに電子メール・プログラムのオートメーションを示すダイナミック・リンク・ライブラリおよびメソッドの少なくとも１つを含む、請求項１５に記載の方法。
【請求項１７】
前記プログラムの前記挙動プロファイルを決定することが、前記プログラムによって要求されるシステム・リソースが所定のシステム・リソースと一致するかどうか判定し、そうである場合に、制御された環境内で前記プログラムを実行し、前記プログラムの実行中に行われるシステム変更が、ある所定のシステム変更と一致するかどうか判定し、そうである場合に、前記プログラムが可能なワームであると宣言し、そうでない場合に、プログラム挙動モニタによって報告されるアクティビティが、ある所定のアクティビティと一致するかどうか判定し、そうである場合に、前記プログラムが可能なワームであると宣言することを含む、請求項１に記載の方法。
【請求項１８】
プログラムの潜在的にワームの挙動の自動決定を行う記憶されたプログラムを実行する少なくとも１つのコンピュータを含むデータ処理システムであって、
ネットワークの動作をエミュレートしない環境で前記プログラムの挙動プロファイルを決定する手段と、
ワームの挙動を示す記憶されたプロファイルに対して前記決定された挙動プロファイルを比較する手段と、
前記比較の結果に基づいて潜在的にワームの挙動の表示を提供する手段と
を含むデータ処理システム。
【請求項１９】
請求項１ないし１７のいずれかに記載の方法をコンピュータに実行させる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ワームと称するものなど望ましくないソフトウェア・エンティティを分析する方法および装置に関し、より詳細には、ソフトウェア・プログラムの潜在的にワームのような挙動を自動的に識別する方法および装置に関する。
【背景技術】
【０００２】
コンピュータ・ウィルスは、人間の介入なしに、おそらくは修正された形でコンピュータ上で蔓延する自己複製式のプログラムまたはソフトウェアと定義することができる。コンピュータ・ワームは、コンピュータ・ネットワーク上のコンピュータ間でそれ自体のコピーを秘密に送信でき、複製に１つまたは複数のネットワーク・サービスを使用するプログラムと定義することができる。
【０００３】
自動化コンピュータ・ウィルス検出分析の分野では、しばしば、プログラムが示す挙動のタイプを予測し、その結果、そのプログラムに最も適当な環境でプログラムを複製および分析することができるようにする必要がある。
【０００４】
ソフトウェアを動的に分析して、潜在的に重要な挙動（ワームのような挙動など）を識別することができる。そのような挙動は、ソフトウェアが生産ネットワークまたはグローバル・インターネットあるいはその両方へのアクセスを有するか有するように見える環境で実行されたときに限って示される可能性がある。ソフトウェアは、監視コンポーネントおよびエミュレーション・コンポーネントを含む実際のネットワーク環境またはエミュレートされたネットワーク環境で実行することができる。監視コンポーネントは、ソフトウェアまたはシステムの他のコンポーネントあるいはその両方によって示される挙動を取り込むか、記録するか、その両方を行うように働き、エミュレーション・コンポーネントは、分析されるソフトウェアに、生産ネットワークまたはグローバル・インターネットあるいはその両方へのアクセスを有して実行されつつあるという印象を与える。分析されるソフトウェアは、効果的に、分析ネットワーク環境に閉じこめられ、生産ネットワークまたはグローバル・インターネットから実際に情報を読み取るか、変更することができない。
【０００５】
そのような環境の外部でコンピュータ・ワームの識別を指定する能力を提供することが望ましい。コンピュータ・ソフトウェア・ウィルスおよびワームの両方の複製にそのような環境を使用することは、できる可能性はあるが、ワーム複製環境が、実際に実施が高価である可能性がある実際のネットワークまたはエミュレートされたネットワークの存在を前提とするので、非効率的である可能性がある。
【０００６】
したがって、ネットワーク環境の外部で、ソフトウェアのサンプルが潜在的なワームであるかどうかを予測する能力によって、ワーム複製環境に送られるサンプルの数が減り、自動化複製分析システムの効率に対するかなりの改善がもたらされる。
【非特許文献１】ピートレック（Matt Pietrek）、「頭巾の中（Underthe Hood）」、マイクロソフト・システム・ジャーナル（Microsoft Systems Journal）の１９９７年２月号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、本発明は、ワームのような特性を有する疑いがあるプログラムの挙動プロファイルの自動決定の方法および装置を提供する。
【課題を解決するための手段】
【０００８】
第１の態様では、方法は、プログラムが必要とするデータ処理システム・リソースを分析すること、および、必要なリソースが、ワームのような特性を有するプログラムを示さない場合に、非ネットワーク環境でのプログラムの挙動を決定するためにシステム・リソースへのアクセスを監視し、ログ記録しながら、制御された非ネットワーク環境でプログラムを実行することを含む。観察された挙動のログ記録されたレコードを分析して、挙動がワームのような特性を有するプログラムを示すかどうか判定する。非ネットワーク環境は、ネットワークの実際の動作をエミュレートせずに、プログラムへのネットワークの外見をシミュレートすることができる。
【０００９】
添付図面を例としてのみ参照して、本発明の好ましい実施形態をこれから説明する。
【発明を実施するための最良の形態】
【００１０】
本明細書で開示される方法は、ワーム・プログラムの、他のコンピュータに蔓延できるようにする特性に基づく。この特性には、（ａ）別の機械に電子メールを送信するためにダイナミック・リンク・ライブラリ（ｄｌｌ）からアプリケーション・プログラム・インターフェース（ＡＰＩ）を使用すること、（ｂ）Microsoft社のOutlook（商標）およびOutlook Express（商標）など（これに制限はされない）の一般的なメール・プログラムのオートメーション（automate）、（ｃ）ワームの潜在的な受信側またはメール・プログラムの位置あるいはその両方を決定するためのアドレス帳、システム・レジストリ、および他のシステム・リソースの使用、（ｄ）実行される場合に、その機械から送信されるすべてのメールに添付ファイルとしてまたは別々のメール・メッセージとしてワーム・コードが含まれるようにする、システム・ライブラリのネットワークＡＰＩのワーム・コードによる上書きまたは置換、（ｅ）リモート・ドライブのリソースへのアクセスの試み、（ｆ）システムが再起動された後に実行され、前に説明した方法の１つを使用して他の機械にワーム・コードを送信させるプログラムの産み落としのうちの１つまたは複数が含まれるが、これらに制限はされない。
【００１１】
ワームのプロファイルは、前述の方法の１つまたは複数の使用を示す、これらの特性を示すプロファイルである。たとえば、ワーム・プロファイルに、ネットワークｄｌｌからの送信方法、ネットワーク・リソースの変更、またはインストールされた電子メール・プログラムを記述した情報を入手するためのシステム・レジストリへのアクセスの試みを含めることができる。
【００１２】
疑わしいプログラム（すなわち、ワームのような挙動、特性、または属性を有する疑いがあるプログラム）の挙動プロファイルの決定は、２ステージで実行される。
【００１３】
第１ステージの間に、プログラムが要求するリソースを決定する。潜在的なワームのような挙動を示すリソースの例に、（ａ）ネットワーク・アクセス用のダイナミック・リンク・ライブラリ、（ｂ）電子メール送信の可能な試みを示す、これらのライブラリからインポートされたメソッド、（ｃ）たとえばＯＬＥまたはＤＤＥなど、既存メール・プログラムのオートメーションを示すダイナミック・リンク・ライブラリおよびメソッドが含まれるが、これに制限はされない。
【００１４】
第２ステージの間に、疑わしいプログラムが、制御された非ネットワーク環境内で１回または複数回実行され、システム・リソースへのアクセス、おそらくはすべてのアクセスが、監視され、ログ記録される。結果を絞り込み、偽陽性の数を減らすために、非ネットワーク環境を、あるネットワーク機能を有するように見えるように構成することができる。たとえば、疑わしいワームが、アドレス帳へのアクセスまたは電子メール・プログラムの存在の検査を試みている場合に、環境は、より固有のワームのような応答を引き出すために、期待される情報を提供することができる。いくつかの場合に、疑わしいプログラムが電子メール・プログラムへのアクセスを試みる場合に、疑わしいプログラムへの肯定的な応答を容易にするために、システムに電子メール・プログラムをインストールすることが有利になる場合がある。
【００１５】
１つまたは複数のプログラム実行が完了した後に、プログラムの挙動プロファイルが、たとえばネットワークｄｌｌの修正などのシステムに対して行われた変更と、メール・プログラムまたはアドレス帳の位置を含むレジストリ・キーなどの特定のリソースへのアクセスの試みの両方に基づいて作成される。
【００１６】
本発明の好ましい実施形態は、図１に示されたコンピュータ・システム１００の１つまたは複数で動作し、図１には、本発明の好ましい実施形態を実践できる通常のコンピューティング・システム１００のブロック図が示されている。コンピュータ・システム１００には、ハードウェア・ユニット１０３を含むコンピュータ・プラットフォーム１０２と、本明細書でコントローラ１０１とも称する、下記で開示する方法を実施するソフトウェア分析プログラム（ＳＡＰ）１０１が含まれる。ＳＡＰ１０１は、コンピュータ・プラットフォーム１０２およびハードウェア・ユニット１０３を動作させる。ハードウェア・ユニット１０３には、通常は、１つまたは複数の中央処理装置（ＣＰＵ）１０４、ランダム・アクセス・メモリ（ＲＡＭ）を含むメモリ１０５、および入出力インターフェース１０６が含まれる。たとえば縮小命令セットであるマイクロ命令コード１０７も、プラットフォーム１０２に含めることができる。様々な周辺コンポーネント１３０を、コンピュータ・プラットフォーム１０２に接続することができる。一般に設けられる周辺コンポーネント１３０には、ディスプレイ１０９、好ましい実施形態によって使用されるデータが記憶される、ワーム・リソース・プロファイル２０５（図２参照）が常駐する外部データ記憶装置（たとえばテープまたはディスク）１１０、および印刷装置１１１が含まれる。リンク１１２も、単にブロック１１３として示された１つまたは複数の他の類似するコンピュータ・システムにシステム１００を接続するために含めることができる。リンク１１２は、コンピュータ１００と１１３の間でディジタル情報を伝送するのに使用される。リンク１１２は、グローバル・インターネット１１３ａへのアクセスも提供することができる。オペレーティング・システム（ＯＳ）１１４が、コンピュータ・システム１００の様々なコンポーネントの動作を調整し、様々なオブジェクトおよびファイルの管理と、最終修正日時、ファイルの長さなどの、オブジェクトおよびファイルに関するある種の情報を記録する責任を負う。ＯＳ１１４に従来の形で関連するのが、その使用について下記で論じるレジストリ１１４Ａと、ｄｌｌ１１４Ｂなどのシステム初期化ファイル（ＳＹＳ＿ＩＮＩＴ＿ＦＩＬＥＳ）および他のファイルである。ＯＳ１１４の上にあるのが、たとえばコンパイラ、インタープリタ、および他のソフトウェア・ツールを含むソフトウェア・ツール・レイヤ１１６である。レイヤ１１６のインタープリタ、コンパイラ、および他のツールは、オペレーティング・システム１１４の上で動作し、当技術分野で既知の方法を使用するプログラムの実行を可能にする。
【００１７】
コンピュータ・システム１００の好適かつ非制限的な例が、ＩＢＭ  ＩｎｔｅｌｌｉＳｔａｔｉｏｎ（商標）（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎ社の商標）である。適切なＣＰＵの例は、Ｐｅｎｔｉｕｍ（商標）ＩＩＩプロセッサ（Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ社の商標）であり、オペレーティング・システムの例は、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（商標）２０００（Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ社の商標）およびＧＮＵ／Ｌｉｎｕｘ（Ｌｉｎｕｓ  Ｔｒｏｖａｌｄの商標）のＲｅｄｈａｔビルドであり、インタープリタおよびコンパイラの例は、ＰｅｒｌインタープリタおよびＣ＋＋コンパイラである。当業者なら、コンピューティング・システム、プロセッサ、オペレーティング・システム、およびツールの他の例によって、上述のものを置き換えることができることを理解するであろう。
【００１８】
ＳＡＰまたはコントローラ１０１は、本発明の教示に従って動作して、本明細書で包括的にサンプル１１５と称する、疑わしい悪意のあるプログラムまたは望ましくないソフトウェア・エンティティの実行から生じる可能なワームのような挙動を決定する。
【００１９】
ＳＡＰまたはコントローラ１０１の現在好ましいが非制限的な実施形態は、コントローラ・サブシステムまたはユニット２００とレプリケータ（replicator）・サブシステムまたはユニット２０１を実施するのに１つまたは複数のコンピュータを使用する。その両方を、図２に図示した。コントローラ２００の一部を形成するワームのような挙動アナライザ２０２は、疑わしいプログラムまたはサンプル１１５によって使用されるｄｌｌおよびインポートを決定するために、現在の既存のツール１１６の一部を使用する。
【００２０】
図２は、本発明の好ましい実施形態のコントローラ・ユニット２００およびレプリケータ・ユニット２０１の詳細なブロック図であり、ワームのような挙動アナライザ２０２と、好ましい実施形態が動作する環境が示されている。この環境には、複数のコンピューティング・システムが含まれ、その１つは、コントローラ２００であり、もう１つは、レプリケータ２０１である。
【００２１】
ユニット２０１を、本明細書ではレプリケータと称するが、その主要な機能は、ワームを複製する、すなわちワームの追加インスタンスを提供することではないことに留意されたい。そうではなく、その主要な目的は、システム環境を作成すること、正確にはエミュレートされたシステム環境を提供することであり、この環境では、１つまたは複数の形で１回または複数回サンプル１１５を動作させて、関係するサンプル１１５の挙動を決定し、システム環境の状態の変化を引き起こし、（エミュレートされた）システム環境で動作する時のサンプル１１５のアクティビティのレコードまたはログを得ることである。システム状態の変化および実行されたサンプル１１５のアクティビティのログが、ワームのような挙動に関連することが既知のシステム状態変化およびアクティビティと比較され、一致が発生した場合、サンプル１１５が、ワームのような特性を示すとみなされる。この時点で、疑わしいワームを複製して、分析および後続の識別のためにさらなるインスタンスを得ることを試みることが望ましい場合がある。
【００２２】
複数の「形」でのサンプル１１５の動作は、本発明において、異なるシステムＡＰＩ（たとえば、システムＡＰＩまたはＣｒｅａｔｅＰｒｏｃｅｓｓ  ＡＰＩあるいはその両方）を介してサンプル・プログラムを１回または複数回実行することを意味し、プログラムがＧＵＩを有する場合にはＧＵＩを動作させることも意味する。複数の形でのサンプル１１５の動作は、サンプル・プログラムを実行し、その後、システムを再起動し、プログラムをもう一度実行することによって達成することもできる。これらの技法は、サンプル１１５を実行できる「形」を網羅することを意図されたものではない。
【００２３】
ワームのような挙動アナライザ２０２には、本明細書で静的アナライザまたは静的決定ユニットとも称するリソース・アナライザ２０３と、本明細書で動的アナライザまたは動的決定ユニットとも称する挙動パターン・アナライザ２０４が含まれる。挙動パターン・アナライザ２０４は、サンプル１１５によって要求されたダイナミック・リンク・ライブラリ１１４Ｂのリストを決定するツール２０６およびダイナミック・リンク・ライブラリ１１４Ｂからインポートされたメソッドを決定するツール２０７を使用する。どのダイナミック・リンク・ライブラリ１１４Ｂがプログラムによって要求されるか判定するのに使用できるツール２０６および２０７の例は、マイクロソフト・システム・ジャーナル（Microsoft Systems Journal）の１９９７年２月号に記載の、Ｍｉｃｒｏｓｏｆｔ  Ｄｅｖｅｌｏｐｅｒ  Ｎｅｔｗｏｒｋを介して入手できるピートレック（MattPietrek）著の記事「頭巾の中（Under the Hood）」に記載の、Ｍｉｃｒｏｓｏｆｔ  ＤＥＰＥＮＤＳ．ＥＸＥとして既知である。サンプル・プログラム２１５のインポートを決定するのに使用できるツール２０６および２０７の例は、Ｍｉｃｒｏｓｏｆｔ  Ｄｅｖｅｌｏｐｅｒ  Ｓｔｕｄｉｏ（商標）バージョン６．０の一部を形成するＤＵＭＰＢＩＮ．ＥＸＥとして既知である。当業者なら同一のまたは類似する機能を実行する他のツールを見つけるか記述することができる。
【００２４】
リソース・アナライザ２０３（静的決定）は、これらのツールを使用して、疑わしいプログラムまたはサンプル１１５によって使用されるリソースのプロファイルを作成し、その結果を、ワーム・リソース・プロファイル２０５の内容と比較する。通常のワーム・リソース・プロファイル２０５には、非制限的な例として、ＷＳＯＣＫ３２．ＤＬＬ、ＩＮＥＴＭＩＢ１．ＤＬＬ、ＷＩＮＳＯＣＫ．ＤＬＬ、ＭＳＷＳＯＣＫ．ＤＬＬ、ＷＩＮＩＮＥＴ．ＤＬＬ、ＭＡＰＩ３２．ＤＬＬ、ＭＡＰＩ．ＤＬＬ、およびＷＳ２＿３２．ＤＬＬなどのネットワークｄｌｌ１１４Ｂ、ならびにたとえばＯＬＥ３２．ＤＬＬなどのＯＬＥオートメーションの使用を示すｄｌｌ、ならびにこれらのダイナミック・リンク・ライブラリからインポートされたメソッドのリストを含めることができる。このインポートされたメソッドには、ＷＳＯＣＫ３２．ＤＬＬからインポートされた「ｓｅｎｄ」メソッド、「ｓｅｎｄｔｏ」メソッド、およびＷＳＡｓｅｎｄメソッド、ＯＬＥ３２．ＤＬＬからのＣｏＣｒｅａｔｅＩｎｓｔａｎｃｅメソッドおよびＣｏＣｒｅａｔｅＩｎｓｔａｎｃｅＥｘメソッド、またはＵＳＥＲ３２．ＤＬＬからのＤＤＥＣｏｎｎｅｃｔメソッドを含めることができるが、これに制限はされない。
【００２５】
挙動パターン・アナライザ２０４（動的決定）は、レプリケータ２０１でのサンプル１１５の実行の結果を使用して、疑わしいプログラムの挙動プロファイルを作成し、この結果をワーム挙動プロファイル２０８と比較する。通常のワーム挙動プロファイル２０８には、ワームのような挙動を示す、システムに対する変更、またはファイルおよびレジストリ・アクセスの試みあるいはこの両方のリストが含まれる。ワーム挙動プロファイル２０８リストには、（ａ）非ネットワークｄｌｌは含まない、１つまたは複数のネットワークｄｌｌへの変更、（ｂ）ＶＢＳ拡張子付きの１つまたは複数のファイルの作成、（ｃ）ネットワークｄｌｌのいずれかの新規ファイルによる置換を引き起こす、新規ファイルの作成と、対応するシステム初期化ファイル１１４Ｂへの変更／作成を含めることができるが、これに制限はされない。この後者のシナリオの例は、Ｗｉｎｄｏｗｓ（Ｒ）システムのＷｉｎｄｏｗｓ（Ｒ）にあるファイルｗｉｎｉｎｉｔ．ｉｎｉの作成であり、この場合に、作成されるｗｉｎｉｎｉｔ．ｉｎｉファイルに、「ＷＳＯＣＫ３２．ＤＬＬ＝ＳＯＭＥ．ＦＩＬＥ」などの指示が含まれ、このＳＯＭＥ．ＦＩＬＥは、プログラムによって作成される新規ファイルである。ワーム挙動プロファイル２０８リストには、さらに、（ｄ）アドレス帳、または電子メール・プログラムの位置に対応するレジストリ・キー、あるいはその両方へのアクセスの試みのレコードを含めることができる。
【００２６】
ワーム・リソース・プロファイル２０５およびワーム挙動プロファイル２０８の両方が、性質において静的であることが好ましく、サンプル１１５がレプリケータ２０１で実行される前に作成されることが好ましい。
【００２７】
レプリケータ２０１は、上で述べた挙動パターン分析動作の前に、コントローラ２００によって呼び出される。レプリケータ２０１には、複製コントローラ（ＲＣ）２０９、挙動モニタ２１０、および任意選択のネットワーク挙動シミュレータ２１１が含まれる。
【００２８】
ネットワーク挙動シミュレータ２１１は、挙動モニタ２１０とあいまって動作して、サンプル１１５のあるワームのような挙動を引き出すためにネットワークのような挙動の外見を作成する。たとえば、ネットワーク挙動シミュレータ２１１は、挙動モニタ２１０がサンプル１１５によるＩＰアドレスの要求を検出したとき、サンプル２１５に偽のＩＰアドレスなどの偽のネットワーク・アドレスを供給するように動作する。この場合に、サンプル１１５は、ワームのような挙動を示す前に、システムがネットワーク機能を有するかどうかを確かめるためにローカルＩＰアドレスを要求する場合があり、ローカルＩＰアドレスを、サンプル１１５がワームのような挙動を示すための誘因としてサンプル１１５に与えることができる。
【００２９】
同様に、サンプル１１５が動作する環境を、実際には存在しないシステム・リソースまたはオブジェクトあるいはその両方の存在を示すものとすることができる。たとえば、サンプル１１５が、特定のファイルに関する情報を要求する場合があり、その場合に、環境が、そのファイルが存在するかのように要求された情報を用いて応答するか、ファイルを作成し、その後、サンプルがワームのような挙動を示す誘因としてサンプル１１５に返すことが有利である可能性がある。すなわち、既知の非ネットワーク環境を、存在しないローカル・ネットワーク関連リソースおよびローカル・ネットワーク関連オブジェクトの少なくとも１つをプログラムに示すものとすることができる。
【００３０】
図３および４に、コントローラ２００およびレプリケータ２０１の実行の間の全体的な制御フローを示す。図３では、サンプル１１５が、まず、ステップ３０１でコントローラ２００に引き渡され、コントローラ２００は、ステップ３０２で、サンプル１１５をリソース・アナライザ２０３に渡す。リソース・アナライザ２０３は、ステップ３０３で、サンプル１１５によってどのダイナミック・リンク・ライブラリ１１４Ｂがアクセスされるか判定し、アクセスされたｄｌｌを、ワーム・リソース・プロファイル２０５のｄｌｌと比較する（ステップ３０４）。
【００３１】
ｄｌｌ使用状況がワーム・リソース・プロファイル２０５と一致した場合、ステップ３０５で、これらのｄｌｌからインポートされたメソッドを決定する。これらのメソッドがワーム・リソース・プロファイル２０５に含まれるメソッドと一致した場合（ステップ３０６）、サンプル１１５は、潜在的なワームとして分類される。ｄｌｌ使用状況およびインポートされたメソッドのどちらもが、ワーム・リソース・プロファイル２０５と一致しない場合、ステップ３０４および３０６のＮＯ表示によって示されるように、図４に示されているように、サンプル１１５が、複製およびその後続の挙動パターン決定のためにレプリケータ２０１に渡される。
【００３２】
図４および５に、レプリケータ２０１を介する制御の流れ（図４）、および挙動パターン・アナライザ２０４を介する制御の流れ（図５）を示す。ステップ４０１で複製環境を初期化した後に、ステップ４０２で、サンプルをレプリケータ２０１に送り、ステップ４０３で実行する。その後、制御が、挙動パターン・アナライザ２０４（図５）に渡され、挙動パターン・アナライザ２０４は、ステップ４０４で、システムに対する変更を検査し、ステップ４０５で、検出された変更をワーム挙動プロファイル２０８の変更と比較する。一致があった場合、サンプル１１５は、潜在的なワームと宣言され、そうでない場合に、挙動パターン・アナライザ２０４は、ステップ４０６で、挙動モニタ２１０によって報告されるアクティビティを分析し、ステップ４０７で、報告されたサンプル挙動の、ワーム挙動プロファイル２０８にリストされたアクティビティ・パターン（ワームのような挙動パターン）との突合せを試みる。
【００３３】
ステップ４０４で分析されたシステムに対する変更またはステップ４０６で挙動モニタによって報告されるアクティビティのいずれかに、ワーム挙動プロファイル２０８にリストされたパターンのいずれかが含まれる場合、そのサンプルは、潜在的なワームと分類され、そうでない場合に、サンプル１１５は、ワームでないものとして分類される。ステップ４０７で、ワームして分類された場合、サンプル１１５を、さらなる特性記述のためにワーム複製分析システムに供給することができる。
【００３４】
上述の方法は、ワームのような特性を有する疑いのあるサンプル１１５の挙動プロファイルの自動決定の方法を実施するために、ディスク１１０などのコンピュータ可読媒体で実施することができる。このコンピュータ・プログラムを実行すると、コンピュータ１００および２００に、サンプル・プログラム１１５によって要求されるコンピュータ・システム・リソースを分析させ、サンプル・プログラム１１５がワームのような特性を有することを、要求されたリソースが示さない場合、このコンピュータ・プログラムをさらに実行すると、コンピュータ１００、２００、２０１に、制御された非ネットワーク環境内でプログラムを実行させると同時に、非ネットワーク環境でのプログラムの挙動を決定するためにシステム・リソースへのアクセスを監視させ、ログ記録させる。コンピュータ・プログラムをさらに実行すると、コンピュータに、ネットワークの動作をエミュレートせずに、サンプル・プログラムに対するネットワークの外見をシミュレートさせることができる。
【００３５】
前述の説明が、サンプルのシステム・リソース要求が潜在的なワームを示さない（静的決定）場合に限ってレプリケータ２０１が動作する（動的決定）ことを暗示することに留意されたい。現在好ましい実施形態では、静的決定処理は、一般に動的決定処理よりコンピュータ的にはるかにコストがかからず、一般にはるかに高速で実行されるので、こうなっている。しかし、第１のプロセスまたはサブシステムによって潜在的なワームが示されたとき、両方のプロセスまたはサブシステムを実行し、第２のプロセスまたはサブシステムが、第１のプロセスまたはサブシステムの結果を検証するように働くことも可能である。さらに、いくつかの場合には、誤った否定的結果が生じる可能性があるので、静的決定プロセスと動的決定プロセスが共に、特定のサンプル１１５のワームのような性質に関して同一の結論に達することを必要としないことが望ましい場合があることに留意されたい。したがって、現在のところ、特定のサンプルがワームのようなものであると宣言するために静的プロセスまたは動的プロセスの一方に依拠し、ワームのような挙動が示されない場合、潜在的なウィルスとしてサンプルを処理するようにシステムが切り替わることが望ましい。
【００３６】
上記で指摘したように、サンプル１１５は、一般に、挙動パターン・アナライザ２０４によって実行される動的決定よりも、リソース・アナライザ２０３（エミュレートされた環境の外部）によって実行される静的決定について高速に処理することができる。
【図面の簡単な説明】
【００３７】
【図１】本発明の好ましい実施形態のデータ処理システムを示すブロック図である。
【図２】本発明の好ましい実施形態のコントローラ・ユニットを示すブロック図である。
【図３】本発明の好ましい実施形態の、図２のリソース・アナライザ・コンポーネントの動作を示す論理流れ図である。
【図４】本発明の好ましい実施形態の、図２のレプリケータ・ユニットの動作を示す論理流れ図である。
【図５】本発明の好ましい実施形態の、図２の挙動パターン・アナライザ・コンポーネントの動作を示す論理流れ図である。
【図１】
2005534092.tif 000003
【図２】
2005534092.tif 000004
【図３】
2005534092.tif 000005
【図４】
2005534092.tif 000006
【図５】
2005534092.tif 000007
【国際調査報告】
2005534092.tif 000008
2005534092.tif 000009
2005534092.tif 000010