(57)【要約】  コンピューティングネットワークをプロアクティブに保護するための方法、システム、及び装置に関する。とりわけ、保護されたドメインをリアルタイムにモニタリングし、マルウェアを介して保護されたドメインに導入された脅威に反応するための接種手順を安全に識別する能力を有する、プロアクティブなセキュリティメカニズムに関する。プロアクティブなセキュリティメカニズムは、プロアクティブなセキュリティメカニズムの少なくともいくつかの機能を実行するように構成された、解析的ニューラルネットワークインターフェース（ＡＮＮＩ）を含む。
2017503222.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク接続されたコンピューティングデバイスのアクティビティをリアルタイム、かつプロアクティブにモニタリングするステップと、
前記ネットワーク接続されたコンピューティングデバイスに対する前記アクティビティのモニタリングに応答して、潜在的なマルウェアが前記ネットワーク接続されたコンピューティングデバイスにおいて受信されたことを判定するステップと、
前記ネットワーク接続されたコンピューティングデバイスにおける潜在的なマルウェアの受信を判定したことに応答して、前記潜在的なマルウェアを解析のために隔離ハイパーバイザ内に配置するステップとを備える、方法。
【請求項２】
前記隔離ハイパーバイザは、科学捜査のために前記潜在的なマルウェアがデコンパイルされ得るように、前記潜在的なマルウェアが仮想環境内で安全にブートされることを可能にするための仮想マシンを備える、請求項１に記載の方法。
【請求項３】
前記隔離ハイパーバイザ内で前記潜在的なマルウェアをデコンパイルするステップと、
前記潜在的なマルウェアが実際のマルウェアに対応するものであると判定するステップと、
前記実際のマルウェアに特有のシグネチャを判定するステップと、
保護されたドメインに接続されたすべてのコンピューティングデバイスにおける解析のために、前記実際のマルウェアに特有の前記シグネチャが利用可能なように、前記実際のマルウェアに特有の前記シグネチャを記憶するステップとをさらに備える、請求項２に記載の方法。
【請求項４】
前記実際のマルウェアのルート経路を辿るステップと、
前記実際のマルウェアの出所を決定するステップとをさらに備える、請求項３に記載の方法。
【請求項５】
前記ネットワーク接続されたコンピューティングデバイスのアクティビティをリアルタイム、かつプロアクティブにモニタリングするステップは、前記ネットワーク接続されたコンピューティングデバイスにおけるユーザ挙動、前記ネットワーク接続されたコンピューティングデバイスにおいて受信された１つ又は複数のパケットの内容、前記ネットワーク接続されたコンピューティングデバイスにおいて受信された１つ又は複数のパケット断片の内容、前記ネットワーク接続されたコンピューティングデバイスにおいて受信された１つ又は複数のパケットヘッダの内容、及び前記ネットワーク接続されたコンピューティングデバイスによって実行されているルーチンのうちの少なくとも１つを解析することからなる、請求項１に記載の方法。
【請求項６】
前記解析はシステム割り込み中に少なくとも部分的に行われる、請求項１に記載の方法。
【請求項７】
解析的ニューラルネットワークインターフェース（ＡＮＮＩ）は、前記ネットワーク接続されたコンピューティングデバイスにおいてアクティビティをモニタリングすること、前記潜在的なマルウェアが前記ネットワーク接続されたコンピューティングデバイスにおいて受信されたことを決定すること、及び前記潜在的なマルウェアを前記隔離ハイパーバイザ内に配置することのうちの少なくとも１つのために使用される、請求項１に記載の方法。
【請求項８】
前記ＡＮＮＩは前記隔離ハイパーバイザ内で前記潜在的なマルウェアを解析するために使用される、請求項７に記載の方法。
【請求項９】
前記ＡＮＮＩは、ＣＰＵ、ＧＰＵ、及びＡＰＵのうちの少なくとも１つにおいて実行される、請求項７に記載の方法。
【請求項１０】
保護されたドメインの外部の１つ又は複数の設備においてセンサを配備するステップと、
前記配備されたセンサを介して、挙動トレンド及びハッキングトレンドの少なくとも一方を解析するステップと、
前記配備されたセンサにおける前記解析に基づいて、挙動トレンド及びハッキングトレンドの前記少なくとも一方に応答して、前記保護されたドメイン内で実行するための１つ又は複数の対抗手段を生成するステップとをさらに備える、請求項１に記載の方法。
【請求項１１】
プロセッサによって実行された場合に、
ネットワーク接続されたコンピューティングデバイスのアクティビティをリアルタイム、かつプロアクティブにモニタリングする命令と、
前記ネットワーク接続されたコンピューティングデバイスの前記アクティビティのモニタリングに応答して、潜在的なマルウェアが前記ネットワーク接続されたコンピューティングデバイスにおいて受信されたことを判定する命令と、
潜在的なマルウェアが前記ネットワーク接続されたコンピューティングデバイスにおいて受信されたことを決定することに応答して、前記潜在的なマルウェアを解析のために隔離ハイパーバイザ内に配置する命令とを格納する、非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ネットワークセキュリティシステムに関する。
【背景技術】
【０００２】
企業及び組織は、昨日の防御中心のセキュリティベストプラクティスを用いて、今日のデジタル・テロリスト又はサイバ犯罪者と戦うことはできない。防御中心のセキュリティ・ソリューションが抱える主要な問題は、それらが、繰り返される攻撃又は将来の攻撃をやめさせる抑止力又は対抗手段を提供しないことである。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
今日、セキュリティベストプラクティス及びデジタルストラテジは、２週間をわずかに超える程度の有効期限しか有していないのが実情である。セキュリティ専門家は、サイバ犯罪者が進化する速度に遅れを取らない十分な速さで、検出できておらず、又は防御手段を生成できていない。
【０００４】
組織及びセキュリティ専門家が、新しいデジタル攻撃を導入し続ける敵とどのように戦えばよいかという問題は、依然として未解決である。このセキュリティ上の難題にプロアクティブに対処するために、組織は、攻撃中心のデジタルセキュリティポリシを採用し、実践しなければならない。
【課題を解決するための手段】
【０００５】
したがって、本発明の１つの態様は、コンピューティングシステム又はネットワークをプロアクティブに、即ち先手を打って、保護するために利用することができる、プロアクティブなセキュリティメカニズムを提供することである。本発明のプロアクティブなセキュリティメカニズム、及びそれを実施するハードウェアは、数ミリ秒のうちに新しい攻撃及び新しい形態のマルウェアを能動的に識別することができ、その後、数秒以内に、マルウェアに対抗する、及び／又はマルウェアを無力化する、効果的な対抗手段及び防御手段を生成することができる。
【０００６】
これまで、行われたほとんどのデジタル攻撃は、１５分以下の寿命又は継続的利用の最終時点を有する。これは、ほとんどの抜け目のないサイバ犯罪者が、１５分後には、ハッキングの試みを打ち切ることを意味している。本発明の実施形態を利用することで、ネットワークセキュリティ要員は、おそらくは攻撃がまだ行われている間に、（ａ）攻撃に気づくこと、（ｂ）攻撃元を識別することが可能である。これは、よりいっそう効果的な対抗手段が採用され得ることを意味するが、以前であれば、サイバ犯罪者は、攻撃がそもそも検出される前に、攻撃対象のシステムとの対話を終えていた。
【０００７】
本発明の少なくともいくつかの実施形態によれば、解析的ニューラルネットワークインターフェース（ＡＮＮＩ）が開示され、ＡＮＮＩは、新しい形態のマルウェア（例えば、信頼できない又は悪意あるコード又はコード断片）を検出／予測することができ、それに接続されたネットワーク又はコンピューティングデバイスが危険にさらされる前に、継続的にリアルタイムで、またプロアクティブに、これらの新しい形態のマルウェアを識別し、それらに対する防御を行うことができる。プラットフォームも、提供され、このプラットフォームは、リモート又はモバイル通信デバイスを含むすべてのネットワーク要素にわたって、マルウェアをリアルタイムに識別し、デエンジニアリングし（ｄｅ−ｅｎｇｉｎｅｅｒ）、及び破壊する。本発明の別の態様は、ＡＮＮＩが、プロアクティブに、悪意あ
るコードの要素を解析し、組み換え、同一又は同様のタイプの将来のマルウェアに対して防御を行う対抗手段を自動的かつ即座に生成することである。本明細書のプロアクティブなセキュリティシステムの発明を実施することを通して、マルウェアは、封じ込められ、デコンパイルされ、除去され、ワクチンを投与され、及び破壊され、すべては、ミリ秒未満のタイムフレームのうちに行われる。しかしながら、デコンパイル時間は、検出されたコードの性質に依存し得ることを理解されたい。
【０００８】
本発明の少なくともいくつかの実施形態によれば、先制攻撃という中核的セキュリティ原理に従うプラットフォームが開示される。この原理に従うことによって、またＡＮＮＩの使用によって、マルウェアをリアルタイムで（例えば、ミリ秒の応答時間で）実際に識別することが可能である。本明細書で説明されるプロアクティブなセキュリティメカニズムは、属性を識別し、たいていの場合、属性を適用し、その後、マルウェアを積極的に攻撃することが可能であり、それによって、現在と将来の両方のセキュリティ上の脅威（例えば、既知及び未知のマルウェア）の予防及び排除をもたらす。
【０００９】
本発明の１つの態様は、クラウドベースのネットワークを保護するためのメカニズムを提供することである。いくつかの実施形態では、クラウド上で送信されるデータはいずれも、暗号化され、その宛先において再びスキャンされる。ＡＮＮＩは、ネットワークにログオンするあらゆるデバイスを最新パッチ及びコンプライアンスについて調べる（ＡＮＮＩは、コンプライアンスエンジン、ファイアウォール、ＩＰＳ、ＩＤＳ内などに統合される）。
【００１０】
いくつかの実施形態では、クライアント要求に応答して、人工知能をメインエンジンとして使用して、アプリケーションのインフラストラクチャ能力を自動スケーリング及びインストールするための方法が提供され、方法は、複数のサーバノードを備えるアプリケーションインフラストラクチャ上で動作するように、また第１のネットワークを介してクライアントによってアクセスされるように構成されたアプリケーションを提供することを含む。次に、人工知能エンジンの高度ニューラルクラスタによって自動化された、トラフィックをクライアントからアプリケーションインフラストラクチャのサーバノードに送るトラフィック管理手段を提供する。人工知能エンジンの高度ニューラルクラスタによって、自動的にアプリケーションの性能メトリック及びアプリケーションインフラストラクチャのメトリックを収集するモニタリング手段を提供する。人工知能エンジンの高度ニューラルクラスタによって自動的に検出された、ネットワーク・インフラストラクチャを保留する、アプリケーションインフラストラクチャを変更するように構成された制御手段を提供する。次に、人工知能自動化モニタリング手段を介して、アプリケーションの性能メトリック及びアプリケーションインフラストラクチャのメトリックをモニタリングし、それによって、意味論的にメトリック情報を獲得し、その後、人工知能エンジン手段の高度ニューラルクラスタを介して、メトリック情報に基づいて、アプリケーションインフラストラクチャを変更する。最後に、人工知能エンジン手段の高度ニューラルクラスタによって、トラフィック自動化検出を介して、変更されたアプリケーションインフラストラクチャのサーバノードに、アプリケーションにアクセスすることを目的としたネットワークトラフィックを送る。
【００１１】
少なくともいくつかの実施形態によれば、ＡＮＮＩの概念設計は、抗体が人体において機能する方法及び工程に基づいている。一般用語では、抗体は、身体に対する細菌及びウイルスの脅威を隔離し、破壊する。特に癌に対する、最も成功した生物学的製剤は、活性抗体を使用する。現在、改良型の抗体防御が、開発中である。「武装抗体」として知られる、これらの抗体（及びそれらの組み換え断片）は、致死分子に結合され、又は致死分子と融合され、正常細胞に壊滅的な影響が及ばないように、腫瘍部位に標的を絞り込んで、毒性ペイロードを搬送する。少なくともいくつかの実施形態によれば、ＡＮＮＩのコード
は、武装抗体の原理を具体化する。具体的には、ＡＮＮＩのコードは、悪意あるコードの攻撃を識別及びキャプチャし、いかなる合法的なネットワーク工程をも妨害することなしに、悪意あるコードの新しいインスタンスを攻撃するために、そのコードを組み込む（及び組み換える）ように構成することができる。
【００１２】
ＡＮＮＩ及びＡＮＮＩを実施するプロアクティブなセキュリティメカニズムは、リアルタイム脅威識別、キャプチャ、シグネチャ生成、及び接種／破壊に加えて、未知の脅威に対する新しい反応を学習し、開発し続ける、人工自動化コード構築アルゴリズムも提供する、ネットワーク技術を表す。いくつかの実施形態では、ＡＮＮＩは、それによって潜在的な脅威のトポロジが既存の脅威から識別される、リアルタイム・データベース建造によって、この先見的な反応を達成し、それらのトポロジは、テストされ、ソフトウェアが、将来の脅威を予防するために、継続的かつ自動的に再設計される。
【００１３】
簡潔に述べると、本明細書で開示されるＡＮＮＩ及びプロアクティブなセキュリティメカニズムは、ドメイン内において、防御能力と攻撃能力の両方を備える、人工知能ベースのリアルタイムな継続的モニタリングセキュリティシステムを可能にする。中でも、ＡＮＮＩ及びＡＮＮＩを実施するプロアクティブなセキュリティメカニズムによって提供される便益及び特徴は、限定することなく、（１）既知及びこれまでは未知のマルウェア又は悪意あるコードを予防すること、（２）特別に設計及び最適化されたハードウェアアプライアンスエンジンが、ミリ秒の応答時間を可能にすること、（３）既存のネットワークセキュリティポイント製品を補完すること／それらと一体化すること、（４）望ましい場合には、既存の製品を簡略化し、置き換えること、（５）リアルタイムな継続的モニタリング及びプロアクティブな反応能力を提供すること、（６）ネットワーク及びホスト侵入防止及び検出、（７）リアルタイムな自動化された悪意あるコードの処理及び分解、（８）科学捜査、（９）診断、（１０）報告、（１１）監査証跡、（１２）自動化反応と手動反応の選択、（１３）データ損失保護を含む。
【００１４】
いくつかの実施形態では、ＡＮＮＩプラットフォームは、病気を予防する際の、攻撃に対する人体反応から着想を得ている。未知の攻撃者（ウイルス、癌細胞など）が身体に入って来たとき、身体の防御は、健康を守るために、１連の対抗防御を速やかに配備する。これらの自然の対抗手段が、本明細書で開示される包括的なセキュリティシステムの着想の元となった。
【００１５】
いくつかの実施形態では、プロアクティブなセキュリティメカニズム及びＡＮＮＩは、ほとんどの民生サーバ上で動作することができる。ＡＮＮＩの人工知能能力は、それが、企業、サービス・プロバイダ、及び政府ネットワーク要素を自己発見すること、ならびにネットワーク上のすべてのデバイスにソフトウェア要素を自己展開することを可能にする。ＡＮＮＩは、いくつかの実施形態では、クラウド内のサーバを用いて、自立的になるようにトレーニングされ、攻撃を予想し、マルウェアをデエンジニアリングし、持続的なマルウェアシグネチャ識別／生成を提供する。いくつかの実施形態では、ＡＮＮＩは、ファジ論理、リアルタイムトラフィックプロファイリング、挙動解析、ならびにリアルタイムマシン、ソーシャル学習、及び挙動学習を達成するために同期して働く複数の開発フレームワークから成る、ニューラルネットワークに基づいている。結果として、ＡＮＮＩは、ユーザのニーズを満たすために、自らのエンジン及び自らの学習行動を変更することができる。
【００１６】
少なくともいくつかの実施形態によれば、ＡＮＮＩは、高度な持続的な脅威／サイバ攻撃を防御し、必要な場合は、ドメイン内において、攻撃的に反応することができる。本発明の別の態様は、外部に通じるポート（例えば、信頼できないネットワークへのポート）を複製又はオープンしようと試みるいずれかのコードを検出することによって開始する、
前哨（ｓｅｎｔｉｎｅｌ）工程を提供することである。いくつかの実施形態では、プロアクティブなセキュリティメカニズムは、初期ホストネットワークを、そのネットワークが浄化されるまで、外部脅威として扱う。これらの対抗手段は、自己隠蔽であり、外部ボットネットを、それらがネットワークに入って来たときに、又はネットワークを横断しようと試みるときに、探し、解析し、追跡し、排除することができる。このネットワークの結果は、ソーシャル及び挙動学習を用いた、リアルタイムマシンの生成である。
【００１７】
以下のモジュール／コンポーネントの少なくともいくつかは、プロアクティブなセキュリティメカニズムにおいて、以下の能力と一体化され得る。
●前哨（キャプチャし、警告し、取り調べ、防御する）
（ｉ）悪意あるコードを識別し、キャプチャし、それを仮想コンテナ内に置き、それに対して科学捜査を行う。
【００１８】
（ｉｉ）マルウェア／コンテキストネットワーク挙動解析を識別する。
（ｉｉｉ）ネットワークに対してブラックリストを更新する。
（ｉｖ）他の能力に潜在的なアクションについて通知する。
【００１９】
（ｖ）ＩＰＳ／ＩＤＳ／ファイアウォール／コンプライアンスエンジン内で統合することができる。
●ステルス（ｓｔｅａｌｔｈ）（探す）
（ｉ）攻撃された場合、プロアクティブなセキュリティメカニズム又はそのコンポーネントは、マルウェア発信元に戻り、データを収集し始めることができる。
【００２０】
（ｉｉ）攻撃処理についての推奨を生成する。
（ｉｉｉ）ネットワーク／ホップ／発信元に関する情報を収集するために、オープン接続をマルウェアＩＰ宛先まで横断する。
【００２１】
（ｉｖ）マルウェア発信元までの経路を辿り、ＩＰ及び座標をキャプチャする。
●ローマ（ｒｏａｍｅｒ）（ネットワークを評価する）
（ｉ）システム全体にわたって同一又は類似のデジタルシグネチャを探す。
【００２２】
（ｉｉ）ローマ対抗手段がアクティブ又は休眠ボット／マルウェアを発見した場合、ＡＮＮＩに通知する。
●プレデタ（ｐｒｅｄａｔｏｒ）（交戦し、破壊する）
（ｉ）マルウェアを破壊するための対抗手段を実施する。
【００２３】
（ｉｉ）（サービス拒否攻撃において発生するような）すべての通信を切断する。
●インテリジェンス（結果を報告する）
（ｉ）ネットワークを強化するための組み合わされた手段。
【００２４】
（ｉｉ）マルウェアがどのように設計されたかを理解し、それをセキュリティデータストアに追加する。
●デジタルシグネチャデータベース
（ｉ）ハッキング挙動及びシステム防御フレームワークを記憶する。
【００２５】
（ｉｉ）記憶インテリジェンスが、クラウドデータマイニングサーバ料金を費やして、ＡＮＮＩによって生成される。
（ｉｉｉ）データをリアルタイムでＡＮＮＩにフィードバックする、ウルトラレイテンシ（ｕｌｔｒａ  ｌａｔｅｎｃｙ）技術を使用し、ＡＮＮＩは、その後、それをネットワーク・システム応答レイヤ全体にわたって拡散させる。
●免疫系−リアルタイム防御エンジン
（ｉ）リアルタイムスキャニング／侵入テストエンジンを利用する。
【００２６】
（ｉｉ）このエンジンは、ＡＮＮＩ人工知能コードエンジンによってリアルタイムに生成されるシグネチャ及び挙動フレームワークを使用して、ドメイン内において、反撃を提供する。
●ネットワーク応答システム
（ｉ）ＡＮＮＩは、すべてのネットワーク異常を感知し、見落とさないために、データ漏洩防止方法及びＡＮＮＩを使用する、自己回復ベータシステムを利用する。
●仮想マシン（ＶＭ）セーフブート（ハイパーバイザ）
（ｉ）本発明のＶＭシステムは、プロアクティブなセキュリティメカニズム及び／又はＡＮＮＩに、「問題になっている」データパケット又はソフトウェアを仮想環境内で安全に起動する能力を提供する。
【００２７】
（ｉｉ）仮想ゾーンは、データ又はマルウェアが科学捜査のためにデコンパイルされる場所である。
（ｉｉｉ）グラフィカルユーザリプレイ−ＡＮＮＩは、攻撃がどのように発生したかをさらに学習／教示するために、マルウェア攻撃を仮想的に再実行して、攻撃を再現する。
【００２８】
（ｉｖ）ＡＮＮＩは、マルウェアの識別に加えて、ハッカの起訴を支援するために、証拠となる監査証跡をリアルタイムに生成する。
（ｖ）ＡＮＮＩは、すべての資産（コンピュータ／サーバ／デバイスなど）を識別して、ネットワーク上に自己展開する。
●クラウド挙動データマイニングサーバ
（ｉ）データマイニングサーバは、ハッキングトレンド及び現在の挙動データに対してマイニングを行うために、ＡＮＮＩによって自己生成されるように設計された匿名サーバである。
【００２９】
（ｉｉ）挙動データマイニングサーバは、ネットワークを保護するための防御フレームワーク・シグネチャを生成するために、ＡＮＮＩの人工知能コードエンジンに、必要なデータ・フィードをリアルタイムに供給する。
【００３０】
（ｉｉｉ）データがリアルタイムで供給及び収集されることを保証するために、ウルトラレイテンシ技術が利用される。
●エンドポイント検出−逆ＮＡＣシステム
（ｉ）ＡＮＮＩは、エージェントレス（ａｇｅｎｔ−ｌｅｓｓ）にネットワークデバイスを検出し、管理するシステムを配信し、又は環境に応じて、ＡＮＮＩは、データアクセスを制御するために、対抗手段エージェントを展開する。
【００３１】
（ｉｉ）この検出及び管理工程は、セキュリティ「ベストプラクティス」を遵守し、維持するように、エンドポイントを強制する。
（ｉｉｉ）最後に、ＡＮＮＩは、ＡＮＮＩ防御を使用してデータ／ネットワークアクセスを許可する能力及びリアルタイムに拒否する能力を有する。
●自動化された科学捜査及び最新の発見的問題解決
（ｉ）変種からの保護を劇的に向上させ、システムが時間とともにより強力になることを可能にする。
【００３２】
（ｉｉ）結果として、システムは、対抗手段のための広範な機会を生み出す。
●持続的な自動更新
（ｉ）現在のネットワークセキュリティシステムの重大な弱点は、それらが時間ととも
に弱くなる傾向があり、そのため、一時的な妥当性を維持するために、シグネチャファイルを用いて定期的に更新される必要があることである。最も有益な特徴のなかでも、ネットワーク内の複数のＡＮＮＩのスループット適切ポイントは、互いに学習し合い、ブラックリストをネットワーク企業上で自動的に更新するように、ほぼリアルタイムで行為することができる。
【００３３】
（ｉｉ）連合アーキテクチャにおいて動作して、ＡＮＮＩは、より強力になり、リアルタイムの恒久的な妥当性を維持するように、自らを自動的に更新する。
プロアクティブなセキュリティメカニズム及び／又はＡＮＮＩを実施するように構成することができるプラットフォームは、以下のコンポーネント、すなわち、（１）レジストリ、（２）メモリ、（３）ログファイル、及び（４）１つ又は複数のオペレーティングシステムを含むことができる。
【００３４】
本発明によって提供されるまた他の態様は、限定することなく、
（ｉ）どのソフトウェアが動作したか、それがどのように到着したか、及びそれがどのように伝搬したかについてのリアルタイムの理解
（ｉｉ）挙動及びハッキングセンサ
（ｉｉｉ）「リアルタイム」の挙動トレンド及びハッキングトレンドをグローバルに配備されたセンサ及びパートナ設備から自己生成及び更新すること
（ｉｖ）プロアクティブな反応を可能にするためのリスク識別
（ｖ）マイクロ秒反応能力のためのイベント・モニタリング
（ｖｉ）企業の各所で起こったあらゆる事柄の完全な監査証跡
（ｖｉｉ）ノイズをフィルタリングするための方法（例えば、フォールスポジティブフィルタ、即ち偽陽性フィルタ）
（ｖｉｉｉ）出来事の即座調査及び修復
（ｉｘ）全企業の各所における資産のすべてに対する自動化された保護
（ｘ）反撃機能
（ｘｉ）防御的な対抗手段を備えること
（ｘｉｉ）多様な組織の必要を満たす柔軟で段階的な実施ポリシを構成すること
（ｘｉｉｉ）ブラックリスト、又は非認可ソフトウェアもしくは知られたマルウェアを能動的に禁止すること
（ｘｉｖ）ブラックリスト、又は潜在的なマルウェアもしくは未知のマルウェアを能動的に禁止すること
（ｘｖ）ホワイトリスト、又は信頼できるアプリケーションを明示的に許可すること
（ｘｖｉ）デフォルト拒否方針を実施すること
（ｘｖｉｉ）ネットワーク対抗手段を提供すること
（ｘｖｉｉｉ）企業封鎖を引き起こすこと
（ｘｉｘ）測定
（ｘｘ）要件からどれだけ大きく逸脱しているかを見るために、資産の基線変動についての報告を見ること
（ｘｘｉ）特定の実施ポリシに基づいたユーザコミュニティによるリスクについての報告を見ること
（ｘｘｉｉ）企業セキュリティの全体的健全性を検討するために、ダッシュボードへのアクセスを提供すること
（ｘｘｉｉｉ）監査証跡及びコンプライアンス遵守に関連付けられたポリシの固持を示す報告を見ること
（ｘｘｉｖ）ヘルプデスク承認の予期せぬイベントをシスログ、ＳＩＥＭ、電子メールなどに送信すること
（ｘｘｖ）非認可ソフトウェアの源泉、その場所、ならびにいつ及びどれだけの頻度でそれが動作したか、又は動作しようと試みたかについての詳細で包括的な分析を提供する
こと
（ｘｘｖｉ）システムに接続されたデバイスについての分析を提供すること
を含む。
【００３５】
いくつかの実施形態では、ＡＮＮＩは、自動化された科学捜査及び最新の発見的問題解決を提供する。この自動化された科学捜査は、変種からの保護を劇的に向上させ、システムが時間とともにより強力になることを可能にする。結果として、システムは、対抗手段のための広範な機会を生み出す。さらに、ＡＮＮＩの科学捜査は、テキストから音声への変換（ＴＴＳ）及び自動化された音声変換（ＡＳＲ）サービスを使用して通信することができる（１０００を超えるＴＴＳ、及びデジタル的に利用可能なあらゆる言語での計算）。ＡＮＮＩは、クラウド内のサーバを用いて、自立的になるようにトレーニングされ、攻撃を予想し、マルウェアをデエンジニアリングし、持続的なマルウェアシグネチャを提供する。
【００３６】
有益な特徴のなかでも、ネットワーク内の複数のＡＮＮＩのスループット適切ポイントは、互いに学習し合い、ブラックリストをネットワーク企業上で自動的に更新するように、ほぼリアルタイムで行為することができる。連合アーキテクチャにおいて動作して、ＡＮＮＩは、より強力になり、リアルタイムの恒久的な妥当性を維持するように、自らを自動的に更新する。
【００３７】
ネットワーク上での初期インストールにおいて、ＡＮＮＩは、その価値を確実に証明するために、しばらくの間、並列で動作することができる。顧客は、最初は環境上にパケット・キャプチャ・デバイスを配置し、ソーシャル・メディア利用において、またＩＴ部門からのオンライン・アクティビティにおいて増加するトラフィックを見張ることができる。ＡＮＮＩは、任意の独立のマルウェア・リサーチをピックアップし、それを使用して、その目的のためにセットアップされるコレクタを提供することができるので、ＩＴは、システムをさらに開発することができる。ＡＮＮＩのネットワーク反応及び免疫系が新しい悪意あるデータを検出することを可能にする、ハイパーバイザ（例えば、サンドボックス）環境への手入力が存在する。いくつかの実施形態では、デジタルシグネチャエンジンへの直接的な変更は、許可されない。
【００３８】
ＡＮＮＩは、企業ネットワークに入る、クラウドへ／から来るデータを保護する。いくつかの実施形態では、クラウド上で送信されるデータはいずれも、暗号化され、その宛先において再びスキャンされる。ＡＮＮＩは、ネットワークにログオンするあらゆるデバイスを最新パッチ、コンプライアンスなどについて調べる。
【００３９】
いくつかの実施形態では、ＡＮＮＩは、インストール中のリスクを軽減し、防御パラメータが改善されたことを顧客に知らせるのに有益なメトリックを提供するように構成することができる。ＡＮＮＩは、いくつかの実施形態では、すべての挙動異常を発見し、悪意あるコードをほぼリアルタイムにデコンパイルし、その後、デエンジニアリングすることができる。さらに、報告カードが、リアルタイムに提供され得る。ＡＮＮＩが配備されると直ちに、それは、トレンディング・データ使用、及び業界コンプライアンス関連データアクセスへのユーザ・アクセスを自動的に開始するように構成することができる。インストールにおいて、ＡＮＮＩは、ネットワーク挙動アクティビティを検出し、その後、全体的なネットワーク健全性を理解し、セキュリティ問題への対処を開始する。ＡＮＮＩは、ネットワークをベストプラクティスにあるとひとたび見なすと、脆弱性評価を開始することを許可されることができ、この工程は、脆弱なエリアにおける攻撃的な対抗手段の配備のための戦術的パラメータをセットアップするために、絶えず進化している。
【００４０】
いくつかの実施形態では、ＡＮＮＩのブレイクポイントは、ＨＰＣ構成に依存する。ミ
リタリ・グレードのＤＤＯＳ攻撃は、必要なハードウェア・リソースに攻撃をかわし／吸収することを、また反応することができることを要求する。今までは、３５分に約２６万５千のヒットは、４ＧＰＵを伴う８ＣＰＵのブレード・サーバ上で動作するＡＮＮＩにストレスを与えなかった。ＡＮＮＩは、数マイクロ秒以内に自らを防御することができる。システムが手動で反応するように設定される場合、人間との対話は、ブレイクポイントである。
【００４１】
ＡＮＮＩが、その「前哨」システムを通して、マルウェアをどのように攻撃し、破壊することができるかについての簡潔な要約が、以下に提供される。
１．マルウェアが、ＰＣ／サーバ／タブレット／スマートフォンなどにダウンロードされる。
２．前哨が、工程認識を通して、又はＡＮＮＩ  ＤＢ／ハッシュを使用して、コードをマルウェアとして識別する。
３．前哨が、システム・ステルス対抗手段に、オープン接続をマルウェアＩＰ宛先まで辿って、ネットワーク／ホップ／発信元に関する情報を収集するように（可能であれば）通知する。
４．マルウェアが、仮想コンテナ内に自動的に配置され、ドメイン内のすべての通信又は他の内部システムへのすべての通信が切断される。
５．ＡＮＮＩは、悪意あるコードをデコンパイルし、その後、デエンジニアリングを開始する／デジタルシグネチャを識別する。
６．マルウェアのＩＰアドレスに対して、新しいファイアウォールルールが生成される。
【００４２】
−単一のＩＰがブロックされる
−ＩＰの範囲がブロックされる
−オクテットブロッキング
７．前哨が、ＡＮＮＩに通知し、マルウェアのデジタルシグネチャを使用して、新しいマルウェアコードに対して科学捜査を開始する。
８．すべての前哨対抗手段が、脅威を通知される。
９．新しいマルウェアアドレスが、ブラックリストに入り、ブラックリストは、システム全体にわたってインテリジェントなコードにリアルタイムに更新される。
１０．前哨が、ローマ対抗手段に、システム全体にわたって同一又は類似のデジタルシグネチャを探すように通知する。
１１．ローマ対抗手段は、アクティブな又は休眠中のボット／マルウェアをひとたび発見すると、ＡＮＮＩに通知する。
１２．ＡＮＮＩは、マルウェアを破壊するために、攻撃シーケンスをプレデタ対抗手段に送信する。
１３．監査報告が、リアルタイムに工程が進行するにつれて自動的に生成される。
１４．ＡＮＮＩは、自動化された反応を設計し、マルウェアに対する接種を立案し、それが、先を見越したデータベース内に配置される。
【００４３】
上で説明された工程のすべては、ミリ秒未満のタイムフレームのうちに行うことができる。
いくつかの実施形態では、ＡＮＮＩは、防御し、報告し、いずれのデジタル脅威も攻撃的に攻撃することの裏にあるインテリジェンスを管理する包括的なコンソールを通して構成され、管理される。このコンソールは、ＶＭウェア環境において仮想化すること、ネットワーク上に単独マシンとしてインストールすること、又はクラウドからリモートエンジニアによって管理することができる
本発明の他の態様は、３次元モデリングを利用する能力を含む。本発明の実施形態は、システム内に統合された３Ｄモデリング描画を有する。３Ｄモデリング描画は、身体障害支援のために、及びユーザに現実の対話を提供するために、仮想化することができる。
【００４４】
本発明の別の態様は、システムが保護される方法を継続的に更新するために、機械学習を利用することである。いくつかの実施形態では、機械学習ライブラリは、継続的学習のためにＧＰＵを用いてアップグレードし、製品妥当性を改善することができる。
【００４５】
本発明の別の態様は、ジェスチャ認識プラットフォームを介した身振りで制御されるコマンドを可能にすることである。この統合は、カメラ及びイメージ挙動解析を可能にする物理的セキュリティシステムにＡＮＮＩを統合する能力を提供することができる。
【００４６】
「少なくとも１つ」、「１つ又は複数」、及び「及び／又は」という句は、連言と選言の両方の働きをもつ自由な表現である。例えば、「Ａ、Ｂ、及びＣのうちの少なくとも１つ」、「Ａ、Ｂ、又はＣのうちの少なくとも１つ」、「Ａ、Ｂ、及びＣのうちの１つ又は複数」、「Ａ、Ｂ、又はＣのうちの１つ又は複数」、及び「Ａ、Ｂ、及び／又はＣ」という表現は各々、Ａだけ、Ｂだけ、Ｃだけ、ＡとＢの２つ、ＡとＣの２つ、ＢとＣの２つ、又はＡとＢとＣの３つを意味する。
【００４７】
「ａ」又は「ａｎ」が付いた語は、その語が表すものの１つ又は複数を指す。そのため、「ａ」（又は「ａｎ」）、「１つ又は複数」、及び「少なくとも１つ」という語句は、本明細書では交換可能に使用することができる。「含む／備える（ｃｏｍｐｒｉｓｉｎｇ）」、「含む（ｉｎｃｌｕｄｉｎｇ）」、及び「有する（ｈａｖｉｎｇ）」という語が交換可能に使用され得ることにも留意されたい。
【００４８】
本明細書で使用される場合、「自動的」という語及びその変形は、工程又は操作が実行されるときに、具体的な人間の入力なしに行われる任意の工程又は操作を指す。しかしながら、工程又は操作の実行が具体的又は非具体的な人間の入力を使用するとしても、その入力が工程又は操作の実行前に受け取られる場合、工程又は操作は、自動的とすることができる。人間の入力は、工程又は操作がどのように実行されるかに、そのような入力が影響する場合、具体的であると見なされる。工程又は操作の実行に同意する人間の入力は、「具体的」であるとは見なされない。
【００４９】
本明細書で使用される場合、「コンピュータ可読媒体」という用語は、命令を実行のためにプロセッサに提供することに関与する任意の有形なストレージを指す。そのような媒体は、限定することなく、不揮発性媒体、揮発性媒体、及び伝送媒体を含む、多くの形態を取ることができる。不揮発性媒体は、例えば、ＮＶＲＡＭ又は磁気もしくは光学ディスクを含む。揮発性媒体は、メインメモリなどの動的メモリを含む。コンピュータ可読媒体の一般的な形態は、例えば、フロッピディスク、フレキシブルディスク、ハードディスク、磁気テープ、もしくは他の任意の磁気媒体、光磁気媒体、ＣＤ−ＲＯＭ、他の任意の光学媒体、パンチ・カード、紙テープ、孔のパターンを有する他の任意の物理媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、メモリカードなどのソリッドステート媒体、他の任意のメモリチップもしくはカートリッジ、又はコンピュータが読み取ることができる他の任意の媒体を含む。コンピュータ可読媒体がデータベースとして構成される場合、データベースは、リレーショナル、階層型、及び／又はオブジェクト指向など、任意のタイプのデータベースとすることができることを理解されたい。したがって、本発明は、本発明のソフトウェア実施が記憶される、有形な記憶媒体、ならびに先行技術で認められた等価媒体、及び後継媒体を含むと見なされる。
【００５０】
本明細書で使用される場合、「決定する」、「算出する」、及び「計算する」という用語、ならびにそれらの変形は、交換可能に使用され、任意のタイプの方法、工程、数学的演算又は技法を含む。
【００５１】
本明細書で使用される場合、「モジュール」という用語は、その要素と関連付けられた機能を実行することが可能な、任意の知られた、又は今後開発されるハードウェア、ソフトウェア、ファームウェア、人工知能、ファジ論理、又はハードウェアとソフトウェアの組合せを指す。
【００５２】
本明細書で使用される場合、「手段」という用語は、米国特許法第１１２条第６段落に従って、可能な限り最も広い解釈を与えられるものとすることを理解されたい。したがって、「手段」という用語を含む請求項は、本明細書で説明されたすべての構造、材料、又は行為、及びそれらの均等物のすべてを包含するものとする。さらに、構造、材料、又は行為、及びそれらの均等物は、本発明の要約、図面の簡単な説明、詳細な説明、要約書、及び請求項自体において説明されたそれらのすべてを含むものとする。
【００５３】
また、本発明は、例示的な実施形態に関して説明されるが、本発明の個々の態様は、別々に特許請求され得ることを理解されたい。本発明は、図面及び以下の詳細な説明からさらに理解される。本明細書は特定の細部について説明するが、本発明のある実施形態は、これらの特定の細部なしに実施され得ることが理解される。いくつかの例では、本発明の理解を曖昧にすることを避けるために、よく知られた回路、構成要素、及び技法は、詳細に示されていないことも理解される。
【００５４】
上で示されたのは、本発明のいくつかの態様についての理解を提供するための、本発明の簡略な要約である。この要約は、本発明、ならびにその様々な態様、実施形態、及び／又は構成についての広範な概要でも、網羅的な概要でもない。それは、本発明の主要又は必須要素を識別することも、本発明の範囲を記述することも意図しておらず、代わりに、以下で提示されるより詳細な説明への導入として、本発明の選択された概念を簡略化された形で提示することを意図している。理解されるように、本発明の他の態様、実施形態、及び／又は構成は、上で説明された、又は以下で詳細に説明される特徴の１つ又は複数を、単独で、又は組み合わせて、利用することが可能である。
【００５５】
本発明は、添付の図を併用して説明される。
【図面の簡単な説明】
【００５６】
【図１】本発明の実施形態による、コンピューティングシステム又はネットワークを示すブロック図。
【図２】本発明の実施形態による、プロアクティブなセキュリティメカニズムのコンポーネントを示す図。
【図３】本発明の実施形態による、セキュリティデータストア内に記憶され得る論理コンポーネントを示す図。
【図４】本発明の実施形態による、ネットワークセキュリティを管理する方法を示すフローチャート。
【図５】本発明の実施形態による、プロアクティブなセキュリティメカニズムによって使用されるモデルを構築するための工程を示すブロック図。
【図６】本発明の実施形態による、プロアクティブなセキュリティメカニズムによる処理中のデータパケットフローを示す図。
【図７】本発明の実施形態による、インストールされた環境内におけるアプリケーションフローの詳細を示すブロック図。
【図８】本発明の実施形態による、暗号化されたデータを処理する方法を示すフローチャート。
【発明を実施するための形態】
【００５７】
確固とした説明は、実施形態を提供するにすぎず、請求項の範囲、適用可能性、又は構
成を限定することは意図されていない。むしろ、確固とした説明は、当業者に、実施形態を実施することを可能にする説明を提供する。添付の請求項の主旨及び範囲から逸脱することなく、要素の機能及び配置に様々な変更が施され得ることが理解されよう。
【００５８】
最初に図１を参照すると、１つ又は複数のネットワーク接続されたコンピューティングデバイス１０４を含むシステム１００が示されており、ネットワーク接続されたコンピューティングデバイス１０４の少なくとも１つは、本発明の実施形態によるプロアクティブなセキュリティメカニズム１０８を備える。本明細書でさらに詳細に説明されるように、プロアクティブなセキュリティメカニズム１０８及びそのコンポーネントは、ネットワークに接続された１つ又は複数のデバイスによってインスタンス化され、又は実行され得る。プロアクティブなセキュリティメカニズム１０８は、ネットワーク接続されたコンピューティングデバイス１０４上に存在するように示されているが、システム１００のデバイスはいずれも、プロアクティブなセキュリティメカニズムのコンポーネントの一部又は全部を備えることができることを理解されたい。
【００５９】
システム１００内に含まれ得る他のコンポーネントは、限定することなく、保護されたドメイン又はネットワーク１１２と、サブネット１１６と、サブネットに接続されたネットワーク接続されたコンピューティングデバイス１２０と、モバイルコンピューティングデバイス１２４と、サーバ１２８と、ネットワーク境界デバイス１３２とを含む。ネットワーク境界デバイス１３２は、保護されたドメイン１１２を信頼できないネットワーク１３６（例えば、インターネット）から分離するデバイス又はデバイスの集まりに対応することができる。いくつかの実施形態では、ネットワーク境界デバイス１３２は、セッションボーダコントローラ（ＳＢＣ）、ゲートウェイ、ファイアウォール、ルータ、ネットワークアドレス変換器（ＮＡＴ）、又はそれらの組合せのうちの１つ又は複数を備える。ネットワーク境界デバイス１３２は、いくつかの実施形態では、保護されたドメイン１１２を信頼できないネットワーク１３６及びそれに接続されたデバイスから分離し、保護するように構成されたハードウェアコンポーネント及びソフトウェアコンポーネントの集まりに対応する。
【００６０】
保護されたドメイン１１２及び／又はサブネット１１６は、（例えば、インターネット・プロトコル（ＩＰ）ネットワークなど）パケットを介した通信を可能にするように構成された任意のネットワーク又はネットワークの集まり（例えば、コンピューティングネットワーク、通信ネットワークなど）に対応することができる。いくつかの実施形態では、保護されたドメイン１１２及び／又はサブネット１１６は、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、ストレージエリアネットワーク（ＳＡＮ）、バックボーンネットワーク、企業私設ネットワーク、仮想ネットワーク、仮想私設ネットワーク（ＶＰＮ）、オーバレイネットワーク、ボイスオーバＩＰ（ＶｏＩＰ）ネットワーク、又はそれらの組合せのうちの１つ又は複数を含む。サブネット１１６は、ドメイン１１２のＩＰネットワークの論理的に可視の下位区分に対応すること、又はそれを含むことができる。サブネット１１６と保護されたドメイン１１２との間には、１つ又は複数のデバイスが、存在することができるが、そのようなデバイスは、示されていない。
【００６１】
ネットワーク接続されたコンピューティングデバイス１０４、１２０は、任意のタイプのコンピューティングデバイス又は通信デバイスなどに対応することができる。名前は、コンピューティングデバイスがネットワークに接続されることを暗示するが、ネットワーク接続されたコンピューティングデバイス１０４、１２０は、ネットワークに（例えば、ネットワークインターフェースカードを介して）接続するように構成され得るにすぎず、実際には、デバイスは、ネットワークに接続されないこともある。ネットワーク接続されたコンピューティングデバイス１０４、１２０の適切な例は、限定することなく、パーソ
ナルコンピュータ（ＰＣ）、ラップトップ、タブレット、スマートフォン、セルラフォン、携帯情報端末（ＰＤＡ）、シンクライアント、スーパコンピュータ、サーバ、プロキシサーバ、通信スイッチ、セットトップボックス（ＳＴＢ）、スマートＴＶなどを含む。
【００６２】
サーバ１２０は、いくつかの実施形態では、１つ又は複数のルーチンを実行するように構成された任意のデバイス又はデバイスの集まりに対応することができる。サーバ１２０は、ホストとして１つ又は複数のサービスを実行又は遂行するために専用される物理コンピュータ（例えば、コンピュータハードウェアシステム）に対応することができる。言い換えると、サーバ１２０は、図１に示されるネットワークのいずれかに接続された他のコンピュータ又はコンピューティングデバイスのユーザのニーズを満たすことができる。それが提供するコンピューティングサービスに応じて、サーバ１２０は、データベースサーバ、ファイルサーバ、メールサーバ、プリントサーバ、ウェブサーバ、ゲームサーバ、又は他の何らかの種類のサーバとすることができる。
【００６３】
いくつかの実施形態では、モバイル通信デバイス１２４は、ネットワーク接続されたコンピューティングデバイス１０４、１２０に類似する、又は同一であることができる。モバイル通信デバイス１２４の適切な例は、限定することなく、スマートフォン、タブレット、セルラフォン、ハードフォン、ソフトフォン、ラップトップ、任意の８０２．１１ｘ対応デバイス（例えば、８０２．１１Ｎ、８０２．１１ａ、８０２．１１ｂ、もしくはそれらの任意の提案されたバージョンもしくはまだ開発されていないバージョン）、又は衛星フォンなどを含む。
【００６４】
いくつかの実施形態では、プロアクティブなセキュリティメカニズム１０８は、ネットワーク１１２、１１６及びそれらに接続されたデバイスを識別し、それらをマルウェア（例えば、悪意あるコード１５２及び／又は悪意あるコードの断片１５６）から保護するように構成することができる。図２及び図３に関してさらに詳細に説明されるように、プロアクティブなセキュリティメカニズム１０８は、ネットワーク接続されたデバイス上に存在するマルウェアのリアルタイム識別に加えて、マルウェア又はその変種を無力化し、それらがネットワーク１１２、１１６を通って拡散すること、又はネットワーク１１２、１１６に接続されたデバイスを不良にすることを効果的に阻止するための接種／対抗手段のリアルタイム生成も可能にする、１つ又は複数のコンポーネントを備えることができる。
【００６５】
プロアクティブなセキュリティメカニズム１０８の別の能力は、マルウェアの出所１４８が、１つ又は複数のファイアウォール１４０の背後に位置付けられた攻撃者のネットワーク１４４に接続されていたとしても、マルウェアの出所１４８を識別することである。特に、プロアクティブなセキュリティメカニズム１０８は、マルウェアをその出所まで遡り、それによって、（１）マルウェアの性質をさらに理解するための機会、及び／又は（２）プロアクティブにマルウェアの出所１４８と戦うための適切な対抗手段を生成するための機会を提供することが可能な、１つ又は複数のコンポーネントを配備することができる。
【００６６】
いくつかの実施形態では、プロアクティブなセキュリティメカニズム１０８は、他のコンピューティングデバイス上の悪意あるコードの断片１５６を識別することによって、悪意あるコード１５２を識別するように構成することができる。言い換えると、プロアクティブなセキュリティメカニズム１０８は、悪意あるコード１５２のシグネチャを識別し、ネットワーク上で類似のコードインスタンスを探すのに、そのコード全体を有する必要はない。代わりに、プロアクティブなセキュリティメカニズム１０８は、悪意あるコードの断片１５６を解析し、悪意あるコードの断片１５６についてのシグネチャに加えて、悪意あるコード１５２についてのシグネチャも決定することができ、それは、悪意あるコードの断片１５６のシグネチャと同じシグネチャのこともあり、又は異なるシグネチャのこと
もある。
【００６７】
今から図２及び図３を参照すると、プロアクティブなセキュリティメカニズム１０８、それのコンポーネント及び挙動のさらなる詳細が、本発明の実施形態に従って今から説明される。上で述べられたように、プロアクティブなセキュリティメカニズム１０８は、１つ又は複数のコンピューティングデバイス２０４上で実施することができる。いくつかの例として、プロアクティブなセキュリティメカニズム１０８は、サーバ、パーソナルコンピュータ、ラップトップ、スマートフォン、又はそれらの組合せ上で実施することができる。プロアクティブなセキュリティメカニズム１０８を備えるコンピューティングデバイス２０４は、メモリ２０８と、プロセッサ２１２と、ネットワークインターフェース２１６とをさらに含むことができる。
【００６８】
プロアクティブなセキュリティメカニズム１０８は、ウェブベースのアーキテクチャを介して（例えば、サービス型ソフトウェア（ＳａａＳ）として、クラウドベースのサービスとしてなど）、クラスタコンピューティングを介して、又は他の任意の知られたアーキテクチャを介して、１つ又は複数のローカル企業サーバ上に配備することができる。言い換えると、コンピューティングデバイス２０４は、１つ又は複数のサーバ、プロセッサ及びメモリを有するコンピュータ、仮想マシン、ＦＰＧＡ、ＡＳＩＣ、又はそれらの組合せを備える、システムに対応することができる。
【００６９】
メモリ２０８は、任意のタイプの非一時的コンピュータ可読媒体に対応することができる。メモリ２０８の適切な例は、揮発性記憶媒体と不揮発性記憶媒体の両方を含む。メモリ２０８のよりいっそうの特定の例は、限定することなく、ランダムアクセスメモリ（ＲＡＭ）、動的ＲＡＭ（ＤＲＡＭ）、静的ＲＡＭ（ＳＲＡＭ）、フラッシュメモリ、リードオンリメモリ（ＲＯＭ）、プログラム可能ＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、仮想メモリ、それらの変形、それらに対する拡張、及びそれらの組合せなどを含む。言い換えると、任意のタイプの電子データ記憶媒体又は記憶媒体の組合せが、本発明の範囲から逸脱することなく、使用され得る。
【００７０】
プロセッサ２１２は、メモリ２０８内に記憶されたプログラミング又は命令を実行するための汎用プログラム可能プロセッサ又はコントローラに対応することができる。いくつかの実施形態では、プロセッサ２１２は、１つ又は複数のプロセッサコア及び／又は仮想プロセッサを含むことができる。他の実施形態では、プロセッサは、並列処理又は直列処理のために構成された複数の別々の物理的プロセッサを備えることができる。さらに他の実施形態では、プロセッサ２１２は、特別に構成された特定用途向け集積回路（ＡＳＩＣ）もしくは他の集積回路、デジタル信号プロセッサ、コントローラ、配線接続された電子もしくは論理回路、プログラム可能な論理デバイスもしくはゲートアレイ、又は専用コンピュータなどを備えることができる。プロセッサ２１２は、プロアクティブなセキュリティメカニズム１０８など、メモリ２０８内に含まれるプログラミングコードを実行するように構成することができるが、プロセッサ２１２は、オペレーティングシステム、１つ又は複数のアプリケーション、及び通信機能など、コンピューティングデバイス２０４の他の機能を実行するように構成することもできる。
【００７１】
ネットワークインターフェース２１６は、コンピューティングデバイス２０４が、通信ネットワークを介して他のデバイスと通信することを可能にする、任意のハードウェアデバイス又はハードウェアデバイスの組合せを備えることができる。いくつかの実施形態では、ネットワークインターフェース２１６は、ネットワークインターフェースカード、通信ポート（例えば、イーサネット（登録商標）ポート、ＲＳ２３２ポートなど）、無線通信を可能にするための１つ又は複数のアンテナ、及びインターフェースのコンポーネント
のための１つ又は複数のドライバなどを備えることができる。ネットワークインターフェース２１６は、通信ネットワークからコンピューティングデバイス２０４において受信された、及び／又は通信ネットワーク上でコンピューティングデバイス２０４によって送信される通信パケットを変調／復調、暗号化／暗号解除などする能力も備えることができる。ネットワークインターフェース２１６は、任意の数の知られた通信プロトコル又はまだ開発されていない通信プロトコルを介した通信を可能にすることができる。ネットワークインターフェース２１６によってサポートされ得るそのようなプロトコルの例は、限定することなく、ＧＳＭ（登録商標）、ＣＤＭＡ、ＦＤＭＡ、ならびに／又はセルラ・ネットワーク上での音声、マルチメディア、及び／もしくはデータ転送をサポートすることが可能なアナログセルラ電話トランシーバを含む。代替として、又は加えて、ネットワークインターフェース２１６は、パケットベースのネットワーク、Ｗｉ−Ｆｉ、ＢＬＵＥＴＯＯＴＨ（登録商標）、ＷｉＭａｘ、赤外線、又は他の無線通信リンク上でのＩＰベースの通信をサポートすることができる。
【００７２】
上で述べられたように、プロアクティブなセキュリティメカニズム１０８は、プロアクティブなセキュリティメカニズム１０８が、保護されたドメイン１１２又はそれのサブネット１１６内で、マルウェア（例えば、悪意あるコード１５２及び／又は悪意あるコードの断片１５６）をプロアクティブに識別することを可能にするように構成された、多くのコンポーネント又はモジュールを備えることができる。プロアクティブなセキュリティメカニズム１０８は、ネットワーク動作に影響を与えずに、識別されたマルウェアをうまく処理し、又はそれと戦う能力も備えることができる。
【００７３】
プロアクティブなセキュリティメカニズム１０８内に含まれ得るコンポーネントの非限定的な例は、前哨モジュール２２０と、ステルスモジュール２２４と、隔離ハイパーバイザ２２８と、ＡＮＮＩ２３２と、科学捜査モジュール２３６と、１つ又は複数のローマ２４０と、対抗手段モジュール２４４と、報告モジュール２４８とを含む。動作において、前哨モジュール２２０は、ネットワーク内におけるマルウェアの存在を識別するために、セキュリティデータストア３０４及びそれに含まれる情報３０８を参照するように構成することができる。いくつかの実施形態では、前哨モジュール２２０は、ネットワークに入って来たパケット又はパケットの組合せが、潜在的に、又は実際に、マルウェアに対応するかどうかを決定するために、１つ又は複数の公知のマルウェアシグネチャを参照することができる。代替として、又は加えて、前哨モジュール２２０は、コンピューティングデバイス２０４におけるアクティビティが、知られた挙動又は予想される挙動に対応するかどうかを決定するために、ユーザ挙動定義（正常、異常、ユーザ・プロファイルなど）を参照することができる。例えば、ユーザは、一般的なユーザパターン（例えば、ウェブサーフィンパターン、ワークフローパターン、通常オープンされるアプリケーション、アプリケーションがオープンされる順序、実行される実行可能ファイルのタイプ、通常の作業時間など）を示す、ユーザプロファイルを有することができる。通常ユーザ挙動の定義からの逸脱はいずれも、疑わしいと見なすことができ、そのような逸脱中に実行を試みる情報又はコードのパケットはいずれも、暗号化されているか、それとも暗号化されていないかに関わらず、実際のマルウェア又は潜在的なマルウェアと見なすことができる。
【００７４】
前哨モジュール２２０が、コンピューティングデバイス２０４におけるアクティビティが、知られた挙動、通常の挙動、もしくは予想された挙動に対応しないと決定した場合、又は前哨モジュール２２０が、知られていない、信頼できない、もしくは知られたマルウェアに類似する特性を示す１つもしくは複数の情報のパケットが、ネットワークインターフェース２１６において受信されたことを検出した場合、前哨モジュール２２０は、そのパケットを隔離し、解析し、さらに処理するために、プロアクティブなセキュリティメカニズム１０８の他のコンポーネントを起動することができる。
【００７５】
プロアクティブなセキュリティメカニズム１０８に疑いをもつ性質を提供することは、本発明の１つの態様である。具体的には、前哨モジュール２２０は、情報のパケット又は知られていないユーザ挙動を信頼しないように構成され、したがって、いずれのパケット又はパケット断片も、そのパケット又はパケット断片がマルウェアでないと立証されない限り、マルウェアとして扱う。この立証は、自動的に、又は例えば、コンピューティングデバイス２０４におけるユーザ入力の支援を受けて、行うことができる。前哨モジュール２２０は、コンピューティングデバイス２０４におけるユーザ挙動、ネットワークインターフェース２１６において受信されたパケットの内容、ネットワークインターフェース２１６において受信されたパケットヘッダの内容などを解析するルールエンジンを使用するように構成することができる。ネットワークインターフェース２１６において受信されたすべてのデータパケットを解析することによって、前哨モジュール２２０は、いずれのマルウェアも、それが保護されたドメイン１１２に入って来ると直ちに、マルウェアが断片で入って来たとしても、速やかに識別することが可能である。
【００７６】
前哨モジュール２２０が、知られたシグネチャを有するマルウェアにまだ対応していないとしても、信頼できないパケット又はパケットの組合せ（例えば、ソフトウェア、命令、データなど）を検出した場合、前哨モジュール２２０は、プロアクティブなセキュリティメカニズム１０８内の１つ又は複数のモジュール（例えば、ステルスモジュール２２４、ＡＮＮＩ２３２、及び／又はローマ２４０）を同時に起動する。ステルスモジュール２２４は、潜在的なマルウェア又は確実に識別されたマルウェアの出所１４８をプロアクティブに探し出すように構成され、一方、ＡＮＮＩ２３２は、潜在的なマルウェアを隔離し、潜在的なマルウェアをデエンジニアリングし、コード又はコード断片上で追加の診断を実行するように構成される。ローマ２４０は、保護されたドメイン１１２及び任意のサブネット１１６において、前哨モジュール２２０によって識別された潜在的なマルウェアに部分的又は完全に類似するコードの部分を探すように構成される。
【００７７】
より具体的には、ステルスモジュール２２４は、前哨モジュール２２０によって潜在的なマルウェア又は実際のマルウェアであると識別された１つ又は複数のパケットについての情報（例えば、ヘッダ情報、ペイロード情報、ルーティング情報、アドレス指定情報など）を解析し、パケット情報の解析に基づいて、悪意あるコードの出所１４８を探し出すように構成されたコードの１つ又は複数の部分に対応することができる。いくつかの実施形態では、ステルスモジュール２２４は、悪意あるコードの出所１４８が、１つ又は複数のファイアウォール１４０によって、保護されたドメイン１１２から分離されているとしても、悪意あるコードの出所１４８を識別するように構成することができる。加えて、ステルスモジュール２２４は、プロアクティブなセキュリティメカニズムのコンポーネントの中でもとりわけ、ステルスモジュール２２４が検出されずに攻撃者のネットワーク１４４に到達することを基本的に可能にする自己隠蔽能力を備えることができる。さらにまた、ステルスモジュール２２４は、それが識別又は発見されたと思われる場合に、ステルスモジュール２２４に自己破壊させ、それによって、ステルスモジュール２２４の発信元の検出を妨げる、自己破壊コンポーネントを備えることができる。
【００７８】
ＡＮＮＩ２３２は、前哨モジュール２２０によって識別されたパケット又はコード断片を収集し、潜在的なマルウェアを隔離ハイパーバイザ２２８内に配置する能力を備えることができる。いくつかの実施形態では、隔離ハイパーバイザ２２８は、実際のマルウェア及び潜在的なマルウェアがＡＮＮＩ２３２による解析のために配置され得る、安全なサンドボックス（例えば、仮想マシン、仮想コンテナ、又は仮想コンピューティングプラットフォーム）に対応する。実際のマルウェア及び潜在的なマルウェアは、前哨モジュール２２０及び／又はＡＮＮＩ２３２によって、隔離ハイパーバイザ２２８内に配置することができ、その後、ＡＮＮＩ２３２は、実際のマルウェア又は潜在的なマルウェアが、安全な封じ込められたシステム内で実行又は遂行などされることを許可することができる。マル
ウェアを隔離ハイパーバイザ２２８内に配置することによって、ＡＮＮＩ２３２は、マルウェアを安全にデエンジニアリングすること、マルウェアを定義もしくは記述する１つもしくは複数のシグネチャを決定すること、及び／又はマルウェアに対する１つもしくは複数の対抗手段２４４を準備することを可能にされる。このデエンジニアリング及び解析のすべては、数ミリ秒のうちに実行することができ、それは、実際のマルウェア及び潜在的なマルウェアが、すべて、ネットワークアクティビティを妨害することなく、リアルタイムベースで識別され得ることを意味する。
【００７９】
いくつかの実施形態では、ＡＮＮＩ２３２は、マルウェアを速やかに識別し、マルウェアについてのデータベースシグネチャを生成し、マルウェアシグネチャが、プロアクティブなセキュリティメカニズム１０８の他のコンポーネント（例えば、前哨モジュール２２０、ローマ２４０など）によって参照され得るように、セキュリティデータストア３０４内に書き込まれるようにし、マルウェアについての接種情報又は命令を生成し、コードホワイトリスト及び／又はブラックリストを更新し、対抗手段挙動を更新するなどする、リアルタイム科学捜査ツールになる。ＡＮＮＩ２３２は、マルウェアのデエンジニアリングに基づいて、マルウェアについての接種命令をリアルタイムにセキュリティデータストア３０４内に配置するようにも構成される。
【００８０】
ＡＮＮＩ２３２が、これらの機能を非常に速やかに実行するように構成される理由の１つは、ＡＮＮＩ２３２が、ＣＰＵ、ＧＰＵ、及び／又はＡＰＵに基づいた高性能コンピューティング（ＨＰＣ）プラットフォーム上で実行されるように構成されるためである。いくつかの実施形態では、ＡＮＮＩは、ＲＡＭ内に存在し、４０〜５０ギガバイト／秒で互いに通信する１つ又は複数のサーバブレード上で実行することができる。さらに、ＡＮＮＩ２３２は、システム割り込み中に機能又は動作するように構成されるので、ＡＮＮＩ２３２の効率は、向上させられ得る。これは、保護されたドメイン１１２の他のコンポーネントが、どのようなコードも実行していないとしても、追加の計算が、ＡＮＮＩ２３２によって行われ得ることを意味する。ＡＮＮＩ２３２は、ハードウェア固有である対抗手段２４４を最適化するように構成することもできる。例えば、ＡＮＮＩ２３２は、マルウェアが第１のタイプのハードウェア（例えば、ルータ、ファイアウォールなど）において検出された場合、第１のタイプの対抗手段２４４を開発することができ、一方、ＡＮＮＩ２３２は、同じマルウェアが第２のタイプのハードウェア（例えば、コンピューティングデバイス、ハブ、スイッチなど）において検出された場合、第２のタイプの対抗手段２４４を開発することができる。マルウェアのデエンジニアリング中にＡＮＮＩ２３２によって開発された対抗手段２４４は、さらなる攻撃からハードウェアを保護する（例えば、マルウェアを隔離する、もしくは封じ込める）助けとなることができ、又は攻撃の拡散から他のハードウェアコンポーネントを保護する（例えば、ハードウェアもしくはそのコンポーネントを意図的に破壊する、もしくは非アクティブ化する）助けとなることができる。
【００８１】
科学捜査モジュール２３６は、対抗手段及びＡＮＮＩ２３２によって生成された他の情報を広めるように構成することができる。いくつかの実施形態では、科学捜査モジュール２３６は、システム１００内のすべての前哨２２０にセキュリティデータストア３０４に対する更新を通知するルーチンを実行するように構成される。具体的には、科学捜査モジュール２３６は、データ３０８内の１つ又は複数のエントリが更新されたことを、すべての前哨２２０に通知するように構成することができる。例えば、科学捜査モジュール２３６は、知られたマルウェアシグネチャ、コードホワイトリスト、コードブラックリスト、通常ユーザ挙動、異常ユーザ挙動、対抗手段挙動、（例えば、クラウドリソースの受動的解析から獲得されるような）ハッキングトレンド情報、ユーザフィルタなどのうちの１つ又は複数に対する更新が行われたことを、前哨２２０に通知することができる。科学捜査モジュール２３６は、ローマ２４０にもそのような更新を通知することができ、それによって、保護されたドメイン１１２内の既存のコードにおいてプロアクティブに探索を行っ
ているローマ２４０が、新たに発見されたマルウェアを探すことを可能にする。この更新された情報は、マルウェアがネットワークに入って来て、アクティブ化される前にしばらくの間休眠している攻撃（例えば、トロイの木馬攻撃）からドメイン１１２を効果的に保護する。
【００８２】
ローマ２４０は、ドメイン１１２及びそれに接続されたデバイスにおいて、ボット又はマルウェアのビット及び部分をプロアクティブに探すために、セキュリティデータストア３０４内の情報を参照するように構成することができる。いくつかの実施形態では、ローマ２４０は、前哨２２０が提供されていないコンピューティングデバイスにおいて探索を行うように構成される。ローマ２４０が、少なくともいくつかの特徴が知られたマルウェアの特徴と一致するコードの部分を検出した場合、ローマ２４０は、そのコードが、ＡＮＮＩ２３２による解析のために、隔離ハイパーバイザ２２８内に配置されるようにする。
【００８３】
対抗手段モジュール２４４は、マルウェアの解析及びデエンジニアリング中にＡＮＮＩ２３２によって開発された、１つ又は複数の対抗手段を実施するように構成することができる。いくつかの実施形態では、対抗手段モジュール２４４は、ローマ２４０及び／又は前哨２２０によって起動されるように構成され、起動されると、悪意あるコードの出所１４８を攻撃しに行く。マルウェアをその出所において攻撃することによって、対抗手段モジュール２４４は、保護されたドメイン１１２及び他のドメインを含む、他のネットワークへのマルウェアのさらなる拡散を防止することができる。対抗手段モジュール２４４によって起動され得る対抗手段のタイプは、限定することなく、コードの破壊、そのコードを有するハードウェアコンポーネントに対するサービスの中断などを含む。
【００８４】
ＡＮＮＩ２３２は、ネットワークトポロジ（例えば、保護されたドメイン１１２のトポロジ）、又はネットワーク境界デバイス１３２の背後にある他のネットワークのトポロジを識別する能力も備えることができる。いくつかの実施形態では、ＡＮＮＩ２３２は、保護されたドメイン１１２及びその任意のサブネット１１６に接続されたすべての資産（例えば、コンピューティングデバイス）を識別するように構成される。そのようなデバイスが信頼され、どのようなマルウェアも含まないと、ひとたびＡＮＮＩ２３２が決定すると、ＡＮＮＩ２３２は、それらの資産を、セキュリティデータストア３０４内に記憶することができる資産ホワイトリストに追加することができる。ＡＮＮＩ２３２は、ファイアウォール１４０の背後に存在する他のデバイスについてのネットワークトポロジも決定することができる（したがって、そのネットワークトポロジ図内に悪意あるコードの出所１４８を含む）。この機能は、ＡＮＮＩ２３２が、保護されたドメイン１１２に対する、悪意あるコードの出所１４８及びそれがどこに存在するかについての３次元マップ又は視覚化を構築することを可能にする。いくつかの実施形態では、この機能は、特に、自分たちの居場所が決定されたことをサイバ犯罪者が知った場合に、サイバ犯罪者に対する抑止力として機能する。ネットワークトポロジのマップ又は視覚化は、保護されたドメイン１１２のセキュリティ管理者に提供することができ、及び／又は悪意あるコードの出所１４８に提供して、その場所が決定されたことを彼らに通知することができる。
【００８５】
いくつかの実施形態では、プロアクティブなセキュリティメカニズム１０８内のコンポーネントの一部又は全部のアクションは、報告モジュール２４８によって追跡し、監査し、報告することができる。具体的には、報告モジュール２４８は、プロアクティブなセキュリティメカニズム１０８のコンポーネントの実行の結果ばかりでなく、それらのいずれかがいつ起動されたかも決定するように構成することができる。報告モジュール２４８は、プロアクティブなセキュリティメカニズム１０８のアクティビティをリアルタイムで報告することができる（例えば、前哨２２０がマルウェアを検出したときはいつでも、報告モジュール２４８は、そのようなアクティビティを報告することができる）。いくつかの実施形態では、報告モジュール２４８は、電子メッセージ（例えば、電子メール、ＳＭＳ
メッセージなど）を生成し、それを事前に定められたセキュリティ要員に送信する。加えて、又は代替として、報告モジュール２４８は、望ましい場合は配信することができる、プロアクティブなセキュリティメカニズムのアクティビティの日次報告又は定期報告を生成することができる。
【００８６】
いくつかの実施形態では、ＡＮＮＩ２３２及びプロアクティブなセキュリティメカニズム１０８の他のコンポーネントは、自らを攻撃から保護する能力を備えることができる。例として、（例えば、複数の攻撃マルウェアコンポーネントを用いる）総当たり攻撃が検出された場合、プロアクティブなセキュリティメカニズム１０８又はＡＮＮＩ２３２は、コンピューティングデバイス２０４を通信ネットワークに接続するネットワークインターフェース２１６ばかりでばく、自らの一部又は全部も無効にすることができる。プロアクティブなセキュリティメカニズム１０８又はＡＮＮＩ２３２によって実施され得る別の可能な応答は、１つのロケーションにおいて自らを無効にし、又は破壊し、ネットワークに接続された別のコンピューティングデバイス２０４において自らを再生する能力である。
【００８７】
セキュリティデータストア３０４内に記憶されたデータ３０８は、任意の知られた方式で組織化することができることを理解されたい。例として、データは、リレーショナルデータベース又は階層型データベース（例えば、ＳＱＬデータベース）内に記憶することができる。別の例として、データ３０８は、表形式又は多桁形式で記憶することができ、圧縮されてもよく、又は圧縮されなくてもよい。言い換えると、データ３０８の組織化は、特定の形式又は構造に限定されると解釈されるべきではない。
【００８８】
図４及び図５は、ＡＮＮＩ２３２又はプロアクティブなセキュリティメカニズム１０８の他の任意のコンポーネントによって実施することができるＡＩフレームワークのさらなる詳細を示している。具体的には、ＡＮＮＩ２３２は、３異常検出技法を実施することができる。第１の異常は、自動化された侵入検出を決定するために使用される、ファジクラスタリングアルゴリズム（ファジ論理）＋データマイニングに対応することができる。第２の異常は、Ｊ４８決定木機械学習又はニューラルネットワークを用いる特徴集合削減を利用することができる。第３の異常は、決定木機械学習及びサポートベクトルマシンを利用することができる。
【００８９】
図４に示されるように、ファジメンバーシップ関数パラメータを調整するために、汎用アルゴリズムが使用され得る。ファジｃ−メドイド（ｍｅｄｏｉｄ）アルゴリズムが、ランダムなメドイド候補を選択し（ステップ４０４）、最も近いメドイドに各点を割り当て（ステップ４０８）、新しいメドイドを計算し（ステップ４１２）、最も近いメドイドに各点を割り当て（ステップ４１６）、対象が移動されるべきかどうかを決定し（ステップ４２０）、移動されるべきでない場合、クラスタデータを生成する（ステップ４２４）ために使用され得る。その後、クラスタデータは、ローカルストレージ内に記憶すること（ステップ４２８）、及び／又はデータストア内に記憶すること（ステップ４３２）かできる。
【００９０】
データマイニング技法が使用され得る。データマイニング技法は、パターン発見アルゴリズムに基本的に対応するが、それらの大部分は、機械学習又はパターン認識などの関連分野から引き出される。データマイニング技法に従った侵入検出との関連では、以下の技法のうちの１つ又は複数が、本発明の実施形態に従って利用され得る。（１）関連付けルール−異常の発見を容易にする、データセット内のアイテム間の属性相関又は関係を決定することによって、通常のアクティビティを定義する。（２）頻発エピソードルール−データの発生を使用して、監査データ関係を記述する。（３）分類−データを、データの利用可能なカテゴリの１つに、通常データとして、又は攻撃のタイプの１つとして分類する。（４）クラスタリング−データを、グループ間類似性及びグループ内非類似性の特性を
有するグループ内に集める。（５）特徴付け−逸脱解析のためにさらに使用されるデータを区別する。
【００９１】
図５は、侵入検出モデルを構築するデータマイニング工程を示しており、そのいくつかは、プロアクティブなセキュリティメカニズム１０８による使用のために、セキュリティデータストア３０４内に記憶することができる。
【００９２】
本発明のまた他の実施形態は、悪意あるパケットを識別するために異常な有効期間（ＴＴＬ）値を使用するもの、ＡＩ挙動検出を使用するもの、及び仮想マシンセーフ／サンドボックスを使用するものなど、複数のマルウェア検出及び予測技法を集めることができる。
【００９３】
ＡＩ挙動検出に関して、悪意あるシグネチャのフレームワークは、業界から、また内部的にリアルタイム生成から集めることができる。これらの集められたシグネチャは、決定木を通過させ、ファジネットアルゴリズムから集められ、その後、正しい対抗手段に向けて配置することができる。
【００９４】
上で説明されたように、１つの独特な態様は、潜在的なマルウェアをデコンパイルし、デエンジニアリングするための安全な環境として、ハイパーバイザを利用する能力である。未知のパケット又は不確実なパケットは、追加コードと結合された、オープンソースのスタック化されたクロスプラットフォーム技術を使用する、ＡＮＮＩがその上でマルウェアを実行する機械学習ＨＰＣブレードに送ることができる。ＷＩＮＥと同様に、安全な仮想サンドボックスにおいて（例えば、隔離された環境において）、潜在的なマルウェアによってコールされたＡＰＩについての情報が収集され得る。その後、ハッシュダンプが、シグネチャとともに、対抗手段決定を開始するために、ＡＮＮＩに送られる。
【００９５】
図６及び図７は、ＡＮＮＩ２３２及びプロアクティブなセキュリティメカニズム１０８の他の態様を実行するために使用されるハードウェアのさらなる細部を示している。より具体的には、図６は、コンピューティングネットワークにおいてきわめて高速で受信されたデータパケット６０４を解析するために使用される、ＨＰＣシステムの態様を示している。図６に示されるコンポーネントの一部又は全部は、プロアクティブなセキュリティメカニズム１０８又は本明細書で説明される他の任意のセキュリティデバイス内で実行することができることを理解されたい。
【００９６】
データパケット６０４は、暗号化された形式又は暗号化されない形式で受信することができる。受信されると、（例えば、データパケット６０４の宛先アドレス内で定められるような）宛先に渡される前に、データパケット６０４は、前哨調査ＡＰＩ６０８によって処理され、前哨調査ＡＰＩ６０８は、データパケットフロー６１２を生成する。いくつかの実施形態では、前哨調査ＡＰＩ６０８は、インフィニバンドの形態のセンサと、ＦＤＲ調査ネットワークインターフェースカードとを含む。
【００９７】
いくつかの実施形態では、悪意あるトラフィックは、一階論理に基づいたイベント言語（例えば、非限定的な例として、イベントロン（Ｅｖｅｎｔｒｏｎ）プログラミング言語）を使用して検出される。例として、ニューラルネットワークは、新しいデータ又はパケットの検出が、ゲートウェイ又はデータフローセンサにおいて発生したときにだけ生成される。ＡＮＮＩのニューラルネットワークは、新しいデータセット内において関連付けを見出し、その後、「なぜ、どのように、及びどのような」データが着信しているか、又はネットワーク内で生成されるかについてのコンテキストを回帰するために、確立し、使用することができる。ＡＮＮＩ２３２が、新たに生成されたデータ又は着信パケットの関連付け及びコンテキストをひとたび理解すると、ニューラルネットワークは破壊される。デ
ータのコンテキスト又は理解は、人工知能だけが理解する、ＤＮＡアルゴリズム・サブセットとして記憶される。単純な例として、ＡＮＮＩ２３２は、パターン及び関連付けを検出することによって、意味を学習することができる。
【００９８】
新しいデータが傍受された場合、又はネットワーキングパケットが、ＡＮＮＩのＤＮＡストアドデータコンテキスト／意味データベースと異なる場合、ＡＮＮＩ２３２の脳は、デフォルトで、データのメイン収集ポイントにおいて（例えば、センサ又はゲートウェイレベルで）、２歳児の神経生理学をまねるように設計された。
【００９９】
新しいデータセットが、保護されたネットワーク内に導入される場合、ＡＮＮＩ２３２は、大規模な接続、非対称のグラフを有する、無数のニューラルネットワークを生成して（例えば、ニューラルセットの変形は、問題のデータのサイズ及び重みに依存する）、関連付け、次に、データのコンテキスト上の意味を見出す。ＡＮＮＩ２３２は、様々なネットワーキングセンサ及びシステムセンサから新たに導入されたデータ／パケットによって引き起こされた、ありとあらゆるバイナリスパイク（ｂｉｎａｒｙ  ｓｐｉｋｅ）を最初に収集することによって、初期工程を開始する。ＡＮＮＩ２３２が、（例えば、問題のデータセットが導入された瞬間における）環境のデジタルプロファイル及び保護された環境のセキュリティ健全性のリアルタイム「スナップショット」をひとたび有すると、ＡＮＮＩ２３２は、この知識をニューラルモデル内に圧縮し、その後、関連付け及び履歴挙動パターン（ホワイトリスト及び知られた悪意）のために、変化バイナリスパイク、履歴プロファイル（ホワイトリスト及び知られた悪意）、環境の現在のデジタル健全性の間でソートを行うために、セマンティック問合せ及び相関エンジンのクラスタを、他の挙動技法とともに、使用することによって、データセット上で回帰を実行する。このコンピューティング工程は、ＡＮＮＩ２３２のカスタマイズされた４０ＧｉｇＥパケットキャプチャＮＩＣを利用して、新しいデータ又は未知のデータセットを着信から、又は直接データタッピングを使用して直接的に内部データフローからリアルタイムでプルして、関連付け及び意味のための収集を行い、ひとたび完了すると、同じＮＩＣスタックデータが、ネットワーキング遅延なしに、宛先へのネットワークルートにデータセット又はパケットをバーストすることによって達成される。
【０１００】
ＮＩＣカードは、６４コア独立ＦＰＧＡ又はＡＳＩＣチップセットを有し、ＮＩＣ当たり最小２５６ギグ（ｇｉｇ）又は５１２ギグのメモリを備え、各ＮＩＣカードは、パケットキャプチャ及びインジェクションがすべてのイーサネット（登録商標）パケットサイズに対して１００％無損失である回線レートスループットを提供する。各カードは、パケットが２〜３マイクロ秒以内に受信され得るように、様々な着信パケットレートに適合したパケットキャプチャメカニズムを使用することによって、待ち時間を短縮するように開発された。カードは、（統合された６４コアＦＰＧＡ又はＡＳＩＣ  ＣＰＵチップセットにわたって着信フローをパーティション分割することによって行われる）強化されたマルチコアアウェアネスのためのパーティション分割、複製、及び工程共用を使用するように設計されるので、この設計は、簡潔さを生み出し、ディープパケットインスペクション（ＤＰＩ）を実行するアプリケーションに対して、高パケット負荷の下での処理時間制約を取り除く。ＮＩＣは、複数のＦＰＧＡ  ＣＰＵ６４コアが、同じデータセット又はパケットの集まりに対して異なるセマンティッククエリを同時に適用することができるように、着信パケットを複数の受信リングに複製することができる。ＮＩＣカードは、実際のパケット／データ到着時刻又は収集時刻を反映するために、すべての着信パケット及びすべての新たに検出されたデータセットに自動的にタイムスタンプを捺すようにプログラムされる。
【０１０１】
ＮＩＣカードは、着信パケットを割り当て、圧縮し、データパターンを、メイン人工知能インタープリタエンジンが意味を決定するために使用し、その後、将来の論理回帰のた
めに記憶する、バイトサイズＤＮＡコンテキスト言語にデコンパイルする、ＨＰＣのブレードの４つの独立ＧＰＵプロセッサと直接的に統合し、ロジックを共用するようにカスタマイズすることができる。いくつかの実施形態では、メイン人工知能インタープリタは、コンテキストに対して圧縮解除及び分解を行う、６つのカスタマイズされたＡＳＩＣ６４チップセット又は６つのスタンドアロンＧＰＵプロセッサのクラスタである。
【０１０２】
フローデータパケット６１２は、その後、（上で説明された前哨２２０と類似の機能を実行することができる）１つ又は複数の前哨サーバ６１６に提供される。前哨サーバ６１６は、フローデータパケット６１２を収集し、それらがフローコンテキスト意味エンジン６２０に渡され得るように、それらを組織化する。いくつかの実施形態では、フローコンテキスト意味エンジン６２０は、プロアクティブなセキュリティメカニズム１０８の追加の態様を実行する。特に、フローコンテキスト意味エンジン６２０は、前哨サーバ６１６から受信した入力を解析し、フローデータパケット６１２が認識された又は認識されていない（例えば、異常な）パターン、特徴、及び／又はシグネチャを含むかどうかを決定するために、ＡＮＮＩ２３２を実施することができる。さらに、フローコンテキスト意味エンジン６２０は、ＨＰＣが異常挙動をリアルタイムに識別し、さらに解析中に識別されたいずれのマルウェアにも対抗手段を生成することを可能にするパターン相関機能を、データ・ビジュアライザに提供することができる。
【０１０３】
いくつかの実施形態では、ＡＮＮＩ２３２は、ニューラルネットワーク又は人工知能の他の任意の形態とは根本的に異なる。特に、ＡＮＮＩ２３２は、ユーザによって事前定義されたどのようなニューラル構造も有さない。ＡＮＮＩ２３２のニューラルネットワークは、ノード間の接続が自動的である、すなわち、意識的な制御なしに形成される、神経学的な構造に類似する。
【０１０４】
システムに供給されたあらゆるバイト間のすべての関係を記述する接続はｎ次元グラフを形成する。これは、ＡＮＮＩ２３２が、データ摂取を見つけたときに、新しいデータを考慮して関係を自動的に調整することを学習することを可能にする。
【０１０５】
学習しながら、ＡＮＮＩ２３２は、トピックによって各バイトを階層に、すなわち、最も一般的なものから開始して次第に最も特定的なものに推移するように、自動的に分類する、最小のオントロジ（ｏｎｔｏｌｏｇｙ）を生成する。無数の階層は、任意の方向に形成することができ、ヘテラルキ（ｈｅｔｅｒａｒｃｈｙ）を形成する。（階層的分類は、包摂関係によって配列される）。ＡＮＮＩ２３２は、各バイトが別のバイトに関係するときに、各バイトに固有の意味論的意味を検出することができ、人的バイアス又は過剰学習は存在しない。この最小オントロジ手法は、機械が、任意のデータ要素間の高次の関係を学習することを可能にする。言い換えると、ＡＮＮＩ２３２は、語の概念的意味を検出することができ、語が予期されない方法又は独特な方法で使用される場合、隔離することができる。
【０１０６】
ＡＮＮＩ２３２は、システムを教え、機械に意図的な観点を与えるオプションもユーザに提供する。特定の関係に対するデータ要素の重要性に影響を与えるために、データのトポグラフィを動的に調整する検索が、最小オントロジに入力され得る。問題に回答するための最良経路をシステムが学習することを可能にする。問題が繰り返される場合、ＡＮＮＩ２３２は、回答を形成する関連データ要素間の関連付けを厳しくすることができる。人間の筋肉記憶のように。
【０１０７】
ニューラルネットと異なり、ＡＮＮＩ２３２は、問題に対する回答を含むすべての関係を明らかにする。半透明性。教示可能−ＳＤＫ内のコマンドは、特定の関連付けを作成し、他を無視するように、ユーザがＡＮＮＩ２３２に命令することを可能にする。パターン
を学習するために、ＡＮＮＩ２３２を外部リソース又はグローバルサーバに導くことが、推奨され、潜在的により高速である。特に、ＡＮＮＩ２３２は、言語とデータの両方について不可知であり、バイトレベルで学習するように構成される。コンテキストデータセット又はＡＮＮＩの学習データベースデータセットは、実際のコードを変更せずに、ＡＮＮＩのニューラルモデルの部分をアクティブ化又は非アクティブ化することによって、実質的ないじり（ｔｉｎｋｅｒｉｎｇ）が発生することを必要とする。例えば、ブート時に、それがどのようなＣＰＵ上で実行されているかを発見し、（例えば）それがシングルＣＰＵシステム上で実行されている場合、バイナリコードの部分を実質的に無効化する、６４ビットＬｉｎｕｘ（登録商標）マイクロカーネル内において。これは、ｉｆ（ｎｕｍｃｐｕｓ＞１）のようなものを超え、それは、ロッキングによる実質的なノーオペレーション（ｎｏｐｐｉｎｇ）である。重要なこととして、このノーオペレーションは、メモリにおいて発生し、ディスクベースのイメージ上で発生しない。ＡＮＮＩのコンテキストデータベースは、ＲＬＬ又はＭＦＭコーディングのように記憶される。ハードディスク上で、ビットは、極性遷移又はそれの欠如によって符号化される。ネイティブ符号化は、０を「遷移なし」として、１を「遷移」として符号化する。００００００の符号化は、数マイクロメートルにわたって磁気位相を変化なしに保つ。復号中、正確なマイクロメートルを理解するために、遷移なしの長い広がりが発生しないように、データが扱われる。ＡＮＮＩが、ディスク上で「遷移なし、遷移なし、遷移、遷移」を観察した場合、ＡＮＮＩは、コンテキストＤＮＡバイトが「００１１」に対応すると決定することができ、ＡＮＮＩの読み取り工程が非常に不正確で、これが「０００１１」又は「００１１１」に対応し得る可能性はきわめて低い。そのため、システムは、小さすぎる遷移を防止するために、スペーサを挿入するように開発される。これは、磁気媒体上での「ラン・レングス制限」と呼ばれる。遷移は、データが信頼性をもって記憶され得ることを確実にするために、挿入されることを必要とする。ＡＮＮＩの学習コンテキスト・セル又はデータセットは、非常に厳格な条件、「セキュアバイデフォルト（ｓｅｃｕｒｅ  ｂｙ  ｄｅｆａｕｌｔ）」構成が満たされない限り、クローニングすることはできない。
【０１０８】
図７は、インストールされたシステムにおけるＨＰＣ環境の追加の詳細を示している。管理エンジン７０４は、プロアクティブなセキュリティメカニズム１０８のメイン・アプリケーションを実行する、メイン論理ＡＩエンジンを備えることができる。いくつかの実施形態では、管理エンジン７０４は、８ブレードクラスタＨＰＣを備える。メイン人工知能エンジンを収容する管理エンジン７０４は、ＡＩエンジンがマルウェアを探して、又は推論のために解読するように、新しいフローデータを意味カテゴリに入れて可視化する、自然言語及びデジタルバイト推論学習木フレームワークを備えることができる。
【０１０９】
管理エンジン７０４は、パケットキャプチャ／データ検査モジュール７０８と通信することができる。パケットキャプチャ／データ検査モジュール７０８は、コンピューティングネットワーク内においてデータパケット６０４を収集するために使用される前哨２２０能力を提供することができる。パケットキャプチャ／データ検査モジュール７０８は、管理エンジン７０４とデータパケットを処理／解析するために使用されるサーバクラスタ７１２との間のインターフェースを提供することができる。したがって、メインエンジン７０４は、パケットキャプチャ／データ検査モジュール７０８を介して、サーバ７１２の動作を制御することができる。
【０１１０】
サーバクラスタ７１２は、２つの異なるネットワーク環境、すなわち、（１）ユーザ空間と、（２）サーバカーネル及びオペレーティングシステム（Ｏ／Ｓ）空間とを含むことができる。ユーザ空間は、パケットキャプチャ／データ検査モジュール７０８によって収集されたパケットとのユーザの対話をシミュレートする、ネットワークアプライアンス７１６を含むことができる。特に、ネットワークアプライアンス７１６は、コンピューティングネットワーク内における通常のユーザ挙動及び／又は信頼できるユーザ挙動を決定／
定義する助けとなる、コンピューティングネットワーク内におけるユーザのデジタルプロファイルを含むことができる。ネットワークアプライアンス７１６において受信されたデータパケットは、どのＡＰＩがデータパケットによってコールされたかを見るために、さらにそのようなコールが通常の挙動又は予想された挙動内におけるものかどうかを見るために、実行することができる。
【０１１１】
サーバカーネルＯ／Ｓ空間は、１連のアプリケーションを動作させ、それによって、ＡＮＮＩ２３２が、受信したパケットの実行に応答したアプリケーションの動作が、コンピューティングネットワークに対する脅威を引き起こすかどうかを決定することを可能にする、ネットワークアダプタ７２０を含むことができる。サーバカーネルＯ／Ｓ空間内のアプリケーションは、きわめて高速にＡＮＮＩ２３２を実行しており、それによって、マルウェア及びネットワーク脅威がリアルタイム又はほぼリアルタイムに識別されることを可能にする、ＤＮＡ  ＮＩＣブレードエンクロージャ７２４又は論理ブレードエンクロージャ７２８に属する、１つ又は複数のＮＩＣブレードによって実質的に実行することができる。
【０１１２】
上で説明されたように、ＮＩＣカードは、６４コア独立ＦＰＧＡ又はＡＳＩＣチップセットを有し、ＮＩＣ当たり最小２５６ギグ又は５１２ギグのメモリを備えることができ、各ＮＩＣカードは、パケットキャプチャ及びインジェクションがすべてのイーサネット（登録商標）パケットサイズに対して１００％無損失である回線レートスループットを提供する。各カードは、パケットが２〜３マイクロ秒以内に受信され得るように、様々な着信パケットレートに適合したパケットキャプチャメカニズムを使用することによって、待ち時間を短縮するように開発することができる。カードは、（統合された６４コアＦＰＧＡ
ＣＰＵチップセットにわたって着信フローをパーティション分割することによって行われる）強化されたマルチコアアウェアネスのためのパーティション分割、複製、及び工程共用を使用するように設計されるので、この設計は、簡潔さを生み出し、ディープパケットインスペクション（ＤＰＩ）を実行するアプリケーションに対して、高パケット負荷の下での処理時間制約を取り除く。ＮＩＣは、複数のＦＰＧＡ  ＣＰＵ６４コアが、同じデータセット又はパケットの集まりに対して異なるセマンティッククエリを同時に適用することができるように、着信パケットを複数の受信リングに複製することができる。ＮＩＣカードは、実際のパケット／データ到着時刻又は収集時刻を反映するために、すべての着信パケット及びすべての新たに検出されたデータセットに自動的にタイムスタンプを捺すようにプログラムされる。
【０１１３】
ＮＩＣカードは、着信パケットを割り当て、圧縮し、データパターンを、メインＡ．Ｉ．インタープリタエンジンが意味を決定するために使用し、その後、将来の論理回帰のために記憶する、バイトサイズＤＮＡコンテキスト言語にデコンパイルする、ＨＰＣの個別ブレードの４つの独立ＧＰＵプロセッサと直接的に統合し、ロジックを共用するようにカスタマイズすることができる。（メインＡ．Ｉ．インタープリタは、コンテキストに対して圧縮解除及び分解を行う、６つのカスタマイズされたＡＳＩＣ６４チップセットのクラスタである）。ＮＩＣカードは、データフローコンテキスト又はデータタイプに応じて、ＡＳＩＣ、ＦＰＧＡ、又はスタンドアロンＧＰＵにわたる、処理チップセットをサポートするように統合される。データフローバイト情報意味のためにデータフローをプロセッサチップセットにプル又はプッシュする、標準オプショナル４０ギガビットＱＤＲインフィニバンド、５６ギガビットＦＤＲインフィニバンドから、デュアル５６ギガビットＦＤＲインフィニバンド・オプションにわたる、ＮＩＣカード。ＮＩＣカードは、４０ギガビットＱＤＲインフィニバンド、５６ギガビットＦＤＲインフィニバンドから、デュアル５６ギガビットＦＤＲインフィニバンドまでの速度で、マルウェア特徴と一致するデータバイトについてのインテリジェントなデータフロー検査を提供するために、処理チップセット（ＧＰＵ、ＡＳＩＣ、又はＦＰＧＡ）と一致して機能する。
【０１１４】
今から図８を参照して、暗号化され、暗号解除された、自由形成のデータを解析する方法が、本発明の実施形態に従って説明される。上で説明されたように、プロアクティブなセキュリティメカニズム１０８は、暗号化された形式又は暗号解除された形式で脅威を速やかに解析する能力を提供され得る。図８の図は、プロアクティブなセキュリティメカニズム１０８において受信された暗号化されたデータの処理を促進するために使用することができる特別な方法を示している。特に、方法は、暗号化されたデータがプロアクティブなセキュリティメカニズム１０８において受信されたときに開始する（工程８０４）。例として、暗号化されたデータは、ＡＮＮＩ２３２による解析のために、前哨２２０によって収集することができる。
【０１１５】
暗号化されたデータを受信すると、プロアクティブなセキュリティメカニズム１０８は、引き続き、受信された暗号化されたデータと関連付けられるように決定された、関連付けられたデータ、メタデータ、及びデジタルフットプリントを収集する（工程８０８）。特に、プロアクティブなセキュリティメカニズム１０８は、受信された暗号化されたデータとの類似性を有するすべての通常データ（例えば、暗号化されたデータと共通の宛先、暗号化されたデータと共通の送信元を有し、暗号化されたデータと共通のアプリケーションを利用し、暗号化されたデータと共通のＴＴＬを有し、又は暗号化されたデータに類似する他の任意の特徴を有する、任意のデータ又はメタデータなど）を見つけようと試みることができる。データは、なぜ、どのように、何が、誰が、どこから、どれだけの間、及びいつに意味を与えるために収集される。このデータは、その後、解析のためのデータベース・クエリを形成するために使用される。具体的には、ＡＮＮＩ２３２は、コンテキスト相関及び回帰を含む、統計的解析を開始することができる。（例えば、工程８０８において収集されたデータを解析し、相関及び回帰を介してその通常データ又は信頼できるデータに関連付けられた特徴を決定することによって）通常データのコンテキストが１度識別される。この工程は、ＡＮＮＩ２３２が、通常データ（例えば、受信された暗号化されたデータに関連する通常データ）がなぜ環境内に存在するかに意味を与える、学習モデル要素を構築することを含むことができる（工程８１６）。これらの学習モデル要素は、暗号化されたデータが隔離ハイパーバイザ２２８内に維持されている間に、ＡＮＮＩ２３２によってリアルタイムに構築することができる。
【０１１６】
学習モデル要素は、その後、暗号化されたデータと比較することができるように、ＡＮＮＩ２３２によってカテゴライズすることができる（工程８２０）。より具体的には、ＡＮＮＩ２３２は、見出された履歴データと比較した場合の、暗号化されたデータがどのように扱われるべきかについての相違を理解するために、暗号化されたデータがどのように使用され、生成され、送信されているかなどを、通常データ／信頼できるデータを用いて構築された予測モデルと相関させ、それらに回帰させることができる。さらにより具体的には、ＡＮＮＩ２３２は、通常データと比較して、暗号化されたデータがアプリケーションによってどのように扱われるか、及び／又は暗号化されたデータがユーザによってどのように扱われたかに関する手がかりを探すことができる。暗号化されたデータが、通常データと同様に扱われている場合、ＡＮＮＩ２３２は、暗号化されたデータが潜在的なマルウェアではないと決定することができる。例えば、暗号化されたデータのＴＴＬ、送信元、受信先が、通常データ／信頼できるデータ内のパターンと一致する場合、ＡＮＮＩ２３２は、さらなる処理を行わずに、暗号化されたデータが、実際の宛先に進むことを許可することができる。工程８０８から８２０までの工程は、上で説明されたＨＰＣを用いて、相対的に速やかに完了することができるので、暗号化されたデータを実際の宛先に送信する際の遅延は、相対的に最小であり、ほとんど無視することができることを理解されたい。
【０１１７】
しかしながら、受信された暗号化されたデータが、非常に僅かな発生しか見せず、又は
通常データと非常に僅かな類似性しか有さない場合、暗号化されたデータは、さらなる解析が必要であると識別される（工程８２４）。そのようなデータは、安全な環境内で実行され得るように、隔離ハイパーバイザ２２８内で暗号解除される（工程８２８）。非限定的な例として、受信された暗号化されたデータが、通常（例えば、普通の送信元、普通の受信先、普通のＴＴＬなど）であるとして識別されたデータセットとの類似性を有する場合、暗号化されたデータは、通常であるとして識別され、さらなる処理及び／又は暗号解除を行わずに、先に進むことを許可され得る。したがって、通常データは、暗号解除を行わずに、ＡＮＮＩ２３２によって処理することができる。異常な暗号化されたデータ、又は信頼できるデータとの十分な類似性を有さない暗号化されたデータは、暗号解除され、それがコンピューティングネットワークに対する脅威を引き起こすかどうかを決定するために、さらに処理される。したがって、ＡＮＮＩ２３２は、コンピューティングネットワーク内の暗号化されたデータセットの集まり全体に対する完全な暗号解除を必要としない。ＡＮＮＩ２３２が、通常データの回帰的コンテキスト学習を利用した後、ユーザ対話が、その後、意味に対して相関させられる。ＡＮＮＩ２３２は、その後、暗号化されたデータに対して予想される通常行為を探すことができる。これは、ＡＮＮＩ２３２が、暗号化されたデータの異常を識別し、その後、さらなる調査を行うようにシステム管理者に警告を送信するのに、又は暗号化されたデータの自動化されたしらみつぶしの暗号解除及びベストプラクティス評価のために、暗号化されたデータパケットをＨＰＣに提示するのに役立つ。
【０１１８】
さらなる実施形態は、ＧＰＵを使用するＡＮＮＩデータ・トラフィック検査フレームワークを利用し、フレームワークをサブシステム又はコンポーネントに分割する能力を企図している。
【０１１９】
ＡＮＮＩ２３２のデータ・トラフィック検査フレームワーク設計は、以下を含む。
ＤａｔａＣｏｌｌｅｃｔｏｒ（Ｓｅｎｔｉｎｅｌ）：ネットワークパケットを獲得し、それらをＡｎｎｉ  ＤＮＡ又はＣｏｎｔｅｘｔ  ＤＮＡオブジェクトにバッファリングすることを担当する。
Ｍａｉｎ  Ａｎｎｉ  Ｌｏｇｉｃａｌ  Ｃｌｕｓｔｅｒ：ＤａｔａＣｏｌｌｅｃｔｏｒ（Ｓｅｎｔｉｎｅｌ）からＡｎｎｉ  ＤＮＡ又はＣｏｎｔｅｘｔ  ＤＮＡオブジェクトを獲得し、それらをすべての回帰Ａ．Ｉ．クラスタコンポーネントに分配する。
Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ：Ａｎｎｉ  ＤＮＡ又はＣｏｎｔｅｘｔ  ＤＮＡオブジェクト内に含まれるデータ上で回帰計算を実行する。これらは、回帰計算から獲得された結果に応じたアクションも実行する。
【０１２０】
Ａｎｎｉデータ・トラフィック検査フレームワークは、いくつかの実施形態では、プログラムのｍａｉｎ（）関数が、回帰Ａ．Ｉ．クラスタ工程を開始する前に、新しい回帰コンポーネント及びＤａｔａＣｏｌｌｅｃｔｏｒ（Ｓｅｎｔｉｎｅｌ）コンポーネントのメインＡｎｎｉ論理クラスタコンポーネントへの追加を含むことを必要とする。
【０１２１】
非限定的な例として、
ｍａｉｎ（）｛
／／望むだけ多くの回帰Ａ．Ｉ．クラスタコンポーネントを追加する
Ｍａｉｎ  Ａｎｎｉ  Ｌｏｇｉｃａｌ  Ｃｌｕｓｔｅｒ．ａｄｄＲｅｇｒｅｓｓｉｏｎ
Ａ．Ｉ．  Ｃｌｕｓｔｅｒ（Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ１）；
Ｍａｉｎ  Ａｎｎｉ  Ｌｏｇｉｃａｌ  Ｃｌｕｓｔｅｒ．ａｄｄＲｅｇｒｅｓｓｉｏｎ
Ａ．Ｉ．  Ｃｌｕｓｔｅｒ（Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ２）；／／．．．
Ｍａｉｎ  Ａｎｎｉ  Ｌｏｇｉｃａｌ  Ｃｌｕｓｔｅｒ．ａｄｄＲｅｇｒｅｓｓｉｏｎ
Ａ．Ｉ．  Ｃｌｕｓｔｅｒ（Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  ＣｌｕｓｔｅｒＮ）；
｝
／／望むだけ多くのＰａｃｋｅｔＦｅｅｅｄｅｒコンポーネントを追加する
Ｍａｉｎ  Ａｎｎｉ  Ｌｏｇｉｃａｌ  Ｃｌｕｓｔｅｒ．ａｄｄＦｅｅｄｅｒ（Ａｎｎｉ
ＤＮＡ  ｏｒ  Ｃｏｎｔｅｘｔ  ＤＮＡ１）；
Ｍａｉｎ  Ａｎｎｉ  Ｌｏｇｉｃａｌ  Ｃｌｕｓｔｅｒ．ａｄｄＦｅｅｄｅｒ（Ａｎｎｉ
ＤＮＡ  ｏｒ  Ｃｏｎｔｅｘｔ  ＤＮＡ２）；
／／．．．
Ｍａｉｎ  Ａｎｎｉ  Ｌｏｇｉｃａｌ  Ｃｌｕｓｔｅｒ．ａｄｄＦｅｅｄｅｒ（Ａｎｎｉ
ＤＮＡ  ｏｒ  Ｃｏｎｔｅｘｔ  ＤＮＡＭ）；
／／パケット獲得及び解析を開始する
Ｍａｉｎ  Ａｎｎｉ  Ｌｏｇｉｃａｌ  Ｃｌｕｓｔｅｒ．ｓｔａｒｔ（）
ＤａｔａＣｏｌｌｅｃｔｏｒ（Ｓｅｎｔｉｎｅｌ）。
【０１２２】
Ａｎｎｉデータ・トラフィック検査フレームワークは、いくつかの実施形態では、ネットワークパケットを獲得すること、及びそれらをＡｎｎｉ  ＤＮＡ又はＣｏｎｔｅｘｔ  ＤＮＡオブジェクト内にパックすることを担当するコンポーネントとして、ＤａｔａＣｏｌｌｅｃｔｏｒ（Ｓｅｎｔｉｎｅｌ）を定義する。
【０１２３】
Ａｎｎｉ  ＤＮＡ又はＣｏｎｔｅｘｔ  ＤＮＡクラスは、ＭＡＸ＿ＢＵＦＦＥＲ＿ＰＡＣＫＥＴＳのパケットからなるアレイを定義すべきであり、その中に、生のネットワーク・データ、基本的にネットワーク・ヘッダが、記憶される。各パケット・バッファのサイズは、スレッドｉｄの関数としてＧＰＵスレッドによって容易にアクセスされるように、ＭＡＸ＿ＢＵＦＦＥＲ＿ＰＡＣＫＥＴ＿ＳＩＺＥバイトに固定されるべきである。以下の図は、Ａｎｎｉ  ＤＮＡ又はＣｏｎｔｅｘｔ  ＤＮＡクラスの基本構造の概要を示している。
【０１２４】
非限定的な例として、
ｔｙｐｅｄｅｆ  ｓｔｒｕｃｔ｛
ｕｉｎｔ８＿ｔ  ｄａｔａ［ＭＡＸ＿ＢＵＦＦＥＲ＿ＰＡＣＫＥＴ＿ＳＩＺＥ］；
｝ｐａｃｋｅｔ；
ｃｌａｓｓ  Ａｎｎｉ  ＤＮＡ  ｏｒ  Ｃｏｎｔｅｘｔ  ＤＮＡ｛
ｐａｃｋｅｔ  ｂｕｆｆｅｒ［ＭＡＸ＿ＢＵＦＦＥＲ＿ＰＡＣＫＥＴＳ］；
｝
ＤａｔａＣｏｌｌｅｃｔｏｒ（Ｓｅｎｔｉｎｅｌ）は、任意の種類のソースからパケットを獲得し、それらをＡｎｎｉ  ＤＮＡ又はＣｏｎｔｅｘｔ  ＤＮＡオブジェクト内にパックすることができる。フレームワークは、先に目的の中で言われたように、少なくとも以下を可能にすべきである。
パケットをネットワークインターフェースからリアルタイムに獲得する。この能力は、フレームワークが、モニタリング、管理、又はセキュリティ監視タスクなど、任意の種類のリアルタイムトラフィックＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒを実行することを可能にする。
パケットをｔｃｐｄｕｍｐキャプチャ・ファイルから、又は他の任意のソースから獲得する。この機能は、フレームワーク・ユーザが、例えば、セキュリティ攻撃が行われた後に情報を獲得するために、科学捜査Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒを（又はバッチＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒさえも）実行することを可能にする。
【０１２５】
設計上の観点から、Ａｎｎｉ  ＤＮＡ又はＣｏｎｔｅｘｔ  ＤＮＡオブジェクトは、そのパケット・ソースに関わらず、実際に、同じ抽象クラス又はインターフェースを実施すべきである。インターフェースは、以下の図に示されるように、メソッドｇｅｔＳｎｉｆ
ｆｅｄＡｎｎｉ  ＤＮＡ又はＣｏｎｔｅｘｔ  ＤＮＡ（）を少なくとも有するべきであり、Ｓｅｎｔｉｎｅｌが、満たされたＡｎｎｉ  ＤＮＡ又はＣｏｎｔｅｘｔ  ＤＮＡオブジェクトを供給する。
【０１２６】
このコンポーネント、具体的には、抽象クラスＡｎｎｉ  ＤＮＡ又はＣｏｎｔｅｘｔ  ＤＮＡから継承する生成されたクラスは、パケットをネットワーク・カード又はファイルから獲得するために、Ｌｉｂｐｃａｐライブラリを使用するようになる。
【０１２７】
非限定的な例として、
ａｂｓｔｒａｃｔ  ｃｌａｓｓ  Ａｎｎｉ  ＤＮＡ  ｏｒ  Ｃｏｎｔｅｘｔ  ＤＮＡ｛
Ａｎｎｉ  ＤＮＡ  ｏｒ  Ｃｏｎｔｅｘｔ  ＤＮＡ  ｇｅｔＳｎｉｆｆｅｄＡｎｎｉ  ＤＮＡ  ｏｒ  Ｃｏｎｔｅｘｔ  ＤＮＡ（ｖｏｉｄ）；
｝
Ｍａｉｎ  Ａｎｎｉ  Ｌｏｇｉｃａｌ  Ｃｌｕｓｔｅｒコンポーネントは、開発工程においてデバッグ目的で、具体的には、Ａｎｎｉ  ＤＮＡ又はＣｏｎｔｅｘｔ  ＤＮＡコンポーネントをデバッグするために、及び使用されたネットワーク・キャプチャ・ファイル上で有益な情報を獲得するために使用された。
【０１２８】
Ｍａｉｎ  Ａｎｎｉ  Ｌｏｇｉｃａｌ  Ｃｌｕｓｔｅｒは、フレームワークベースのプログラムのＳｅｎｔｉｎｅｌコレクション及びすべてのＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．
Ｃｌｕｓｔｅｒによって満たされたＡｎｎｉ  ＤＮＡ又はＣｏｎｔｅｘｔ  ＤＮＡオブジェクトのディストリビュータ又はハブとして機能する。このコンポーネントは、新しいＡｎｎｉ  ＤＮＡ又はＣｏｎｔｅｘｔ  ＤＮＡ及びＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒコンポーネントをフレームワークベースのプログラムに容易に包含することに関して、フレームワークに柔軟性を提供する。
【０１２９】
フレームワークは、他のＡｎｎｉクラスタが、外部又は既存のＡｎｎｉ  ＤＮＡ又はＣｏｎｔｅｘｔ  ＤＮＡオブジェクトデータベースを使用すること、及び同じコンテキスト範囲内で複数のＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒコンポーネントを使用することを可能にする。
【０１３０】
データ・バッファ取り出しポリシは、以下を含むことができる。
イベント指向バッファ取り出し（割り込み）。バッファは、それらが満たされると、取り出され、Ｍａｉｎ  Ａｎｎｉ  Ｌｏｇｉｃａｌ  Ｃｌｕｓｔｅｒに対する割り込み又はシグナリング・メカニズムを必要とする。プログラム内に含まれる各ＳｅｎｔｉｎｅｌオブジェクトからＮｂｕｆｆｅｒｓのバッファを獲得することによって、バッファを順番に取り出す。これの特定のケースは、各フィーダから順番にバッファを獲得することである。この種のポリシの難点は、パケット・ロスを回避するために、パケットをリアルタイムに獲得するフィーダ間のパケットレートが同様であるべきこと、又はＲｅｇｒｅｓｓｉｏｎ
Ａ．Ｉ．  Ｃｌｕｓｔｅｒ時間がキャプチャ時間よりも短くなるべきことである。
バッファを、すべてのＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒコンポーネントにブロードキャストする。
バッファを、データパケットに基づいて、１組のＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒコンポーネントにのみブロードキャストする。
バッファを、順番に１つのＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒコンポーネントにのみブロードキャストする。このポリシは、フレームワークの現在の設計では無意味である。
【０１３１】
各フィーダから１つ１つ順番にバッファを獲得するポリシ（Ｎｂｕｆｆｅｒｓ＝１）、及びそれらをすべてのＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒにブロードキャ
ストするポリシ。
【０１３２】
例：
／／順番バッファ獲得ポリシ、及び
／／すべてのＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒへのバッファ・ブロードキャスト・ポリシを仮定する
Ｍａｉｎ  Ａｎｎｉ  Ｌｏｇｉｃａｌ  ＣｌｕｓｔｅｒＳｔａｒｔ（）｛
ｗｈｉｌｅ（１）｛
／／ａｌｌＦｅｅｄｅｒｓ内の各ｆｅｅｄｅｒに対して
ｆｏｒｅａｃｈ  ｆｅｅｄｅｒ  ｉｎ  ａｌｌＦｅｅｄｅｒｓ｛
／／Ａｎｎｉ  ＤＮＡ又はＣｏｎｔｅｘｔ  ＤＮＡからバッファを獲得する
ｂｕｆｆｅｒ＝ｆｅｅｄｅｒ．ｏｂｔａｉｎＢｕｆｆｅｒ（）；
／／ａｌｌＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ内の各Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒについて
ｆｏｒｅａｃｈ  Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ  ｉｎ  ａｌｌＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ｛
｝｝
｝｝
／／バッファを解析する
／／ＧＰＵ（Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ）及びＣＰＵ（フック）コードを実行する
Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ．ａｎａｌｙｚｅ（ｂｕｆｆｅｒ）；
Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒコンポーネント及びＡｎｎｉ  ＤＮＡ又はＣｏｎｔｅｘｔ  ＤＮＡコンポーネントの両方を追加することに移行するために、Ｍａｉｎ  Ａｎｎｉ  Ｌｏｇｉｃａｌ  Ｃｌｕｓｔｅｒ静的クラスの設計は、２つのメソッド、すなわち、ａｄｄＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  ＣｌｕｓｔｅｒＴｏＰｏｏｌ（．．．）及びａｄｄＦｅｅｄｅｒＴｏＰｏｏｌ（．．．）を有する。
【０１３３】
非限定的な例として、
ｃｌａｓｓ  Ｍａｉｎ  Ａｎｎｉ  Ｌｏｇｉｃａｌ  Ｃｌｕｓｔｅｒ｛
／／Ａｎｎｉ  ＤＮＡ又はＣｏｎｔｅｘｔ  ＤＮＡをＭａｉｎ  Ａｎｎｉ  Ｌｏｇｉｃａｌ  Ｃｌｕｓｔｅｒフィーダ・プールに追加する
ａｄｄＦｅｅｄｅｒＴｏＰｏｏｌ（Ａｎｎｉ  ＤＮＡ  ｏｒ  Ｃｏｎｔｅｘｔ  ＤＮＡｆｅｅｄｅｒ）；
／／Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  ＣｌｕｓｔｅｒコンポーネントをＭａｉｎ  Ａｎｎｉ  Ｌｏｇｉｃａｌ  Ｃｌｕｓｔｅｒ  Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒプールに追加する
ａｄｄＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  ＣｌｕｓｔｅｒＴｏＰｏｏｌ（Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ  Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ）；
／／Ｍａｉｎ  Ａｎｎｉ  Ｌｏｇｉｃａｌ  Ｃｌｕｓｔｅｒループを開始する
Ｍａｉｎ  Ａｎｎｉ  Ｌｏｇｉｃａｌ  ＣｌｕｓｔｅｒＳｔａｒｔ（）；
｝
Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒコンポーネントは、検査フレームワークのメイン・コンポーネントである。Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒは、ＣＵＤＡを使用してＧＰＵ内において、バッファリングされたネットワーク・データ上での特定の計算又はＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒを実行する、オブジェクトであるべきある。
【０１３４】
Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒコンポーネント設計は、以下の機能
及び設計要求を達成すべきである。
新しいＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  ＣｌｕｓｔｅｒコンポーネントのＭａｉｎ  Ａｎｎｉ  Ｌｏｇｉｃａｌ  Ｃｌｕｓｔｅｒコンポーネントへの容易な追加。
【０１３５】
各Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒは、特定のＲｅｇｒｅｓｓｉｏｎ
Ａ．Ｉ．  Ｃｌｕｓｔｅｒタスクを実行する、フレームワークベースのプログラム全体における一意エンティティでなければならない。
【０１３６】
各Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒコンポーネントは、ＧＰＵ  Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒコード（ＣＵＤＡコード）、及びＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ結果上で行われるアクション（Ｃ＋＋  ＣＰＵコード）を含まなければならない。
【０１３７】
Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ及びフックセクションのコードは、ライブラリ又はモジュールの形態で、他のＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒエンティティにおいて、容易に再使用されるべきである。
【０１３８】
したがって、Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒコンポーネントは、フレームワークベースのプログラム全体における一意オブジェクト又は「静的クラス」であるべきである。Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  ＣｌｕｓｔｅｒのＭａｉｎ  Ａｎｎｉ
Ｌｏｇｉｃａｌ  Ｃｌｕｓｔｅｒへの追加を容易にするために、すべてのＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒは、同じエントリ・ポイント又はメソッド、ｌａｕｎｃｈＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ（．．．）を有するべきである。
【０１３９】
Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒの設計は、２つの異なるセクション、すなわち、ＣＵＤＡコードを含むＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒコード・セクションと、ＣＰＵコードを含むアクション又はフック・コード・セクションとに分割される。
【０１４０】
関数：
ｍｉｎｉｎｇ（）。この関数は、Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ関数によって必要とされるデータをバッファ内に含まれるネットワークパケットから獲得し、それをＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ入力データアレイに配置することを担当するルーチンとして定義される。
ｐｒｅＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  ＣｌｕｓｔｅｒＦｉｌｔｅｒｉｎｇ（）。ｐｒｅ−Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ  ｆｉｌｔｅｒｉｎｇ関数は、Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ（）関数のＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ入力データアレイをフィルタリングするコードを含むように意図される。この関数は、ｍｉｎｉｎｇ（）関数において使用される基準の代わりに、他の基準によってデータをフィルタリングすることができる。
Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ（）。Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ関数は、入力データアレイをアルゴリズム入力データとして取得し、結果を結果アレイに配置する、Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒアルゴリズムを含まなければならない。一般に、結果の数ばかりでなく、入力アレイ及び出力アレイのデータタイプも、異なることができる。
ｐｏｓｔＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  ＣｌｕｓｔｅｒＯｐｅｒａｔｉｏｎｓ（）。
【０１４１】
ｈｏｏｋｓ（）関数の形態を取る、動作又はフックセクションは、ＧＰＵ  Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒから獲得される関数として定義される。Ｒｅｇｒ
ｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒセクションとは対照的に、Ｃ／Ｃ＋＋コード、ｕｎｉｘＯＤＢＣライブラリなどの外部ライブラリ、及び一般に関係があり得る他の任意のプログラミング・ツールが、ｈｏｏｋｓ（）関数内で使用されるべきである。
【０１４２】
非限定的な例として、
ａｂｓｔｒａｃｔ  ｃｌａｓｓ  Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ｛
／＊
ユーザは、
１．Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒセクション（カーネル）関数
２．ｈｏｏｋｓ（）関数
を実施しなければならない
＊／
／／ＣＵＤＡ  Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒメイン関数（カーネル）
ｇｌｏｂａｌ＿ｋｅｒｎｅｌ（Ａｎｎｉ  ＤＮＡ  ｏｒ  Ｃｏｎｔｅｘｔ  ＤＮＡ  ｂｕｆｆｅｒ，ＯＵＴＰＵＴ  ＴＹＰＥ  ｒｅｓｕｌｔｓ）｛
ｍｉｎｉｎｇ（．．．）；
ｐｒｅＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  ＣｌｕｓｔｅｒＦｉｌｔｅｒｉｎｇ（．．．）；
Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ（．．．）；
ｐｏｓｔＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  ＣｌｕｓｔｅｒＯｐｅｒａｔｉｏｎｓ（．．．）；
｝
／／Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ起動関数
ｌａｕｎｃｈＲｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒ（Ａｎｎｉ  ＤＮＡ  ｏｒ  Ｃｏｎｔｅｘｔ  ＤＮＡ  ｂｕｆｆｅｒ）｛
｝｝
／／Ｒｅｇｒｅｓｓｉｏｎ  Ａ．Ｉ．  Ｃｌｕｓｔｅｒセクション：ＧＰＵ関数をコールする
ｋｅｒｎｅｌ＜＜＜ｇｒｉｄＳｉｚｅ，ｂｌｏｃｋＳｉｚｅ＞＞＞（ｂｕｆｆｅｒ，ｒｅｓｕｌｔｓ）；
／／フックセクション
ｈｏｏｋｓ（ｂｕｆｆｅｒ，ｒｅｓｕｌｔｓ）；
上述の説明では、説明を目的として、方法は特定の順序で説明された。代替実施形態では、方法は、説明された順序とは異なる順序で実行することができることを理解されたい。上で説明された方法は、ハードウェアコンポーネントによって実行することができ、又は汎用もしくは専用プロセッサ（ＧＰＵもしくはＣＰＵ）もしくは命令を用いてプログラムされた論理回路（ＦＰＧＡもしくはＡＳＩＣ）などの機械に方法を実行させるために使用することができる、１連の機械実行可能命令で具体化することができることも理解されたい。これらの機械実行可能命令は、ＣＤ−ＲＯＭもしくは他のタイプの光学ディスク、フロッピディスケット、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気もしくは光学カード、フラッシュメモリ、又は電子命令を記憶するのに適した他のタイプの機械可読媒体などの、１つ又は複数の機械可読媒体上に記憶することができる。代替として、方法は、ハードウェアとソフトウェアの組合せによって実行することができる。
【０１４３】
実施形態の完全な理解を提供するために、説明では具体的な詳細が与えられた。しかしながら、実施形態は、これらの具体的な詳細なしに実施することができることが当業者によって理解されよう。例えば、回路は、不必要な詳細の中で実施形態を曖昧にしないために、ブロック図で示すことができる。他の例では、よく知られた回路、工程、アルゴリズム、構造、及び技法は、実施形態を曖昧にすることを避けるために、不必要な詳細なしに
示すことができる。
【０１４４】
また、実施形態は、フローチャート、フロー図、データフロー図、構造図、又はブロック図として示される工程として説明されたことに留意されたい。フローチャートは、順次的な工程として動作を説明することができるが、動作の多くは、並列又は同時に実行することができる。加えて、動作の順序は、並べ替えることができる。工程は、動作が完了されたときに終了されるが、図に含まれない追加の工程を有することができる。工程は、メソッド、関数、プロシージャ、サブルーチン、サブプログラムなどに対応することができる。工程が関数に対応する場合、その終了は、呼び元関数又はメイン関数への関数の復帰に対応する。
【０１４５】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、又はそれらの任意の組合せによって実施することができる。ソフトウェア、ファームウェア、ミドルウェア、又はマイクロコードで実施される場合、必要なタスクを実行するプログラムコード又はコードセグメントは、記憶媒体などの機械可読媒体内に記憶することができる。プロセッサは、必要なタスクを実行することができる。コードセグメントは、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、又は命令、データ構造、もしくはプログラムステートメントの任意の組合せを表すことができる。コードセグメントは、情報、データ、引数、パラメータ、又はメモリ内容を渡すこと、及び／又は受け取ることによって、別のコードセグメント又はハードウェア回路に結合することができる。情報、引数、パラメータ、データなどは、メモリシェアリング、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む任意の適切な手段を介して渡し、転送し、又は送信することができる。
【０１４６】
本明細書で本発明の例示的な実施形態が詳細に説明されたが、本発明の概念は、別の方法で様々に具体化し、利用することができること、また添付の特許請求の範囲は、先行技術による限定を除いて、そのような変形を含むと解釈されることが意図されていることを理解されたい。
【図１】
2017503222.tif 000003
【図２】
2017503222.tif 000004
【図３】
2017503222.tif 000005
【図４】
2017503222.tif 000006
【図５】
2017503222.tif 000007
【図６】
2017503222.tif 000008
【図７】
2017503222.tif 000009
【図８】
2017503222.tif 000010
【国際調査報告】
2017503222.tif 000011