(57)【要約】      （修正有）【課題】合法的オペレータが、マルウェア・オペレータに知られることなく、マルウェア・オペレータのアクションを捕捉し研究することを可能にする。【解決手段】仮想組織体１１０を記述した組織体データを受け取り、組織体データに関係する追加のデータを得、仮想組織体のシミュレートされたコンピュータ・ネットワークを、組織体データに基づいて提供する。さらに、シミュレートされたコンピュータ・ネットワーク上に少なくとも１つのマルウェア１１５をインストールし、シミュレートされたコンピュータ・ネットワークとマルウェアのオペレータ１２１、１２２、１２３との間の１つ又は複数の対話を監視し、この１つ又は複数の対話に基づいて、マルウェアのオペレータを特徴づけるマルウェア・オペレータ・プロフィールを構築する。このマルウェア・オペレータ・プロフィールを使用して、その後の対話においてそのマルウェアのオペレータを識別する。【選択図】図１
2015130162.tif 000002
【特許請求の範囲】
【請求項１】
長期間シミュレートされるネットワーク環境内においてマルウェア・オペレータの行動パターンを追跡するシステムであって、
命令を記憶した非一時的メモリと、
前記命令を実行して、前記システムに方法を実行させる処理装置と
を備え、前記方法が、
仮想組織体を記述した組織体データを受け取るステップと、
前記組織体データに関係する追加のデータを得るステップと、
前記処理装置を使用して、前記仮想組織体のシミュレートされたコンピュータ・ネットワークを、前記組織体データに少なくとも部分的に基づいて提供するステップと、
前記シミュレートされたコンピュータ・ネットワーク上に少なくとも１つのマルウェアをインストールするステップと、
前記シミュレートされたコンピュータ・ネットワークと前記マルウェアのオペレータとの間の１つまたは複数の対話を監視するステップと、
前記１つまたは複数の対話に基づいて、前記マルウェアの前記オペレータを特徴づけるマルウェア・オペレータ・プロフィールを構築するステップと
を含むシステム。
【請求項２】
前記組織体データが、前記仮想組織体に関連づけられたコンピュータ・ネットワークを記述したネットワーク・データを含む請求項１に記載のシステム。
【請求項３】
前記ネットワーク・データが、マシンの数、マシンの１つもしくは複数のタイプ、マシンの１つもしくは複数のオペレーティング・システム、前記コンピュータ・ネットワークに関連づけられた１つもしくは複数の出口ポイント、またはこれらの組合せを含む請求項２に記載のシステム。
【請求項４】
前記組織体データが、前記仮想組織体の特性、特徴または属性のうちの少なくとも１つを含む請求項１に記載のシステム。
【請求項５】
前記処理装置がさらに、前記組織体データの少なくとも一部分をユーザから得るためのユーザ・インタフェースを、前記仮想組織体の前記組織体データに基づいて提供するように構成された請求項４に記載のシステム。
【請求項６】
前記組織体データが、ドメイン、ユーザの数、産業、キーワードまたはマルウェア情報のうちの少なくとも１つを含む請求項４に記載のシステム。
【請求項７】
前記組織体データが、前記仮想組織体に関連した少なくとも１つのキーワードを含み、
前記処理装置がさらに、少なくとも１つの前記キーワードに基づいて前記追加のデータを得るように構成されており、
前記追加のデータが、職員階級制度もしくは職員識別またはその両方を含む請求項１に記載のシステム。
【請求項８】
前記職員識別が、職員名、職位または職名のうちの少なくとも１つを含む請求項７に記載のシステム。
【請求項９】
前記組織体データが、前記仮想組織体に関連した産業および少なくとも１つのキーワードを含み、
前記処理装置がさらに、前記産業および少なくとも１つの前記キーワードに基づいて追加のデータを得るように構成されており、
前記追加のデータが、前記産業に関連した１つまたは複数の文書を含む請求項１に記載のシステム。
【請求項１０】
前記シミュレートされたコンピュータ・ネットワークが複数のノードを含み、
前記処理装置がさらに、前記シミュレートされたコンピュータ・ネットワーク内の前記複数のノードのうちの少なくとも１つのノードに少なくとも１つの前記マルウェアをインストールするように構成された請求項１に記載のシステム。
【請求項１１】
前記複数のノードが、コンピューティング・マシンまたはネットワーク・ルータのうちの少なくとも一方を含む請求項１０に記載のシステム。
【請求項１２】
前記処理装置がさらに、前記仮想組織体の前記シミュレートされたコンピュータ・ネットワークを、１日よりも長い所定の期間の間、提供するように構成された請求項１に記載のシステム。
【請求項１３】
前記処理装置がさらに、前記シミュレートされたコンピュータ・ネットワークと前記マルウェアの前記オペレータの間の前記１つまたは複数の対話を前記所定の期間の間、監視するように構成された請求項１２に記載のシステム。
【請求項１４】
前記処理装置がさらに、前記マルウェアの前記オペレータと前記シミュレートされたコンピュータ・ネットワークの間の前記１つまたは複数の対話の検出に続いて、前記マルウェアの前記オペレータを、前記マルウェア・オペレータ・プロフィールに基づいて識別するように構成された請求項１に記載のシステム。
【請求項１５】
前記マルウェア・オペレータ・プロフィールが、前記マルウェアの前記オペレータが別のコンピュータ・ネットワークと対話したときに前記マルウェアの前記オペレータを識別するために使用される請求項１４に記載のシステム。
【請求項１６】
長期間シミュレートされるネットワーク環境内においてマルウェア・オペレータの行動パターンを追跡するコンピュータによって実現される方法であって、
仮想組織体を記述した組織体データを受け取るステップと、
前記組織体データに関係する追加のデータを得るステップと、
前記仮想組織体のシミュレートされたコンピュータ・ネットワークを、前記組織体データに基づいて提供するステップと、
前記シミュレートされたコンピュータ・ネットワーク上に少なくとも１つのマルウェアをインストールするステップと、
前記シミュレートされたコンピュータ・ネットワークと前記マルウェアのオペレータとの間の１つまたは複数の対話を監視するステップと、
前記１つまたは複数の対話に基づいて、前記マルウェアの前記オペレータを特徴づけるマルウェア・オペレータ・プロフィールを構築するステップと
を含む方法。
【請求項１７】
前記１つまたは複数の対話が行われたときにユーザに対して警報を発するステップをさらに含む請求項１６に記載の方法。
【請求項１８】
前記マルウェアの前記オペレータが別のコンピュータ・ネットワークにアクセスしようとしていることを、前記マルウェア・オペレータ・プロフィールを使用して識別するように構成されたセキュリティ・プログラムを構築するステップをさらに含む請求項１６に記載の方法。
【請求項１９】
前記セキュリティ・プログラムが、前記マルウェアの前記オペレータが前記別のコンピュータ・ネットワークにアクセスすることを阻止するように構成された請求項１８に記載の方法。
【請求項２０】
処理装置によって実行されたときに、長期間シミュレートされるネットワーク環境内においてマルウェア・オペレータの行動パターンを追跡する方法を前記処理装置に実行させる命令を含む非一時的コンピュータ可読記憶媒体であって、前記方法が、
仮想組織体を記述した組織体データを受け取るステップと、
前記組織体データに関係する追加のデータを得るステップと、
前記仮想組織体のシミュレートされたコンピュータ・ネットワークを、前記組織体データに基づいて提供するステップと、
前記シミュレートされたコンピュータ・ネットワーク上に少なくとも１つのマルウェアをインストールするステップと、
前記シミュレートされたコンピュータ・ネットワークと前記マルウェアのオペレータとの間の１つまたは複数の対話を監視するステップと、
前記１つまたは複数の対話に基づいて、前記マルウェアの前記オペレータを特徴づけるマルウェア・オペレータ・プロフィールを構築するステップと
を含む非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の主張
本出願は、２０１３年１２月１７日に出願した米国特許仮出願第６１／９１６，９５７号明細書および２０１４年１２月１６日に出願した米国特許出願第１４／５７１，９８３号明細書の利益および優先権を主張するものである。これらの両方の出願の内容は、参照によりその全体が本明細書に組み込まれている。
【０００２】
本発明はマルウェア（ｍａｌｗａｒｅ）防御に関し、より詳細には、インキュベータ（ｉｎｃｕｂａｔｏｒ）環境を生成し、そのインキュベータ環境を使用して、マルウェアおよびマルウェア・オペレータを受け入れ、研究することに関する。
【背景技術】
【０００３】
マルウェア、すなわち悪意あるソフトウェア（ｍａｌｉｃｉｏｕｓ  ｓｏｆｔｗａｒｅ）は一般に、コンピュータ動作を混乱させ、機密情報を無許可で集め、または私的なコンピュータ・システムに違法にアクセスする目的に使用される無許可の敵対的または侵入的ソフトウェアである。コンピュータ・ウイルス、ランサムウェア、ワーム、トロイの木馬、ルートキット、キーロガー、ダイアラ、スパイウェア、アドウェア、悪意あるブラウザ・ヘルプ・オブジェクトおよび偽装セキュリティ・ソフトウェア（ｒｏｇｕｅ  ｓｅｃｕｒｉｔｙ  ｓｏｆｔｗａｒｅ）などを含む多くのタイプのマルウェアが存在する。
【０００４】
いくつかのタイプのマルウェアは、マルウェア・オペレータからの対話なしで自律的に働き、例えば、犠牲マシン（ｖｉｃｔｉｍ  ｍａｃｈｉｎｅ）からデータ（例えばパスワード、クッキー、個人情報など）を自動的にコピーし、そのデータを、犠牲マシンから外部のマルウェア・オペレータに送信する。他のタイプのマルウェアは、マルウェア・オペレータが、犠牲マシンおよびマルウェアと直接に対話することを可能にする。例えば、マルウェアは、マルウェア・オペレータが、正規の認証を回避すること、および大抵は犠牲マシンの合法的オペレータによって検出されることなく犠牲マシンに違法に遠隔アクセスすることを可能にする、バックドアまたは他の違法なアクセス・ポイントをインストールすることができる。例えば、ネットワークの全体にわたって複製するワームに対する極めて一般的なペイロード（ｐａｙｌｏａｄ）は、感染したコンピュータにマルウェア・オペレータがアクセスすることを可能にする、感染したそれぞれの犠牲コンピュータ上にインストールされたバックドア・プログラムである。同様に、トロイの木馬ないしトロイは通常、トロイのオペレータによる犠牲コンピュータへの無許可アクセスおよびトロイのオペレータによる犠牲コンピュータとの対話を可能にするバックドアを含む。
【０００５】
多くの異なるタイプのマルウェアが存在するのと同様に、ブラックハット・ハッカー、サイバー・スパイ組織、政府など、多くの異なるタイプのマルウェア・オペレータが存在する。さらに、マルウェア・オペレータはそれぞれ個別の特性を有し、通常は、マルウェアおよび犠牲マシンとさまざまな形で対話する。
【発明の概要】
【０００６】
マルウェア・オペレータについて知ることがそのマルウェア・オペレータに対する防御に役立つことがあるため、合法的オペレータが、マルウェア・オペレータに知られることなく、マルウェア・オペレータのアクションを捕捉し研究することを可能にする改良されたシステム、方法および技法を開発することが望ましいことがある。
【課題を解決するための手段】
【０００７】
本教示と整合した実施態様によれば、長期間シミュレートされるネットワーク環境内においてマルウェア・オペレータの行動パターンを追跡するシステムが開示される。このシステムは、命令を記憶した非一時的メモリと、それらの命令を実行して、システムに方法を実行させる処理装置とを含む。この方法は、仮想組織体を記述した組織体データ（ｏｒｇａｎｉｚａｔｉｏｎａｌ  ｄａｔａ）を受け取ることを含む。組織体データに関係する追加のデータを得る。仮想組織体のシミュレートされたコンピュータ・ネットワークを、組織体データに少なくとも部分的に基づいて提供する。シミュレートされたコンピュータ・ネットワーク上に少なくとも１つのマルウェアをインストールする。シミュレートされたコンピュータ・ネットワークとマルウェアのオペレータとの間の１つまたは複数の対話を監視する。この１つまたは複数の対話に基づいて、マルウェアのオペレータを特徴づけるマルウェア・オペレータ・プロフィールを構築する。
【０００８】
長期間シミュレートされるネットワーク環境内においてマルウェア・オペレータの行動パターンを追跡する、コンピュータによって実施される方法も開示される。この方法は、仮想組織体を記述した組織体データを受け取ることを含む。組織体データに関係する追加のデータを得る。仮想組織体のシミュレートされたコンピュータ・ネットワークを、組織体データに少なくとも部分的に基づいて提供する。シミュレートされたコンピュータ・ネットワーク上に少なくとも１つのマルウェアをインストールする。シミュレートされたコンピュータ・ネットワークとマルウェアのオペレータとの間の１つまたは複数の対話を監視する。この１つまたは複数の対話に基づいて、マルウェアのオペレータを特徴づけるマルウェア・オペレータ・プロフィールを構築する。
【０００９】
非一時的コンピュータ可読記憶媒体も開示される。この記憶媒体は、処理装置によって実行されたときに、長期間シミュレートされるネットワーク環境内においてマルウェア・オペレータの行動パターンを追跡する方法を処理装置に実行させる命令を含む。この方法は、仮想組織体を記述した組織体データを受け取ることを含む。組織体データに関係する追加のデータを得る。仮想組織体のシミュレートされたコンピュータ・ネットワークを、組織体データに少なくとも部分的に基づいて提供する。シミュレートされたコンピュータ・ネットワーク上に少なくとも１つのマルウェアをインストールする。シミュレートされたコンピュータ・ネットワークとマルウェアのオペレータとの間の１つまたは複数の対話を監視する。この１つまたは複数の対話に基づいて、マルウェアのオペレータを特徴づけるマルウェア・オペレータ・プロフィールを構築する。
【００１０】
本明細書に組み込まれており本明細書の一部を構成する添付図面は、本発明の実施態様を例示し、本明細書の説明とともに、本発明の原理を説明する役目を果たす。
【図面の簡単な説明】
【００１１】
【図１】本発明の原理と整合した、マルウェアをインキュベートするシステムの一例のブロック図である。
【図２】本発明の原理と整合した、マルウェアをインキュベートするジェネレータ・システムの一例のブロック図である。
【図３】本発明の原理と整合した、仮想組織体のためのネットワークを生成する技法の一例を示すガント・チャートである。
【図４】インキュベータ環境を生成し、そのインキュベータ環境を使用して、マルウェアおよびマルウェア・オペレータを受け入れ、研究するために実行される、本発明の原理と整合したプロセス例の流れ図である。
【図５】本発明の原理と整合した実施形態を実施する目的に使用することができる例示的なコンピューティング・システムのブロック図である。
【発明を実施するための形態】
【００１２】
本開示は、マルウェア・オペレータに知られることなしに、かつマルウェア・オペレータによって検出されることなしにマルウェア・オペレータのアクションを記録、捕捉、観察および研究する方法、システムおよび製品の例を提供する。
【００１３】
前述のとおり、多くのタイプのマルウェアが、ネットワーク化されたシステムおよび／またはネットワーク化されたシステム内のノード（例えばコンピュータ、マシン、デバイスなど）にマルウェア・オペレータが密かにアクセスすることを可能にする。マルウェア・オペレータは、マルウェアを介して、ネットワーク化されたシステムおよび／またはネットワーク化されたシステム内のノードと対話することができる。以後、このようなシステムを犠牲システムと呼ぶ。犠牲システムに最初にアクセスすると、マルウェア・オペレータ（開発者である可能性は低い）は通常、その犠牲システムを探査し、その犠牲システムのプロフィールを構築し、その犠牲システムが、マルウェア・オペレータがさらに利用したいシステムであるかどうか、例えばその犠牲システム内の機密内容を盗み、改変しかつ／もしくは破壊し、その犠牲システムを混乱させ、その犠牲システムをボット（ｂｏｔ）に変え、または他の違法なアクティビティもしくは他の悪意あるアクティビティを実行したいシステムであるかどうかを識別する。その犠牲システムを利用したいと判断すると、マルウェア・オペレータは続いて、犠牲システム内により多くのアクセス・ポイントを有するように、また、犠牲システム内のより多くのノードおよびそれらのノードの情報に違法にアクセスすることができるように、犠牲システム内に追加のマルウェアを配置し、展開させようとすることがある。マルウェア・オペレータは、配置されたマルウェアを制御し、いわゆる「脚本（ｐｌａｙｂｏｏｋ）」に従って、任務を遂行し、犠牲システム上の潜在的に機密性の資料の違法な収集、改変および／または破壊を実行することができる。
【００１４】
マルウェア・オペレータは、スパイ・マルウェアなどのあるタイプのマルウェアを１つまたは複数の犠牲システムに、ターゲット方式で送達することができる。マルウェア・オペレータは、スパイ・マルウェアを使用して、取引上の秘密、業界および団体の秘密データ、政府の機密データなどの情報を犠牲システムから集めることに焦点を合わせた攻撃を実行することができる。スパイ・マルウェアは、ゼロデイ脆弱性（ｚｅｒｏ−ｄａｙ  ｖｕｌｎｅｒａｂｉｌｉｔｙ）、パッチ修正された脆弱性（ｐａｔｃｈｅｄ  ｖｕｌｎｅｒａｂｉｌｉｔｙ）などの犠牲システムの脆弱性を利用することができる。スパイ・マルウェアは、多段階で送達されることがあり、１つまたは複数の段階において、ランする前に、犠牲システム内でしばらくの間（例えば数分間または数時間）休眠することがある。犠牲システムに送達されたスパイ・マルウェアのインスタンスを完全にランさせるために、マルウェア・オペレータは犠牲システムを魅了しなければならない。マルウェア・オペレータおよび／またはスパイ・マルウェアは、そのインスタンスによって実行されるアクティビティを、犠牲システムの構成、能力、脆弱性などに基づいて調整することができる。一般に、コマンド・アンド・コントロール（ｃｏｍｍａｎｄ  ａｎｄ  ｃｏｎｔｒｏｌ）は、スパイ・マルウェアの少数のインスタンスだけに対して使用される。
【００１５】
マルウェア・オペレータはさらに、他のタイプのマルウェアを犠牲システムに、ジェネリック（ｇｅｎｅｒｉｃ）方式で送達することができ、このようなマルウェアは、犠牲システムのパッチ修正された脆弱性を利用する。このようなマルウェアは１段階で送達することができ、犠牲システムに送達された後に、マルウェア・オペレータとの対話なしで素早くインストールし、ランさせることができる。このようなマルウェアはどこにでもインストールすることができ、ターゲットを選ばないことがある。すなわち、このようなマルウェアのインスタンスは、犠牲システムの構成および能力とは無関係に同じようにランすることができる。一般に、コマンド・アンド・コントロールは、このようなマルウェアの多くのインスタンス、例えば数百または数千のインスタンスに対して使用される。
【００１６】
犠牲システムにアクセスし、犠牲システムを探査し、利用する際、マルウェア・オペレータは、いくつかの異なるアクションを実行することができ、それぞれの個々のマルウェア・オペレータは、それらのアクションを、それぞれの個々のマルウェア・オペレータに固有の、またはそれぞれの個々のマルウェア・オペレータそのものと識別される一種の署名またはプロフィールを提供するような方式で実行することができる。例えば、第１のマルウェア・オペレータは一般に、その日のある時刻に犠牲システムにアクセスし、第１のマルウェア・オペレータに典型的なある種のシーケンスでアクションを実行し、第２のマルウェア・オペレータは一般に、その日の別の時刻に犠牲システムにアクセスし、第２のマルウェア・オペレータに典型的な別のシーケンスでアクションを実行する。したがって、それぞれのマルウェア・オペレータが犠牲システムと対話する方法によって、異なるマルウェア・オペレータを識別または区別することができる。
【００１７】
本開示に記載された方法、システムおよび製品の例は、「インキュベータ・システム」を提供する。このインキュベータ・システムは、少なくとも１つの仮想組織体を含み、このインキュベータ・システムは、マルウェア・オペレータが、その仮想組織体を実在する犠牲システムであると考え、その仮想組織体がインキュベータ・システムによって提供されたシステムであるとは認識せずに、そのインキュベータ・システムおよび仮想組織体と対話するようにそそのかされるような態様で、実在する犠牲システムをシミュレートもしくは複製し、または他の方法で模倣する。このインキュベータ・システムは、インキュベータ・システムおよび／または仮想組織体と対話するマルウェア・オペレータのアクションを監視し、記録し、時間順に記録し、または他の方法で捕捉し、インキュベータ・システムおよび／または仮想組織体と対話するそれぞれの個々のマルウェア・オペレータを記述したプロフィールまたは署名であって、そのようなそれぞれの個々のマルウェア・オペレータを識別するのに使用することができるプロフィールまたは署名を生成することを可能にすることができる。いくつかの実施態様では、このインキュベータ・システムがさらに、マルウェア・オペレータがインキュベータ・システムと対話しているときに、インキュベータ・オペレータが、それぞれのマルウェア・オペレータをリアルタイムで観察および研究することを可能にし、さらに、それぞれのマルウェア・オペレータとインキュベータ・システムの対話を記録することを可能にすることができる。
【００１８】
このインキュベータ・システムおよび仮想組織体は、実在する団体および組織体のコンピュータ・ネットワークおよびコンピュータ・システムであるように見えるため、このインキュベータ・システムおよび仮想組織体は、対話するようマルウェア・オペレータをそそのかす。マルウェア・オペレータと仮想組織体の対話を記録することは、１つまたは複数のインキュベータ・オペレータが、実在する組織体のコンピュータ・ネットワークおよびコンピュータ・システム上でマルウェア・オペレータが実行しそうなことを発見することを可能にする。本開示と整合したさまざまな実施態様は、ログインしたユーザ、記憶された実在する文書、さまざまなマシン上にインストールされた実在するアプリケーションなどを有する実在するネットワークのように見える、少なくとも１つの仮想組織体のコンピュータ・ネットワーク環境を自動的に生成する。このような実施態様は、それぞれのマルウェア・オペレータがとるあらゆるアクション、それぞれのマルウェア・オペレータがコピーするあらゆるファイルなどを追跡する診断能力を有する。一般に、マルウェア・オペレータがインキュベータ・システムおよび仮想組織体と対話すればするほど、この環境内で起こるあらゆることが良好に追跡および記録され、したがって、インキュベータ・システムが、それぞれのマルウェア・オペレータに関するインテリジェンス（ｉｎｔｅｌｌｉｇｅｎｃｅ）を構築することが可能になる。
【００１９】
さまざまな実施形態で、このインキュベータ・システムは、実在するシステムまたは偽のシステムとすることができるターゲット・システムをエミュレートする短期および長期の分析環境であって、レジストリ、ファイル・システム、プロセスおよび／またはネットワーク・アクティビティ・ストリームがリアルタイムで時間順に完全に記録される分析環境を提供することができる。このインキュベータ・システムは、分析環境内のマシンに対するアクティビティ・ストリームを、マシンごとに時間順に記録することができる。１つまたは複数のインキュベータ・オペレータは、このインキュベータ・システムを使用して、分析環境内で実行する１つもしくは複数のターゲットであるマルウェア（以後、ターゲット・マルウェア）を選択し、かつ／またはターゲット・マルウェア・オペレータを引きつけるであろうターゲットである内容（以後、ターゲット内容）を提供するなどすることによって、ターゲットであるマルウェア・オペレータ（以後、ターゲット・マルウェア・オペレータ）にアピールしそうな少なくとも１つのターゲット・システムをエミュレートする少なくとも１つの分析環境を設計しかつ／または調整することができる。このインキュベータ・システムは、この分析環境を動的に構築すること、分析環境の出口ポイントおよびルータを構成すること、ターゲット・マルウェアおよび／またはターゲット内容を分析環境内に配置すること、分析環境内のターゲット・マルウェアおよび／またはターゲット内容を監視すること、ならびに環境間および／または環境内アクティビティのストリームを、近リアルタイム分析のためデータベース・サーバに時間順に記録することができる。その際に、インキュベータ・オペレータは、ターゲット・マルウェア・オペレータのアクティビティ、ツール、方法など、ターゲット・マルウェア・オペレータに関するインテリジェンスを集めることができる。アクティビティの例は、マルウェア・オペレータの実行されたコマンド（タイポ（ｔｙｐｏ）および他のイディオシンクラシー（ｉｄｉｏｓｙｎｃｒａｓｙ）を含む）、データ、フォルダ、ファイル（例えば機密文書、コンフィギュレーション・ファイルなど）などの関心の内容、アクティビティの持続時間、アクセス時間、アクセス位置などを含む。ツールの例は、追加のマルウェア段階およびインフラストラクチャ、合法的なサードパーティ・ツール、プログラム・スイッチならびに探索方法などを含む。方法の例は、マルウェア・オペレータが分析環境上でマルウェアを展開させる方式および／または手段、秘密裏抽出（ｅｘｆｉｌｔｒａｔｉｏｎ）後の文書処理、ターゲット・マルウェアおよび／またはターゲット・マルウェア・オペレータとコマンド・アンド・コントロール・ノードの対話などを含む。ターゲット・ネットワーク・エミュレーションが完了した後、インキュベータ・システムは、分析環境およびそれから集めた情報をアーカイブすることができる。
【００２０】
さらに、仮想組織体内に先制的な監視および防御を配置することによって、インキュベータ・システムは、マルウェア・オペレータのアクティビティのプロフィールを構築し、マルウェア・オペレータの収集目標を研究することができる。その際、インキュベータ・システムは、マルウェア・オペレータの脚本を理解し複製するためのツールおよびデータをインキュベータ・オペレータに提供する。この脚本は、マルウェア・オペレータの共通のプレー（ｐｌａｙ）を含むことができる。マルウェア・オペレータ間の共通のプレーには、例えば、初期マルウェアを展開させ、それを使用して、少なくとも１つの犠牲システム上での初期データ収集を自動化すること、犠牲システムを感染させたのに続いて、犠牲システムのフィンガープリンティングを手動で実施すること、犠牲システムにインストールされたマルウェアのサニティ・チェック（ｓａｎｉｔｙ  ｃｈｅｃｋ）を実行すること、犠牲システム上に追加のツールおよび／またはペイロードを配置すること、データおよび文書を探索し、かつ／またはそれらを犠牲システムから秘密裏に抽出すること、秘密裏抽出後処理を実行すること、犠牲システム内で横に移動させまたは犠牲システムに接続された他のシステムに移動させることなどが含まれる。
【００２１】
このように、このインキュベータ・システムは、ジェネリックな環境内で脆弱なサービスをランさせ、それらを監視し、攻撃者をおびき寄せるための追加の内容を配置せず、脆弱なサービスを利用することによって攻撃者が思いのままに入り込むハニーポット（ｈｏｎｅｙｐｏｔ）、ハニーネット（ｈｏｎｅｙｎｅｔ）およびサンドボックス（ｓａｎｄｂｏｘ）とは異なる。このジェネリックな環境は静的であり、完了後に元に戻され、ジェネリックな環境からのデータ・ログは集められ、分解後に広められる。
【００２２】
概要
図１は、本発明の原理と整合した、マルウェアをインキュベートする一例としてのシステム１００のブロック図である。示された例では、インキュベータ・システム１０５は、少なくとも１つの仮想組織体１１０および少なくとも１つのマルウェア１１５を含む。さまざまな実施態様で、インキュベータ・システム１０５は、仮想組織体１１０を構成する実在するマシンおよび／または仮想マシンを受け入れランさせる、例えば図５に示されたコンピューティング・システムなどの任意の数の実在するコンピューティング・マシンおよび／または仮想コンピューティング・マシンとすることができる。
【００２３】
図１に示された一例としてのシステム１００では、インキュベータ・システム１０５が、インキュベータ・システム１０５を制御および操作するインキュベータ・オペレータ１３０に通信可能に接続されている。インキュベータ・オペレータ１３０の一例は、マルウェアおよびハッカーから会社を守る組織体を含む。インキュベータ・オペレータ１３０は、インキュベータ・システム１０５を使用して、１つまたは複数の分析環境（例えば仮想組織体１１０）を、１つまたは複数のターゲット・マルウェア・オペレータにアピールしそうな少なくとも１つの犠牲システムをエミュレートするように設計、調整および／または構築することができる。例えば、インキュベータ・オペレータ１３０は、仮想組織体１１０内で実行するマルウェア１１５を選択し、かつ／または一組のマルウェア・オペレータ１２１〜１２３との対話を誘引するであろうターゲット内容を提供することができる。マルウェア１１５は、マルウェア・オペレータ１２１〜１２３に通信可能に接続することができ、マルウェア・オペレータ１２１〜１２３との対話を誘引するために仮想組織体１１０内の犠牲システム内で意図的にランさせることができる。一般に、マルウェア・オペレータ１２１〜１２３はいずれも、インキュベータ・オペレータ１３０からの許諾または許可なしにマルウェア１１５を介してインキュベータ・システム１０５および／または仮想組織体１１０にアクセスする個体である。一般に、マルウェア・オペレータ１２１〜１２３は、組織体の情報を傷つけまたは組織体から情報を盗み出したいバッド・アクター（ｂａｄ  ａｃｔｏｒ）であって、仮想組織体１１０が現実の組織体のコンピュータ・ネットワークでないことに気づいていないバッド・アクターである。
【００２４】
インキュベータ・システム１０５は、仮想組織体１１０を動的に構築すること、仮想組織体１１０の１つまたは複数の出口ポイントおよびルータを構成すること、マルウェア１１５および／または内容を仮想組織体１１０内に配置し、それらを監視すること、ならびに組織体間および／または組織体内アクティビティのストリームを、近リアルタイム分析のため少なくとも１つのデータベース１４０に時間順に記録することができる。インキュベータ・オペレータ１３０は、インキュベータ・システム１０５、仮想組織体１１０およびマルウェア１１５の動作およびアクティビティをリアルタイムで監視し、追跡することができる。さまざまな実施態様で、インキュベータ・システム１０５は、マルウェア・オペレータ１２１〜１２３のアクティビティをインキュベータ・オペレータ１３０が追跡し記録することができるように、とられたあらゆるアクション、アクセスされたあらゆるファイル、ならびに一般にインキュベータ・システム１０５および仮想組織体１１０内で起こったあらゆることを書き留め、記録し、または他の方法で追跡する診断能力を有する。
【００２５】
さまざまな実施態様で、仮想組織体１１０は、実在する会社もしくは組織体または他の実在する実体のシステム、ネットワークおよび／またはマシンのように見えるように生成された偽の環境である。前述のとおり、マルウェア・オペレータ１２１〜１２３が騙され、欺かれ、または惑わされて、実在する組織体のコンピューティング資源と対話していると信じるように、仮想組織体１１０を、実在する組織体をぴったりとシミュレートするように設計することができる。さまざまな実施態様で、仮想組織体１１０は、特定の団体に属するコンピュータのネットワークをシミュレートすることができ、ログインしたまたはログインしていないユーザ（例えば従業員）、実在する文書、実在するウェブ・ページなどのシミュレーションを含むことができる。大部分の実施態様で、実在する団体ネットワークを模倣するように仮想組織体１１０を組織することができる。したがって、仮想組織体１１０は、マルウェア・オペレータ１２１〜１２３には実在する会社または実体のように見える偽の環境である。実在する組織体のシミュレーションが完了したのに続いて、インキュベータ・システム１０５は、仮想組織体１１０および仮想組織体１１０から集めた情報をアーカイブすることができる。
【００２６】
さまざまな実施態様で、仮想組織体１１０のネットワークは通常、ドメイン・コントローラおよび１つまたは複数のホストを含み、１つまたは複数のホストは、全てのプロセスのアクティビティを時間順に記録するシステム・イベント・モニタ（Ｓｙｓｔｅｍ  Ｅｖｅｎｔ  Ｍｏｎｉｔｏｒ）（「ｓＥＭ」）アプリケーションを含みまたはこれをランさせることができる。例えば、このｓＥＭアプリケーションは、全てのファイル・アクティビティ、レジストリ・アクティビティ、ネットワーク・アクティビティ、ならびに／またはインキュベータ・システム１０５で生成および破壊されたプロセスおよびスレッドを含むアクティビティを記録することができる。インキュベータ・システム１０５は、仮想組織体１１０内のマシンに対するアクティビティを、マシンごとに時間順に記録することができる。このｓＥＭアプリケーションは、アクティビティおよびイベントを記録するカーネル内のドライバを使用して実装することができ、インキュベータ・システム１０５は、記録されたアクティビティおよびイベントに関連した情報に関してｓＥＭドライバにポーリングし、その情報を追跡情報にパッケージ化し、その追跡情報を、インキュベータ・オペレータ１３０および／またはデータベース１４０に、例えばローカル・ルータ（図示せず）を介して送信するサービスを含むことができる。さまざまな実施態様で、イベントおよびアクティビティの記録および時間順記録は、１つまたは複数のマルウェア・オペレータ１２１〜１２３が仮想組織体１１０内の犠牲マシンにアクセスしているか否かに関わらず続けることができる。
【００２７】
インキュベータ・システム１０５は、インキュベータ・オペレータ１３０がアクセスすることができるデータベース１４０に追跡情報を送ることができる。さまざまな実施態様で、インキュベータ・オペレータ１３０は、その追跡情報をリアルタイムで研究、分析または調査することができる。インキュベータ・システム１０５は、データベース１４０に関連づけられた監視プログラム（図示せず）を含むことができ、この監視プログラムは、インキュベータ・システム１０５が、アイドル環境規準（例えばアイドル・ベースライン）の外側の１つまたは複数のアクティビティの発生を検出したときに、インキュベータ・オペレータ１３０に（例えばテキスト・メッセージ、電子メールなどによって）警報を発するように構成される。このようなアクティビティの発生が、１つまたは複数のマルウェア・オペレータ１２１〜１２３が仮想組織体１１０と対話していることを示していることがあるためである。
【００２８】
インキュベータ・システム１０５および／またはインキュベータ・オペレータ１３０は、インキュベータ・システム１０５の追跡能力によって集められ提供されたインテリジェンスに基づいて、マルウェア・オペレータ１２１〜１２３に対する一組のプロフィール１４２〜１４６を生成することができる。プロフィール１４２〜１４６は、マルウェア・オペレータ１２１〜１２３のアクション、対話、属性などを特徴づける、それぞれのマルウェア・オペレータによって使用される伝送制御プロトコル、それぞれのマルウェア・オペレータによって使用される特徴的な動作シーケンス、それぞれのマルウェア・オペレータに関連した平均ログオン時間および持続時間などの情報を含むことができる。マルウェア・オペレータ１２１〜１２３のマルウェア・オペレータ・プロフィール１４２〜１４６は、マルウェア・オペレータ１２１〜１２３が、仮想組織体１１０および／または仮想組織体１１０内の少なくとも１つの犠牲システムにいつアクセスし、そのアクセスをどのくらいの間、維持したのかについての情報、マルウェア・オペレータの出所である地理的エリアを示す情報、マルウェア・オペレータ１２１〜１２３が犠牲システムおよび／または仮想組織体１１０上に配置したアプリケーションまたはソフトウェアのリスト、マルウェア・オペレータ１２１〜１２３によって使用された通信チャネルを記述した情報、マルウェア・オペレータ１２１〜１２３が犠牲マシンおよび／または仮想組織体１１０へのアクセスを手渡した他のマルウェア・オペレータを記述した情報など、マルウェア・オペレータ１２１〜１２３に関連した情報を含むことができる。プロフィール１４２〜１４６は、例えば「このアクティビティは、リトアニア（Ｌｉｔｈｕａｎｉａ）国に拠点を置くオペレータＸＹＺのパターンと合致している」といった形での、同じマシンまたは異なるマシン上でのマルウェア・オペレータの後の識別を可能にする。
【００２９】
さらに、プロフィール１４２〜１４６を構築することによって、インキュベータ・システム１０５は、インキュベータ・オペレータ１３０が、マルウェア・オペレータのアクティビティ、ツール、方法など、マルウェア・オペレータ１２１〜１２３に関するインテリジェンスを集めることを可能にする。マルウェア・オペレータ１２１〜１２３によって実行されるアクティビティ、および／またはマルウェア・オペレータ１２１〜１２３に関連したアクティビティは、実行されたコマンド（タイポおよび他のイディオシンクラシーを含む）、データ、ファイル、フォルダ（例えば機密文書、コンフィギュレーション・ファイルなど）などの、アクセスされ／改変され／消去された内容などを含む。アクティビティに関係する情報は、それぞれのアクティビティの持続時間、アクセス時間、アクセス位置などを含む。マルウェア・オペレータ１２１〜１２３によって使用されるツールおよび／またはマルウェア・オペレータ１２１〜１２３に関連したツールは、インフラストラクチャ（例えば通信チャネル、コマンド・アンド・コントロール・サーバなど）、追加のマルウェア・ステージ、合法的なサードパーティ・ツール（例えばアーカイブ・ユーティリティ）、プログラム・スイッチ、探索方法などを含む。マルウェア・オペレータ１２１〜１２３によって使用される方法および／またはマルウェア・オペレータ１２１〜１２３に関連した方法は、マルウェア・オペレータ１２１〜１２３が仮想組織体１１０内で追加のマルウェアを展開させる方式および／または手段、秘密裏抽出後の文書処理、マルウェア１１５および／またはマルウェア・オペレータ１２１〜１２３とコマンド・アンド・コントロール・サーバ（図示せず）の対話などを含む。インキュベータ・システム１０５は、１つまたは複数のプロフィール１４２〜１４６に含まれる情報をレポートに入れ、そのレポートを公開し、またはインキュベータ・オペレータ１３０の顧客に配布することができる。
【００３０】
さらに、インキュベータ・システム１０５は、仮想組織体１１０にアクセスするためにマルウェア・オペレータ１２１〜１２３によって実行されるアクティビティのシーケンス、仮想組織体１１０にアクセスした後にマルウェア・オペレータ１２１〜１２３によって実行されるアクティビティのシーケンスなどの１つまたは複数のマルウェア・オペレータ１２１〜１２３による共通の「プレー」を、インキュベータ・オペレータ１３０が識別するのを、プロフィール１４２〜１４６を使用して助けることができる。共通のプレーの例には、マルウェアを展開させ、それを使用して、犠牲システムにアクセスし、犠牲システムに関連したデータの初期収集を自動化すること、犠牲システムにアクセスしたのに続いて犠牲システムのフィンガープリンティングを手動で実施すること、犠牲システムにインストールされたマルウェアのサニティ・チェックを実行すること、犠牲システム上に追加のツールおよび／またはペイロードを配置すること、データおよび文書を探索し、それらを犠牲システムから秘密裏に抽出すること、犠牲システム内で横に移動させまたは犠牲システムに接続された他のシステムに移動させることなどが含まれる。
【００３１】
例えば、少なくとも１つのマルウェア・オペレータ１２１〜１２３は、仮想組織体１１０内の少なくとも１つの犠牲システムを、第１ステージ・マルウェアに感染させることができ、マルウェア・オペレータ１２１〜１２３は、この第１ステージ・マルウェアを使用して、犠牲システムにアクセスし、犠牲システムに関連したデータの初期収集を、例えばランしているプロセスおよび／またはサービスを捕捉し、ハード・ディスクおよび／またはプロセスの詳細を集め、１つまたは複数の外部ＩＰアドレスを識別し、１つまたは複数のホスト名を捕捉し、犠牲システムが仮想マシンであるか否かを判定することなどによって自動化することができる。犠牲システムにアクセスしたのに続いて、マルウェア・オペレータ１２１〜１２３は、例えば「ｉｐｃｏｎｆｉｇ  ／ａｌｌ」、「ｎｅｔ  ｖｉｅｗ」、「ｎｅｔ  ｌｏｃａｌｇｒｏｕｐ  ａｄｍｉｎｉｓｔｒａｔｏｒｓ」、「ｔｒａｃｅｒｏｕｔｅ」などの第１のタイプのコマンド、または「ｔａｓｋｌｉｓｔ  ／ｖ」、「ｎｅｔ  ｓｔａｒｔ」、「ｎｅｔ  ｖｉｅｗ  ／ｄｏｍａｉｎ」、「ｎｅｔｓｔａｔｅ  −ａｎｏ」などの第２のタイプのコマンドを実行することによって、犠牲システムのフィンガープリンティングを手動で実施することができる。マルウェア・オペレータによって実行されるコマンドのタイプに基づいて、インキュベータ・システム１０５および／またはインキュベータ・オペレータ１３０は、そのマルウェア・オペレータが機会主義的な（ｏｐｐｏｒｔｕｎｉｓｔｉｃ）オペレータであるのかまたはフォーカスされた（ｆｏｃｕｓｅｄ）オペレータであるのかについての予備的判定を実施することができる。いくつかのインスタンスでは、犠牲システムをさらに探査しかつ／または利用するのか否かをマルウェア・オペレータ１２１〜１２３が判断するときに、マルウェア・オペレータが、犠牲システム上でフィンガープリンティング・コマンドだけをランさせることができる。
【００３２】
上記の例に続いて、マルウェア・オペレータ１２１〜１２３は、例えばマルウェアに対するフォルダ位置をチェックすることによって（例えば「ｃｄ  Ｃ：＼ＤＯＣＵＭＥ〜１＼ＸＸＸ＼ＬＯＣＡＬＳ〜１＼Ｔｅｍｐ」、「ｃｄ  〜ｈｆ〜」、「ｄｉｒ」などの、コマンドを実行することによって）、またはマルウェア・オペレータが、マルウェア・オペレータのトラックをカバーしたい場合にクリーンアップすることによって（例えば「ｔａｓｋｋｉｌｌ  ／ｉｍ  ａｄｏｂｅｒｅ．ｅｘｅ／ｆ」、「ｎｅｔ  ｔｉｍｅ  ＼＼１２７．０．０．１」、「ａｔ  ＼＼１２７．０．０．１  ２：２４  ｃｍｄ／ｃ  “ｄｅｌ  ＼”Ｃ：＼Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ＼ＸＸＸ＼Ｌｏｃａｌ  Ｓｅｔｔｉｎｇｓ＼Ｔｅｍｐ＼〜ｈｆ〜＼ａｄｏｂｅ＿ｓｌ．ｅｘｅ＼”」などのコマンドを実行することによって、犠牲システム上にインストールされたマルウェアのサニティ・チェックを実行することができる。マルウェア・オペレータ１２１〜１２３は、例えば秘密裏抽出を支援する追加のマルウェアまたは合法的なツールを配置することによって、追加のツールおよび／またはペイロードを犠牲システム上に配置することができ、その間に、マルウェア・オペレータ１２１〜１２３は、ペイロードを検出する際にインキュベータ・システム１０５を助けることができる方法で、２次インフラストラクチャを通して追加のツールを得、かつ／または合法的なソフトウェアのファイル名を変更することができる。合法的なツールの例には、Ｃａｉｎ  ａｎｄ  Ａｂｅｌ、ＮＢＴＳｃａｎｎｅｒ、ｇｓｅｃｄｕｍｐ、ｐｓｔｏｏｌｓ、遠隔管理ツールの内側の機能を可能にする動的リンキング・ライブラリ、アーカイブ・ユーティリティ（例えばＲＡＲユーティリティ、ＺＩＰユーティリティなど）、ドライブ・エヌメレータ（ｄｒｉｖｅ  ｅｎｕｍｅｒａｔｏｒ）などが含まれる。マルウェア・オペレータ１２１〜１２３は、例えば犠牲システム上の関心の内容（例えばデータ、ファイル、フォルダなど）の位置を突き止め、アーカイブ・ファイル（例えばＲＡＲファイル、Ｚｉｐファイルなど）、ネットワーク・ポートまたはネットワーク接続（例えばＦＴＰ接続、ＨＴＴＰ接続など）などの少なくとも１つの秘密裏抽出ポイントを得、その秘密裏抽出ポイントを通して関心の内容を秘密裏に抽出することによって、犠牲システムからのデータおよびファイルを探索し、それらを秘密裏に抽出することができる。マルウェア・オペレータ１２１〜１２３は、大量に（例えばシステム・データでない全てのファイルおよびフォルダを抽出することによって）、または選択的に（例えば関心の特定の内容についてフォルダおよびファイルをチェックし、その関心の特定の内容だけを抽出することによって）、関心の内容を秘密裏に抽出しようとすることができる。マルウェア・オペレータ１２１〜１２３はさらに、例えば秘密裏抽出ポイントを開き／変更し／閉じることによって、または秘密裏に抽出された関心の内容を開き／実行する（例えばコマンド・アンド・コントロール・サーバ上の盗まれたファイルをプロキシ・ネットワークまたはソース・ネットワークを介して開きかつ／または実行する）ことによって、秘密裏抽出後処理��実行することができる。いくつかのインスタンスでは、インキュベータ・システム１０５が、マルウェア・オペレータ１２１〜１２３によって実行された抽出後処理を観察することができる。マルウェア・オペレータ１２１〜１２３は、犠牲システム内で横に移動させ、または仮想組織体１１０内の犠牲システムに接続された他のシステムに移動させることを試みることができる。
【００３３】
インキュベータ・システム１０５および仮想組織体１１０は、いわゆる「ハニーポット」、「ハニーネット」および「サンドボックス」とは極めて異なる。インキュベータ・システム１０５および仮想組織体１１０は、ハニーポット、ハニーネットまたはサンドボックスよりもはるかに高いレベルのシミュレーション洗練性およびリアリズムを提供するためである。例えば、ハニーポットまたはサンドボックスは通常、非常に少数の資源などを有する独立型マシンであり、かつ／または非常に少数の資源などを有する独立型マシンであるように見え、このことは、最新のマルウェア・オペレータが、仮想機械チェックおよび他の共通の情報収集アクションを使用してそれらの資源を検出することを容易にする。
【００３４】
ハニーポットまたはサンドボックスは組織体全体をシミュレートせず、一方、インキュベータ・システム１０５のさまざまな実施態様は、リアルなインフラストラクチャを有するリアルな団体環境を模倣する仮想組織体１１０を生成する。例えば、１つから５つのノードを有し、全てのノードが同等であり、どの１つのノードもある種の重要性または価値を有しない小さなネットワークを有することがあるハニーポット、ハニーネットまたはサンドボックスとは違い、仮想組織体１１０は、その団体がどのように見えるのか基づく異なる重要性を有するノードを含む団体に関連づけられるようにリアルに構成することができる。他の違いは、図１に示された例のインキュベータ・システム１０５およびデータベース１４０が提供する、ほとんどのシステム・アクティビティまたは全てのシステム・アクティビティの広範囲にわたる時間順記録を、ハニーポット、ハニーネットおよびサンドボックスが提供しないことである。
【００３５】
ハニーポット、ハニーネットおよびサンドボックスとの他の違いは、インキュベータ・システム１０５が、実在する団体または組織体のように見えるように数日から数か月程度の長期にわたってランするのに対して、ハニーポット、ハニーネットおよびサンドボックスは、数分または数時間程度の非常に短い期間の間ランすることである。実際、いくつかのタイプのマルウェアは、ハニーポット／ネットおよびサンドボックスを検出し、それらを、アクションを試みる前に数時間の時間遅延を使用することによって打ち負かすように設計されている。これは、このような遅延の後、大部分のハニーポット／ネットおよびサンドボックスはもはやアクティブではないためである。一実施形態では、１日よりも長い期間、または１週間よりも長い期間、または１か月よりも長い期間にわたって、インキュベータ・システム１０５が連続的にランする。
【００３６】
仮想組織体の自動生成
図２は、本発明の原理と整合した、マルウェアをインキュベートするジェネレータ・システムの一例２００のブロック図である。示されているとおり、システム２００は、インキュベータ・システム・ジェネレータ・エンジン２５０を含み、インキュベータ・システム・ジェネレータ・エンジン２５０は、ユーザ・インタフェース（「ＵＩ」）／質問コンポーネント２５２およびコンフィギュレーション・エキスパンダ・コンポーネント２５４を含む。さまざまな実施態様で、インキュベータ・システム・ジェネレータ・エンジン２５０およびインキュベータ・システム・ジェネレータ・エンジン２５０内のコンポーネントは、例えばサーバ、ノートブック・コンピュータまたは図５に示されているコンピューティング・システムなどの、処理装置を含む汎用コンピューティング・システムによって実行される命令として、ソフトウェアの形態で実現することができる。
【００３７】
さまざまな実施態様で、ＵＩ／質問コンポーネント２５２は、インキュベータ・システム・ジェネレータ・エンジン２５０によって生み出される仮想組織体１１０を記述するさまざまな組織体データをＵＩ入力２２０を介して集めるようユーザ（例えばインキュベータ・オペレータ１３０）に促し、ユーザと対話する、コンピューティング・システムの表示装置（例えば表示画面または視覚インタフェース）上に現れるグラフィカル・ユーザ・インタフェース（「ＧＵＩ」）などのＵＩを生み出すことができる。このＵＩは、ウェブ・ページとして提示されブラウザを使用してアクセスされるＧＵＩなどのウエブ・ベースのＵＩとすることができる。ユーザは、例えば仮想組織体１１０の特性、特徴および属性を含む、仮想組織体１１０の組織体データを定義しまたは他の方法で指定するため、書式に記入することができる。この書式は、図２に示されたＵＩ入力２２０に含まれる特定の情報を尋ねる質問を提示することができる。より具体的には、ＵＩ入力２２０は、少なくとも１つのドメイン２２１を記述する情報を含むことができ、ドメイン２２１は、インキュベータ・システム１０５および仮想組織体１１０がシミュレートする、例えば「ｖｅｒｉｓｉｇｎ．ｎｅｔ」、「ｅｘａｍｐｌｅ．ｃｏｍ」などのドメインとすることができる。
【００３８】
ＵＩ入力２２０は、ユーザ数２２２を記述する情報を含むことができ、ユーザ数２２２は、インキュベータ・システム・ジェネレータ・エンジン２５０が、仮想組織体１１０のアクティブ・ディレクトリ内に何人の仮想ユーザを自動的に生成するのかを指示することができる。
【００３９】
ＵＩ入力２２０は、少なくとも１つの産業２２３を記述する情報を含むことができ、産業２２３は、指定された産業と整合する仮想組織体１１０をどのように構築するのかを、インキュベータ・システム・ジェネレータ・エンジン２５０に指示することができる。この指示には、その産業に関係する予め定められた職員階級制度表または職位表で職員階級級度または職位（および例えばユーザ数２２２に基づく適切な職位数）を調べることが含まれ、これらの情報は、仮想組織体１１０の仮想ユーザを記述しかつ／または仮想組織体１１０の仮想ユーザを在籍させるために使用される。例えば、エンジニアリング産業では、職員階級制度が、ソフトウェア技師および電気技師のいくつかのレベル、最高経営責任者レベルの４つの職位、ならびに人的資源管理者を含むことがある。一般に、インキュベータ・システム・ジェネレータ・エンジン２５０は、指定された産業における職員階級制度および現実のユーザと整合した特定の職位およびその他の詳細を有する特定の仮想ユーザを自動的に生成することができ、それらのユーザを表すデータをコンフィギュレーション・ファイル２６０に入力する。いくつかの実施形態では、国勢調査データ、漏洩パスワード・リストまたは現実の情報の他の源を使用して、仮想ユーザが現実のユーザをシミュレートするようにすることができる。
【００４０】
ＵＩ入力２２０は、ネットワーク・スキーマ（ｎｅｔｗｏｒｋ  ｓｃｈｅｍａ）およびマシン数２２７を記述する情報を含むことができ、ネットワーク・スキーマおよびマシン数２２７は、マルウェア・オペレータ１２１〜１２３およびマルウェア１１５から見え、かつ／またはマルウェア・オペレータ１２１〜１２３およびマルウェア１１５によって「見られる」仮想組織体１１０の仮想コンピュータ・ネットワークをどのように構築するのかを、インキュベータ・システム・ジェネレータ・エンジン２５０に指示することができる。一般に、インキュベータ・システム・ジェネレータ・エンジン２５０は、ユーザによって入力されたネットワーク・スキーマおよびマシン数２２７に対応するネットワーク・スキーマを自動的に生成し、調べ、または他の方法で生み出し、そのネットワーク・スキーマを表すデータをコンフィギュレーション・ファイル２６０に入力する。さまざまな実施態様が、マルウェア・オペレータ１２１〜１２３が対話することができるマシンとすることができる仮想組織体１１０内の実在するマシンの数と、仮想組織体１１０のネットワーク内の空間を埋め、仮想組織体１１０のネットワーク内にディレクトリを追加して、それをよりリアルに見せる「マルチホスト」または仮想機械とを区別することができる。マルウェア・オペレータ１２１〜１２３はマルチホストと対話することができないが、それにもかかわらず、マルウェア・オペレータ１２１〜１２３は、例えば「ｎｅｔ  ｖｉｅｗ」のような共通のコマンドを使用することによってマルチホストを「見る」ことができる。「ｎｅｔ  ｖｉｅｗ」は、ドメイン・コントローラ３４０に報告するときに、マルチホストを、仮想組織体１１０のネットワーク内でオンラインの状態にある多数のマシンとして示す。
【００４１】
ＵＩ入力２２０は、少なくとも１つの出口ポイント２２４を記述する情報を含むことができ、出口ポイント２２４は、インターネットなどのワイド・エリア・ネットワークに仮想組織体１１０がそこからアクセスする特定の地理的位置（例えば国、州または都市）を、インキュベータ・システム・ジェネレータ・エンジン２５０に指示することができる。マルウェア・オペレータ１２１〜１２３には、仮想組織体１１０が、出口ポイント２２４に対応するＩＰアドレスを有し、そのため、仮想組織体１１０が、示された地理的位置に置かれているように見える。いくつかの実施態様では、インキュベータ・システム１０５が、限られた数の私的な仮想ネットワーク・アクセス・ポイントにアクセスすることができ、ＵＩコンポーネント２５２は、それらのアクセス・ポイントのリストまたはメニューを、その中から選択するためにユーザに提示することができる。ユーザが選択した後、インキュベータ・システム・ジェネレータ・エンジン２５０は、選択された出口ポイント２２４を表すデータをコンフィギュレーション・ファイル２６０に入力することができ、インキュベータ・システム・ジェネレータ・エンジン２５０は後に、仮想組織体トラフィックがそのアクセス・ポイント位置において出入りするようにその出口ポイントと対をなす仮想組織体１１０を生み出すことができる。
【００４２】
ＵＩ入力２２０は、１つまたは複数のキーワード２２５を（例えばカンマで分離された形で）表す情報を含むことができ、キーワード２２５は、インキュベータ・システム・ジェネレータ・エンジン２５０が生成する仮想組織体１１０のさまざまな所望の特徴を記述しまたは特徴づけることができる。さまざまな実施態様で、インキュベータ・システム・ジェネレータ・エンジン２５０は、後にさらに説明するように、それらのキーワードを使用して、リアルな仮想組織体１１０を生成するために使用されるインターネット入力２４０を集めることができる。インキュベータ・システム・ジェネレータ・エンジン２５０は、指定されたキーワード２２６を表すデータをコンフィギュレーション・ファイル２６０に入力することができる。
【００４３】
ＵＩ入力２２０は、インキュベータ・システム１０５内の仮想組織体１１０の部分である物理マシンまたは仮想マシン内でインキュベータ・システム・ジェネレータ・エンジン２５０がランさせるまたは実行することができる少なくとも１つのマルウェア２２６を記述しまたは識別する情報を含むことができる。例えば、マルウェア入力２２６は、図１に示されたインキュベータ・システム１０５の仮想組織体１１０内のコンピュータがランさせるマルウェア・プログラムまたはマルウェア・アプリケーション１１５を識別することができる。インキュベータ・システム・ジェネレータ・エンジン２５０は、指定されたマルウェア２２６を表すデータをコンフィギュレーション・ファイル２６０に入力することができる。
【００４４】
ＵＩ入力２２０はさらに、インキュベータ・システム１０５内の仮想組織体１１０内でインキュベータ・システム・ジェネレータ・エンジン２５０が使用しまたはシミュレートすることができる少なくとも１つのマシン・タイプ２２８を記述しまたは識別する情報を含むことができる。インキュベータ・システム・ジェネレータ・エンジン２５０は、指定のマシン・タイプ２２８を表すデータをコンフィギュレーション・ファイル２６０に入力することができる。
【００４５】
ＵＩ入力２２０はさらに、インキュベータ・システム１０５内の仮想組織体１１０内の物理マシンおよび／または仮想マシン上でインキュベータ・システム・ジェネレータ・エンジン２５０が実行することができる少なくとも１つのオペレーティング・システム２２９を記述し、または、識別する情報を含むことができる。インキュベータ・システム・ジェネレータ・エンジン２５０は、指定されたオペレーティング・システム２２９を表すデータをコンフィギュレーション・ファイル２６０に入力することができる。
【００４６】
ＵＩ入力２２０はさらに、インキュベータ・システム１０５内の仮想組織体１１０内の物理マシンおよび／または仮想マシン上でＩＰアドレスおよびＩＰネットワーク空間をシミュレートしまたは割り当てるためにインキュベータ・システム・ジェネレータ・エンジン２５０が使用することができる少なくとも１つのネットワーク２３０を記述しまたは識別する情報を含むことができる。インキュベータ・システム・ジェネレータ・エンジン２５０は、指定されたアドレスおよびネットワーク２３０を表すデータをコンフィギュレーション・ファイル２６０に入力することができる。
【００４７】
所望の仮想組織体１１０の所望の特徴を記述しまたは特徴づける、ユーザによって入力されるキーワード２２５を再び参照すると、インキュベータ・システム・ジェネレータ・エンジン２５０のさまざまな実施態様が、インターネット入力２４０を集めるために、インターネット探索エンジンまたは他の情報収集法にキーワード２２５を入力することができる。インターネット入力２４０は、情報、文書２４１、リンク、識別２４２などを含むことができ、それらは全て、仮想組織体１１０をよりリアルに見せるために使用することができる。例えば、インキュベータ・システム・ジェネレータ・エンジン２５０は、インターネットなどのネットワーク内で、キーワード２２５を含むまたはキーワード２２５に関係する文書２４１（例えば．ｄｏｃ、．ｄｏｃｘ、．ｐｄｆなどで終わるファイル）を探索することができる。いくつかの実施態様では、インキュベータ・システム・ジェネレータ・エンジン２５０が、その探索によって識別された文書２４１をダウンロードし、または他の方法で収集し、後に、それらの文書２４１を、仮想組織体１１０を構成するマシン上のディレクトリにランダムに分配／記憶することができる。したがって、仮想組織体１１０から文書を違法に集めようとしているマルウェア・オペレータ１２１〜１２３は、仮想組織体１１０に関連しているように見える実在する文書を見つけ、それらをコピーする。
【００４８】
同様に、インキュベータ・システム・ジェネレータ・エンジン２５０は、インターネットなどのネットワーク内で、キーワード２２５を含むまたはキーワード２２５に関係する人物または識別２４２（例えば人名、住所、職業、職務、学歴などについての情報）を探索することができる。いくつかの実施態様では、インキュベータ・システム・ジェネレータ・エンジン２５０が、国勢調査データを探索して、所望の仮想組織体１１０に関連した地勢、会社名、学歴などに関係するキーワードに適合する識別２４２を見つけ出し、後に、それらの識別２４２に、仮想組織体１１０内の職名を割り当てることができる。いくつかの実施態様では、仮想組織体が現実世界の組織体を模倣しているときに、インキュベータ・システム・ジェネレータ・エンジン２５０が、職歴詳細および履歴書に似た情報を提供する、ＬｉｎｋｅｄＩｎ（商標）ウェブサイトなどのウェブサイトを探索して、その会社で実際に働いている人を見つけ出し、その人およびその人の実在する職位を使用して、仮想組織体１１０にユーザを在籍させることができる。したがって、仮想組織体１１０からユーザ情報を違法に集めようとしているマルウェア・オペレータ１２１〜１２３は、仮想組織体１１０と整合するユーザに関する情報を見つけ出す。
【００４９】
図２に示された実施態様では、インキュベータ・システム・ジェネレータ・エンジン２５０がＵＩ入力２２０およびインターネット入力２４０を受け取った後に（前述のとおりＵＩ入力２２０およびインターネット入力２４０はコンフィギュレーション・ファイル２６０に記憶することができる）、コンフィギュレーション・エキスパンダ・モジュール２５４が、それらの基本入力に基づいて、インキュベータ・システム１０５内でランする仮想組織体１１０を生み出すのに必要な他の全てのものを構築し、自動的に生成する。例えば、コンフィギュレーション・エキスパンダ・モジュール２５４は、ユーザを生成すること、それらのパスワードを生成すること、それぞれのユーザを特定の職名に関連づけること、インターネットのアップストリーム・ネットワークを生成すること、出口ストリームを生成すること、実在するマシンおよび仮想マシンを生成してローカル・ネットワーク・スキーマを実装すること、構成されたときにそれぞれのマシンが実行する必要があるタスクを生成すること、文書およびアプリケーションをネットワーク内のマシンに分配すること、最後に、仮想組織体１１０の１台または数台のマシン上に指定されたマルウェアをダウンロードしランさせることなどを、自動的に実行する。したがって、所望の仮想組織体１１０を記述するためにユーザ（例えばインキュベータ・オペレータ１３０）によって入力された少量の構成情報は、指定されたマルウェア１１５に感染した企業体をシミュレートする完全な構成（例えば仮想組織体１１０）に拡張される。
【００５０】
ユーザ（例えばインキュベータ・オペレータ１３０）から見ると、仮想組織体１１０の生成は、ウエブ・ベースのＧＵＩなどのＵＩを介して、所望の仮想組織体１１０を記述する少量の情報を単純に提供することから始まる。前述のとおり、さまざまな実施態様で、ユーザは、ＵＩ入力２２０に関して論じたユーザが欲するネットワーク、ユーザが欲するマシンの数（例えば実在するマシンの数、および実在するマシンをシミュレートする、実際には実在するマシンではないマルチホストまたは仮想機械の数）、およびユーザの数などを定めることができる。いくつかの実施態様では、この情報が全てコンフィギュレーション・ファイル２６０に入力され、それに加えてまたはその代わりに、インキュベータ・システム・ジェネレータ・エンジン２５０は、その情報を、コンフィギュレーション・データベース２７０に記憶することができる。
【００５１】
以下の表１は、ＵＩ入力２２０およびインターネット入力２４０によって指定された仮想組織体１１０を生成するためにインキュベータ・システム・ジェネレータ・エンジン２５０が使用することができるコンフィギュレーション・ファイル（例えばコンフィギュレーション・ファイル２６０）の情報の一例である。いくつかの実施態様では、表１の情報を使用して、システムによって処理されるＪａｖａ  Ｓｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（「ＪＳＯＮ」）オブジェクトを生成することができる。
【００５２】
【表１Ａ】
2015130162.tif 000003
【表１Ｂ】
2015130162.tif 000004
【表１Ｃ】
2015130162.tif 000005
【表１Ｄ】
2015130162.tif 000006
【表１Ｅ】
2015130162.tif 000007
【００５３】
多数の仮想組織体１１０を同時に生成しランさせることができる実施態様では、管理サーバ（図２には示されていないが、いくつかの実施態様ではインキュベータ・システム・ジェネレータ・エンジン２５０を受け入れることができる）が、データベース２７０に定期的に問い合わせて、新しい構成がないかチェックすることができる。構成を見つけると、管理サーバは、配置オブジェクト（ｄｅｐｌｏｙｍｅｎｔ  ｏｂｊｅｃｔ）を生成することができる。例えばインキュベータ・システム１０５上で実行されたとき、配置オブジェクトは、仮想組織体１１０の形態の組織体をシミュレートするのに必要な全ての実体、コンポーネントおよびネットワークを生成することができる。
【００５４】
仮想組織体１１０としてランする完全にインスタンス化された構成は、実在する組織体に属する実在するシステムと対話しているとマルウェア・オペレータ１２１〜１２３が信じるように非常にリアルである。例えば、仮想組織体１１０は、アクティブ・ディレクトリ環境をシミュレートし、仮想組織体内のさまざまなノードを制御するドメイン・コントローラを含むことができ、さらに、ユーザ・マシンを表すノードを含むことができる。それらのノードは、それらのノードにインストールされたＡｄｏｂｅ（登録商標）  ｒｅａｄｅｒ、Ｍｉｃｒｏｓｏｆｔ  Ｏｆｆｉｃｅ（登録商標）などの合法的なソフトウェアを有することができる。仮想組織体１１０はさらに、シミュレートされたシステム内で電子メールを生成するカスタム・モジュールを含むことができる。
【００５５】
仮想組織体の生成
図３は、本発明の原理と整合した、仮想組織体のためのネットワークを生成する技法の一例を示すガント・チャートである。示された例では、左から右に見て、右側のタスクは、接続された左側のタスクに依存し、右側のタスクは、左側のタスクが完了した後に開始することができる。
【００５６】
いくつかの実施態様では、データベース２７０および／またはコンフィギュレーション・ファイル２６０に記憶された情報に従って仮想組織体１１０を生成するように、管理サーバ（図示せず）がプログラムされる。いくつかの実施態様では、この管理サーバが、いくつかの部分およびコンポーネント（例えばスイッチ、ルータ、ホスト・マシンなど）を並列に配置し、構成して、仮想組織体１１０のネットワーク全体を構築するのに必要な時間を短縮することができる。
【００５７】
さまざまな実施態様で、仮想組織体１１０内で「インキュベートされる」マルウェア１１５は、仮想組織体１１０のネットワークの少なくとも１つのマシンにロードすることができ、マルウェア１１５と対話するように１つまたは複数のマルウェア・オペレータ１２１〜１２３を引き寄せることを目的として無期限にランすることができるような態様で、予め識別されコピーされている。これは、仮想組織体１１０のいくつかの部分をマルウェア１１５に意図的に感染させるシステム１００とは対照的に、通常は公衆ネットワーク接続されて短時間ランし、マルウェアおよびマルウェア・オペレータに感染し、または他の方法でマルウェアおよびマルウェア・オペレータによって利用されるのを待つハニーポット、ハニーネットまたはサンドボックスとは異なる。外部から感染される必要性に対して支援するため、ハニーポット、ハニーネットおよびサンドボックスは通常、脆弱なサービス（例えば既知のセキュリティ欠陥を有する、アプリケーションおよびＯＳのパッチ修正されていないより古いバージョン）をランさせる。やはり対照的に、仮想組織体１１０は通常、脆弱なサービスをランさせない。「容易な」ターゲットは、マルウェア・オペレータ１２１〜１２３に疑いを持たせる可能性があり、それによって、マルウェア・オペレータ１２１〜１２３が、仮想組織体１１０と対話することなくログオフし、仮想組織体１１０を去る可能性があるためである。このことを避けるため、インキュベータ・オペレータ１３０は、かなり最新のサービスをランさせて、よく維持された団体ネットワークのように見えるようにすることができる。
【００５８】
機能する仮想組織体１１０を生成するため、インキュベータ・システム・ジェネレータ・エンジン２５０は、仮想組織体１１０の部分を、特定のシーケンスで、特定の時刻に構築し、配置し、または他の方法で起動することができる。図３に示された例では、インキュベータ・システム・ジェネレータ・エンジン２５０が、最初に、ローカル・スイッチ３０５および出口スイッチ３１０を、例えばインキュベータ・システム１０５内のスイッチを起動することによって配置する。
【００５９】
これらのアクティビティが正常に完了した後、インキュベータ・システム・ジェネレータ・エンジン２５０は次いで、ローカル・ルータ３１５を配置し、出口ルータ３２５を配置し、ドメイン・コントローラ３３５を配置し、３４５〜３４７において、ＸＰホスト、Ｗｉｎｄｏｗｓ  ７ホスト、Ｍａｃホスト、Ｌｉｎｕｘホストなどのｎ個のホスト１．．．ｎを配置する。図３に示された例では、仮想組織体１１０の構築時間を短縮するために、３１５、３２５、３３５および３４５〜３４７を並列に実施することができる。
【００６０】
ローカル・ルータが配置された後、インキュベータ・システム・ジェネレータ・エンジン２５０は、ローカル・ルータ３２０を構成することができる。同様に、インキュベータ・システム・ジェネレータ・エンジン２５０は、出口ルータが配置された後に出口ルータ３３０を構成することができ、ドメイン・コントローラが配置された後にドメイン・コントローラ３４０を構成することができる。
【００６１】
ドメイン・コントローラを構成した後、インキュベータ・システム・ジェネレータ・エンジン２５０は、最後に、３５０〜３５２においてｎ個のホストを構成することができる。さまざまな実施態様で、インキュベータ・システム・ジェネレータ・エンジン２５０は、仮想組織体１１０のネットワークがうまく機能するためにインキュベータ・システム１０５内において配置および構成が実行されなければならない特定の順序を強制する。さらに、いくつかのアクティビティの並列化は、セットアップ時間を著しく増大させずに多数のホストなどをセットアップすることを可能にする。図３に示された例に他の特徴を追加することができる。例えば、このシステム例は、文書を生み出し、次いでその文書を、構成されたホストに配置することができる。
【００６２】
さまざまな実施態様で、インキュベータ・システム１０５を、エラーから回復する十分にロバストなものとすることができる。例えば、ドメイン・コントローラが故障した場合、インキュベータ・システム１０５は、他の全てのコンポーネントの動作を自動的にキルすることができる。ドメイン・コントローラなしでは何も機能することができず、例えば図３に示されたスタートアップ・シーケンスを再開することもできないためである。さまざまな実施態様で、インキュベータ・システム１０５は、仮想組織体１１０のインスタンス化が成功したかどうかを検出することができ、必要に応じて人間による入力なしで再び試みることができる。
【００６３】
図１に関して以前に述べたとおり、仮想組織体１１０内の１つまたは複数のマシン内でマルウェア１１５をランさせることを含む、インキュベータ・システム１０５および仮想組織体１１０のセットアップおよびランの後、インキュベータ・システム１０５は、仮想組織体１１０内でのアクティビティ（マルウェア１１５内でのアクティビティを含む）を追跡し、そのアクティビティを、インキュベータ・オペレータ１３０による調査および使用に備えてデータベース１４０に記録しまたは他の方法で保管することができる。したがって、例えばマルウェア・オペレータ１２１が仮想組織体１１０と対話し、仮想組織体１１０のマシン上に新しいマルウェア（すなわちマルウェア１１５以外の追加ステージ・マルウェアなどのマルウェア）を配置した場合、インキュベータ・システム１０５はそのイベントを記録し、インキュベータ・オペレータ１３０に通知することができる。安全に研究し、プロフィールを安全に構築し、新しいマルウェアが感染した他のユーザまたはシステムに利益を与える目的に使用することができる有用な情報を安全に抽出するため、インキュベータ・オペレータ１３０はその新しいマルウェアのコピーを生成することができる。
【００６４】
図１に関して以前に述べたとおり、それぞれのマルウェア・オペレータ１２１〜１２３によって引き起こされまたは実行された全部または一部のイベントおよびアクションを記録することによって、インキュベータ・システム１０５は、インキュベータ・システム１０５の仮想組織体１１０内でランしているマルウェア１１５と対話したマルウェア・オペレータ１２１〜１２３のプロフィール１４２〜１４６を構築することができる。プロフィール１４２〜１４６は、例えばプロフィールが構築されたマルウェア・オペレータ１２１〜１２３のうちの特定の１つのマルウェア・オペレータに特徴的な特定の一連のイベントを指定された期間内に認識することによって、感染した異なる犠牲システムに関して、１つまたは複数のマルウェア・オペレータ１２１〜１２３を、後の異なる時点で識別することを可能にする。
【００６５】
同様に、インキュベータ・システム１０５による絶え間のない監視およびプロフィール１４２〜１４６との比較は、例えば１つのマルウェア・オペレータ１２１〜１２３が別のマルウェア・オペレータ１２１〜１２３にアクセスを手渡したときなどの仮想組織体１１０にアクセスしているマルウェア・オペレータ１２１〜１２３の変更を、インキュベータ・オペレータ１３０が検出することを可能にする。例えば、インキュベータ・オペレータ１３０は、マルウェア・オペレータ１２１〜１２３が実行していることの変化、またはマルウェア・オペレータ１２１〜１２３がそれを実行しているパターンの変化、例えばマルウェア・オペレータ１２１〜１２３が実行しているアクションの変更、マルウェア・オペレータ１２１〜１２３がそれらのアクションを実行している時間の変化、マルウェア・オペレータ１２１〜１２３がそれらのアクションを実行している順序の変化を検出することができ、それによって別のマルウェア・オペレータが仮想組織体１１０にアクセスしていると結論づけることができる。異なる個体は異なる行動をとるためである。
【００６６】
さらに、マルウェア・オペレータ１２１〜１２３が仮想組織体１１０に対して実行したこと、またはマルウェア・オペレータ１２１〜１２３が仮想組織体１１０に配置したものを記録および分析した後、インキュベータ・オペレータ１３０は、１つまたは複数の対策を生み出すことができる。例えば、１つまたは複数のマルウェア・オペレータ１２１〜１２３が、仮想組織体１１０のマシン上に新しいマルウェア・プログラムを配置した場合、インキュベータ・オペレータ１３０は、新しいマルウェア・プログラムを逆行分析し、ホワイトハット・コミュニティに対するインテリジェンス警報を生成し、おそらくは新しいマルウェア・プログラムを無力化するための対策を生み出す（例えばパッチまたはアプリケーションを書き込む）ことができる。
【００６７】
図４は、インキュベータ環境を生成し、そのインキュベータ環境を使用して、マルウェアおよびマルウェア・オペレータを受け入れ、研究するためにインキュベーション・システムによって実行される、本発明の原理と整合したプロセス４００の一例を示すフロー図である。実現プロセス４００は、インキュベーション・システムが実行することができ、このインキュベーション・システムは、ジェネレータ・システム（例えば図２に示されたジェネレータ・システム２００）、およびマルウェアをインキュベートするシステム（例えば図１に示されたマルウェアをインキュベートするシステム１００）を含むことができる。
【００６８】
ブロック４１０で、インキュベーション・システムは、仮想組織体（例えば図１に示された仮想組織体１１０）を記述する組織体データを受け取ることができる。
【００６９】
次いで、ブロック４２０で、インキュベーション・システムは、組織体データに関係する追加のデータを得ることができる。上で論じたとおり、この追加のデータは、組織体データに関係する１つまたは複数のキーワードを使用して、インターネットまたは他のデータベースから取り出すことができる。この追加のデータは、仮想組織体をよりリアルに見せるための文書、リンク、識別などの情報を含むことができる。
【００７０】
インキュベーション・システムは、ブロック４３０で、仮想組織体のシミュレートされたコンピュータ・ネットワークを、組織体データもしくは前記追加のデータまたはその両方に少なくとも部分的に基づいて提供することができる。
【００７１】
インキュベーション・システムは次いで、ブロック４４０で、シミュレートされたコンピュータ・ネットワーク上に、少なくとも１つのマルウェアをインストールすることができる。
【００７２】
インキュベーション・システムは次いで、ブロック４５０で、シミュレートされたコンピュータ・ネットワークとマルウェアのオペレータとの間の１つまたは複数の対話を監視することができる。仮想組織体を監視している間、インキュベーション・システムは、それらの対話を追跡し記録することができる。一例において、インキュベータ・オペレータは、この１つまたは複数の対話を、モニタまたは他の表示デバイス上で監視することができる。別の例では、マルウェアのオペレータとシミュレートされたコンピュータ・ネットワークとの間の１つまたは複数の対話を検出したときに、インキュベーション・システムが、（例えばテキスト・メッセージ、電子メールなどによって）インキュベータ・オペレータに対して警報を発することができる。
【００７３】
インキュベーション・システムは次いで、ブロック４６０で、この１つまたは複数の対話に基づいて、マルウェアのオペレータを特徴づけるマルウェア・オペレータ・プロフィールを構築することができる。このマルウェア・オペレータ・プロフィールを使用して、そのマルウェア・オペレータが別の（例えばシミュレートされたものではない／実在する）コンピュータ・ネットワークと対話したときに、そのマルウェア・オペレータを識別することができる。このマルウェア・オペレータ・プロフィールを使用して、この別の（例えばシミュレートされたものではない／実在する）コンピュータ・ネットワークにそのマルウェアのオペレータがアクセスしていることを、このマルウェア・オペレータ・プロフィールに基づいて識別するように構成された、この別の（例えばシミュレートされたものではない／実在する）コンピュータ・ネットワーク用のセキュリティ・プログラムを設計しまたは構築することもできる。このセキュリティ・プログラムを、この別の（例えばシミュレートされたものではない／実在する）コンピュータ・ネットワークを（例えばマルウェアのオペレータを遮断することによって）保護するように構成することもできる。
【００７４】
図５は、本発明の原理と整合した例示的なコンピューティング・システム５００を示す。コンピューティング・システム５００と同様のおよび／または図５に示されたシステム全体と同様の１つまたは複数のコンピューティング・システムを使用して、図１に示されたインキュベータ・システム１０５および／または図２に示されたインキュベータ・システム・ジェネレータ・エンジン２５０を実現することができる。いくつかの実施態様では、データベース５７０を使用して、図１に示されたデータベース１４０および／または図２に示されたデータベース２７０を実現することができる。
【００７５】
インキュベータ・システム１０５またはインキュベータ・システム・ジェネレータ・エンジン２５０のある種の実施形態は、コンピュータ・プログラムとして実装しまたは埋め込むことができる。このコンピュータ・プログラムは、アクティブおよび非アクティブのさまざまな形態で存在することができる。例えば、このコンピュータ・プログラムは、ソース・コード、オブジェクト・コード、実行可能コードもしくは他のフォーマットで書かれたプログラム命令からなるソフトウェア・プログラム、ファームウェア・プログラム、またはハードウェア記述言語（ｈａｒｄｗａｒｅ  ｄｅｓｃｒｉｐｔｉｏｎ  ｌａｎｇｕａｇｅ）（「ＨＤＬ」）ファイルとして存在することができる。上記のものはいずれも、記憶デバイスおよび信号を含むコンピュータ可読媒体上において、圧縮された形態または圧縮されていない形態で具現化することができる。しかしながら、説明の目的上、コンピューティング・システム５００は、当業者によく知られている汎用コンピュータとして示されている。次に、コンピューティング・システム５００に含めることができるコンポーネントの例を説明する。
【００７６】
示されているとおり、コンピューティング・システム５００は、少なくとも１つのＣＰＵ５０５、ワーキング・メモリ５１０、少なくとも１つの記憶装置５２０、１つまたは複数の入力／出力（「Ｉ／Ｏ」）デバイス５３０（例えばキーボード、ポインティング・デバイス、表示装置、プリンタなど）、および少なくとも１つのＩ／Ｏコントローラ５３５を含むことができる。記憶装置５２０は例えば、ＲＡＭ、ＲＯＭ、フラッシュ・メモリ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置、または所望のプログラム・コードを命令の形でもしくはデータ構造体の形で担持しもしくは記憶する目的に使用することができ、コンピュータがアクセスすることができる他の媒体を含むことができる。インキュベータ・システム１０５のコンピュータ・プログラム実施形態のコピー、またはインキュベータ・システム・ジェネレータ・エンジン２５０のコンピュータ・プログラム実施形態のコピーを、例えば記憶装置５２０上に記憶することができる。コンピューティング・システム５００のさまざまなコンポーネントは、システム・バス５４０または類似のアーキテクチャを介して通信する。加えて、コンピューティング・システム５００は、動作中ワーキング・メモリ５１０上にあるオペレーティング・システム（「ＯＳ」）５１２を含むことができる。ＣＰＵ５０５が多数の処理装置を含むことができることを、当業者は認識するであろう。例えば、ＣＰＵ５０５は、同じ処理装置の多数のコピーを含むことができる。あるいは、ＣＰＵ５０５は、さまざまなタイプの処理装置の異種混合体を含むことができる。例えば、ＣＰＵ５０５は、１つの処理装置を１次処理装置として使用し、別の処理装置をコプロセッサとして使用することができる。別の例では、ＣＰＵ５０５が、１つまたは複数のマルチコア処理装置および１つまたは複数のシングル・コア処理装置を含むことができる。したがって、コンピューティング・システム５００は、一組の処理装置を横切る任意の数の実行コアを含むことができる。キーボード、ポインティング・デバイスおよび表示装置に関して言うと、これらのコンポーネントは、当業者によく知られているコンポーネントを使用して実装することができる。コンピューティング・システム５００に他のコンポーネントおよび周辺装置を含めることができることも当業者は認識するであろう。
【００７７】
ＯＳ５１２は、コンピューティング・システム５００内のハードウェアの直接制御および管理ならびにシステムの動作に対して責任を負うルーチンおよび命令の統合された集合体である。ＯＳ５１２はさらに、１つまたは複数のアプリケーション５１５などのアプリケーション・ソフトウェアおよびデバイス・ドライバをランさせるための土台を提供する。例えば、ＯＳ５１２は、資源配分、スケジューリング、入力／出力制御、メモリ管理などのサービスを実行することができる。ＯＳ５１２は主にソフトウェアとすることができるが、部分的なハードウェア実施態様または完全なハードウェア実施態様およびファームウェアを含むこともできる。本教示の原理と整合したオペレーティング・システムのよく知られている例は、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（例えばＷＩＮＤＯＷＳ  ＣＥ、ＷＩＮＤＯＷＳ  ＮＴ、ＷＩＮＤＯＷＳ  ２０００、ＷＩＮＤＯＷＳ  ＸＰおよびＷＩＮＤＯＷＳ  ＶＩＳＴＡ）、Ｍａｃ  ＯＳ、Ｌｉｎｕｘ（登録商標）、ＵＮＩＸ（登録商標）、ＯＲＡＣＬＥ  ＳＯＬＡＲＩＳ、ＯＰＥＮ  ＶＭＳおよびＩＢＭ  ＡＩＸなどである。
【００７８】
ワーキング・メモリ５１０は、コンピューティング・システム５００の１次記憶域の役目を果たし、ＣＰＵ５０５上でランしているアプリケーション５１５によってアクティブに使用されるデータを保持する。アプリケーション５１５は、インキュベータ・システム１０５および／またはインキュベータ・システム・ジェネレータ・エンジン２５０のコンピュータ・プログラム実施形態の少なくとも１つのコピーを含むことができる。アプリケーション５１５が、ランタイム中に一組の特定のタスクを実行するようコンピューティング・システム５００に命令する一組のコンピュータ命令をそれぞれが含むソフトウェア・プログラムであること、および本教示の実施形態によれば、「アプリケーション」が、アプリケーション・ソフトウェア、アプリケーション・プログラム、デバイス・ドライバおよび／またはプログラムと相互に交換可能に使用されることがあることを当業者は認識するであろう。ワーキング・メモリ５１０は、ランダム・アクセス・メモリまたは当業者によく知られている後述する他の形態のメモリとして実装することができる。
【００７９】
図５に示されているように、コンピューティング・システム５００をネットワーク５５０に接続することができ、さらに、ネットワーク５５０を介して遠隔コンピュータ５６０およびデータベース５７０に接続することができる。コンピューティング・システム５００および／または図５に示されたシステム全体を使用して、本発明と整合した実施形態を実施することができる。
【００８０】
以上の説明は例であり、当業者には、構成および実施態様の変更が思い浮かぶであろう。例えば、本明細書に開示された実施形態に関連して説明した例示的なさまざまな論理、論理ブロック、モジュールおよび回路は、本明細書に記載された機能を実行するように設計された汎用処理装置（例えばＣＰＵ５０５）、特定用途向け集積回路、フィールド・プログラマブル・ゲート・アレイもしくは他のプログラマブル論理デバイス、ディスクリート・ゲート（ｄｉｓｃｒｅｔｅ  ｇａｔｅ）もしくはトランジスタ論理、ディスクリート・ハードウェア・コンポーネント、またはこれらの任意の組合せによって実装または実行することができる。汎用処理装置はマイクロプロセッサとすることができるが、あるいはこの処理装置を、従来の処理装置、コントローラ、マイクロコントローラまたは状態機械とすることもできる。処理装置を、コンピューティング・デバイスの組合せ、例えばマイクロプロセッサ、複数のマイクロプロセッサまたはそのような他の構成の組合せとして実装することもできる。
【００８１】
１つまたは複数の例示的な実施形態では、説明した機能を、ハードウェア、ソフトウェア、ファームウェアまたはこれらの組合せとして実現することができる。ソフトウェア実施態様に関して、本明細書に記載された技法は、本明細書に記載された機能を実行するモジュール（例えば手順、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェア・パッケージ、クラスなど）によって実現することができる。モジュールは、情報、データ、引き数、パラメータまたはメモリ内容を渡しかつ／または受け取ることによって別のモジュールまたはハードウェア回路に結合することができる。情報、引き数、パラメータ、データなどは、メモリ・シェアリング、メッセージ・パッシング、トークン・パッシング、ネットワーク伝送などを含む適当な手段を使用して渡し、転送しまたは伝送することができる。ソフトウェア・コードは、メモリ・ユニットに記憶し、処理装置によって実行することができる。メモリ・ユニットは、処理装置内または処理装置外に実装することができ、処理装置外に実装する場合には、当技術分野で知られているさまざまな手段によって、メモリ・ユニットを処理装置に通信可能に結合することができる。
【００８２】
ソフトウェアとして実現する場合、これらの機能は、１つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶し、またはコンピュータ可読媒体を介して伝送することができる。コンピュータ可読媒体は、有形の非一時的コンピュータ記憶媒体と通信媒体の両方を含み、これには、１つの場所から別の場所へのコンピュータ・プログラムの転送を容易にする任意の媒体が含まれる。記憶媒体は、コンピュータがアクセスすることができる使用可能な有形の非一時的媒体とすることができる。例を挙げると、限定はされないが、このような有形の非一時的コンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、フラッシュ・メモリ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置、または所望のプログラム・コードを命令の形でもしくはデータ構造体の形で担持しもしくは記憶する目的に使用することができ、コンピュータがアクセスすることができる他の媒体を含むことができる。本明細書で使用される用語ディスク（ｄｉｓｋ）およびディスク（ｄｉｓｃ）は、ＣＤ、レーザ・ディスク（ｄｉｓｃ）、光ディスク（ｄｉｓｃ）、ＤＶＤ、フレキシブル・ディスク（ｄｉｓｋ）およびＢｌｕ−ｒａｙディスク（ｄｉｓｃ）を含み、ディスク（ｄｉｓｋ）は通常、データを磁気的に複製し、ディスク（ｄｉｓｃ）は、レーザによってデータを光学的に複製する。接続をコンピュータ可読媒体と呼ぶのも適切である。例えば、ソフトウェアが、同軸ケーブル、光ファイバ・ケーブル、撚り線対もしくはディジタル加入者線（ｄｉｇｉｔａｌ  ｓｕｂｓｃｒｉｂｅｒ  ｌｉｎｅ）（「ＤＳＬ」）技術、または赤外線、電波、マイクロ波などの無線技術を使用してウェブサイト、サーバまたは他の遠隔源から伝送される場合、同軸ケーブル、光ファイバ・ケーブル、撚り線対もしくはＤＳＬ技術、または赤外線、電波、マイクロ波などの無線技術は媒体の定義に含まれる。上記の技術の組合せもコンピュータ可読媒体の範囲に含めるべきである。
【００８３】
一実施形態では、単一のまたは統合されたと記述された資源を、複数のまたは分散した資源とすることができ、実施形態では、多数のまたは分散したと記述された資源を、結合することができる。したがって、本教示の範囲は、以下の特許請求の範囲にのみによって限定されることが意図されている。特定の実施形態に関して本発明を説明したが、多数の変更が可能であることを当業者は認識するであろう。例えば、プロキシ・サーバは、本明細書で述べられていない追加の機能を有することができる。加えて、本開示の実施形態は、専用コンポーネントおよび／またはプログラム可能な処理装置および／またはプログラム可能な他のデバイスの任意の組合せを使用して実現することができる。以上に記載した実施形態は、特定のハードウェア・コンポーネントおよびソフトウェア・コンポーネントに言及することがあるが、ハードウェア・コンポーネントおよび／またはソフトウェア・コンポーネントのさまざまな組合せを使用することもできること、ならびにハードウェアとして実現されると記述された特定の動作をソフトウェアで実現することができ、逆に、ソフトウェアとして実現されると記述された特定の動作をハードウェアで実現することができることを当業者は理解するであろう。
【図１】
2015130162.tif 000008
【図２】
2015130162.tif 000009
【図３】
2015130162.tif 000010
【図４】
2015130162.tif 000011
【図５】
2015130162.tif 000012
【手続補正書】
【提出日】平成27年3月30日(2015.3.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２０
【補正方法】変更
【補正の内容】
【請求項２０】
長期間シミュレートされるネットワーク環境内においてマルウェア・オペレータの行動パターンを追跡するためのプログラムであって、
仮想組織体を記述した組織体データを受け取るステップと、
前記組織体データに関係する追加のデータを得るステップと、
前記仮想組織体のシミュレートされたコンピュータ・ネットワークを、前記組織体データに基づいて提供するステップと、
前記シミュレートされたコンピュータ・ネットワーク上に少なくとも１つのマルウェアをインストールするステップと、
前記シミュレートされたコンピュータ・ネットワークと前記マルウェアのオペレータとの間の１つまたは複数の対話を監視するステップと、
前記１つまたは複数の対話に基づいて、前記マルウェアの前記オペレータを特徴づけるマルウェア・オペレータ・プロフィールを構築するステップと
をコンピュータに実行させるためのプログラム。
【外国語明細書】
2015130162000001.pdf