【文献】
八木 毅 Takeshi Yagi,攻撃空間の探索範囲を拡大するFTPハニーポットの設計 Design of an FTP Honeypot for Expanding the Search Scope in Attack Space,CSS2012コンピュータセキュリティシンポジウム2012論文集 合同開催 マルウェア対策研究人材育成ワークショップ2012 情報処理学会シンポジウムシリーズVol.2012No.3 [CD−ROM],日本,一般社団法人情報処理学会 コンピュータセキュリティ研究会,2012年10月23日,第2012巻,p.820-827
(58)【調査した分野】(Int.Cl.,DB名)
前記ネットワーク・データが、マシンの数、マシンの1つもしくは複数のタイプ、マシンの1つもしくは複数のオペレーティング・システム、前記コンピュータ・ネットワークに関連づけられた1つもしくは複数の出口ポイント、またはこれらの組合せを含む請求項2に記載のシステム。
前記処理装置がさらに、前記組織体データの少なくとも一部分をユーザから得るためのユーザ・インタフェースを、前記仮想組織体の前記組織体データに基づいて提供するように構成された請求項4に記載のシステム。
前記処理装置がさらに、前記仮想組織体の前記シミュレートされたコンピュータ・ネットワークを、1日よりも長い所定の期間の間、提供するように構成された請求項1に記載のシステム。
前記処理装置がさらに、前記シミュレートされたコンピュータ・ネットワークと前記マルウェアの前記オペレータの間の前記1つまたは複数の対話を前記所定の期間の間、監視するように構成された請求項12に記載のシステム。
前記処理装置がさらに、前記マルウェアの前記オペレータと前記シミュレートされたコンピュータ・ネットワークの間の前記1つまたは複数の対話の検出に続いて、前記マルウェアの前記オペレータを、前記マルウェア・オペレータ・プロフィールに基づいて識別するように構成された請求項1に記載のシステム。
前記マルウェア・オペレータ・プロフィールが、前記マルウェアの前記オペレータが別のコンピュータ・ネットワークと対話したときに前記マルウェアの前記オペレータを識別するために使用される請求項14に記載のシステム。
前記マルウェアの前記オペレータが別のコンピュータ・ネットワークにアクセスしようとしていることを、前記マルウェア・オペレータ・プロフィールを使用して識別するように構成されたセキュリティ・プログラムを構築するステップをさらに含む請求項16に記載の方法。
前記セキュリティ・プログラムが、前記マルウェアの前記オペレータが前記別のコンピュータ・ネットワークにアクセスすることを阻止するように構成された請求項18に記載の方法。
【発明を実施するための形態】
【0012】
本開示は、マルウェア・オペレータに知られることなしに、かつマルウェア・オペレータによって検出されることなしにマルウェア・オペレータのアクションを記録、捕捉、観察および研究する方法、システムおよび製品の例を提供する。
【0013】
前述のとおり、多くのタイプのマルウェアが、ネットワーク化されたシステムおよび/またはネットワーク化されたシステム内のノード(例えばコンピュータ、マシン、デバイスなど)にマルウェア・オペレータが密かにアクセスすることを可能にする。マルウェア・オペレータは、マルウェアを介して、ネットワーク化されたシステムおよび/またはネットワーク化されたシステム内のノードと対話することができる。以後、このようなシステムを犠牲システムと呼ぶ。犠牲システムに最初にアクセスすると、マルウェア・オペレータ(開発者である可能性は低い)は通常、その犠牲システムを探査し、その犠牲システムのプロフィールを構築し、その犠牲システムが、マルウェア・オペレータがさらに利用したいシステムであるかどうか、例えばその犠牲システム内の機密内容を盗み、改変しかつ/もしくは破壊し、その犠牲システムを混乱させ、その犠牲システムをボット(bot)に変え、または他の違法なアクティビティもしくは他の悪意あるアクティビティを実行したいシステムであるかどうかを識別する。その犠牲システムを利用したいと判断すると、マルウェア・オペレータは続いて、犠牲システム内により多くのアクセス・ポイントを有するように、また、犠牲システム内のより多くのノードおよびそれらのノードの情報に違法にアクセスすることができるように、犠牲システム内に追加のマルウェアを配置し、展開させようとすることがある。マルウェア・オペレータは、配置されたマルウェアを制御し、いわゆる「脚本(playbook)」に従って、任務を遂行し、犠牲システム上の潜在的に機密性の資料の違法な収集、改変および/または破壊を実行することができる。
【0014】
マルウェア・オペレータは、スパイ・マルウェアなどのあるタイプのマルウェアを1つまたは複数の犠牲システムに、ターゲット方式で送達することができる。マルウェア・オペレータは、スパイ・マルウェアを使用して、取引上の秘密、業界および団体の秘密データ、政府の機密データなどの情報を犠牲システムから集めることに焦点を合わせた攻撃を実行することができる。スパイ・マルウェアは、ゼロデイ脆弱性(zero−day vulnerability)、パッチ修正された脆弱性(patched vulnerability)などの犠牲システムの脆弱性を利用することができる。スパイ・マルウェアは、多段階で送達されることがあり、1つまたは複数の段階において、ランする前に、犠牲システム内でしばらくの間(例えば数分間または数時間)休眠することがある。犠牲システムに送達されたスパイ・マルウェアのインスタンスを完全にランさせるために、マルウェア・オペレータは犠牲システムを魅了しなければならない。マルウェア・オペレータおよび/またはスパイ・マルウェアは、そのインスタンスによって実行されるアクティビティを、犠牲システムの構成、能力、脆弱性などに基づいて調整することができる。一般に、コマンド・アンド・コントロール(command and control)は、スパイ・マルウェアの少数のインスタンスだけに対して使用される。
【0015】
マルウェア・オペレータはさらに、他のタイプのマルウェアを犠牲システムに、ジェネリック(generic)方式で送達することができ、このようなマルウェアは、犠牲システムのパッチ修正された脆弱性を利用する。このようなマルウェアは1段階で送達することができ、犠牲システムに送達された後に、マルウェア・オペレータとの対話なしで素早くインストールし、ランさせることができる。このようなマルウェアはどこにでもインストールすることができ、ターゲットを選ばないことがある。すなわち、このようなマルウェアのインスタンスは、犠牲システムの構成および能力とは無関係に同じようにランすることができる。一般に、コマンド・アンド・コントロールは、このようなマルウェアの多くのインスタンス、例えば数百または数千のインスタンスに対して使用される。
【0016】
犠牲システムにアクセスし、犠牲システムを探査し、利用する際、マルウェア・オペレータは、いくつかの異なるアクションを実行することができ、それぞれの個々のマルウェア・オペレータは、それらのアクションを、それぞれの個々のマルウェア・オペレータに固有の、またはそれぞれの個々のマルウェア・オペレータそのものと識別される一種の署名またはプロフィールを提供するような方式で実行することができる。例えば、第1のマルウェア・オペレータは一般に、その日のある時刻に犠牲システムにアクセスし、第1のマルウェア・オペレータに典型的なある種のシーケンスでアクションを実行し、第2のマルウェア・オペレータは一般に、その日の別の時刻に犠牲システムにアクセスし、第2のマルウェア・オペレータに典型的な別のシーケンスでアクションを実行する。したがって、それぞれのマルウェア・オペレータが犠牲システムと対話する方法によって、異なるマルウェア・オペレータを識別または区別することができる。
【0017】
本開示に記載された方法、システムおよび製品の例は、「インキュベータ・システム」を提供する。このインキュベータ・システムは、少なくとも1つの仮想組織体を含み、このインキュベータ・システムは、マルウェア・オペレータが、その仮想組織体を実在する犠牲システムであると考え、その仮想組織体がインキュベータ・システムによって提供されたシステムであるとは認識せずに、そのインキュベータ・システムおよび仮想組織体と対話するようにそそのかされるような態様で、実在する犠牲システムをシミュレートもしくは複製し、または他の方法で模倣する。このインキュベータ・システムは、インキュベータ・システムおよび/または仮想組織体と対話するマルウェア・オペレータのアクションを監視し、記録し、時間順に記録し、または他の方法で捕捉し、インキュベータ・システムおよび/または仮想組織体と対話するそれぞれの個々のマルウェア・オペレータを記述したプロフィールまたは署名であって、そのようなそれぞれの個々のマルウェア・オペレータを識別するのに使用することができるプロフィールまたは署名を生成することを可能にすることができる。いくつかの実施態様では、このインキュベータ・システムがさらに、マルウェア・オペレータがインキュベータ・システムと対話しているときに、インキュベータ・オペレータが、それぞれのマルウェア・オペレータをリアルタイムで観察および研究することを可能にし、さらに、それぞれのマルウェア・オペレータとインキュベータ・システムの対話を記録することを可能にすることができる。
【0018】
このインキュベータ・システムおよび仮想組織体は、実在する団体および組織体のコンピュータ・ネットワークおよびコンピュータ・システムであるように見えるため、このインキュベータ・システムおよび仮想組織体は、対話するようマルウェア・オペレータをそそのかす。マルウェア・オペレータと仮想組織体の対話を記録することは、1つまたは複数のインキュベータ・オペレータが、実在する組織体のコンピュータ・ネットワークおよびコンピュータ・システム上でマルウェア・オペレータが実行しそうなことを発見することを可能にする。本開示と整合したさまざまな実施態様は、ログインしたユーザ、記憶された実在する文書、さまざまなマシン上にインストールされた実在するアプリケーションなどを有する実在するネットワークのように見える、少なくとも1つの仮想組織体のコンピュータ・ネットワーク環境を自動的に生成する。このような実施態様は、それぞれのマルウェア・オペレータがとるあらゆるアクション、それぞれのマルウェア・オペレータがコピーするあらゆるファイルなどを追跡する診断能力を有する。一般に、マルウェア・オペレータがインキュベータ・システムおよび仮想組織体と対話すればするほど、この環境内で起こるあらゆることが良好に追跡および記録され、したがって、インキュベータ・システムが、それぞれのマルウェア・オペレータに関するインテリジェンス(intelligence)を構築することが可能になる。
【0019】
さまざまな実施形態で、このインキュベータ・システムは、実在するシステムまたは偽のシステムとすることができるターゲット・システムをエミュレートする短期および長期の分析環境であって、レジストリ、ファイル・システム、プロセスおよび/またはネットワーク・アクティビティ・ストリームがリアルタイムで時間順に完全に記録される分析環境を提供することができる。このインキュベータ・システムは、分析環境内のマシンに対するアクティビティ・ストリームを、マシンごとに時間順に記録することができる。1つまたは複数のインキュベータ・オペレータは、このインキュベータ・システムを使用して、分析環境内で実行する1つもしくは複数のターゲットであるマルウェア(以後、ターゲット・マルウェア)を選択し、かつ/またはターゲット・マルウェア・オペレータを引きつけるであろうターゲットである内容(以後、ターゲット内容)を提供するなどすることによって、ターゲットであるマルウェア・オペレータ(以後、ターゲット・マルウェア・オペレータ)にアピールしそうな少なくとも1つのターゲット・システムをエミュレートする少なくとも1つの分析環境を設計しかつ/または調整することができる。このインキュベータ・システムは、この分析環境を動的に構築すること、分析環境の出口ポイントおよびルータを構成すること、ターゲット・マルウェアおよび/またはターゲット内容を分析環境内に配置すること、分析環境内のターゲット・マルウェアおよび/またはターゲット内容を監視すること、ならびに環境間および/または環境内アクティビティのストリームを、近リアルタイム分析のためデータベース・サーバに時間順に記録することができる。その際に、インキュベータ・オペレータは、ターゲット・マルウェア・オペレータのアクティビティ、ツール、方法など、ターゲット・マルウェア・オペレータに関するインテリジェンスを集めることができる。アクティビティの例は、マルウェア・オペレータの実行されたコマンド(タイポ(typo)および他のイディオシンクラシー(idiosyncrasy)を含む)、データ、フォルダ、ファイル(例えば機密文書、コンフィギュレーション・ファイルなど)などの関心の内容、アクティビティの持続時間、アクセス時間、アクセス位置などを含む。ツールの例は、追加のマルウェア段階およびインフラストラクチャ、合法的なサードパーティ・ツール、プログラム・スイッチならびに探索方法などを含む。方法の例は、マルウェア・オペレータが分析環境上でマルウェアを展開させる方式および/または手段、秘密裏抽出(exfiltration)後の文書処理、ターゲット・マルウェアおよび/またはターゲット・マルウェア・オペレータとコマンド・アンド・コントロール・ノードの対話などを含む。ターゲット・ネットワーク・エミュレーションが完了した後、インキュベータ・システムは、分析環境およびそれから集めた情報をアーカイブすることができる。
【0020】
さらに、仮想組織体内に先制的な監視および防御を配置することによって、インキュベータ・システムは、マルウェア・オペレータのアクティビティのプロフィールを構築し、マルウェア・オペレータの収集目標を研究することができる。その際、インキュベータ・システムは、マルウェア・オペレータの脚本を理解し複製するためのツールおよびデータをインキュベータ・オペレータに提供する。この脚本は、マルウェア・オペレータの共通のプレー(play)を含むことができる。マルウェア・オペレータ間の共通のプレーには、例えば、初期マルウェアを展開させ、それを使用して、少なくとも1つの犠牲システム上での初期データ収集を自動化すること、犠牲システムを感染させたのに続いて、犠牲システムのフィンガープリンティングを手動で実施すること、犠牲システムにインストールされたマルウェアのサニティ・チェック(sanity check)を実行すること、犠牲システム上に追加のツールおよび/またはペイロードを配置すること、データおよび文書を探索し、かつ/またはそれらを犠牲システムから秘密裏に抽出すること、秘密裏抽出後処理を実行すること、犠牲システム内で横に移動させまたは犠牲システムに接続された他のシステムに移動させることなどが含まれる。
【0021】
このように、このインキュベータ・システムは、ジェネリックな環境内で脆弱なサービスをランさせ、それらを監視し、攻撃者をおびき寄せるための追加の内容を配置せず、脆弱なサービスを利用することによって攻撃者が思いのままに入り込むハニーポット(honeypot)、ハニーネット(honeynet)およびサンドボックス(sandbox)とは異なる。このジェネリックな環境は静的であり、完了後に元に戻され、ジェネリックな環境からのデータ・ログは集められ、分解後に広められる。
【0022】
概要
図1は、本発明の原理と整合した、マルウェアをインキュベートする一例としてのシステム100のブロック図である。示された例では、インキュベータ・システム105は、少なくとも1つの仮想組織体110および少なくとも1つのマルウェア115を含む。さまざまな実施態様で、インキュベータ・システム105は、仮想組織体110を構成する実在するマシンおよび/または仮想マシンを受け入れランさせる、例えば
図5に示されたコンピューティング・システムなどの任意の数の実在するコンピューティング・マシンおよび/または仮想コンピューティング・マシンとすることができる。
【0023】
図1に示された一例としてのシステム100では、インキュベータ・システム105が、インキュベータ・システム105を制御および操作するインキュベータ・オペレータ130に通信可能に接続されている。インキュベータ・オペレータ130の一例は、マルウェアおよびハッカーから会社を守る組織体を含む。インキュベータ・オペレータ130は、インキュベータ・システム105を使用して、1つまたは複数の分析環境(例えば仮想組織体110)を、1つまたは複数のターゲット・マルウェア・オペレータにアピールしそうな少なくとも1つの犠牲システムをエミュレートするように設計、調整および/または構築することができる。例えば、インキュベータ・オペレータ130は、仮想組織体110内で実行するマルウェア115を選択し、かつ/または一組のマルウェア・オペレータ121〜123との対話を誘引するであろうターゲット内容を提供することができる。マルウェア115は、マルウェア・オペレータ121〜123に通信可能に接続することができ、マルウェア・オペレータ121〜123との対話を誘引するために仮想組織体110内の犠牲システム内で意図的にランさせることができる。一般に、マルウェア・オペレータ121〜123はいずれも、インキュベータ・オペレータ130からの許諾または許可なしにマルウェア115を介してインキュベータ・システム105および/または仮想組織体110にアクセスする個体である。一般に、マルウェア・オペレータ121〜123は、組織体の情報を傷つけまたは組織体から情報を盗み出したいバッド・アクター(bad actor)であって、仮想組織体110が現実の組織体のコンピュータ・ネットワークでないことに気づいていないバッド・アクターである。
【0024】
インキュベータ・システム105は、仮想組織体110を動的に構築すること、仮想組織体110の1つまたは複数の出口ポイントおよびルータを構成すること、マルウェア115および/または内容を仮想組織体110内に配置し、それらを監視すること、ならびに組織体間および/または組織体内アクティビティのストリームを、近リアルタイム分析のため少なくとも1つのデータベース140に時間順に記録することができる。インキュベータ・オペレータ130は、インキュベータ・システム105、仮想組織体110およびマルウェア115の動作およびアクティビティをリアルタイムで監視し、追跡することができる。さまざまな実施態様で、インキュベータ・システム105は、マルウェア・オペレータ121〜123のアクティビティをインキュベータ・オペレータ130が追跡し記録することができるように、とられたあらゆるアクション、アクセスされたあらゆるファイル、ならびに一般にインキュベータ・システム105および仮想組織体110内で起こったあらゆることを書き留め、記録し、または他の方法で追跡する診断能力を有する。
【0025】
さまざまな実施態様で、仮想組織体110は、実在する会社もしくは組織体または他の実在する実体のシステム、ネットワークおよび/またはマシンのように見えるように生成された偽の環境である。前述のとおり、マルウェア・オペレータ121〜123が騙され、欺かれ、または惑わされて、実在する組織体のコンピューティング資源と対話していると信じるように、仮想組織体110を、実在する組織体をぴったりとシミュレートするように設計することができる。さまざまな実施態様で、仮想組織体110は、特定の団体に属するコンピュータのネットワークをシミュレートすることができ、ログインしたまたはログインしていないユーザ(例えば従業員)、実在する文書、実在するウェブ・ページなどのシミュレーションを含むことができる。大部分の実施態様で、実在する団体ネットワークを模倣するように仮想組織体110を組織することができる。したがって、仮想組織体110は、マルウェア・オペレータ121〜123には実在する会社または実体のように見える偽の環境である。実在する組織体のシミュレーションが完了したのに続いて、インキュベータ・システム105は、仮想組織体110および仮想組織体110から集めた情報をアーカイブすることができる。
【0026】
さまざまな実施態様で、仮想組織体110のネットワークは通常、ドメイン・コントローラおよび1つまたは複数のホストを含み、1つまたは複数のホストは、全てのプロセスのアクティビティを時間順に記録するシステム・イベント・モニタ(System Event Monitor)(「sEM」)アプリケーションを含みまたはこれをランさせることができる。例えば、このsEMアプリケーションは、全てのファイル・アクティビティ、レジストリ・アクティビティ、ネットワーク・アクティビティ、ならびに/またはインキュベータ・システム105で生成および破壊されたプロセスおよびスレッドを含むアクティビティを記録することができる。インキュベータ・システム105は、仮想組織体110内のマシンに対するアクティビティを、マシンごとに時間順に記録することができる。このsEMアプリケーションは、アクティビティおよびイベントを記録するカーネル内のドライバを使用して実装することができ、インキュベータ・システム105は、記録されたアクティビティおよびイベントに関連した情報に関してsEMドライバにポーリングし、その情報を追跡情報にパッケージ化し、その追跡情報を、インキュベータ・オペレータ130および/またはデータベース140に、例えばローカル・ルータ(図示せず)を介して送信するサービスを含むことができる。さまざまな実施態様で、イベントおよびアクティビティの記録および時間順記録は、1つまたは複数のマルウェア・オペレータ121〜123が仮想組織体110内の犠牲マシンにアクセスしているか否かに関わらず続けることができる。
【0027】
インキュベータ・システム105は、インキュベータ・オペレータ130がアクセスすることができるデータベース140に追跡情報を送ることができる。さまざまな実施態様で、インキュベータ・オペレータ130は、その追跡情報をリアルタイムで研究、分析または調査することができる。インキュベータ・システム105は、データベース140に関連づけられた監視プログラム(図示せず)を含むことができ、この監視プログラムは、インキュベータ・システム105が、アイドル環境規準(例えばアイドル・ベースライン)の外側の1つまたは複数のアクティビティの発生を検出したときに、インキュベータ・オペレータ130に(例えばテキスト・メッセージ、電子メールなどによって)警報を発するように構成される。このようなアクティビティの発生が、1つまたは複数のマルウェア・オペレータ121〜123が仮想組織体110と対話していることを示していることがあるためである。
【0028】
インキュベータ・システム105および/またはインキュベータ・オペレータ130は、インキュベータ・システム105の追跡能力によって集められ提供されたインテリジェンスに基づいて、マルウェア・オペレータ121〜123に対する一組のプロフィール142〜146を生成することができる。プロフィール142〜146は、マルウェア・オペレータ121〜123のアクション、対話、属性などを特徴づける、それぞれのマルウェア・オペレータによって使用される伝送制御プロトコル、それぞれのマルウェア・オペレータによって使用される特徴的な動作シーケンス、それぞれのマルウェア・オペレータに関連した平均ログオン時間および持続時間などの情報を含むことができる。マルウェア・オペレータ121〜123のマルウェア・オペレータ・プロフィール142〜146は、マルウェア・オペレータ121〜123が、仮想組織体110および/または仮想組織体110内の少なくとも1つの犠牲システムにいつアクセスし、そのアクセスをどのくらいの間、維持したのかについての情報、マルウェア・オペレータの出所である地理的エリアを示す情報、マルウェア・オペレータ121〜123が犠牲システムおよび/または仮想組織体110上に配置したアプリケーションまたはソフトウェアのリスト、マルウェア・オペレータ121〜123によって使用された通信チャネルを記述した情報、マルウェア・オペレータ121〜123が犠牲マシンおよび/または仮想組織体110へのアクセスを手渡した他のマルウェア・オペレータを記述した情報など、マルウェア・オペレータ121〜123に関連した情報を含むことができる。プロフィール142〜146は、例えば「このアクティビティは、リトアニア(Lithuania)国に拠点を置くオペレータXYZのパターンと合致している」といった形での、同じマシンまたは異なるマシン上でのマルウェア・オペレータの後の識別を可能にする。
【0029】
さらに、プロフィール142〜146を構築することによって、インキュベータ・システム105は、インキュベータ・オペレータ130が、マルウェア・オペレータのアクティビティ、ツール、方法など、マルウェア・オペレータ121〜123に関するインテリジェンスを集めることを可能にする。マルウェア・オペレータ121〜123によって実行されるアクティビティ、および/またはマルウェア・オペレータ121〜123に関連したアクティビティは、実行されたコマンド(タイポおよび他のイディオシンクラシーを含む)、データ、ファイル、フォルダ(例えば機密文書、コンフィギュレーション・ファイルなど)などの、アクセスされ/改変され/消去された内容などを含む。アクティビティに関係する情報は、それぞれのアクティビティの持続時間、アクセス時間、アクセス位置などを含む。マルウェア・オペレータ121〜123によって使用されるツールおよび/またはマルウェア・オペレータ121〜123に関連したツールは、インフラストラクチャ(例えば通信チャネル、コマンド・アンド・コントロール・サーバなど)、追加のマルウェア・ステージ、合法的なサードパーティ・ツール(例えばアーカイブ・ユーティリティ)、プログラム・スイッチ、探索方法などを含む。マルウェア・オペレータ121〜123によって使用される方法および/またはマルウェア・オペレータ121〜123に関連した方法は、マルウェア・オペレータ121〜123が仮想組織体110内で追加のマルウェアを展開させる方式および/または手段、秘密裏抽出後の文書処理、マルウェア115および/またはマルウェア・オペレータ121〜123とコマンド・アンド・コントロール・サーバ(図示せず)の対話などを含む。インキュベータ・システム105は、1つまたは複数のプロフィール142〜146に含まれる情報をレポートに入れ、そのレポートを公開し、またはインキュベータ・オペレータ130の顧客に配布することができる。
【0030】
さらに、インキュベータ・システム105は、仮想組織体110にアクセスするためにマルウェア・オペレータ121〜123によって実行されるアクティビティのシーケンス、仮想組織体110にアクセスした後にマルウェア・オペレータ121〜123によって実行されるアクティビティのシーケンスなどの1つまたは複数のマルウェア・オペレータ121〜123による共通の「プレー」を、インキュベータ・オペレータ130が識別するのを、プロフィール142〜146を使用して助けることができる。共通のプレーの例には、マルウェアを展開させ、それを使用して、犠牲システムにアクセスし、犠牲システムに関連したデータの初期収集を自動化すること、犠牲システムにアクセスしたのに続いて犠牲システムのフィンガープリンティングを手動で実施すること、犠牲システムにインストールされたマルウェアのサニティ・チェックを実行すること、犠牲システム上に追加のツールおよび/またはペイロードを配置すること、データおよび文書を探索し、それらを犠牲システムから秘密裏に抽出すること、犠牲システム内で横に移動させまたは犠牲システムに接続された他のシステムに移動させることなどが含まれる。
【0031】
例えば、少なくとも1つのマルウェア・オペレータ121〜123は、仮想組織体110内の少なくとも1つの犠牲システムを、第1ステージ・マルウェアに感染させることができ、マルウェア・オペレータ121〜123は、この第1ステージ・マルウェアを使用して、犠牲システムにアクセスし、犠牲システムに関連したデータの初期収集を、例えばランしているプロセスおよび/またはサービスを捕捉し、ハード・ディスクおよび/またはプロセスの詳細を集め、1つまたは複数の外部IPアドレスを識別し、1つまたは複数のホスト名を捕捉し、犠牲システムが仮想マシンであるか否かを判定することなどによって自動化することができる。犠牲システムにアクセスしたのに続いて、マルウェア・オペレータ121〜123は、例えば「ipconfig /all」、「net view」、「net localgroup administrators」、「traceroute」などの第1のタイプのコマンド、または「tasklist /v」、「net start」、「net view /domain」、「netstate −ano」などの第2のタイプのコマンドを実行することによって、犠牲システムのフィンガープリンティングを手動で実施することができる。マルウェア・オペレータによって実行されるコマンドのタイプに基づいて、インキュベータ・システム105および/またはインキュベータ・オペレータ130は、そのマルウェア・オペレータが機会主義的な(opportunistic)オペレータであるのかまたはフォーカスされた(focused)オペレータであるのかについての予備的判定を実施することができる。いくつかのインスタンスでは、犠牲システムをさらに探査しかつ/または利用するのか否かをマルウェア・オペレータ121〜123が判断するときに、マルウェア・オペレータが、犠牲システム上でフィンガープリンティング・コマンドだけをランさせることができる。
【0032】
上記の例に続いて、マルウェア・オペレータ121〜123は、例えばマルウェアに対するフォルダ位置をチェックすることによって(例えば「cd C:\DOCUME〜1\XXX\LOCALS〜1\Temp」、「cd 〜hf〜」、「dir」などの、コマンドを実行することによって)、またはマルウェア・オペレータが、マルウェア・オペレータのトラックをカバーしたい場合にクリーンアップすることによって(例えば「taskkill /im adobere.exe/f」、「net time \\127.0.0.1」、「at \\127.0.0.1 2:24 cmd/c “del \”C:\Documents and Settings\XXX\Local Settings\Temp\〜hf〜\adobe_sl.exe\”」などのコマンドを実行することによって、犠牲システム上にインストールされたマルウェアのサニティ・チェックを実行することができる。マルウェア・オペレータ121〜123は、例えば秘密裏抽出を支援する追加のマルウェアまたは合法的なツールを配置することによって、追加のツールおよび/またはペイロードを犠牲システム上に配置することができ、その間に、マルウェア・オペレータ121〜123は、ペイロードを検出する際にインキュベータ・システム105を助けることができる方法で、2次インフラストラクチャを通して追加のツールを得、かつ/または合法的なソフトウェアのファイル名を変更することができる。合法的なツールの例には、Cain and Abel、NBTScanner、gsecdump、pstools、遠隔管理ツールの内側の機能を可能にする動的リンキング・ライブラリ、アーカイブ・ユーティリティ(例えばRARユーティリティ、ZIPユーティリティなど)、ドライブ・エヌメレータ(drive enumerator)などが含まれる。マルウェア・オペレータ121〜123は、例えば犠牲システム上の関心の内容(例えばデータ、ファイル、フォルダなど)の位置を突き止め、アーカイブ・ファイル(例えばRARファイル、Zipファイルなど)、ネットワーク・ポートまたはネットワーク接続(例えばFTP接続、HTTP接続など)などの少なくとも1つの秘密裏抽出ポイントを得、その秘密裏抽出ポイントを通して関心の内容を秘密裏に抽出することによって、犠牲システムからのデータおよびファイルを探索し、それらを秘密裏に抽出することができる。マルウェア・オペレータ121〜123は、大量に(例えばシステム・データでない全てのファイルおよびフォルダを抽出することによって)、または選択的に(例えば関心の特定の内容についてフォルダおよびファイルをチェックし、その関心の特定の内容だけを抽出することによって)、関心の内容を秘密裏に抽出しようとすることができる。マルウェア・オペレータ121〜123はさらに、例えば秘密裏抽出ポイントを開き/変更し/閉じることによって、または秘密裏に抽出された関心の内容を開き/実行する(例えばコマンド・アンド・コントロール・サーバ上の盗まれたファイルをプロキシ・ネットワークまたはソース・ネットワークを介して開きかつ/または実行する)ことによって、秘密裏抽出後処理を実行することができる。いくつかのインスタンスでは、インキュベータ・システム105が、マルウェア・オペレータ121〜123によって実行された抽出後処理を観察することができる。マルウェア・オペレータ121〜123は、犠牲システム内で横に移動させ、または仮想組織体110内の犠牲システムに接続された他のシステムに移動させることを試みることができる。
【0033】
インキュベータ・システム105および仮想組織体110は、いわゆる「ハニーポット」、「ハニーネット」および「サンドボックス」とは極めて異なる。インキュベータ・システム105および仮想組織体110は、ハニーポット、ハニーネットまたはサンドボックスよりもはるかに高いレベルのシミュレーション洗練性およびリアリズムを提供するためである。例えば、ハニーポットまたはサンドボックスは通常、非常に少数の資源などを有する独立型マシンであり、かつ/または非常に少数の資源などを有する独立型マシンであるように見え、このことは、最新のマルウェア・オペレータが、仮想機械チェックおよび他の共通の情報収集アクションを使用してそれらの資源を検出することを容易にする。
【0034】
ハニーポットまたはサンドボックスは組織体全体をシミュレートせず、一方、インキュベータ・システム105のさまざまな実施態様は、リアルなインフラストラクチャを有するリアルな団体環境を模倣する仮想組織体110を生成する。例えば、1つから5つのノードを有し、全てのノードが同等であり、どの1つのノードもある種の重要性または価値を有しない小さなネットワークを有することがあるハニーポット、ハニーネットまたはサンドボックスとは違い、仮想組織体110は、その団体がどのように見えるのか基づく異なる重要性を有するノードを含む団体に関連づけられるようにリアルに構成することができる。他の違いは、
図1に示された例のインキュベータ・システム105およびデータベース140が提供する、ほとんどのシステム・アクティビティまたは全てのシステム・アクティビティの広範囲にわたる時間順記録を、ハニーポット、ハニーネットおよびサンドボックスが提供しないことである。
【0035】
ハニーポット、ハニーネットおよびサンドボックスとの他の違いは、インキュベータ・システム105が、実在する団体または組織体のように見えるように数日から数か月程度の長期にわたってランするのに対して、ハニーポット、ハニーネットおよびサンドボックスは、数分または数時間程度の非常に短い期間の間ランすることである。実際、いくつかのタイプのマルウェアは、ハニーポット/ネットおよびサンドボックスを検出し、それらを、アクションを試みる前に数時間の時間遅延を使用することによって打ち負かすように設計されている。これは、このような遅延の後、大部分のハニーポット/ネットおよびサンドボックスはもはやアクティブではないためである。一実施形態では、1日よりも長い期間、または1週間よりも長い期間、または1か月よりも長い期間にわたって、インキュベータ・システム105が連続的にランする。
【0036】
仮想組織体の自動生成
図2は、本発明の原理と整合した、マルウェアをインキュベートするジェネレータ・システムの一例200のブロック図である。示されているとおり、システム200は、インキュベータ・システム・ジェネレータ・エンジン250を含み、インキュベータ・システム・ジェネレータ・エンジン250は、ユーザ・インタフェース(「UI」)/質問コンポーネント252およびコンフィギュレーション・エキスパンダ・コンポーネント254を含む。さまざまな実施態様で、インキュベータ・システム・ジェネレータ・エンジン250およびインキュベータ・システム・ジェネレータ・エンジン250内のコンポーネントは、例えばサーバ、ノートブック・コンピュータまたは
図5に示されているコンピューティング・システムなどの、処理装置を含む汎用コンピューティング・システムによって実行される命令として、ソフトウェアの形態で実現することができる。
【0037】
さまざまな実施態様で、UI/質問コンポーネント252は、インキュベータ・システム・ジェネレータ・エンジン250によって生み出される仮想組織体110を記述するさまざまな組織体データをUI入力220を介して集めるようユーザ(例えばインキュベータ・オペレータ130)に促し、ユーザと対話する、コンピューティング・システムの表示装置(例えば表示画面または視覚インタフェース)上に現れるグラフィカル・ユーザ・インタフェース(「GUI」)などのUIを生み出すことができる。このUIは、ウェブ・ページとして提示されブラウザを使用してアクセスされるGUIなどのウエブ・ベースのUIとすることができる。ユーザは、例えば仮想組織体110の特性、特徴および属性を含む、仮想組織体110の組織体データを定義しまたは他の方法で指定するため、書式に記入することができる。この書式は、
図2に示されたUI入力220に含まれる特定の情報を尋ねる質問を提示することができる。より具体的には、UI入力220は、少なくとも1つのドメイン221を記述する情報を含むことができ、ドメイン221は、インキュベータ・システム105および仮想組織体110がシミュレートする、例えば「verisign.net」、「example.com」などのドメインとすることができる。
【0038】
UI入力220は、ユーザ数222を記述する情報を含むことができ、ユーザ数222は、インキュベータ・システム・ジェネレータ・エンジン250が、仮想組織体110のアクティブ・ディレクトリ内に何人の仮想ユーザを自動的に生成するのかを指示することができる。
【0039】
UI入力220は、少なくとも1つの産業223を記述する情報を含むことができ、産業223は、指定された産業と整合する仮想組織体110をどのように構築するのかを、インキュベータ・システム・ジェネレータ・エンジン250に指示することができる。この指示には、その産業に関係する予め定められた職員階級制度表または職位表で職員階級級度または職位(および例えばユーザ数222に基づく適切な職位数)を調べることが含まれ、これらの情報は、仮想組織体110の仮想ユーザを記述しかつ/または仮想組織体110の仮想ユーザを在籍させるために使用される。例えば、エンジニアリング産業では、職員階級制度が、ソフトウェア技師および電気技師のいくつかのレベル、最高経営責任者レベルの4つの職位、ならびに人的資源管理者を含むことがある。一般に、インキュベータ・システム・ジェネレータ・エンジン250は、指定された産業における職員階級制度および現実のユーザと整合した特定の職位およびその他の詳細を有する特定の仮想ユーザを自動的に生成することができ、それらのユーザを表すデータをコンフィギュレーション・ファイル260に入力する。いくつかの実施形態では、国勢調査データ、漏洩パスワード・リストまたは現実の情報の他の源を使用して、仮想ユーザが現実のユーザをシミュレートするようにすることができる。
【0040】
UI入力220は、ネットワーク・スキーマ(network schema)およびマシン数227を記述する情報を含むことができ、ネットワーク・スキーマおよびマシン数227は、マルウェア・オペレータ121〜123およびマルウェア115から見え、かつ/またはマルウェア・オペレータ121〜123およびマルウェア115によって「見られる」仮想組織体110の仮想コンピュータ・ネットワークをどのように構築するのかを、インキュベータ・システム・ジェネレータ・エンジン250に指示することができる。一般に、インキュベータ・システム・ジェネレータ・エンジン250は、ユーザによって入力されたネットワーク・スキーマおよびマシン数227に対応するネットワーク・スキーマを自動的に生成し、調べ、または他の方法で生み出し、そのネットワーク・スキーマを表すデータをコンフィギュレーション・ファイル260に入力する。さまざまな実施態様が、マルウェア・オペレータ121〜123が対話することができるマシンとすることができる仮想組織体110内の実在するマシンの数と、仮想組織体110のネットワーク内の空間を埋め、仮想組織体110のネットワーク内にディレクトリを追加して、それをよりリアルに見せる「マルチホスト」または仮想機械とを区別することができる。マルウェア・オペレータ121〜123はマルチホストと対話することができないが、それにもかかわらず、マルウェア・オペレータ121〜123は、例えば「net view」のような共通のコマンドを使用することによってマルチホストを「見る」ことができる。「net view」は、ドメイン・コントローラ340に報告するときに、マルチホストを、仮想組織体110のネットワーク内でオンラインの状態にある多数のマシンとして示す。
【0041】
UI入力220は、少なくとも1つの出口ポイント224を記述する情報を含むことができ、出口ポイント224は、インターネットなどのワイド・エリア・ネットワークに仮想組織体110がそこからアクセスする特定の地理的位置(例えば国、州または都市)を、インキュベータ・システム・ジェネレータ・エンジン250に指示することができる。マルウェア・オペレータ121〜123には、仮想組織体110が、出口ポイント224に対応するIPアドレスを有し、そのため、仮想組織体110が、示された地理的位置に置かれているように見える。いくつかの実施態様では、インキュベータ・システム105が、限られた数の私的な仮想ネットワーク・アクセス・ポイントにアクセスすることができ、UIコンポーネント252は、それらのアクセス・ポイントのリストまたはメニューを、その中から選択するためにユーザに提示することができる。ユーザが選択した後、インキュベータ・システム・ジェネレータ・エンジン250は、選択された出口ポイント224を表すデータをコンフィギュレーション・ファイル260に入力することができ、インキュベータ・システム・ジェネレータ・エンジン250は後に、仮想組織体トラフィックがそのアクセス・ポイント位置において出入りするようにその出口ポイントと対をなす仮想組織体110を生み出すことができる。
【0042】
UI入力220は、1つまたは複数のキーワード225を(例えばカンマで分離された形で)表す情報を含むことができ、キーワード225は、インキュベータ・システム・ジェネレータ・エンジン250が生成する仮想組織体110のさまざまな所望の特徴を記述しまたは特徴づけることができる。さまざまな実施態様で、インキュベータ・システム・ジェネレータ・エンジン250は、後にさらに説明するように、それらのキーワードを使用して、リアルな仮想組織体110を生成するために使用されるインターネット入力240を集めることができる。インキュベータ・システム・ジェネレータ・エンジン250は、指定されたキーワード226を表すデータをコンフィギュレーション・ファイル260に入力することができる。
【0043】
UI入力220は、インキュベータ・システム105内の仮想組織体110の部分である物理マシンまたは仮想マシン内でインキュベータ・システム・ジェネレータ・エンジン250がランさせるまたは実行することができる少なくとも1つのマルウェア226を記述しまたは識別する情報を含むことができる。例えば、マルウェア入力226は、
図1に示されたインキュベータ・システム105の仮想組織体110内のコンピュータがランさせるマルウェア・プログラムまたはマルウェア・アプリケーション115を識別することができる。インキュベータ・システム・ジェネレータ・エンジン250は、指定されたマルウェア226を表すデータをコンフィギュレーション・ファイル260に入力することができる。
【0044】
UI入力220はさらに、インキュベータ・システム105内の仮想組織体110内でインキュベータ・システム・ジェネレータ・エンジン250が使用しまたはシミュレートすることができる少なくとも1つのマシン・タイプ228を記述しまたは識別する情報を含むことができる。インキュベータ・システム・ジェネレータ・エンジン250は、指定のマシン・タイプ228を表すデータをコンフィギュレーション・ファイル260に入力することができる。
【0045】
UI入力220はさらに、インキュベータ・システム105内の仮想組織体110内の物理マシンおよび/または仮想マシン上でインキュベータ・システム・ジェネレータ・エンジン250が実行することができる少なくとも1つのオペレーティング・システム229を記述し、または、識別する情報を含むことができる。インキュベータ・システム・ジェネレータ・エンジン250は、指定されたオペレーティング・システム229を表すデータをコンフィギュレーション・ファイル260に入力することができる。
【0046】
UI入力220はさらに、インキュベータ・システム105内の仮想組織体110内の物理マシンおよび/または仮想マシン上でIPアドレスおよびIPネットワーク空間をシミュレートしまたは割り当てるためにインキュベータ・システム・ジェネレータ・エンジン250が使用することができる少なくとも1つのネットワーク230を記述しまたは識別する情報を含むことができる。インキュベータ・システム・ジェネレータ・エンジン250は、指定されたアドレスおよびネットワーク230を表すデータをコンフィギュレーション・ファイル260に入力することができる。
【0047】
所望の仮想組織体110の所望の特徴を記述しまたは特徴づける、ユーザによって入力されるキーワード225を再び参照すると、インキュベータ・システム・ジェネレータ・エンジン250のさまざまな実施態様が、インターネット入力240を集めるために、インターネット探索エンジンまたは他の情報収集法にキーワード225を入力することができる。インターネット入力240は、情報、文書241、リンク、識別242などを含むことができ、それらは全て、仮想組織体110をよりリアルに見せるために使用することができる。例えば、インキュベータ・システム・ジェネレータ・エンジン250は、インターネットなどのネットワーク内で、キーワード225を含むまたはキーワード225に関係する文書241(例えば.doc、.docx、.pdfなどで終わるファイル)を探索することができる。いくつかの実施態様では、インキュベータ・システム・ジェネレータ・エンジン250が、その探索によって識別された文書241をダウンロードし、または他の方法で収集し、後に、それらの文書241を、仮想組織体110を構成するマシン上のディレクトリにランダムに分配/記憶することができる。したがって、仮想組織体110から文書を違法に集めようとしているマルウェア・オペレータ121〜123は、仮想組織体110に関連しているように見える実在する文書を見つけ、それらをコピーする。
【0048】
同様に、インキュベータ・システム・ジェネレータ・エンジン250は、インターネットなどのネットワーク内で、キーワード225を含むまたはキーワード225に関係する人物または識別242(例えば人名、住所、職業、職務、学歴などについての情報)を探索することができる。いくつかの実施態様では、インキュベータ・システム・ジェネレータ・エンジン250が、国勢調査データを探索して、所望の仮想組織体110に関連した地勢、会社名、学歴などに関係するキーワードに適合する識別242を見つけ出し、後に、それらの識別242に、仮想組織体110内の職名を割り当てることができる。いくつかの実施態様では、仮想組織体が現実世界の組織体を模倣しているときに、インキュベータ・システム・ジェネレータ・エンジン250が、職歴詳細および履歴書に似た情報を提供する、LinkedIn(商標)ウェブサイトなどのウェブサイトを探索して、その会社で実際に働いている人を見つけ出し、その人およびその人の実在する職位を使用して、仮想組織体110にユーザを在籍させることができる。したがって、仮想組織体110からユーザ情報を違法に集めようとしているマルウェア・オペレータ121〜123は、仮想組織体110と整合するユーザに関する情報を見つけ出す。
【0049】
図2に示された実施態様では、インキュベータ・システム・ジェネレータ・エンジン250がUI入力220およびインターネット入力240を受け取った後に(前述のとおりUI入力220およびインターネット入力240はコンフィギュレーション・ファイル260に記憶することができる)、コンフィギュレーション・エキスパンダ・モジュール254が、それらの基本入力に基づいて、インキュベータ・システム105内でランする仮想組織体110を生み出すのに必要な他の全てのものを構築し、自動的に生成する。例えば、コンフィギュレーション・エキスパンダ・モジュール254は、ユーザを生成すること、それらのパスワードを生成すること、それぞれのユーザを特定の職名に関連づけること、インターネットのアップストリーム・ネットワークを生成すること、出口ストリームを生成すること、実在するマシンおよび仮想マシンを生成してローカル・ネットワーク・スキーマを実装すること、構成されたときにそれぞれのマシンが実行する必要があるタスクを生成すること、文書およびアプリケーションをネットワーク内のマシンに分配すること、最後に、仮想組織体110の1台または数台のマシン上に指定されたマルウェアをダウンロードしランさせることなどを、自動的に実行する。したがって、所望の仮想組織体110を記述するためにユーザ(例えばインキュベータ・オペレータ130)によって入力された少量の構成情報は、指定されたマルウェア115に感染した企業体をシミュレートする完全な構成(例えば仮想組織体110)に拡張される。
【0050】
ユーザ(例えばインキュベータ・オペレータ130)から見ると、仮想組織体110の生成は、ウエブ・ベースのGUIなどのUIを介して、所望の仮想組織体110を記述する少量の情報を単純に提供することから始まる。前述のとおり、さまざまな実施態様で、ユーザは、UI入力220に関して論じたユーザが欲するネットワーク、ユーザが欲するマシンの数(例えば実在するマシンの数、および実在するマシンをシミュレートする、実際には実在するマシンではないマルチホストまたは仮想機械の数)、およびユーザの数などを定めることができる。いくつかの実施態様では、この情報が全てコンフィギュレーション・ファイル260に入力され、それに加えてまたはその代わりに、インキュベータ・システム・ジェネレータ・エンジン250は、その情報を、コンフィギュレーション・データベース270に記憶することができる。
【0051】
以下の表1は、UI入力220およびインターネット入力240によって指定された仮想組織体110を生成するためにインキュベータ・システム・ジェネレータ・エンジン250が使用することができるコンフィギュレーション・ファイル(例えばコンフィギュレーション・ファイル260)の情報の一例である。いくつかの実施態様では、表1の情報を使用して、システムによって処理されるJava Script Object Notation(「JSON」)オブジェクトを生成することができる。
【0052】
【表1A】
【表1B】
【表1C】
【表1D】
【表1E】
【0053】
多数の仮想組織体110を同時に生成しランさせることができる実施態様では、管理サーバ(
図2には示されていないが、いくつかの実施態様ではインキュベータ・システム・ジェネレータ・エンジン250を受け入れることができる)が、データベース270に定期的に問い合わせて、新しい構成がないかチェックすることができる。構成を見つけると、管理サーバは、配置オブジェクト(deployment object)を生成することができる。例えばインキュベータ・システム105上で実行されたとき、配置オブジェクトは、仮想組織体110の形態の組織体をシミュレートするのに必要な全ての実体、コンポーネントおよびネットワークを生成することができる。
【0054】
仮想組織体110としてランする完全にインスタンス化された構成は、実在する組織体に属する実在するシステムと対話しているとマルウェア・オペレータ121〜123が信じるように非常にリアルである。例えば、仮想組織体110は、アクティブ・ディレクトリ環境をシミュレートし、仮想組織体内のさまざまなノードを制御するドメイン・コントローラを含むことができ、さらに、ユーザ・マシンを表すノードを含むことができる。それらのノードは、それらのノードにインストールされたAdobe(登録商標) reader、Microsoft Office(登録商標)などの合法的なソフトウェアを有することができる。仮想組織体110はさらに、シミュレートされたシステム内で電子メールを生成するカスタム・モジュールを含むことができる。
【0055】
仮想組織体の生成
図3は、本発明の原理と整合した、仮想組織体のためのネットワークを生成する技法の一例を示すガント・チャートである。示された例では、左から右に見て、右側のタスクは、接続された左側のタスクに依存し、右側のタスクは、左側のタスクが完了した後に開始することができる。
【0056】
いくつかの実施態様では、データベース270および/またはコンフィギュレーション・ファイル260に記憶された情報に従って仮想組織体110を生成するように、管理サーバ(図示せず)がプログラムされる。いくつかの実施態様では、この管理サーバが、いくつかの部分およびコンポーネント(例えばスイッチ、ルータ、ホスト・マシンなど)を並列に配置し、構成して、仮想組織体110のネットワーク全体を構築するのに必要な時間を短縮することができる。
【0057】
さまざまな実施態様で、仮想組織体110内で「インキュベートされる」マルウェア115は、仮想組織体110のネットワークの少なくとも1つのマシンにロードすることができ、マルウェア115と対話するように1つまたは複数のマルウェア・オペレータ121〜123を引き寄せることを目的として無期限にランすることができるような態様で、予め識別されコピーされている。これは、仮想組織体110のいくつかの部分をマルウェア115に意図的に感染させるシステム100とは対照的に、通常は公衆ネットワーク接続されて短時間ランし、マルウェアおよびマルウェア・オペレータに感染し、または他の方法でマルウェアおよびマルウェア・オペレータによって利用されるのを待つハニーポット、ハニーネットまたはサンドボックスとは異なる。外部から感染される必要性に対して支援するため、ハニーポット、ハニーネットおよびサンドボックスは通常、脆弱なサービス(例えば既知のセキュリティ欠陥を有する、アプリケーションおよびOSのパッチ修正されていないより古いバージョン)をランさせる。やはり対照的に、仮想組織体110は通常、脆弱なサービスをランさせない。「容易な」ターゲットは、マルウェア・オペレータ121〜123に疑いを持たせる可能性があり、それによって、マルウェア・オペレータ121〜123が、仮想組織体110と対話することなくログオフし、仮想組織体110を去る可能性があるためである。このことを避けるため、インキュベータ・オペレータ130は、かなり最新のサービスをランさせて、よく維持された団体ネットワークのように見えるようにすることができる。
【0058】
機能する仮想組織体110を生成するため、インキュベータ・システム・ジェネレータ・エンジン250は、仮想組織体110の部分を、特定のシーケンスで、特定の時刻に構築し、配置し、または他の方法で起動することができる。
図3に示された例では、インキュベータ・システム・ジェネレータ・エンジン250が、最初に、ローカル・スイッチ305および出口スイッチ310を、例えばインキュベータ・システム105内のスイッチを起動することによって配置する。
【0059】
これらのアクティビティが正常に完了した後、インキュベータ・システム・ジェネレータ・エンジン250は次いで、ローカル・ルータ315を配置し、出口ルータ325を配置し、ドメイン・コントローラ335を配置し、345〜347において、XPホスト、Windows 7ホスト、Macホスト、Linuxホストなどのn個のホスト1...nを配置する。
図3に示された例では、仮想組織体110の構築時間を短縮するために、315、325、335および345〜347を並列に実施することができる。
【0060】
ローカル・ルータが配置された後、インキュベータ・システム・ジェネレータ・エンジン250は、ローカル・ルータ320を構成することができる。同様に、インキュベータ・システム・ジェネレータ・エンジン250は、出口ルータが配置された後に出口ルータ330を構成することができ、ドメイン・コントローラが配置された後にドメイン・コントローラ340を構成することができる。
【0061】
ドメイン・コントローラを構成した後、インキュベータ・システム・ジェネレータ・エンジン250は、最後に、350〜352においてn個のホストを構成することができる。さまざまな実施態様で、インキュベータ・システム・ジェネレータ・エンジン250は、仮想組織体110のネットワークがうまく機能するためにインキュベータ・システム105内において配置および構成が実行されなければならない特定の順序を強制する。さらに、いくつかのアクティビティの並列化は、セットアップ時間を著しく増大させずに多数のホストなどをセットアップすることを可能にする。
図3に示された例に他の特徴を追加することができる。例えば、このシステム例は、文書を生み出し、次いでその文書を、構成されたホストに配置することができる。
【0062】
さまざまな実施態様で、インキュベータ・システム105を、エラーから回復する十分にロバストなものとすることができる。例えば、ドメイン・コントローラが故障した場合、インキュベータ・システム105は、他の全てのコンポーネントの動作を自動的にキルすることができる。ドメイン・コントローラなしでは何も機能することができず、例えば
図3に示されたスタートアップ・シーケンスを再開することもできないためである。さまざまな実施態様で、インキュベータ・システム105は、仮想組織体110のインスタンス化が成功したかどうかを検出することができ、必要に応じて人間による入力なしで再び試みることができる。
【0063】
図1に関して以前に述べたとおり、仮想組織体110内の1つまたは複数のマシン内でマルウェア115をランさせることを含む、インキュベータ・システム105および仮想組織体110のセットアップおよびランの後、インキュベータ・システム105は、仮想組織体110内でのアクティビティ(マルウェア115内でのアクティビティを含む)を追跡し、そのアクティビティを、インキュベータ・オペレータ130による調査および使用に備えてデータベース140に記録しまたは他の方法で保管することができる。したがって、例えばマルウェア・オペレータ121が仮想組織体110と対話し、仮想組織体110のマシン上に新しいマルウェア(すなわちマルウェア115以外の追加ステージ・マルウェアなどのマルウェア)を配置した場合、インキュベータ・システム105はそのイベントを記録し、インキュベータ・オペレータ130に通知することができる。安全に研究し、プロフィールを安全に構築し、新しいマルウェアが感染した他のユーザまたはシステムに利益を与える目的に使用することができる有用な情報を安全に抽出するため、インキュベータ・オペレータ130はその新しいマルウェアのコピーを生成することができる。
【0064】
図1に関して以前に述べたとおり、それぞれのマルウェア・オペレータ121〜123によって引き起こされまたは実行された全部または一部のイベントおよびアクションを記録することによって、インキュベータ・システム105は、インキュベータ・システム105の仮想組織体110内でランしているマルウェア115と対話したマルウェア・オペレータ121〜123のプロフィール142〜146を構築することができる。プロフィール142〜146は、例えばプロフィールが構築されたマルウェア・オペレータ121〜123のうちの特定の1つのマルウェア・オペレータに特徴的な特定の一連のイベントを指定された期間内に認識することによって、感染した異なる犠牲システムに関して、1つまたは複数のマルウェア・オペレータ121〜123を、後の異なる時点で識別することを可能にする。
【0065】
同様に、インキュベータ・システム105による絶え間のない監視およびプロフィール142〜146との比較は、例えば1つのマルウェア・オペレータ121〜123が別のマルウェア・オペレータ121〜123にアクセスを手渡したときなどの仮想組織体110にアクセスしているマルウェア・オペレータ121〜123の変更を、インキュベータ・オペレータ130が検出することを可能にする。例えば、インキュベータ・オペレータ130は、マルウェア・オペレータ121〜123が実行していることの変化、またはマルウェア・オペレータ121〜123がそれを実行しているパターンの変化、例えばマルウェア・オペレータ121〜123が実行しているアクションの変更、マルウェア・オペレータ121〜123がそれらのアクションを実行している時間の変化、マルウェア・オペレータ121〜123がそれらのアクションを実行している順序の変化を検出することができ、それによって別のマルウェア・オペレータが仮想組織体110にアクセスしていると結論づけることができる。異なる個体は異なる行動をとるためである。
【0066】
さらに、マルウェア・オペレータ121〜123が仮想組織体110に対して実行したこと、またはマルウェア・オペレータ121〜123が仮想組織体110に配置したものを記録および分析した後、インキュベータ・オペレータ130は、1つまたは複数の対策を生み出すことができる。例えば、1つまたは複数のマルウェア・オペレータ121〜123が、仮想組織体110のマシン上に新しいマルウェア・プログラムを配置した場合、インキュベータ・オペレータ130は、新しいマルウェア・プログラムを逆行分析し、ホワイトハット・コミュニティに対するインテリジェンス警報を生成し、おそらくは新しいマルウェア・プログラムを無力化するための対策を生み出す(例えばパッチまたはアプリケーションを書き込む)ことができる。
【0067】
図4は、インキュベータ環境を生成し、そのインキュベータ環境を使用して、マルウェアおよびマルウェア・オペレータを受け入れ、研究するためにインキュベーション・システムによって実行される、本発明の原理と整合したプロセス400の一例を示すフロー図である。実現プロセス400は、インキュベーション・システムが実行することができ、このインキュベーション・システムは、ジェネレータ・システム(例えば
図2に示されたジェネレータ・システム200)、およびマルウェアをインキュベートするシステム(例えば
図1に示されたマルウェアをインキュベートするシステム100)を含むことができる。
【0068】
ブロック410で、インキュベーション・システムは、仮想組織体(例えば
図1に示された仮想組織体110)を記述する組織体データを受け取ることができる。
【0069】
次いで、ブロック420で、インキュベーション・システムは、組織体データに関係する追加のデータを得ることができる。上で論じたとおり、この追加のデータは、組織体データに関係する1つまたは複数のキーワードを使用して、インターネットまたは他のデータベースから取り出すことができる。この追加のデータは、仮想組織体をよりリアルに見せるための文書、リンク、識別などの情報を含むことができる。
【0070】
インキュベーション・システムは、ブロック430で、仮想組織体のシミュレートされたコンピュータ・ネットワークを、組織体データもしくは前記追加のデータまたはその両方に少なくとも部分的に基づいて提供することができる。
【0071】
インキュベーション・システムは次いで、ブロック440で、シミュレートされたコンピュータ・ネットワーク上に、少なくとも1つのマルウェアをインストールすることができる。
【0072】
インキュベーション・システムは次いで、ブロック450で、シミュレートされたコンピュータ・ネットワークとマルウェアのオペレータとの間の1つまたは複数の対話を監視することができる。仮想組織体を監視している間、インキュベーション・システムは、それらの対話を追跡し記録することができる。一例において、インキュベータ・オペレータは、この1つまたは複数の対話を、モニタまたは他の表示デバイス上で監視することができる。別の例では、マルウェアのオペレータとシミュレートされたコンピュータ・ネットワークとの間の1つまたは複数の対話を検出したときに、インキュベーション・システムが、(例えばテキスト・メッセージ、電子メールなどによって)インキュベータ・オペレータに対して警報を発することができる。
【0073】
インキュベーション・システムは次いで、ブロック460で、この1つまたは複数の対話に基づいて、マルウェアのオペレータを特徴づけるマルウェア・オペレータ・プロフィールを構築することができる。このマルウェア・オペレータ・プロフィールを使用して、そのマルウェア・オペレータが別の(例えばシミュレートされたものではない/実在する)コンピュータ・ネットワークと対話したときに、そのマルウェア・オペレータを識別することができる。このマルウェア・オペレータ・プロフィールを使用して、この別の(例えばシミュレートされたものではない/実在する)コンピュータ・ネットワークにそのマルウェアのオペレータがアクセスしていることを、このマルウェア・オペレータ・プロフィールに基づいて識別するように構成された、この別の(例えばシミュレートされたものではない/実在する)コンピュータ・ネットワーク用のセキュリティ・プログラムを設計しまたは構築することもできる。このセキュリティ・プログラムを、この別の(例えばシミュレートされたものではない/実在する)コンピュータ・ネットワークを(例えばマルウェアのオペレータを遮断することによって)保護するように構成することもできる。
【0074】
図5は、本発明の原理と整合した例示的なコンピューティング・システム500を示す。コンピューティング・システム500と同様のおよび/または
図5に示されたシステム全体と同様の1つまたは複数のコンピューティング・システムを使用して、
図1に示されたインキュベータ・システム105および/または
図2に示されたインキュベータ・システム・ジェネレータ・エンジン250を実現することができる。いくつかの実施態様では、データベース570を使用して、
図1に示されたデータベース140および/または
図2に示されたデータベース270を実現することができる。
【0075】
インキュベータ・システム105またはインキュベータ・システム・ジェネレータ・エンジン250のある種の実施形態は、コンピュータ・プログラムとして実装しまたは埋め込むことができる。このコンピュータ・プログラムは、アクティブおよび非アクティブのさまざまな形態で存在することができる。例えば、このコンピュータ・プログラムは、ソース・コード、オブジェクト・コード、実行可能コードもしくは他のフォーマットで書かれたプログラム命令からなるソフトウェア・プログラム、ファームウェア・プログラム、またはハードウェア記述言語(hardware description language)(「HDL」)ファイルとして存在することができる。上記のものはいずれも、記憶デバイスおよび信号を含むコンピュータ可読媒体上において、圧縮された形態または圧縮されていない形態で具現化することができる。しかしながら、説明の目的上、コンピューティング・システム500は、当業者によく知られている汎用コンピュータとして示されている。次に、コンピューティング・システム500に含めることができるコンポーネントの例を説明する。
【0076】
示されているとおり、コンピューティング・システム500は、少なくとも1つのCPU505、ワーキング・メモリ510、少なくとも1つの記憶装置520、1つまたは複数の入力/出力(「I/O」)デバイス530(例えばキーボード、ポインティング・デバイス、表示装置、プリンタなど)、および少なくとも1つのI/Oコントローラ535を含むことができる。記憶装置520は例えば、RAM、ROM、フラッシュ・メモリ、EEPROM、CD−ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置、または所望のプログラム・コードを命令の形でもしくはデータ構造体の形で担持しもしくは記憶する目的に使用することができ、コンピュータがアクセスすることができる他の媒体を含むことができる。インキュベータ・システム105のコンピュータ・プログラム実施形態のコピー、またはインキュベータ・システム・ジェネレータ・エンジン250のコンピュータ・プログラム実施形態のコピーを、例えば記憶装置520上に記憶することができる。コンピューティング・システム500のさまざまなコンポーネントは、システム・バス540または類似のアーキテクチャを介して通信する。加えて、コンピューティング・システム500は、動作中ワーキング・メモリ510上にあるオペレーティング・システム(「OS」)512を含むことができる。CPU505が多数の処理装置を含むことができることを、当業者は認識するであろう。例えば、CPU505は、同じ処理装置の多数のコピーを含むことができる。あるいは、CPU505は、さまざまなタイプの処理装置の異種混合体を含むことができる。例えば、CPU505は、1つの処理装置を1次処理装置として使用し、別の処理装置をコプロセッサとして使用することができる。別の例では、CPU505が、1つまたは複数のマルチコア処理装置および1つまたは複数のシングル・コア処理装置を含むことができる。したがって、コンピューティング・システム500は、一組の処理装置を横切る任意の数の実行コアを含むことができる。キーボード、ポインティング・デバイスおよび表示装置に関して言うと、これらのコンポーネントは、当業者によく知られているコンポーネントを使用して実装することができる。コンピューティング・システム500に他のコンポーネントおよび周辺装置を含めることができることも当業者は認識するであろう。
【0077】
OS512は、コンピューティング・システム500内のハードウェアの直接制御および管理ならびにシステムの動作に対して責任を負うルーチンおよび命令の統合された集合体である。OS512はさらに、1つまたは複数のアプリケーション515などのアプリケーション・ソフトウェアおよびデバイス・ドライバをランさせるための土台を提供する。例えば、OS512は、資源配分、スケジューリング、入力/出力制御、メモリ管理などのサービスを実行することができる。OS512は主にソフトウェアとすることができるが、部分的なハードウェア実施態様または完全なハードウェア実施態様およびファームウェアを含むこともできる。本教示の原理と整合したオペレーティング・システムのよく知られている例は、MICROSOFT WINDOWS(例えばWINDOWS CE、WINDOWS NT、WINDOWS 2000、WINDOWS XPおよびWINDOWS VISTA)、Mac OS、Linux(登録商標)、UNIX(登録商標)、ORACLE SOLARIS、OPEN VMSおよびIBM AIXなどである。
【0078】
ワーキング・メモリ510は、コンピューティング・システム500の1次記憶域の役目を果たし、CPU505上でランしているアプリケーション515によってアクティブに使用されるデータを保持する。アプリケーション515は、インキュベータ・システム105および/またはインキュベータ・システム・ジェネレータ・エンジン250のコンピュータ・プログラム実施形態の少なくとも1つのコピーを含むことができる。アプリケーション515が、ランタイム中に一組の特定のタスクを実行するようコンピューティング・システム500に命令する一組のコンピュータ命令をそれぞれが含むソフトウェア・プログラムであること、および本教示の実施形態によれば、「アプリケーション」が、アプリケーション・ソフトウェア、アプリケーション・プログラム、デバイス・ドライバおよび/またはプログラムと相互に交換可能に使用されることがあることを当業者は認識するであろう。ワーキング・メモリ510は、ランダム・アクセス・メモリまたは当業者によく知られている後述する他の形態のメモリとして実装することができる。
【0079】
図5に示されているように、コンピューティング・システム500をネットワーク550に接続することができ、さらに、ネットワーク550を介して遠隔コンピュータ560およびデータベース570に接続することができる。コンピューティング・システム500および/または
図5に示されたシステム全体を使用して、本発明と整合した実施形態を実施することができる。
【0080】
以上の説明は例であり、当業者には、構成および実施態様の変更が思い浮かぶであろう。例えば、本明細書に開示された実施形態に関連して説明した例示的なさまざまな論理、論理ブロック、モジュールおよび回路は、本明細書に記載された機能を実行するように設計された汎用処理装置(例えばCPU505)、特定用途向け集積回路、フィールド・プログラマブル・ゲート・アレイもしくは他のプログラマブル論理デバイス、ディスクリート・ゲート(discrete gate)もしくはトランジスタ論理、ディスクリート・ハードウェア・コンポーネント、またはこれらの任意の組合せによって実装または実行することができる。汎用処理装置はマイクロプロセッサとすることができるが、あるいはこの処理装置を、従来の処理装置、コントローラ、マイクロコントローラまたは状態機械とすることもできる。処理装置を、コンピューティング・デバイスの組合せ、例えばマイクロプロセッサ、複数のマイクロプロセッサまたはそのような他の構成の組合せとして実装することもできる。
【0081】
1つまたは複数の例示的な実施形態では、説明した機能を、ハードウェア、ソフトウェア、ファームウェアまたはこれらの組合せとして実現することができる。ソフトウェア実施態様に関して、本明細書に記載された技法は、本明細書に記載された機能を実行するモジュール(例えば手順、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェア・パッケージ、クラスなど)によって実現することができる。モジュールは、情報、データ、引き数、パラメータまたはメモリ内容を渡しかつ/または受け取ることによって別のモジュールまたはハードウェア回路に結合することができる。情報、引き数、パラメータ、データなどは、メモリ・シェアリング、メッセージ・パッシング、トークン・パッシング、ネットワーク伝送などを含む適当な手段を使用して渡し、転送しまたは伝送することができる。ソフトウェア・コードは、メモリ・ユニットに記憶し、処理装置によって実行することができる。メモリ・ユニットは、処理装置内または処理装置外に実装することができ、処理装置外に実装する場合には、当技術分野で知られているさまざまな手段によって、メモリ・ユニットを処理装置に通信可能に結合することができる。
【0082】
ソフトウェアとして実現する場合、これらの機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶し、またはコンピュータ可読媒体を介して伝送することができる。コンピュータ可読媒体は、有形の非一時的コンピュータ記憶媒体と通信媒体の両方を含み、これには、1つの場所から別の場所へのコンピュータ・プログラムの転送を容易にする任意の媒体が含まれる。記憶媒体は、コンピュータがアクセスすることができる使用可能な有形の非一時的媒体とすることができる。例を挙げると、限定はされないが、このような有形の非一時的コンピュータ可読媒体は、RAM、ROM、フラッシュ・メモリ、EEPROM、CD−ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置、または所望のプログラム・コードを命令の形でもしくはデータ構造体の形で担持しもしくは記憶する目的に使用することができ、コンピュータがアクセスすることができる他の媒体を含むことができる。本明細書で使用される用語ディスク(disk)およびディスク(disc)は、CD、レーザ・ディスク(disc)、光ディスク(disc)、DVD、フレキシブル・ディスク(disk)およびBlu−rayディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に複製し、ディスク(disc)は、レーザによってデータを光学的に複製する。接続をコンピュータ可読媒体と呼ぶのも適切である。例えば、ソフトウェアが、同軸ケーブル、光ファイバ・ケーブル、撚り線対もしくはディジタル加入者線(digital subscriber line)(「DSL」)技術、または赤外線、電波、マイクロ波などの無線技術を使用してウェブサイト、サーバまたは他の遠隔源から伝送される場合、同軸ケーブル、光ファイバ・ケーブル、撚り線対もしくはDSL技術、または赤外線、電波、マイクロ波などの無線技術は媒体の定義に含まれる。上記の技術の組合せもコンピュータ可読媒体の範囲に含めるべきである。
【0083】
一実施形態では、単一のまたは統合されたと記述された資源を、複数のまたは分散した資源とすることができ、実施形態では、多数のまたは分散したと記述された資源を、結合することができる。したがって、本教示の範囲は、以下の特許請求の範囲にのみによって限定されることが意図されている。特定の実施形態に関して本発明を説明したが、多数の変更が可能であることを当業者は認識するであろう。例えば、プロキシ・サーバは、本明細書で述べられていない追加の機能を有することができる。加えて、本開示の実施形態は、専用コンポーネントおよび/またはプログラム可能な処理装置および/またはプログラム可能な他のデバイスの任意の組合せを使用して実現することができる。以上に記載した実施形態は、特定のハードウェア・コンポーネントおよびソフトウェア・コンポーネントに言及することがあるが、ハードウェア・コンポーネントおよび/またはソフトウェア・コンポーネントのさまざまな組合せを使用することもできること、ならびにハードウェアとして実現されると記述された特定の動作をソフトウェアで実現することができ、逆に、ソフトウェアとして実現されると記述された特定の動作をハードウェアで実現することができることを当業者は理解するであろう。