特表2017-503222(P2017-503222A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ レムテクス, インコーポレイテッドの特許一覧

特表2017-503222ネットワークセキュリティシステム、方法、及び装置
<>
  • 特表2017503222-ネットワークセキュリティシステム、方法、及び装置 図000003
  • 特表2017503222-ネットワークセキュリティシステム、方法、及び装置 図000004
  • 特表2017503222-ネットワークセキュリティシステム、方法、及び装置 図000005
  • 特表2017503222-ネットワークセキュリティシステム、方法、及び装置 図000006
  • 特表2017503222-ネットワークセキュリティシステム、方法、及び装置 図000007
  • 特表2017503222-ネットワークセキュリティシステム、方法、及び装置 図000008
  • 特表2017503222-ネットワークセキュリティシステム、方法、及び装置 図000009
  • 特表2017503222-ネットワークセキュリティシステム、方法、及び装置 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2017-503222(P2017-503222A)
(43)【公表日】2017年1月26日
(54)【発明の名称】ネットワークセキュリティシステム、方法、及び装置
(51)【国際特許分類】
   G06F 21/56 20130101AFI20170105BHJP
【FI】
   G06F21/56
【審査請求】未請求
【予備審査請求】未請求
【全頁数】37
(21)【出願番号】特願2015-555289(P2015-555289)
(86)(22)【出願日】2014年1月24日
(85)【翻訳文提出日】2015年9月28日
(86)【国際出願番号】US2014012841
(87)【国際公開番号】WO2014116888
(87)【国際公開日】20140731
(31)【優先権主張番号】61/794,472
(32)【優先日】2013年3月15日
(33)【優先権主張国】US
(31)【優先権主張番号】61/756,573
(32)【優先日】2013年1月25日
(33)【優先権主張国】US
(31)【優先権主張番号】61/794,430
(32)【優先日】2013年3月15日
(33)【優先権主張国】US
(31)【優先権主張番号】61/891,598
(32)【優先日】2013年10月16日
(33)【優先権主張国】US
(31)【優先権主張番号】61/897,745
(32)【優先日】2013年10月30日
(33)【優先権主張国】US
(31)【優先権主張番号】61/794,547
(32)【優先日】2013年3月15日
(33)【優先権主張国】US
(31)【優先権主張番号】61/794,505
(32)【優先日】2013年3月15日
(33)【優先権主張国】US
(81)【指定国】 AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JP,KE,KG,KN,KP,KR,KZ,LA,LC,LK,LR,LS,LT,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ,UA,UG,US
(71)【出願人】
【識別番号】515204878
【氏名又は名称】レムテクス, インコーポレイテッド
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】サイパニャ, トミー
(72)【発明者】
【氏名】マリノウスキー, リチャード, イー.
(57)【要約】
コンピューティングネットワークをプロアクティブに保護するための方法、システム、及び装置に関する。とりわけ、保護されたドメインをリアルタイムにモニタリングし、マルウェアを介して保護されたドメインに導入された脅威に反応するための接種手順を安全に識別する能力を有する、プロアクティブなセキュリティメカニズムに関する。プロアクティブなセキュリティメカニズムは、プロアクティブなセキュリティメカニズムの少なくともいくつかの機能を実行するように構成された、解析的ニューラルネットワークインターフェース(ANNI)を含む。
【特許請求の範囲】
【請求項1】
ネットワーク接続されたコンピューティングデバイスのアクティビティをリアルタイム、かつプロアクティブにモニタリングするステップと、
前記ネットワーク接続されたコンピューティングデバイスに対する前記アクティビティのモニタリングに応答して、潜在的なマルウェアが前記ネットワーク接続されたコンピューティングデバイスにおいて受信されたことを判定するステップと、
前記ネットワーク接続されたコンピューティングデバイスにおける潜在的なマルウェアの受信を判定したことに応答して、前記潜在的なマルウェアを解析のために隔離ハイパーバイザ内に配置するステップとを備える、方法。
【請求項2】
前記隔離ハイパーバイザは、科学捜査のために前記潜在的なマルウェアがデコンパイルされ得るように、前記潜在的なマルウェアが仮想環境内で安全にブートされることを可能にするための仮想マシンを備える、請求項1に記載の方法。
【請求項3】
前記隔離ハイパーバイザ内で前記潜在的なマルウェアをデコンパイルするステップと、
前記潜在的なマルウェアが実際のマルウェアに対応するものであると判定するステップと、
前記実際のマルウェアに特有のシグネチャを判定するステップと、
保護されたドメインに接続されたすべてのコンピューティングデバイスにおける解析のために、前記実際のマルウェアに特有の前記シグネチャが利用可能なように、前記実際のマルウェアに特有の前記シグネチャを記憶するステップとをさらに備える、請求項2に記載の方法。
【請求項4】
前記実際のマルウェアのルート経路を辿るステップと、
前記実際のマルウェアの出所を決定するステップとをさらに備える、請求項3に記載の方法。
【請求項5】
前記ネットワーク接続されたコンピューティングデバイスのアクティビティをリアルタイム、かつプロアクティブにモニタリングするステップは、前記ネットワーク接続されたコンピューティングデバイスにおけるユーザ挙動、前記ネットワーク接続されたコンピューティングデバイスにおいて受信された1つ又は複数のパケットの内容、前記ネットワーク接続されたコンピューティングデバイスにおいて受信された1つ又は複数のパケット断片の内容、前記ネットワーク接続されたコンピューティングデバイスにおいて受信された1つ又は複数のパケットヘッダの内容、及び前記ネットワーク接続されたコンピューティングデバイスによって実行されているルーチンのうちの少なくとも1つを解析することからなる、請求項1に記載の方法。
【請求項6】
前記解析はシステム割り込み中に少なくとも部分的に行われる、請求項1に記載の方法。
【請求項7】
解析的ニューラルネットワークインターフェース(ANNI)は、前記ネットワーク接続されたコンピューティングデバイスにおいてアクティビティをモニタリングすること、前記潜在的なマルウェアが前記ネットワーク接続されたコンピューティングデバイスにおいて受信されたことを決定すること、及び前記潜在的なマルウェアを前記隔離ハイパーバイザ内に配置することのうちの少なくとも1つのために使用される、請求項1に記載の方法。
【請求項8】
前記ANNIは前記隔離ハイパーバイザ内で前記潜在的なマルウェアを解析するために使用される、請求項7に記載の方法。
【請求項9】
前記ANNIは、CPU、GPU、及びAPUのうちの少なくとも1つにおいて実行される、請求項7に記載の方法。
【請求項10】
保護されたドメインの外部の1つ又は複数の設備においてセンサを配備するステップと、
前記配備されたセンサを介して、挙動トレンド及びハッキングトレンドの少なくとも一方を解析するステップと、
前記配備されたセンサにおける前記解析に基づいて、挙動トレンド及びハッキングトレンドの前記少なくとも一方に応答して、前記保護されたドメイン内で実行するための1つ又は複数の対抗手段を生成するステップとをさらに備える、請求項1に記載の方法。
【請求項11】
プロセッサによって実行された場合に、
ネットワーク接続されたコンピューティングデバイスのアクティビティをリアルタイム、かつプロアクティブにモニタリングする命令と、
前記ネットワーク接続されたコンピューティングデバイスの前記アクティビティのモニタリングに応答して、潜在的なマルウェアが前記ネットワーク接続されたコンピューティングデバイスにおいて受信されたことを判定する命令と、
潜在的なマルウェアが前記ネットワーク接続されたコンピューティングデバイスにおいて受信されたことを決定することに応答して、前記潜在的なマルウェアを解析のために隔離ハイパーバイザ内に配置する命令とを格納する、非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、ネットワークセキュリティシステムに関する。
【背景技術】
【0002】
企業及び組織は、昨日の防御中心のセキュリティベストプラクティスを用いて、今日のデジタル・テロリスト又はサイバ犯罪者と戦うことはできない。防御中心のセキュリティ・ソリューションが抱える主要な問題は、それらが、繰り返される攻撃又は将来の攻撃をやめさせる抑止力又は対抗手段を提供しないことである。
【発明の概要】
【発明が解決しようとする課題】
【0003】
今日、セキュリティベストプラクティス及びデジタルストラテジは、2週間をわずかに超える程度の有効期限しか有していないのが実情である。セキュリティ専門家は、サイバ犯罪者が進化する速度に遅れを取らない十分な速さで、検出できておらず、又は防御手段を生成できていない。
【0004】
組織及びセキュリティ専門家が、新しいデジタル攻撃を導入し続ける敵とどのように戦えばよいかという問題は、依然として未解決である。このセキュリティ上の難題にプロアクティブに対処するために、組織は、攻撃中心のデジタルセキュリティポリシを採用し、実践しなければならない。
【課題を解決するための手段】
【0005】
したがって、本発明の1つの態様は、コンピューティングシステム又はネットワークをプロアクティブに、即ち先手を打って、保護するために利用することができる、プロアクティブなセキュリティメカニズムを提供することである。本発明のプロアクティブなセキュリティメカニズム、及びそれを実施するハードウェアは、数ミリ秒のうちに新しい攻撃及び新しい形態のマルウェアを能動的に識別することができ、その後、数秒以内に、マルウェアに対抗する、及び/又はマルウェアを無力化する、効果的な対抗手段及び防御手段を生成することができる。
【0006】
これまで、行われたほとんどのデジタル攻撃は、15分以下の寿命又は継続的利用の最終時点を有する。これは、ほとんどの抜け目のないサイバ犯罪者が、15分後には、ハッキングの試みを打ち切ることを意味している。本発明の実施形態を利用することで、ネットワークセキュリティ要員は、おそらくは攻撃がまだ行われている間に、(a)攻撃に気づくこと、(b)攻撃元を識別することが可能である。これは、よりいっそう効果的な対抗手段が採用され得ることを意味するが、以前であれば、サイバ犯罪者は、攻撃がそもそも検出される前に、攻撃対象のシステムとの対話を終えていた。
【0007】
本発明の少なくともいくつかの実施形態によれば、解析的ニューラルネットワークインターフェース(ANNI)が開示され、ANNIは、新しい形態のマルウェア(例えば、信頼できない又は悪意あるコード又はコード断片)を検出/予測することができ、それに接続されたネットワーク又はコンピューティングデバイスが危険にさらされる前に、継続的にリアルタイムで、またプロアクティブに、これらの新しい形態のマルウェアを識別し、それらに対する防御を行うことができる。プラットフォームも、提供され、このプラットフォームは、リモート又はモバイル通信デバイスを含むすべてのネットワーク要素にわたって、マルウェアをリアルタイムに識別し、デエンジニアリングし(de−engineer)、及び破壊する。本発明の別の態様は、ANNIが、プロアクティブに、悪意あ
るコードの要素を解析し、組み換え、同一又は同様のタイプの将来のマルウェアに対して防御を行う対抗手段を自動的かつ即座に生成することである。本明細書のプロアクティブなセキュリティシステムの発明を実施することを通して、マルウェアは、封じ込められ、デコンパイルされ、除去され、ワクチンを投与され、及び破壊され、すべては、ミリ秒未満のタイムフレームのうちに行われる。しかしながら、デコンパイル時間は、検出されたコードの性質に依存し得ることを理解されたい。
【0008】
本発明の少なくともいくつかの実施形態によれば、先制攻撃という中核的セキュリティ原理に従うプラットフォームが開示される。この原理に従うことによって、またANNIの使用によって、マルウェアをリアルタイムで(例えば、ミリ秒の応答時間で)実際に識別することが可能である。本明細書で説明されるプロアクティブなセキュリティメカニズムは、属性を識別し、たいていの場合、属性を適用し、その後、マルウェアを積極的に攻撃することが可能であり、それによって、現在と将来の両方のセキュリティ上の脅威(例えば、既知及び未知のマルウェア)の予防及び排除をもたらす。
【0009】
本発明の1つの態様は、クラウドベースのネットワークを保護するためのメカニズムを提供することである。いくつかの実施形態では、クラウド上で送信されるデータはいずれも、暗号化され、その宛先において再びスキャンされる。ANNIは、ネットワークにログオンするあらゆるデバイスを最新パッチ及びコンプライアンスについて調べる(ANNIは、コンプライアンスエンジン、ファイアウォール、IPS、IDS内などに統合される)。
【0010】
いくつかの実施形態では、クライアント要求に応答して、人工知能をメインエンジンとして使用して、アプリケーションのインフラストラクチャ能力を自動スケーリング及びインストールするための方法が提供され、方法は、複数のサーバノードを備えるアプリケーションインフラストラクチャ上で動作するように、また第1のネットワークを介してクライアントによってアクセスされるように構成されたアプリケーションを提供することを含む。次に、人工知能エンジンの高度ニューラルクラスタによって自動化された、トラフィックをクライアントからアプリケーションインフラストラクチャのサーバノードに送るトラフィック管理手段を提供する。人工知能エンジンの高度ニューラルクラスタによって、自動的にアプリケーションの性能メトリック及びアプリケーションインフラストラクチャのメトリックを収集するモニタリング手段を提供する。人工知能エンジンの高度ニューラルクラスタによって自動的に検出された、ネットワーク・インフラストラクチャを保留する、アプリケーションインフラストラクチャを変更するように構成された制御手段を提供する。次に、人工知能自動化モニタリング手段を介して、アプリケーションの性能メトリック及びアプリケーションインフラストラクチャのメトリックをモニタリングし、それによって、意味論的にメトリック情報を獲得し、その後、人工知能エンジン手段の高度ニューラルクラスタを介して、メトリック情報に基づいて、アプリケーションインフラストラクチャを変更する。最後に、人工知能エンジン手段の高度ニューラルクラスタによって、トラフィック自動化検出を介して、変更されたアプリケーションインフラストラクチャのサーバノードに、アプリケーションにアクセスすることを目的としたネットワークトラフィックを送る。
【0011】
少なくともいくつかの実施形態によれば、ANNIの概念設計は、抗体が人体において機能する方法及び工程に基づいている。一般用語では、抗体は、身体に対する細菌及びウイルスの脅威を隔離し、破壊する。特に癌に対する、最も成功した生物学的製剤は、活性抗体を使用する。現在、改良型の抗体防御が、開発中である。「武装抗体」として知られる、これらの抗体(及びそれらの組み換え断片)は、致死分子に結合され、又は致死分子と融合され、正常細胞に壊滅的な影響が及ばないように、腫瘍部位に標的を絞り込んで、毒性ペイロードを搬送する。少なくともいくつかの実施形態によれば、ANNIのコード
は、武装抗体の原理を具体化する。具体的には、ANNIのコードは、悪意あるコードの攻撃を識別及びキャプチャし、いかなる合法的なネットワーク工程をも妨害することなしに、悪意あるコードの新しいインスタンスを攻撃するために、そのコードを組み込む(及び組み換える)ように構成することができる。
【0012】
ANNI及びANNIを実施するプロアクティブなセキュリティメカニズムは、リアルタイム脅威識別、キャプチャ、シグネチャ生成、及び接種/破壊に加えて、未知の脅威に対する新しい反応を学習し、開発し続ける、人工自動化コード構築アルゴリズムも提供する、ネットワーク技術を表す。いくつかの実施形態では、ANNIは、それによって潜在的な脅威のトポロジが既存の脅威から識別される、リアルタイム・データベース建造によって、この先見的な反応を達成し、それらのトポロジは、テストされ、ソフトウェアが、将来の脅威を予防するために、継続的かつ自動的に再設計される。
【0013】
簡潔に述べると、本明細書で開示されるANNI及びプロアクティブなセキュリティメカニズムは、ドメイン内において、防御能力と攻撃能力の両方を備える、人工知能ベースのリアルタイムな継続的モニタリングセキュリティシステムを可能にする。中でも、ANNI及びANNIを実施するプロアクティブなセキュリティメカニズムによって提供される便益及び特徴は、限定することなく、(1)既知及びこれまでは未知のマルウェア又は悪意あるコードを予防すること、(2)特別に設計及び最適化されたハードウェアアプライアンスエンジンが、ミリ秒の応答時間を可能にすること、(3)既存のネットワークセキュリティポイント製品を補完すること/それらと一体化すること、(4)望ましい場合には、既存の製品を簡略化し、置き換えること、(5)リアルタイムな継続的モニタリング及びプロアクティブな反応能力を提供すること、(6)ネットワーク及びホスト侵入防止及び検出、(7)リアルタイムな自動化された悪意あるコードの処理及び分解、(8)科学捜査、(9)診断、(10)報告、(11)監査証跡、(12)自動化反応と手動反応の選択、(13)データ損失保護を含む。
【0014】
いくつかの実施形態では、ANNIプラットフォームは、病気を予防する際の、攻撃に対する人体反応から着想を得ている。未知の攻撃者(ウイルス、癌細胞など)が身体に入って来たとき、身体の防御は、健康を守るために、1連の対抗防御を速やかに配備する。これらの自然の対抗手段が、本明細書で開示される包括的なセキュリティシステムの着想の元となった。
【0015】
いくつかの実施形態では、プロアクティブなセキュリティメカニズム及びANNIは、ほとんどの民生サーバ上で動作することができる。ANNIの人工知能能力は、それが、企業、サービス・プロバイダ、及び政府ネットワーク要素を自己発見すること、ならびにネットワーク上のすべてのデバイスにソフトウェア要素を自己展開することを可能にする。ANNIは、いくつかの実施形態では、クラウド内のサーバを用いて、自立的になるようにトレーニングされ、攻撃を予想し、マルウェアをデエンジニアリングし、持続的なマルウェアシグネチャ識別/生成を提供する。いくつかの実施形態では、ANNIは、ファジ論理、リアルタイムトラフィックプロファイリング、挙動解析、ならびにリアルタイムマシン、ソーシャル学習、及び挙動学習を達成するために同期して働く複数の開発フレームワークから成る、ニューラルネットワークに基づいている。結果として、ANNIは、ユーザのニーズを満たすために、自らのエンジン及び自らの学習行動を変更することができる。
【0016】
少なくともいくつかの実施形態によれば、ANNIは、高度な持続的な脅威/サイバ攻撃を防御し、必要な場合は、ドメイン内において、攻撃的に反応することができる。本発明の別の態様は、外部に通じるポート(例えば、信頼できないネットワークへのポート)を複製又はオープンしようと試みるいずれかのコードを検出することによって開始する、
前哨(sentinel)工程を提供することである。いくつかの実施形態では、プロアクティブなセキュリティメカニズムは、初期ホストネットワークを、そのネットワークが浄化されるまで、外部脅威として扱う。これらの対抗手段は、自己隠蔽であり、外部ボットネットを、それらがネットワークに入って来たときに、又はネットワークを横断しようと試みるときに、探し、解析し、追跡し、排除することができる。このネットワークの結果は、ソーシャル及び挙動学習を用いた、リアルタイムマシンの生成である。
【0017】
以下のモジュール/コンポーネントの少なくともいくつかは、プロアクティブなセキュリティメカニズムにおいて、以下の能力と一体化され得る。
●前哨(キャプチャし、警告し、取り調べ、防御する)
(i)悪意あるコードを識別し、キャプチャし、それを仮想コンテナ内に置き、それに対して科学捜査を行う。
【0018】
(ii)マルウェア/コンテキストネットワーク挙動解析を識別する。
(iii)ネットワークに対してブラックリストを更新する。
(iv)他の能力に潜在的なアクションについて通知する。
【0019】
(v)IPS/IDS/ファイアウォール/コンプライアンスエンジン内で統合することができる。
●ステルス(stealth)(探す)
(i)攻撃された場合、プロアクティブなセキュリティメカニズム又はそのコンポーネントは、マルウェア発信元に戻り、データを収集し始めることができる。
【0020】
(ii)攻撃処理についての推奨を生成する。
(iii)ネットワーク/ホップ/発信元に関する情報を収集するために、オープン接続をマルウェアIP宛先まで横断する。
【0021】
(iv)マルウェア発信元までの経路を辿り、IP及び座標をキャプチャする。
●ローマ(roamer)(ネットワークを評価する)
(i)システム全体にわたって同一又は類似のデジタルシグネチャを探す。
【0022】
(ii)ローマ対抗手段がアクティブ又は休眠ボット/マルウェアを発見した場合、ANNIに通知する。
●プレデタ(predator)(交戦し、破壊する)
(i)マルウェアを破壊するための対抗手段を実施する。
【0023】
(ii)(サービス拒否攻撃において発生するような)すべての通信を切断する。
●インテリジェンス(結果を報告する)
(i)ネットワークを強化するための組み合わされた手段。
【0024】
(ii)マルウェアがどのように設計されたかを理解し、それをセキュリティデータストアに追加する。
●デジタルシグネチャデータベース
(i)ハッキング挙動及びシステム防御フレームワークを記憶する。
【0025】
(ii)記憶インテリジェンスが、クラウドデータマイニングサーバ料金を費やして、ANNIによって生成される。
(iii)データをリアルタイムでANNIにフィードバックする、ウルトラレイテンシ(ultra latency)技術を使用し、ANNIは、その後、それをネットワーク・システム応答レイヤ全体にわたって拡散させる。
●免疫系−リアルタイム防御エンジン
(i)リアルタイムスキャニング/侵入テストエンジンを利用する。
【0026】
(ii)このエンジンは、ANNI人工知能コードエンジンによってリアルタイムに生成されるシグネチャ及び挙動フレームワークを使用して、ドメイン内において、反撃を提供する。
●ネットワーク応答システム
(i)ANNIは、すべてのネットワーク異常を感知し、見落とさないために、データ漏洩防止方法及びANNIを使用する、自己回復ベータシステムを利用する。
●仮想マシン(VM)セーフブート(ハイパーバイザ)
(i)本発明のVMシステムは、プロアクティブなセキュリティメカニズム及び/又はANNIに、「問題になっている」データパケット又はソフトウェアを仮想環境内で安全に起動する能力を提供する。
【0027】
(ii)仮想ゾーンは、データ又はマルウェアが科学捜査のためにデコンパイルされる場所である。
(iii)グラフィカルユーザリプレイ−ANNIは、攻撃がどのように発生したかをさらに学習/教示するために、マルウェア攻撃を仮想的に再実行して、攻撃を再現する。
【0028】
(iv)ANNIは、マルウェアの識別に加えて、ハッカの起訴を支援するために、証拠となる監査証跡をリアルタイムに生成する。
(v)ANNIは、すべての資産(コンピュータ/サーバ/デバイスなど)を識別して、ネットワーク上に自己展開する。
●クラウド挙動データマイニングサーバ
(i)データマイニングサーバは、ハッキングトレンド及び現在の挙動データに対してマイニングを行うために、ANNIによって自己生成されるように設計された匿名サーバである。
【0029】
(ii)挙動データマイニングサーバは、ネットワークを保護するための防御フレームワーク・シグネチャを生成するために、ANNIの人工知能コードエンジンに、必要なデータ・フィードをリアルタイムに供給する。
【0030】
(iii)データがリアルタイムで供給及び収集されることを保証するために、ウルトラレイテンシ技術が利用される。
●エンドポイント検出−逆NACシステム
(i)ANNIは、エージェントレス(agent−less)にネットワークデバイスを検出し、管理するシステムを配信し、又は環境に応じて、ANNIは、データアクセスを制御するために、対抗手段エージェントを展開する。
【0031】
(ii)この検出及び管理工程は、セキュリティ「ベストプラクティス」を遵守し、維持するように、エンドポイントを強制する。
(iii)最後に、ANNIは、ANNI防御を使用してデータ/ネットワークアクセスを許可する能力及びリアルタイムに拒否する能力を有する。
●自動化された科学捜査及び最新の発見的問題解決
(i)変種からの保護を劇的に向上させ、システムが時間とともにより強力になることを可能にする。
【0032】
(ii)結果として、システムは、対抗手段のための広範な機会を生み出す。
●持続的な自動更新
(i)現在のネットワークセキュリティシステムの重大な弱点は、それらが時間ととも
に弱くなる傾向があり、そのため、一時的な妥当性を維持するために、シグネチャファイルを用いて定期的に更新される必要があることである。最も有益な特徴のなかでも、ネットワーク内の複数のANNIのスループット適切ポイントは、互いに学習し合い、ブラックリストをネットワーク企業上で自動的に更新するように、ほぼリアルタイムで行為することができる。
【0033】
(ii)連合アーキテクチャにおいて動作して、ANNIは、より強力になり、リアルタイムの恒久的な妥当性を維持するように、自らを自動的に更新する。
プロアクティブなセキュリティメカニズム及び/又はANNIを実施するように構成することができるプラットフォームは、以下のコンポーネント、すなわち、(1)レジストリ、(2)メモリ、(3)ログファイル、及び(4)1つ又は複数のオペレーティングシステムを含むことができる。
【0034】
本発明によって提供されるまた他の態様は、限定することなく、
(i)どのソフトウェアが動作したか、それがどのように到着したか、及びそれがどのように伝搬したかについてのリアルタイムの理解
(ii)挙動及びハッキングセンサ
(iii)「リアルタイム」の挙動トレンド及びハッキングトレンドをグローバルに配備されたセンサ及びパートナ設備から自己生成及び更新すること
(iv)プロアクティブな反応を可能にするためのリスク識別
(v)マイクロ秒反応能力のためのイベント・モニタリング
(vi)企業の各所で起こったあらゆる事柄の完全な監査証跡
(vii)ノイズをフィルタリングするための方法(例えば、フォールスポジティブフィルタ、即ち偽陽性フィルタ)
(viii)出来事の即座調査及び修復
(ix)全企業の各所における資産のすべてに対する自動化された保護
(x)反撃機能
(xi)防御的な対抗手段を備えること
(xii)多様な組織の必要を満たす柔軟で段階的な実施ポリシを構成すること
(xiii)ブラックリスト、又は非認可ソフトウェアもしくは知られたマルウェアを能動的に禁止すること
(xiv)ブラックリスト、又は潜在的なマルウェアもしくは未知のマルウェアを能動的に禁止すること
(xv)ホワイトリスト、又は信頼できるアプリケーションを明示的に許可すること
(xvi)デフォルト拒否方針を実施すること
(xvii)ネットワーク対抗手段を提供すること
(xviii)企業封鎖を引き起こすこと
(xix)測定
(xx)要件からどれだけ大きく逸脱しているかを見るために、資産の基線変動についての報告を見ること
(xxi)特定の実施ポリシに基づいたユーザコミュニティによるリスクについての報告を見ること
(xxii)企業セキュリティの全体的健全性を検討するために、ダッシュボードへのアクセスを提供すること
(xxiii)監査証跡及びコンプライアンス遵守に関連付けられたポリシの固持を示す報告を見ること
(xxiv)ヘルプデスク承認の予期せぬイベントをシスログ、SIEM、電子メールなどに送信すること
(xxv)非認可ソフトウェアの源泉、その場所、ならびにいつ及びどれだけの頻度でそれが動作したか、又は動作しようと試みたかについての詳細で包括的な分析を提供する
こと
(xxvi)システムに接続されたデバイスについての分析を提供すること
を含む。
【0035】
いくつかの実施形態では、ANNIは、自動化された科学捜査及び最新の発見的問題解決を提供する。この自動化された科学捜査は、変種からの保護を劇的に向上させ、システムが時間とともにより強力になることを可能にする。結果として、システムは、対抗手段のための広範な機会を生み出す。さらに、ANNIの科学捜査は、テキストから音声への変換(TTS)及び自動化された音声変換(ASR)サービスを使用して通信することができる(1000を超えるTTS、及びデジタル的に利用可能なあらゆる言語での計算)。ANNIは、クラウド内のサーバを用いて、自立的になるようにトレーニングされ、攻撃を予想し、マルウェアをデエンジニアリングし、持続的なマルウェアシグネチャを提供する。
【0036】
有益な特徴のなかでも、ネットワーク内の複数のANNIのスループット適切ポイントは、互いに学習し合い、ブラックリストをネットワーク企業上で自動的に更新するように、ほぼリアルタイムで行為することができる。連合アーキテクチャにおいて動作して、ANNIは、より強力になり、リアルタイムの恒久的な妥当性を維持するように、自らを自動的に更新する。
【0037】
ネットワーク上での初期インストールにおいて、ANNIは、その価値を確実に証明するために、しばらくの間、並列で動作することができる。顧客は、最初は環境上にパケット・キャプチャ・デバイスを配置し、ソーシャル・メディア利用において、またIT部門からのオンライン・アクティビティにおいて増加するトラフィックを見張ることができる。ANNIは、任意の独立のマルウェア・リサーチをピックアップし、それを使用して、その目的のためにセットアップされるコレクタを提供することができるので、ITは、システムをさらに開発することができる。ANNIのネットワーク反応及び免疫系が新しい悪意あるデータを検出することを可能にする、ハイパーバイザ(例えば、サンドボックス)環境への手入力が存在する。いくつかの実施形態では、デジタルシグネチャエンジンへの直接的な変更は、許可されない。
【0038】
ANNIは、企業ネットワークに入る、クラウドへ/から来るデータを保護する。いくつかの実施形態では、クラウド上で送信されるデータはいずれも、暗号化され、その宛先において再びスキャンされる。ANNIは、ネットワークにログオンするあらゆるデバイスを最新パッチ、コンプライアンスなどについて調べる。
【0039】
いくつかの実施形態では、ANNIは、インストール中のリスクを軽減し、防御パラメータが改善されたことを顧客に知らせるのに有益なメトリックを提供するように構成することができる。ANNIは、いくつかの実施形態では、すべての挙動異常を発見し、悪意あるコードをほぼリアルタイムにデコンパイルし、その後、デエンジニアリングすることができる。さらに、報告カードが、リアルタイムに提供され得る。ANNIが配備されると直ちに、それは、トレンディング・データ使用、及び業界コンプライアンス関連データアクセスへのユーザ・アクセスを自動的に開始するように構成することができる。インストールにおいて、ANNIは、ネットワーク挙動アクティビティを検出し、その後、全体的なネットワーク健全性を理解し、セキュリティ問題への対処を開始する。ANNIは、ネットワークをベストプラクティスにあるとひとたび見なすと、脆弱性評価を開始することを許可されることができ、この工程は、脆弱なエリアにおける攻撃的な対抗手段の配備のための戦術的パラメータをセットアップするために、絶えず進化している。
【0040】
いくつかの実施形態では、ANNIのブレイクポイントは、HPC構成に依存する。ミ
リタリ・グレードのDDOS攻撃は、必要なハードウェア・リソースに攻撃をかわし/吸収することを、また反応することができることを要求する。今までは、35分に約26万5千のヒットは、4GPUを伴う8CPUのブレード・サーバ上で動作するANNIにストレスを与えなかった。ANNIは、数マイクロ秒以内に自らを防御することができる。システムが手動で反応するように設定される場合、人間との対話は、ブレイクポイントである。
【0041】
ANNIが、その「前哨」システムを通して、マルウェアをどのように攻撃し、破壊することができるかについての簡潔な要約が、以下に提供される。
1.マルウェアが、PC/サーバ/タブレット/スマートフォンなどにダウンロードされる。
2.前哨が、工程認識を通して、又はANNI DB/ハッシュを使用して、コードをマルウェアとして識別する。
3.前哨が、システム・ステルス対抗手段に、オープン接続をマルウェアIP宛先まで辿って、ネットワーク/ホップ/発信元に関する情報を収集するように(可能であれば)通知する。
4.マルウェアが、仮想コンテナ内に自動的に配置され、ドメイン内のすべての通信又は他の内部システムへのすべての通信が切断される。
5.ANNIは、悪意あるコードをデコンパイルし、その後、デエンジニアリングを開始する/デジタルシグネチャを識別する。
6.マルウェアのIPアドレスに対して、新しいファイアウォールルールが生成される。
【0042】
−単一のIPがブロックされる
−IPの範囲がブロックされる
−オクテットブロッキング
7.前哨が、ANNIに通知し、マルウェアのデジタルシグネチャを使用して、新しいマルウェアコードに対して科学捜査を開始する。
8.すべての前哨対抗手段が、脅威を通知される。
9.新しいマルウェアアドレスが、ブラックリストに入り、ブラックリストは、システム全体にわたってインテリジェントなコードにリアルタイムに更新される。
10.前哨が、ローマ対抗手段に、システム全体にわたって同一又は類似のデジタルシグネチャを探すように通知する。
11.ローマ対抗手段は、アクティブな又は休眠中のボット/マルウェアをひとたび発見すると、ANNIに通知する。
12.ANNIは、マルウェアを破壊するために、攻撃シーケンスをプレデタ対抗手段に送信する。
13.監査報告が、リアルタイムに工程が進行するにつれて自動的に生成される。
14.ANNIは、自動化された反応を設計し、マルウェアに対する接種を立案し、それが、先を見越したデータベース内に配置される。
【0043】
上で説明された工程のすべては、ミリ秒未満のタイムフレームのうちに行うことができる。
いくつかの実施形態では、ANNIは、防御し、報告し、いずれのデジタル脅威も攻撃的に攻撃することの裏にあるインテリジェンスを管理する包括的なコンソールを通して構成され、管理される。このコンソールは、VMウェア環境において仮想化すること、ネットワーク上に単独マシンとしてインストールすること、又はクラウドからリモートエンジニアによって管理することができる
本発明の他の態様は、3次元モデリングを利用する能力を含む。本発明の実施形態は、システム内に統合された3Dモデリング描画を有する。3Dモデリング描画は、身体障害支援のために、及びユーザに現実の対話を提供するために、仮想化することができる。
【0044】
本発明の別の態様は、システムが保護される方法を継続的に更新するために、機械学習を利用することである。いくつかの実施形態では、機械学習ライブラリは、継続的学習のためにGPUを用いてアップグレードし、製品妥当性を改善することができる。
【0045】
本発明の別の態様は、ジェスチャ認識プラットフォームを介した身振りで制御されるコマンドを可能にすることである。この統合は、カメラ及びイメージ挙動解析を可能にする物理的セキュリティシステムにANNIを統合する能力を提供することができる。
【0046】
「少なくとも1つ」、「1つ又は複数」、及び「及び/又は」という句は、連言と選言の両方の働きをもつ自由な表現である。例えば、「A、B、及びCのうちの少なくとも1つ」、「A、B、又はCのうちの少なくとも1つ」、「A、B、及びCのうちの1つ又は複数」、「A、B、又はCのうちの1つ又は複数」、及び「A、B、及び/又はC」という表現は各々、Aだけ、Bだけ、Cだけ、AとBの2つ、AとCの2つ、BとCの2つ、又はAとBとCの3つを意味する。
【0047】
「a」又は「an」が付いた語は、その語が表すものの1つ又は複数を指す。そのため、「a」(又は「an」)、「1つ又は複数」、及び「少なくとも1つ」という語句は、本明細書では交換可能に使用することができる。「含む/備える(comprising)」、「含む(including)」、及び「有する(having)」という語が交換可能に使用され得ることにも留意されたい。
【0048】
本明細書で使用される場合、「自動的」という語及びその変形は、工程又は操作が実行されるときに、具体的な人間の入力なしに行われる任意の工程又は操作を指す。しかしながら、工程又は操作の実行が具体的又は非具体的な人間の入力を使用するとしても、その入力が工程又は操作の実行前に受け取られる場合、工程又は操作は、自動的とすることができる。人間の入力は、工程又は操作がどのように実行されるかに、そのような入力が影響する場合、具体的であると見なされる。工程又は操作の実行に同意する人間の入力は、「具体的」であるとは見なされない。
【0049】
本明細書で使用される場合、「コンピュータ可読媒体」という用語は、命令を実行のためにプロセッサに提供することに関与する任意の有形なストレージを指す。そのような媒体は、限定することなく、不揮発性媒体、揮発性媒体、及び伝送媒体を含む、多くの形態を取ることができる。不揮発性媒体は、例えば、NVRAM又は磁気もしくは光学ディスクを含む。揮発性媒体は、メインメモリなどの動的メモリを含む。コンピュータ可読媒体の一般的な形態は、例えば、フロッピディスク、フレキシブルディスク、ハードディスク、磁気テープ、もしくは他の任意の磁気媒体、光磁気媒体、CD−ROM、他の任意の光学媒体、パンチ・カード、紙テープ、孔のパターンを有する他の任意の物理媒体、RAM、PROM、EPROM、FLASH−EPROM、メモリカードなどのソリッドステート媒体、他の任意のメモリチップもしくはカートリッジ、又はコンピュータが読み取ることができる他の任意の媒体を含む。コンピュータ可読媒体がデータベースとして構成される場合、データベースは、リレーショナル、階層型、及び/又はオブジェクト指向など、任意のタイプのデータベースとすることができることを理解されたい。したがって、本発明は、本発明のソフトウェア実施が記憶される、有形な記憶媒体、ならびに先行技術で認められた等価媒体、及び後継媒体を含むと見なされる。
【0050】
本明細書で使用される場合、「決定する」、「算出する」、及び「計算する」という用語、ならびにそれらの変形は、交換可能に使用され、任意のタイプの方法、工程、数学的演算又は技法を含む。
【0051】
本明細書で使用される場合、「モジュール」という用語は、その要素と関連付けられた機能を実行することが可能な、任意の知られた、又は今後開発されるハードウェア、ソフトウェア、ファームウェア、人工知能、ファジ論理、又はハードウェアとソフトウェアの組合せを指す。
【0052】
本明細書で使用される場合、「手段」という用語は、米国特許法第112条第6段落に従って、可能な限り最も広い解釈を与えられるものとすることを理解されたい。したがって、「手段」という用語を含む請求項は、本明細書で説明されたすべての構造、材料、又は行為、及びそれらの均等物のすべてを包含するものとする。さらに、構造、材料、又は行為、及びそれらの均等物は、本発明の要約、図面の簡単な説明、詳細な説明、要約書、及び請求項自体において説明されたそれらのすべてを含むものとする。
【0053】
また、本発明は、例示的な実施形態に関して説明されるが、本発明の個々の態様は、別々に特許請求され得ることを理解されたい。本発明は、図面及び以下の詳細な説明からさらに理解される。本明細書は特定の細部について説明するが、本発明のある実施形態は、これらの特定の細部なしに実施され得ることが理解される。いくつかの例では、本発明の理解を曖昧にすることを避けるために、よく知られた回路、構成要素、及び技法は、詳細に示されていないことも理解される。
【0054】
上で示されたのは、本発明のいくつかの態様についての理解を提供するための、本発明の簡略な要約である。この要約は、本発明、ならびにその様々な態様、実施形態、及び/又は構成についての広範な概要でも、網羅的な概要でもない。それは、本発明の主要又は必須要素を識別することも、本発明の範囲を記述することも意図しておらず、代わりに、以下で提示されるより詳細な説明への導入として、本発明の選択された概念を簡略化された形で提示することを意図している。理解されるように、本発明の他の態様、実施形態、及び/又は構成は、上で説明された、又は以下で詳細に説明される特徴の1つ又は複数を、単独で、又は組み合わせて、利用することが可能である。
【0055】
本発明は、添付の図を併用して説明される。
【図面の簡単な説明】
【0056】
図1】本発明の実施形態による、コンピューティングシステム又はネットワークを示すブロック図。
図2】本発明の実施形態による、プロアクティブなセキュリティメカニズムのコンポーネントを示す図。
図3】本発明の実施形態による、セキュリティデータストア内に記憶され得る論理コンポーネントを示す図。
図4】本発明の実施形態による、ネットワークセキュリティを管理する方法を示すフローチャート。
図5】本発明の実施形態による、プロアクティブなセキュリティメカニズムによって使用されるモデルを構築するための工程を示すブロック図。
図6】本発明の実施形態による、プロアクティブなセキュリティメカニズムによる処理中のデータパケットフローを示す図。
図7】本発明の実施形態による、インストールされた環境内におけるアプリケーションフローの詳細を示すブロック図。
図8】本発明の実施形態による、暗号化されたデータを処理する方法を示すフローチャート。
【発明を実施するための形態】
【0057】
確固とした説明は、実施形態を提供するにすぎず、請求項の範囲、適用可能性、又は構
成を限定することは意図されていない。むしろ、確固とした説明は、当業者に、実施形態を実施することを可能にする説明を提供する。添付の請求項の主旨及び範囲から逸脱することなく、要素の機能及び配置に様々な変更が施され得ることが理解されよう。
【0058】
最初に図1を参照すると、1つ又は複数のネットワーク接続されたコンピューティングデバイス104を含むシステム100が示されており、ネットワーク接続されたコンピューティングデバイス104の少なくとも1つは、本発明の実施形態によるプロアクティブなセキュリティメカニズム108を備える。本明細書でさらに詳細に説明されるように、プロアクティブなセキュリティメカニズム108及びそのコンポーネントは、ネットワークに接続された1つ又は複数のデバイスによってインスタンス化され、又は実行され得る。プロアクティブなセキュリティメカニズム108は、ネットワーク接続されたコンピューティングデバイス104上に存在するように示されているが、システム100のデバイスはいずれも、プロアクティブなセキュリティメカニズムのコンポーネントの一部又は全部を備えることができることを理解されたい。
【0059】
システム100内に含まれ得る他のコンポーネントは、限定することなく、保護されたドメイン又はネットワーク112と、サブネット116と、サブネットに接続されたネットワーク接続されたコンピューティングデバイス120と、モバイルコンピューティングデバイス124と、サーバ128と、ネットワーク境界デバイス132とを含む。ネットワーク境界デバイス132は、保護されたドメイン112を信頼できないネットワーク136(例えば、インターネット)から分離するデバイス又はデバイスの集まりに対応することができる。いくつかの実施形態では、ネットワーク境界デバイス132は、セッションボーダコントローラ(SBC)、ゲートウェイ、ファイアウォール、ルータ、ネットワークアドレス変換器(NAT)、又はそれらの組合せのうちの1つ又は複数を備える。ネットワーク境界デバイス132は、いくつかの実施形態では、保護されたドメイン112を信頼できないネットワーク136及びそれに接続されたデバイスから分離し、保護するように構成されたハードウェアコンポーネント及びソフトウェアコンポーネントの集まりに対応する。
【0060】
保護されたドメイン112及び/又はサブネット116は、(例えば、インターネット・プロトコル(IP)ネットワークなど)パケットを介した通信を可能にするように構成された任意のネットワーク又はネットワークの集まり(例えば、コンピューティングネットワーク、通信ネットワークなど)に対応することができる。いくつかの実施形態では、保護されたドメイン112及び/又はサブネット116は、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、ワイドエリアネットワーク(WAN)、ストレージエリアネットワーク(SAN)、バックボーンネットワーク、企業私設ネットワーク、仮想ネットワーク、仮想私設ネットワーク(VPN)、オーバレイネットワーク、ボイスオーバIP(VoIP)ネットワーク、又はそれらの組合せのうちの1つ又は複数を含む。サブネット116は、ドメイン112のIPネットワークの論理的に可視の下位区分に対応すること、又はそれを含むことができる。サブネット116と保護されたドメイン112との間には、1つ又は複数のデバイスが、存在することができるが、そのようなデバイスは、示されていない。
【0061】
ネットワーク接続されたコンピューティングデバイス104、120は、任意のタイプのコンピューティングデバイス又は通信デバイスなどに対応することができる。名前は、コンピューティングデバイスがネットワークに接続されることを暗示するが、ネットワーク接続されたコンピューティングデバイス104、120は、ネットワークに(例えば、ネットワークインターフェースカードを介して)接続するように構成され得るにすぎず、実際には、デバイスは、ネットワークに接続されないこともある。ネットワーク接続されたコンピューティングデバイス104、120の適切な例は、限定することなく、パーソ
ナルコンピュータ(PC)、ラップトップ、タブレット、スマートフォン、セルラフォン、携帯情報端末(PDA)、シンクライアント、スーパコンピュータ、サーバ、プロキシサーバ、通信スイッチ、セットトップボックス(STB)、スマートTVなどを含む。
【0062】
サーバ120は、いくつかの実施形態では、1つ又は複数のルーチンを実行するように構成された任意のデバイス又はデバイスの集まりに対応することができる。サーバ120は、ホストとして1つ又は複数のサービスを実行又は遂行するために専用される物理コンピュータ(例えば、コンピュータハードウェアシステム)に対応することができる。言い換えると、サーバ120は、図1に示されるネットワークのいずれかに接続された他のコンピュータ又はコンピューティングデバイスのユーザのニーズを満たすことができる。それが提供するコンピューティングサービスに応じて、サーバ120は、データベースサーバ、ファイルサーバ、メールサーバ、プリントサーバ、ウェブサーバ、ゲームサーバ、又は他の何らかの種類のサーバとすることができる。
【0063】
いくつかの実施形態では、モバイル通信デバイス124は、ネットワーク接続されたコンピューティングデバイス104、120に類似する、又は同一であることができる。モバイル通信デバイス124の適切な例は、限定することなく、スマートフォン、タブレット、セルラフォン、ハードフォン、ソフトフォン、ラップトップ、任意の802.11x対応デバイス(例えば、802.11N、802.11a、802.11b、もしくはそれらの任意の提案されたバージョンもしくはまだ開発されていないバージョン)、又は衛星フォンなどを含む。
【0064】
いくつかの実施形態では、プロアクティブなセキュリティメカニズム108は、ネットワーク112、116及びそれらに接続されたデバイスを識別し、それらをマルウェア(例えば、悪意あるコード152及び/又は悪意あるコードの断片156)から保護するように構成することができる。図2及び図3に関してさらに詳細に説明されるように、プロアクティブなセキュリティメカニズム108は、ネットワーク接続されたデバイス上に存在するマルウェアのリアルタイム識別に加えて、マルウェア又はその変種を無力化し、それらがネットワーク112、116を通って拡散すること、又はネットワーク112、116に接続されたデバイスを不良にすることを効果的に阻止するための接種/対抗手段のリアルタイム生成も可能にする、1つ又は複数のコンポーネントを備えることができる。
【0065】
プロアクティブなセキュリティメカニズム108の別の能力は、マルウェアの出所148が、1つ又は複数のファイアウォール140の背後に位置付けられた攻撃者のネットワーク144に接続されていたとしても、マルウェアの出所148を識別することである。特に、プロアクティブなセキュリティメカニズム108は、マルウェアをその出所まで遡り、それによって、(1)マルウェアの性質をさらに理解するための機会、及び/又は(2)プロアクティブにマルウェアの出所148と戦うための適切な対抗手段を生成するための機会を提供することが可能な、1つ又は複数のコンポーネントを配備することができる。
【0066】
いくつかの実施形態では、プロアクティブなセキュリティメカニズム108は、他のコンピューティングデバイス上の悪意あるコードの断片156を識別することによって、悪意あるコード152を識別するように構成することができる。言い換えると、プロアクティブなセキュリティメカニズム108は、悪意あるコード152のシグネチャを識別し、ネットワーク上で類似のコードインスタンスを探すのに、そのコード全体を有する必要はない。代わりに、プロアクティブなセキュリティメカニズム108は、悪意あるコードの断片156を解析し、悪意あるコードの断片156についてのシグネチャに加えて、悪意あるコード152についてのシグネチャも決定することができ、それは、悪意あるコードの断片156のシグネチャと同じシグネチャのこともあり、又は異なるシグネチャのこと
もある。
【0067】
今から図2及び図3を参照すると、プロアクティブなセキュリティメカニズム108、それのコンポーネント及び挙動のさらなる詳細が、本発明の実施形態に従って今から説明される。上で述べられたように、プロアクティブなセキュリティメカニズム108は、1つ又は複数のコンピューティングデバイス204上で実施することができる。いくつかの例として、プロアクティブなセキュリティメカニズム108は、サーバ、パーソナルコンピュータ、ラップトップ、スマートフォン、又はそれらの組合せ上で実施することができる。プロアクティブなセキュリティメカニズム108を備えるコンピューティングデバイス204は、メモリ208と、プロセッサ212と、ネットワークインターフェース216とをさらに含むことができる。
【0068】
プロアクティブなセキュリティメカニズム108は、ウェブベースのアーキテクチャを介して(例えば、サービス型ソフトウェア(SaaS)として、クラウドベースのサービスとしてなど)、クラスタコンピューティングを介して、又は他の任意の知られたアーキテクチャを介して、1つ又は複数のローカル企業サーバ上に配備することができる。言い換えると、コンピューティングデバイス204は、1つ又は複数のサーバ、プロセッサ及びメモリを有するコンピュータ、仮想マシン、FPGA、ASIC、又はそれらの組合せを備える、システムに対応することができる。
【0069】
メモリ208は、任意のタイプの非一時的コンピュータ可読媒体に対応することができる。メモリ208の適切な例は、揮発性記憶媒体と不揮発性記憶媒体の両方を含む。メモリ208のよりいっそうの特定の例は、限定することなく、ランダムアクセスメモリ(RAM)、動的RAM(DRAM)、静的RAM(SRAM)、フラッシュメモリ、リードオンリメモリ(ROM)、プログラム可能ROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、仮想メモリ、それらの変形、それらに対する拡張、及びそれらの組合せなどを含む。言い換えると、任意のタイプの電子データ記憶媒体又は記憶媒体の組合せが、本発明の範囲から逸脱することなく、使用され得る。
【0070】
プロセッサ212は、メモリ208内に記憶されたプログラミング又は命令を実行するための汎用プログラム可能プロセッサ又はコントローラに対応することができる。いくつかの実施形態では、プロセッサ212は、1つ又は複数のプロセッサコア及び/又は仮想プロセッサを含むことができる。他の実施形態では、プロセッサは、並列処理又は直列処理のために構成された複数の別々の物理的プロセッサを備えることができる。さらに他の実施形態では、プロセッサ212は、特別に構成された特定用途向け集積回路(ASIC)もしくは他の集積回路、デジタル信号プロセッサ、コントローラ、配線接続された電子もしくは論理回路、プログラム可能な論理デバイスもしくはゲートアレイ、又は専用コンピュータなどを備えることができる。プロセッサ212は、プロアクティブなセキュリティメカニズム108など、メモリ208内に含まれるプログラミングコードを実行するように構成することができるが、プロセッサ212は、オペレーティングシステム、1つ又は複数のアプリケーション、及び通信機能など、コンピューティングデバイス204の他の機能を実行するように構成することもできる。
【0071】
ネットワークインターフェース216は、コンピューティングデバイス204が、通信ネットワークを介して他のデバイスと通信することを可能にする、任意のハードウェアデバイス又はハードウェアデバイスの組合せを備えることができる。いくつかの実施形態では、ネットワークインターフェース216は、ネットワークインターフェースカード、通信ポート(例えば、イーサネット(登録商標)ポート、RS232ポートなど)、無線通信を可能にするための1つ又は複数のアンテナ、及びインターフェースのコンポーネント
のための1つ又は複数のドライバなどを備えることができる。ネットワークインターフェース216は、通信ネットワークからコンピューティングデバイス204において受信された、及び/又は通信ネットワーク上でコンピューティングデバイス204によって送信される通信パケットを変調/復調、暗号化/暗号解除などする能力も備えることができる。ネットワークインターフェース216は、任意の数の知られた通信プロトコル又はまだ開発されていない通信プロトコルを介した通信を可能にすることができる。ネットワークインターフェース216によってサポートされ得るそのようなプロトコルの例は、限定することなく、GSM(登録商標)、CDMA、FDMA、ならびに/又はセルラ・ネットワーク上での音声、マルチメディア、及び/もしくはデータ転送をサポートすることが可能なアナログセルラ電話トランシーバを含む。代替として、又は加えて、ネットワークインターフェース216は、パケットベースのネットワーク、Wi−Fi、BLUETOOTH(登録商標)、WiMax、赤外線、又は他の無線通信リンク上でのIPベースの通信をサポートすることができる。
【0072】
上で述べられたように、プロアクティブなセキュリティメカニズム108は、プロアクティブなセキュリティメカニズム108が、保護されたドメイン112又はそれのサブネット116内で、マルウェア(例えば、悪意あるコード152及び/又は悪意あるコードの断片156)をプロアクティブに識別することを可能にするように構成された、多くのコンポーネント又はモジュールを備えることができる。プロアクティブなセキュリティメカニズム108は、ネットワーク動作に影響を与えずに、識別されたマルウェアをうまく処理し、又はそれと戦う能力も備えることができる。
【0073】
プロアクティブなセキュリティメカニズム108内に含まれ得るコンポーネントの非限定的な例は、前哨モジュール220と、ステルスモジュール224と、隔離ハイパーバイザ228と、ANNI232と、科学捜査モジュール236と、1つ又は複数のローマ240と、対抗手段モジュール244と、報告モジュール248とを含む。動作において、前哨モジュール220は、ネットワーク内におけるマルウェアの存在を識別するために、セキュリティデータストア304及びそれに含まれる情報308を参照するように構成することができる。いくつかの実施形態では、前哨モジュール220は、ネットワークに入って来たパケット又はパケットの組合せが、潜在的に、又は実際に、マルウェアに対応するかどうかを決定するために、1つ又は複数の公知のマルウェアシグネチャを参照することができる。代替として、又は加えて、前哨モジュール220は、コンピューティングデバイス204におけるアクティビティが、知られた挙動又は予想される挙動に対応するかどうかを決定するために、ユーザ挙動定義(正常、異常、ユーザ・プロファイルなど)を参照することができる。例えば、ユーザは、一般的なユーザパターン(例えば、ウェブサーフィンパターン、ワークフローパターン、通常オープンされるアプリケーション、アプリケーションがオープンされる順序、実行される実行可能ファイルのタイプ、通常の作業時間など)を示す、ユーザプロファイルを有することができる。通常ユーザ挙動の定義からの逸脱はいずれも、疑わしいと見なすことができ、そのような逸脱中に実行を試みる情報又はコードのパケットはいずれも、暗号化されているか、それとも暗号化されていないかに関わらず、実際のマルウェア又は潜在的なマルウェアと見なすことができる。
【0074】
前哨モジュール220が、コンピューティングデバイス204におけるアクティビティが、知られた挙動、通常の挙動、もしくは予想された挙動に対応しないと決定した場合、又は前哨モジュール220が、知られていない、信頼できない、もしくは知られたマルウェアに類似する特性を示す1つもしくは複数の情報のパケットが、ネットワークインターフェース216において受信されたことを検出した場合、前哨モジュール220は、そのパケットを隔離し、解析し、さらに処理するために、プロアクティブなセキュリティメカニズム108の他のコンポーネントを起動することができる。
【0075】
プロアクティブなセキュリティメカニズム108に疑いをもつ性質を提供することは、本発明の1つの態様である。具体的には、前哨モジュール220は、情報のパケット又は知られていないユーザ挙動を信頼しないように構成され、したがって、いずれのパケット又はパケット断片も、そのパケット又はパケット断片がマルウェアでないと立証されない限り、マルウェアとして扱う。この立証は、自動的に、又は例えば、コンピューティングデバイス204におけるユーザ入力の支援を受けて、行うことができる。前哨モジュール220は、コンピューティングデバイス204におけるユーザ挙動、ネットワークインターフェース216において受信されたパケットの内容、ネットワークインターフェース216において受信されたパケットヘッダの内容などを解析するルールエンジンを使用するように構成することができる。ネットワークインターフェース216において受信されたすべてのデータパケットを解析することによって、前哨モジュール220は、いずれのマルウェアも、それが保護されたドメイン112に入って来ると直ちに、マルウェアが断片で入って来たとしても、速やかに識別することが可能である。
【0076】
前哨モジュール220が、知られたシグネチャを有するマルウェアにまだ対応していないとしても、信頼できないパケット又はパケットの組合せ(例えば、ソフトウェア、命令、データなど)を検出した場合、前哨モジュール220は、プロアクティブなセキュリティメカニズム108内の1つ又は複数のモジュール(例えば、ステルスモジュール224、ANNI232、及び/又はローマ240)を同時に起動する。ステルスモジュール224は、潜在的なマルウェア又は確実に識別されたマルウェアの出所148をプロアクティブに探し出すように構成され、一方、ANNI232は、潜在的なマルウェアを隔離し、潜在的なマルウェアをデエンジニアリングし、コード又はコード断片上で追加の診断を実行するように構成される。ローマ240は、保護されたドメイン112及び任意のサブネット116において、前哨モジュール220によって識別された潜在的なマルウェアに部分的又は完全に類似するコードの部分を探すように構成される。
【0077】
より具体的には、ステルスモジュール224は、前哨モジュール220によって潜在的なマルウェア又は実際のマルウェアであると識別された1つ又は複数のパケットについての情報(例えば、ヘッダ情報、ペイロード情報、ルーティング情報、アドレス指定情報など)を解析し、パケット情報の解析に基づいて、悪意あるコードの出所148を探し出すように構成されたコードの1つ又は複数の部分に対応することができる。いくつかの実施形態では、ステルスモジュール224は、悪意あるコードの出所148が、1つ又は複数のファイアウォール140によって、保護されたドメイン112から分離されているとしても、悪意あるコードの出所148を識別するように構成することができる。加えて、ステルスモジュール224は、プロアクティブなセキュリティメカニズムのコンポーネントの中でもとりわけ、ステルスモジュール224が検出されずに攻撃者のネットワーク144に到達することを基本的に可能にする自己隠蔽能力を備えることができる。さらにまた、ステルスモジュール224は、それが識別又は発見されたと思われる場合に、ステルスモジュール224に自己破壊させ、それによって、ステルスモジュール224の発信元の検出を妨げる、自己破壊コンポーネントを備えることができる。
【0078】
ANNI232は、前哨モジュール220によって識別されたパケット又はコード断片を収集し、潜在的なマルウェアを隔離ハイパーバイザ228内に配置する能力を備えることができる。いくつかの実施形態では、隔離ハイパーバイザ228は、実際のマルウェア及び潜在的なマルウェアがANNI232による解析のために配置され得る、安全なサンドボックス(例えば、仮想マシン、仮想コンテナ、又は仮想コンピューティングプラットフォーム)に対応する。実際のマルウェア及び潜在的なマルウェアは、前哨モジュール220及び/又はANNI232によって、隔離ハイパーバイザ228内に配置することができ、その後、ANNI232は、実際のマルウェア又は潜在的なマルウェアが、安全な封じ込められたシステム内で実行又は遂行などされることを許可することができる。マル
ウェアを隔離ハイパーバイザ228内に配置することによって、ANNI232は、マルウェアを安全にデエンジニアリングすること、マルウェアを定義もしくは記述する1つもしくは複数のシグネチャを決定すること、及び/又はマルウェアに対する1つもしくは複数の対抗手段244を準備することを可能にされる。このデエンジニアリング及び解析のすべては、数ミリ秒のうちに実行することができ、それは、実際のマルウェア及び潜在的なマルウェアが、すべて、ネットワークアクティビティを妨害することなく、リアルタイムベースで識別され得ることを意味する。
【0079】
いくつかの実施形態では、ANNI232は、マルウェアを速やかに識別し、マルウェアについてのデータベースシグネチャを生成し、マルウェアシグネチャが、プロアクティブなセキュリティメカニズム108の他のコンポーネント(例えば、前哨モジュール220、ローマ240など)によって参照され得るように、セキュリティデータストア304内に書き込まれるようにし、マルウェアについての接種情報又は命令を生成し、コードホワイトリスト及び/又はブラックリストを更新し、対抗手段挙動を更新するなどする、リアルタイム科学捜査ツールになる。ANNI232は、マルウェアのデエンジニアリングに基づいて、マルウェアについての接種命令をリアルタイムにセキュリティデータストア304内に配置するようにも構成される。
【0080】
ANNI232が、これらの機能を非常に速やかに実行するように構成される理由の1つは、ANNI232が、CPU、GPU、及び/又はAPUに基づいた高性能コンピューティング(HPC)プラットフォーム上で実行されるように構成されるためである。いくつかの実施形態では、ANNIは、RAM内に存在し、40〜50ギガバイト/秒で互いに通信する1つ又は複数のサーバブレード上で実行することができる。さらに、ANNI232は、システム割り込み中に機能又は動作するように構成されるので、ANNI232の効率は、向上させられ得る。これは、保護されたドメイン112の他のコンポーネントが、どのようなコードも実行していないとしても、追加の計算が、ANNI232によって行われ得ることを意味する。ANNI232は、ハードウェア固有である対抗手段244を最適化するように構成することもできる。例えば、ANNI232は、マルウェアが第1のタイプのハードウェア(例えば、ルータ、ファイアウォールなど)において検出された場合、第1のタイプの対抗手段244を開発することができ、一方、ANNI232は、同じマルウェアが第2のタイプのハードウェア(例えば、コンピューティングデバイス、ハブ、スイッチなど)において検出された場合、第2のタイプの対抗手段244を開発することができる。マルウェアのデエンジニアリング中にANNI232によって開発された対抗手段244は、さらなる攻撃からハードウェアを保護する(例えば、マルウェアを隔離する、もしくは封じ込める)助けとなることができ、又は攻撃の拡散から他のハードウェアコンポーネントを保護する(例えば、ハードウェアもしくはそのコンポーネントを意図的に破壊する、もしくは非アクティブ化する)助けとなることができる。
【0081】
科学捜査モジュール236は、対抗手段及びANNI232によって生成された他の情報を広めるように構成することができる。いくつかの実施形態では、科学捜査モジュール236は、システム100内のすべての前哨220にセキュリティデータストア304に対する更新を通知するルーチンを実行するように構成される。具体的には、科学捜査モジュール236は、データ308内の1つ又は複数のエントリが更新されたことを、すべての前哨220に通知するように構成することができる。例えば、科学捜査モジュール236は、知られたマルウェアシグネチャ、コードホワイトリスト、コードブラックリスト、通常ユーザ挙動、異常ユーザ挙動、対抗手段挙動、(例えば、クラウドリソースの受動的解析から獲得されるような)ハッキングトレンド情報、ユーザフィルタなどのうちの1つ又は複数に対する更新が行われたことを、前哨220に通知することができる。科学捜査モジュール236は、ローマ240にもそのような更新を通知することができ、それによって、保護されたドメイン112内の既存のコードにおいてプロアクティブに探索を行っ
ているローマ240が、新たに発見されたマルウェアを探すことを可能にする。この更新された情報は、マルウェアがネットワークに入って来て、アクティブ化される前にしばらくの間休眠している攻撃(例えば、トロイの木馬攻撃)からドメイン112を効果的に保護する。
【0082】
ローマ240は、ドメイン112及びそれに接続されたデバイスにおいて、ボット又はマルウェアのビット及び部分をプロアクティブに探すために、セキュリティデータストア304内の情報を参照するように構成することができる。いくつかの実施形態では、ローマ240は、前哨220が提供されていないコンピューティングデバイスにおいて探索を行うように構成される。ローマ240が、少なくともいくつかの特徴が知られたマルウェアの特徴と一致するコードの部分を検出した場合、ローマ240は、そのコードが、ANNI232による解析のために、隔離ハイパーバイザ228内に配置されるようにする。
【0083】
対抗手段モジュール244は、マルウェアの解析及びデエンジニアリング中にANNI232によって開発された、1つ又は複数の対抗手段を実施するように構成することができる。いくつかの実施形態では、対抗手段モジュール244は、ローマ240及び/又は前哨220によって起動されるように構成され、起動されると、悪意あるコードの出所148を攻撃しに行く。マルウェアをその出所において攻撃することによって、対抗手段モジュール244は、保護されたドメイン112及び他のドメインを含む、他のネットワークへのマルウェアのさらなる拡散を防止することができる。対抗手段モジュール244によって起動され得る対抗手段のタイプは、限定することなく、コードの破壊、そのコードを有するハードウェアコンポーネントに対するサービスの中断などを含む。
【0084】
ANNI232は、ネットワークトポロジ(例えば、保護されたドメイン112のトポロジ)、又はネットワーク境界デバイス132の背後にある他のネットワークのトポロジを識別する能力も備えることができる。いくつかの実施形態では、ANNI232は、保護されたドメイン112及びその任意のサブネット116に接続されたすべての資産(例えば、コンピューティングデバイス)を識別するように構成される。そのようなデバイスが信頼され、どのようなマルウェアも含まないと、ひとたびANNI232が決定すると、ANNI232は、それらの資産を、セキュリティデータストア304内に記憶することができる資産ホワイトリストに追加することができる。ANNI232は、ファイアウォール140の背後に存在する他のデバイスについてのネットワークトポロジも決定することができる(したがって、そのネットワークトポロジ図内に悪意あるコードの出所148を含む)。この機能は、ANNI232が、保護されたドメイン112に対する、悪意あるコードの出所148及びそれがどこに存在するかについての3次元マップ又は視覚化を構築することを可能にする。いくつかの実施形態では、この機能は、特に、自分たちの居場所が決定されたことをサイバ犯罪者が知った場合に、サイバ犯罪者に対する抑止力として機能する。ネットワークトポロジのマップ又は視覚化は、保護されたドメイン112のセキュリティ管理者に提供することができ、及び/又は悪意あるコードの出所148に提供して、その場所が決定されたことを彼らに通知することができる。
【0085】
いくつかの実施形態では、プロアクティブなセキュリティメカニズム108内のコンポーネントの一部又は全部のアクションは、報告モジュール248によって追跡し、監査し、報告することができる。具体的には、報告モジュール248は、プロアクティブなセキュリティメカニズム108のコンポーネントの実行の結果ばかりでなく、それらのいずれかがいつ起動されたかも決定するように構成することができる。報告モジュール248は、プロアクティブなセキュリティメカニズム108のアクティビティをリアルタイムで報告することができる(例えば、前哨220がマルウェアを検出したときはいつでも、報告モジュール248は、そのようなアクティビティを報告することができる)。いくつかの実施形態では、報告モジュール248は、電子メッセージ(例えば、電子メール、SMS
メッセージなど)を生成し、それを事前に定められたセキュリティ要員に送信する。加えて、又は代替として、報告モジュール248は、望ましい場合は配信することができる、プロアクティブなセキュリティメカニズムのアクティビティの日次報告又は定期報告を生成することができる。
【0086】
いくつかの実施形態では、ANNI232及びプロアクティブなセキュリティメカニズム108の他のコンポーネントは、自らを攻撃から保護する能力を備えることができる。例として、(例えば、複数の攻撃マルウェアコンポーネントを用いる)総当たり攻撃が検出された場合、プロアクティブなセキュリティメカニズム108又はANNI232は、コンピューティングデバイス204を通信ネットワークに接続するネットワークインターフェース216ばかりでばく、自らの一部又は全部も無効にすることができる。プロアクティブなセキュリティメカニズム108又はANNI232によって実施され得る別の可能な応答は、1つのロケーションにおいて自らを無効にし、又は破壊し、ネットワークに接続された別のコンピューティングデバイス204において自らを再生する能力である。
【0087】
セキュリティデータストア304内に記憶されたデータ308は、任意の知られた方式で組織化することができることを理解されたい。例として、データは、リレーショナルデータベース又は階層型データベース(例えば、SQLデータベース)内に記憶することができる。別の例として、データ308は、表形式又は多桁形式で記憶することができ、圧縮されてもよく、又は圧縮されなくてもよい。言い換えると、データ308の組織化は、特定の形式又は構造に限定されると解釈されるべきではない。
【0088】
図4及び図5は、ANNI232又はプロアクティブなセキュリティメカニズム108の他の任意のコンポーネントによって実施することができるAIフレームワークのさらなる詳細を示している。具体的には、ANNI232は、3異常検出技法を実施することができる。第1の異常は、自動化された侵入検出を決定するために使用される、ファジクラスタリングアルゴリズム(ファジ論理)+データマイニングに対応することができる。第2の異常は、J48決定木機械学習又はニューラルネットワークを用いる特徴集合削減を利用することができる。第3の異常は、決定木機械学習及びサポートベクトルマシンを利用することができる。
【0089】
図4に示されるように、ファジメンバーシップ関数パラメータを調整するために、汎用アルゴリズムが使用され得る。ファジc−メドイド(medoid)アルゴリズムが、ランダムなメドイド候補を選択し(ステップ404)、最も近いメドイドに各点を割り当て(ステップ408)、新しいメドイドを計算し(ステップ412)、最も近いメドイドに各点を割り当て(ステップ416)、対象が移動されるべきかどうかを決定し(ステップ420)、移動されるべきでない場合、クラスタデータを生成する(ステップ424)ために使用され得る。その後、クラスタデータは、ローカルストレージ内に記憶すること(ステップ428)、及び/又はデータストア内に記憶すること(ステップ432)かできる。
【0090】
データマイニング技法が使用され得る。データマイニング技法は、パターン発見アルゴリズムに基本的に対応するが、それらの大部分は、機械学習又はパターン認識などの関連分野から引き出される。データマイニング技法に従った侵入検出との関連では、以下の技法のうちの1つ又は複数が、本発明の実施形態に従って利用され得る。(1)関連付けルール−異常の発見を容易にする、データセット内のアイテム間の属性相関又は関係を決定することによって、通常のアクティビティを定義する。(2)頻発エピソードルール−データの発生を使用して、監査データ関係を記述する。(3)分類−データを、データの利用可能なカテゴリの1つに、通常データとして、又は攻撃のタイプの1つとして分類する。(4)クラスタリング−データを、グループ間類似性及びグループ内非類似性の特性を
有するグループ内に集める。(5)特徴付け−逸脱解析のためにさらに使用されるデータを区別する。
【0091】
図5は、侵入検出モデルを構築するデータマイニング工程を示しており、そのいくつかは、プロアクティブなセキュリティメカニズム108による使用のために、セキュリティデータストア304内に記憶することができる。
【0092】
本発明のまた他の実施形態は、悪意あるパケットを識別するために異常な有効期間(TTL)値を使用するもの、AI挙動検出を使用するもの、及び仮想マシンセーフ/サンドボックスを使用するものなど、複数のマルウェア検出及び予測技法を集めることができる。
【0093】
AI挙動検出に関して、悪意あるシグネチャのフレームワークは、業界から、また内部的にリアルタイム生成から集めることができる。これらの集められたシグネチャは、決定木を通過させ、ファジネットアルゴリズムから集められ、その後、正しい対抗手段に向けて配置することができる。
【0094】
上で説明されたように、1つの独特な態様は、潜在的なマルウェアをデコンパイルし、デエンジニアリングするための安全な環境として、ハイパーバイザを利用する能力である。未知のパケット又は不確実なパケットは、追加コードと結合された、オープンソースのスタック化されたクロスプラットフォーム技術を使用する、ANNIがその上でマルウェアを実行する機械学習HPCブレードに送ることができる。WINEと同様に、安全な仮想サンドボックスにおいて(例えば、隔離された環境において)、潜在的なマルウェアによってコールされたAPIについての情報が収集され得る。その後、ハッシュダンプが、シグネチャとともに、対抗手段決定を開始するために、ANNIに送られる。
【0095】
図6及び図7は、ANNI232及びプロアクティブなセキュリティメカニズム108の他の態様を実行するために使用されるハードウェアのさらなる細部を示している。より具体的には、図6は、コンピューティングネットワークにおいてきわめて高速で受信されたデータパケット604を解析するために使用される、HPCシステムの態様を示している。図6に示されるコンポーネントの一部又は全部は、プロアクティブなセキュリティメカニズム108又は本明細書で説明される他の任意のセキュリティデバイス内で実行することができることを理解されたい。
【0096】
データパケット604は、暗号化された形式又は暗号化されない形式で受信することができる。受信されると、(例えば、データパケット604の宛先アドレス内で定められるような)宛先に渡される前に、データパケット604は、前哨調査API608によって処理され、前哨調査API608は、データパケットフロー612を生成する。いくつかの実施形態では、前哨調査API608は、インフィニバンドの形態のセンサと、FDR調査ネットワークインターフェースカードとを含む。
【0097】
いくつかの実施形態では、悪意あるトラフィックは、一階論理に基づいたイベント言語(例えば、非限定的な例として、イベントロン(Eventron)プログラミング言語)を使用して検出される。例として、ニューラルネットワークは、新しいデータ又はパケットの検出が、ゲートウェイ又はデータフローセンサにおいて発生したときにだけ生成される。ANNIのニューラルネットワークは、新しいデータセット内において関連付けを見出し、その後、「なぜ、どのように、及びどのような」データが着信しているか、又はネットワーク内で生成されるかについてのコンテキストを回帰するために、確立し、使用することができる。ANNI232が、新たに生成されたデータ又は着信パケットの関連付け及びコンテキストをひとたび理解すると、ニューラルネットワークは破壊される。デ
ータのコンテキスト又は理解は、人工知能だけが理解する、DNAアルゴリズム・サブセットとして記憶される。単純な例として、ANNI232は、パターン及び関連付けを検出することによって、意味を学習することができる。
【0098】
新しいデータが傍受された場合、又はネットワーキングパケットが、ANNIのDNAストアドデータコンテキスト/意味データベースと異なる場合、ANNI232の脳は、デフォルトで、データのメイン収集ポイントにおいて(例えば、センサ又はゲートウェイレベルで)、2歳児の神経生理学をまねるように設計された。
【0099】
新しいデータセットが、保護されたネットワーク内に導入される場合、ANNI232は、大規模な接続、非対称のグラフを有する、無数のニューラルネットワークを生成して(例えば、ニューラルセットの変形は、問題のデータのサイズ及び重みに依存する)、関連付け、次に、データのコンテキスト上の意味を見出す。ANNI232は、様々なネットワーキングセンサ及びシステムセンサから新たに導入されたデータ/パケットによって引き起こされた、ありとあらゆるバイナリスパイク(binary spike)を最初に収集することによって、初期工程を開始する。ANNI232が、(例えば、問題のデータセットが導入された瞬間における)環境のデジタルプロファイル及び保護された環境のセキュリティ健全性のリアルタイム「スナップショット」をひとたび有すると、ANNI232は、この知識をニューラルモデル内に圧縮し、その後、関連付け及び履歴挙動パターン(ホワイトリスト及び知られた悪意)のために、変化バイナリスパイク、履歴プロファイル(ホワイトリスト及び知られた悪意)、環境の現在のデジタル健全性の間でソートを行うために、セマンティック問合せ及び相関エンジンのクラスタを、他の挙動技法とともに、使用することによって、データセット上で回帰を実行する。このコンピューティング工程は、ANNI232のカスタマイズされた40GigEパケットキャプチャNICを利用して、新しいデータ又は未知のデータセットを着信から、又は直接データタッピングを使用して直接的に内部データフローからリアルタイムでプルして、関連付け及び意味のための収集を行い、ひとたび完了すると、同じNICスタックデータが、ネットワーキング遅延なしに、宛先へのネットワークルートにデータセット又はパケットをバーストすることによって達成される。
【0100】
NICカードは、64コア独立FPGA又はASICチップセットを有し、NIC当たり最小256ギグ(gig)又は512ギグのメモリを備え、各NICカードは、パケットキャプチャ及びインジェクションがすべてのイーサネット(登録商標)パケットサイズに対して100%無損失である回線レートスループットを提供する。各カードは、パケットが2〜3マイクロ秒以内に受信され得るように、様々な着信パケットレートに適合したパケットキャプチャメカニズムを使用することによって、待ち時間を短縮するように開発された。カードは、(統合された64コアFPGA又はASIC CPUチップセットにわたって着信フローをパーティション分割することによって行われる)強化されたマルチコアアウェアネスのためのパーティション分割、複製、及び工程共用を使用するように設計されるので、この設計は、簡潔さを生み出し、ディープパケットインスペクション(DPI)を実行するアプリケーションに対して、高パケット負荷の下での処理時間制約を取り除く。NICは、複数のFPGA CPU64コアが、同じデータセット又はパケットの集まりに対して異なるセマンティッククエリを同時に適用することができるように、着信パケットを複数の受信リングに複製することができる。NICカードは、実際のパケット/データ到着時刻又は収集時刻を反映するために、すべての着信パケット及びすべての新たに検出されたデータセットに自動的にタイムスタンプを捺すようにプログラムされる。
【0101】
NICカードは、着信パケットを割り当て、圧縮し、データパターンを、メイン人工知能インタープリタエンジンが意味を決定するために使用し、その後、将来の論理回帰のた
めに記憶する、バイトサイズDNAコンテキスト言語にデコンパイルする、HPCのブレードの4つの独立GPUプロセッサと直接的に統合し、ロジックを共用するようにカスタマイズすることができる。いくつかの実施形態では、メイン人工知能インタープリタは、コンテキストに対して圧縮解除及び分解を行う、6つのカスタマイズされたASIC64チップセット又は6つのスタンドアロンGPUプロセッサのクラスタである。
【0102】
フローデータパケット612は、その後、(上で説明された前哨220と類似の機能を実行することができる)1つ又は複数の前哨サーバ616に提供される。前哨サーバ616は、フローデータパケット612を収集し、それらがフローコンテキスト意味エンジン620に渡され得るように、それらを組織化する。いくつかの実施形態では、フローコンテキスト意味エンジン620は、プロアクティブなセキュリティメカニズム108の追加の態様を実行する。特に、フローコンテキスト意味エンジン620は、前哨サーバ616から受信した入力を解析し、フローデータパケット612が認識された又は認識されていない(例えば、異常な)パターン、特徴、及び/又はシグネチャを含むかどうかを決定するために、ANNI232を実施することができる。さらに、フローコンテキスト意味エンジン620は、HPCが異常挙動をリアルタイムに識別し、さらに解析中に識別されたいずれのマルウェアにも対抗手段を生成することを可能にするパターン相関機能を、データ・ビジュアライザに提供することができる。
【0103】
いくつかの実施形態では、ANNI232は、ニューラルネットワーク又は人工知能の他の任意の形態とは根本的に異なる。特に、ANNI232は、ユーザによって事前定義されたどのようなニューラル構造も有さない。ANNI232のニューラルネットワークは、ノード間の接続が自動的である、すなわち、意識的な制御なしに形成される、神経学的な構造に類似する。
【0104】
システムに供給されたあらゆるバイト間のすべての関係を記述する接続はn次元グラフを形成する。これは、ANNI232が、データ摂取を見つけたときに、新しいデータを考慮して関係を自動的に調整することを学習することを可能にする。
【0105】
学習しながら、ANNI232は、トピックによって各バイトを階層に、すなわち、最も一般的なものから開始して次第に最も特定的なものに推移するように、自動的に分類する、最小のオントロジ(ontology)を生成する。無数の階層は、任意の方向に形成することができ、ヘテラルキ(heterarchy)を形成する。(階層的分類は、包摂関係によって配列される)。ANNI232は、各バイトが別のバイトに関係するときに、各バイトに固有の意味論的意味を検出することができ、人的バイアス又は過剰学習は存在しない。この最小オントロジ手法は、機械が、任意のデータ要素間の高次の関係を学習することを可能にする。言い換えると、ANNI232は、語の概念的意味を検出することができ、語が予期されない方法又は独特な方法で使用される場合、隔離することができる。
【0106】
ANNI232は、システムを教え、機械に意図的な観点を与えるオプションもユーザに提供する。特定の関係に対するデータ要素の重要性に影響を与えるために、データのトポグラフィを動的に調整する検索が、最小オントロジに入力され得る。問題に回答するための最良経路をシステムが学習することを可能にする。問題が繰り返される場合、ANNI232は、回答を形成する関連データ要素間の関連付けを厳しくすることができる。人間の筋肉記憶のように。
【0107】
ニューラルネットと異なり、ANNI232は、問題に対する回答を含むすべての関係を明らかにする。半透明性。教示可能−SDK内のコマンドは、特定の関連付けを作成し、他を無視するように、ユーザがANNI232に命令することを可能にする。パターン
を学習するために、ANNI232を外部リソース又はグローバルサーバに導くことが、推奨され、潜在的により高速である。特に、ANNI232は、言語とデータの両方について不可知であり、バイトレベルで学習するように構成される。コンテキストデータセット又はANNIの学習データベースデータセットは、実際のコードを変更せずに、ANNIのニューラルモデルの部分をアクティブ化又は非アクティブ化することによって、実質的ないじり(tinkering)が発生することを必要とする。例えば、ブート時に、それがどのようなCPU上で実行されているかを発見し、(例えば)それがシングルCPUシステム上で実行されている場合、バイナリコードの部分を実質的に無効化する、64ビットLinux(登録商標)マイクロカーネル内において。これは、if(numcpus>1)のようなものを超え、それは、ロッキングによる実質的なノーオペレーション(nopping)である。重要なこととして、このノーオペレーションは、メモリにおいて発生し、ディスクベースのイメージ上で発生しない。ANNIのコンテキストデータベースは、RLL又はMFMコーディングのように記憶される。ハードディスク上で、ビットは、極性遷移又はそれの欠如によって符号化される。ネイティブ符号化は、0を「遷移なし」として、1を「遷移」として符号化する。000000の符号化は、数マイクロメートルにわたって磁気位相を変化なしに保つ。復号中、正確なマイクロメートルを理解するために、遷移なしの長い広がりが発生しないように、データが扱われる。ANNIが、ディスク上で「遷移なし、遷移なし、遷移、遷移」を観察した場合、ANNIは、コンテキストDNAバイトが「0011」に対応すると決定することができ、ANNIの読み取り工程が非常に不正確で、これが「00011」又は「00111」に対応し得る可能性はきわめて低い。そのため、システムは、小さすぎる遷移を防止するために、スペーサを挿入するように開発される。これは、磁気媒体上での「ラン・レングス制限」と呼ばれる。遷移は、データが信頼性をもって記憶され得ることを確実にするために、挿入されることを必要とする。ANNIの学習コンテキスト・セル又はデータセットは、非常に厳格な条件、「セキュアバイデフォルト(secure by default)」構成が満たされない限り、クローニングすることはできない。
【0108】
図7は、インストールされたシステムにおけるHPC環境の追加の詳細を示している。管理エンジン704は、プロアクティブなセキュリティメカニズム108のメイン・アプリケーションを実行する、メイン論理AIエンジンを備えることができる。いくつかの実施形態では、管理エンジン704は、8ブレードクラスタHPCを備える。メイン人工知能エンジンを収容する管理エンジン704は、AIエンジンがマルウェアを探して、又は推論のために解読するように、新しいフローデータを意味カテゴリに入れて可視化する、自然言語及びデジタルバイト推論学習木フレームワークを備えることができる。
【0109】
管理エンジン704は、パケットキャプチャ/データ検査モジュール708と通信することができる。パケットキャプチャ/データ検査モジュール708は、コンピューティングネットワーク内においてデータパケット604を収集するために使用される前哨220能力を提供することができる。パケットキャプチャ/データ検査モジュール708は、管理エンジン704とデータパケットを処理/解析するために使用されるサーバクラスタ712との間のインターフェースを提供することができる。したがって、メインエンジン704は、パケットキャプチャ/データ検査モジュール708を介して、サーバ712の動作を制御することができる。
【0110】
サーバクラスタ712は、2つの異なるネットワーク環境、すなわち、(1)ユーザ空間と、(2)サーバカーネル及びオペレーティングシステム(O/S)空間とを含むことができる。ユーザ空間は、パケットキャプチャ/データ検査モジュール708によって収集されたパケットとのユーザの対話をシミュレートする、ネットワークアプライアンス716を含むことができる。特に、ネットワークアプライアンス716は、コンピューティングネットワーク内における通常のユーザ挙動及び/又は信頼できるユーザ挙動を決定/
定義する助けとなる、コンピューティングネットワーク内におけるユーザのデジタルプロファイルを含むことができる。ネットワークアプライアンス716において受信されたデータパケットは、どのAPIがデータパケットによってコールされたかを見るために、さらにそのようなコールが通常の挙動又は予想された挙動内におけるものかどうかを見るために、実行することができる。
【0111】
サーバカーネルO/S空間は、1連のアプリケーションを動作させ、それによって、ANNI232が、受信したパケットの実行に応答したアプリケーションの動作が、コンピューティングネットワークに対する脅威を引き起こすかどうかを決定することを可能にする、ネットワークアダプタ720を含むことができる。サーバカーネルO/S空間内のアプリケーションは、きわめて高速にANNI232を実行しており、それによって、マルウェア及びネットワーク脅威がリアルタイム又はほぼリアルタイムに識別されることを可能にする、DNA NICブレードエンクロージャ724又は論理ブレードエンクロージャ728に属する、1つ又は複数のNICブレードによって実質的に実行することができる。
【0112】
上で説明されたように、NICカードは、64コア独立FPGA又はASICチップセットを有し、NIC当たり最小256ギグ又は512ギグのメモリを備えることができ、各NICカードは、パケットキャプチャ及びインジェクションがすべてのイーサネット(登録商標)パケットサイズに対して100%無損失である回線レートスループットを提供する。各カードは、パケットが2〜3マイクロ秒以内に受信され得るように、様々な着信パケットレートに適合したパケットキャプチャメカニズムを使用することによって、待ち時間を短縮するように開発することができる。カードは、(統合された64コアFPGA
CPUチップセットにわたって着信フローをパーティション分割することによって行われる)強化されたマルチコアアウェアネスのためのパーティション分割、複製、及び工程共用を使用するように設計されるので、この設計は、簡潔さを生み出し、ディープパケットインスペクション(DPI)を実行するアプリケーションに対して、高パケット負荷の下での処理時間制約を取り除く。NICは、複数のFPGA CPU64コアが、同じデータセット又はパケットの集まりに対して異なるセマンティッククエリを同時に適用することができるように、着信パケットを複数の受信リングに複製することができる。NICカードは、実際のパケット/データ到着時刻又は収集時刻を反映するために、すべての着信パケット及びすべての新たに検出されたデータセットに自動的にタイムスタンプを捺すようにプログラムされる。
【0113】
NICカードは、着信パケットを割り当て、圧縮し、データパターンを、メインA.I.インタープリタエンジンが意味を決定するために使用し、その後、将来の論理回帰のために記憶する、バイトサイズDNAコンテキスト言語にデコンパイルする、HPCの個別ブレードの4つの独立GPUプロセッサと直接的に統合し、ロジックを共用するようにカスタマイズすることができる。(メインA.I.インタープリタは、コンテキストに対して圧縮解除及び分解を行う、6つのカスタマイズされたASIC64チップセットのクラスタである)。NICカードは、データフローコンテキスト又はデータタイプに応じて、ASIC、FPGA、又はスタンドアロンGPUにわたる、処理チップセットをサポートするように統合される。データフローバイト情報意味のためにデータフローをプロセッサチップセットにプル又はプッシュする、標準オプショナル40ギガビットQDRインフィニバンド、56ギガビットFDRインフィニバンドから、デュアル56ギガビットFDRインフィニバンド・オプションにわたる、NICカード。NICカードは、40ギガビットQDRインフィニバンド、56ギガビットFDRインフィニバンドから、デュアル56ギガビットFDRインフィニバンドまでの速度で、マルウェア特徴と一致するデータバイトについてのインテリジェントなデータフロー検査を提供するために、処理チップセット(GPU、ASIC、又はFPGA)と一致して機能する。
【0114】
今から図8を参照して、暗号化され、暗号解除された、自由形成のデータを解析する方法が、本発明の実施形態に従って説明される。上で説明されたように、プロアクティブなセキュリティメカニズム108は、暗号化された形式又は暗号解除された形式で脅威を速やかに解析する能力を提供され得る。図8の図は、プロアクティブなセキュリティメカニズム108において受信された暗号化されたデータの処理を促進するために使用することができる特別な方法を示している。特に、方法は、暗号化されたデータがプロアクティブなセキュリティメカニズム108において受信されたときに開始する(工程804)。例として、暗号化されたデータは、ANNI232による解析のために、前哨220によって収集することができる。
【0115】
暗号化されたデータを受信すると、プロアクティブなセキュリティメカニズム108は、引き続き、受信された暗号化されたデータと関連付けられるように決定された、関連付けられたデータ、メタデータ、及びデジタルフットプリントを収集する(工程808)。特に、プロアクティブなセキュリティメカニズム108は、受信された暗号化されたデータとの類似性を有するすべての通常データ(例えば、暗号化されたデータと共通の宛先、暗号化されたデータと共通の送信元を有し、暗号化されたデータと共通のアプリケーションを利用し、暗号化されたデータと共通のTTLを有し、又は暗号化されたデータに類似する他の任意の特徴を有する、任意のデータ又はメタデータなど)を見つけようと試みることができる。データは、なぜ、どのように、何が、誰が、どこから、どれだけの間、及びいつに意味を与えるために収集される。このデータは、その後、解析のためのデータベース・クエリを形成するために使用される。具体的には、ANNI232は、コンテキスト相関及び回帰を含む、統計的解析を開始することができる。(例えば、工程808において収集されたデータを解析し、相関及び回帰を介してその通常データ又は信頼できるデータに関連付けられた特徴を決定することによって)通常データのコンテキストが1度識別される。この工程は、ANNI232が、通常データ(例えば、受信された暗号化されたデータに関連する通常データ)がなぜ環境内に存在するかに意味を与える、学習モデル要素を構築することを含むことができる(工程816)。これらの学習モデル要素は、暗号化されたデータが隔離ハイパーバイザ228内に維持されている間に、ANNI232によってリアルタイムに構築することができる。
【0116】
学習モデル要素は、その後、暗号化されたデータと比較することができるように、ANNI232によってカテゴライズすることができる(工程820)。より具体的には、ANNI232は、見出された履歴データと比較した場合の、暗号化されたデータがどのように扱われるべきかについての相違を理解するために、暗号化されたデータがどのように使用され、生成され、送信されているかなどを、通常データ/信頼できるデータを用いて構築された予測モデルと相関させ、それらに回帰させることができる。さらにより具体的には、ANNI232は、通常データと比較して、暗号化されたデータがアプリケーションによってどのように扱われるか、及び/又は暗号化されたデータがユーザによってどのように扱われたかに関する手がかりを探すことができる。暗号化されたデータが、通常データと同様に扱われている場合、ANNI232は、暗号化されたデータが潜在的なマルウェアではないと決定することができる。例えば、暗号化されたデータのTTL、送信元、受信先が、通常データ/信頼できるデータ内のパターンと一致する場合、ANNI232は、さらなる処理を行わずに、暗号化されたデータが、実際の宛先に進むことを許可することができる。工程808から820までの工程は、上で説明されたHPCを用いて、相対的に速やかに完了することができるので、暗号化されたデータを実際の宛先に送信する際の遅延は、相対的に最小であり、ほとんど無視することができることを理解されたい。
【0117】
しかしながら、受信された暗号化されたデータが、非常に僅かな発生しか見せず、又は
通常データと非常に僅かな類似性しか有さない場合、暗号化されたデータは、さらなる解析が必要であると識別される(工程824)。そのようなデータは、安全な環境内で実行され得るように、隔離ハイパーバイザ228内で暗号解除される(工程828)。非限定的な例として、受信された暗号化されたデータが、通常(例えば、普通の送信元、普通の受信先、普通のTTLなど)であるとして識別されたデータセットとの類似性を有する場合、暗号化されたデータは、通常であるとして識別され、さらなる処理及び/又は暗号解除を行わずに、先に進むことを許可され得る。したがって、通常データは、暗号解除を行わずに、ANNI232によって処理することができる。異常な暗号化されたデータ、又は信頼できるデータとの十分な類似性を有さない暗号化されたデータは、暗号解除され、それがコンピューティングネットワークに対する脅威を引き起こすかどうかを決定するために、さらに処理される。したがって、ANNI232は、コンピューティングネットワーク内の暗号化されたデータセットの集まり全体に対する完全な暗号解除を必要としない。ANNI232が、通常データの回帰的コンテキスト学習を利用した後、ユーザ対話が、その後、意味に対して相関させられる。ANNI232は、その後、暗号化されたデータに対して予想される通常行為を探すことができる。これは、ANNI232が、暗号化されたデータの異常を識別し、その後、さらなる調査を行うようにシステム管理者に警告を送信するのに、又は暗号化されたデータの自動化されたしらみつぶしの暗号解除及びベストプラクティス評価のために、暗号化されたデータパケットをHPCに提示するのに役立つ。
【0118】
さらなる実施形態は、GPUを使用するANNIデータ・トラフィック検査フレームワークを利用し、フレームワークをサブシステム又はコンポーネントに分割する能力を企図している。
【0119】
ANNI232のデータ・トラフィック検査フレームワーク設計は、以下を含む。
DataCollector(Sentinel):ネットワークパケットを獲得し、それらをAnni DNA又はContext DNAオブジェクトにバッファリングすることを担当する。
Main Anni Logical Cluster:DataCollector(Sentinel)からAnni DNA又はContext DNAオブジェクトを獲得し、それらをすべての回帰A.I.クラスタコンポーネントに分配する。
Regression A.I. Cluster:Anni DNA又はContext DNAオブジェクト内に含まれるデータ上で回帰計算を実行する。これらは、回帰計算から獲得された結果に応じたアクションも実行する。
【0120】
Anniデータ・トラフィック検査フレームワークは、いくつかの実施形態では、プログラムのmain()関数が、回帰A.I.クラスタ工程を開始する前に、新しい回帰コンポーネント及びDataCollector(Sentinel)コンポーネントのメインAnni論理クラスタコンポーネントへの追加を含むことを必要とする。
【0121】
非限定的な例として、
main(){
//望むだけ多くの回帰A.I.クラスタコンポーネントを追加する
Main Anni Logical Cluster.addRegression
A.I. Cluster(Regression A.I. Cluster1);
Main Anni Logical Cluster.addRegression
A.I. Cluster(Regression A.I. Cluster2);//...
Main Anni Logical Cluster.addRegression
A.I. Cluster(Regression A.I. ClusterN);

//望むだけ多くのPacketFeeederコンポーネントを追加する
Main Anni Logical Cluster.addFeeder(Anni
DNA or Context DNA1);
Main Anni Logical Cluster.addFeeder(Anni
DNA or Context DNA2);
//...
Main Anni Logical Cluster.addFeeder(Anni
DNA or Context DNAM);
//パケット獲得及び解析を開始する
Main Anni Logical Cluster.start()
DataCollector(Sentinel)。
【0122】
Anniデータ・トラフィック検査フレームワークは、いくつかの実施形態では、ネットワークパケットを獲得すること、及びそれらをAnni DNA又はContext DNAオブジェクト内にパックすることを担当するコンポーネントとして、DataCollector(Sentinel)を定義する。
【0123】
Anni DNA又はContext DNAクラスは、MAX_BUFFER_PACKETSのパケットからなるアレイを定義すべきであり、その中に、生のネットワーク・データ、基本的にネットワーク・ヘッダが、記憶される。各パケット・バッファのサイズは、スレッドidの関数としてGPUスレッドによって容易にアクセスされるように、MAX_BUFFER_PACKET_SIZEバイトに固定されるべきである。以下の図は、Anni DNA又はContext DNAクラスの基本構造の概要を示している。
【0124】
非限定的な例として、
typedef struct{
uint8_t data[MAX_BUFFER_PACKET_SIZE];
}packet;
class Anni DNA or Context DNA{
packet buffer[MAX_BUFFER_PACKETS];

DataCollector(Sentinel)は、任意の種類のソースからパケットを獲得し、それらをAnni DNA又はContext DNAオブジェクト内にパックすることができる。フレームワークは、先に目的の中で言われたように、少なくとも以下を可能にすべきである。
パケットをネットワークインターフェースからリアルタイムに獲得する。この能力は、フレームワークが、モニタリング、管理、又はセキュリティ監視タスクなど、任意の種類のリアルタイムトラフィックRegression A.I. Clusterを実行することを可能にする。
パケットをtcpdumpキャプチャ・ファイルから、又は他の任意のソースから獲得する。この機能は、フレームワーク・ユーザが、例えば、セキュリティ攻撃が行われた後に情報を獲得するために、科学捜査Regression A.I. Clusterを(又はバッチRegression A.I. Clusterさえも)実行することを可能にする。
【0125】
設計上の観点から、Anni DNA又はContext DNAオブジェクトは、そのパケット・ソースに関わらず、実際に、同じ抽象クラス又はインターフェースを実施すべきである。インターフェースは、以下の図に示されるように、メソッドgetSnif
fedAnni DNA又はContext DNA()を少なくとも有するべきであり、Sentinelが、満たされたAnni DNA又はContext DNAオブジェクトを供給する。
【0126】
このコンポーネント、具体的には、抽象クラスAnni DNA又はContext DNAから継承する生成されたクラスは、パケットをネットワーク・カード又はファイルから獲得するために、Libpcapライブラリを使用するようになる。
【0127】
非限定的な例として、
abstract class Anni DNA or Context DNA{
Anni DNA or Context DNA getSniffedAnni DNA or Context DNA(void);

Main Anni Logical Clusterコンポーネントは、開発工程においてデバッグ目的で、具体的には、Anni DNA又はContext DNAコンポーネントをデバッグするために、及び使用されたネットワーク・キャプチャ・ファイル上で有益な情報を獲得するために使用された。
【0128】
Main Anni Logical Clusterは、フレームワークベースのプログラムのSentinelコレクション及びすべてのRegression A.I.
Clusterによって満たされたAnni DNA又はContext DNAオブジェクトのディストリビュータ又はハブとして機能する。このコンポーネントは、新しいAnni DNA又はContext DNA及びRegression A.I. Clusterコンポーネントをフレームワークベースのプログラムに容易に包含することに関して、フレームワークに柔軟性を提供する。
【0129】
フレームワークは、他のAnniクラスタが、外部又は既存のAnni DNA又はContext DNAオブジェクトデータベースを使用すること、及び同じコンテキスト範囲内で複数のRegression A.I. Clusterコンポーネントを使用することを可能にする。
【0130】
データ・バッファ取り出しポリシは、以下を含むことができる。
イベント指向バッファ取り出し(割り込み)。バッファは、それらが満たされると、取り出され、Main Anni Logical Clusterに対する割り込み又はシグナリング・メカニズムを必要とする。プログラム内に含まれる各SentinelオブジェクトからNbuffersのバッファを獲得することによって、バッファを順番に取り出す。これの特定のケースは、各フィーダから順番にバッファを獲得することである。この種のポリシの難点は、パケット・ロスを回避するために、パケットをリアルタイムに獲得するフィーダ間のパケットレートが同様であるべきこと、又はRegression
A.I. Cluster時間がキャプチャ時間よりも短くなるべきことである。
バッファを、すべてのRegression A.I. Clusterコンポーネントにブロードキャストする。
バッファを、データパケットに基づいて、1組のRegression A.I. Clusterコンポーネントにのみブロードキャストする。
バッファを、順番に1つのRegression A.I. Clusterコンポーネントにのみブロードキャストする。このポリシは、フレームワークの現在の設計では無意味である。
【0131】
各フィーダから1つ1つ順番にバッファを獲得するポリシ(Nbuffers=1)、及びそれらをすべてのRegression A.I. Clusterにブロードキャ
ストするポリシ。
【0132】
例:
//順番バッファ獲得ポリシ、及び
//すべてのRegression A.I. Clusterへのバッファ・ブロードキャスト・ポリシを仮定する
Main Anni Logical ClusterStart(){
while(1){
//allFeeders内の各feederに対して
foreach feeder in allFeeders{
//Anni DNA又はContext DNAからバッファを獲得する
buffer=feeder.obtainBuffer();
//allRegression A.I. Cluster内の各Regression A.I. Clusterについて
foreach Regression A.I. Cluster in allRegression A.I. Cluster{
}}
}}
//バッファを解析する
//GPU(Regression A.I. Cluster)及びCPU(フック)コードを実行する
Regression A.I. Cluster.analyze(buffer);
Regression A.I. Clusterコンポーネント及びAnni DNA又はContext DNAコンポーネントの両方を追加することに移行するために、Main Anni Logical Cluster静的クラスの設計は、2つのメソッド、すなわち、addRegression A.I. ClusterToPool(...)及びaddFeederToPool(...)を有する。
【0133】
非限定的な例として、
class Main Anni Logical Cluster{
//Anni DNA又はContext DNAをMain Anni Logical Clusterフィーダ・プールに追加する
addFeederToPool(Anni DNA or Context DNAfeeder);
//Regression A.I. ClusterコンポーネントをMain Anni Logical Cluster Regression A.I. Clusterプールに追加する
addRegression A.I. ClusterToPool(Regression A.I. Cluster Regression A.I. Cluster);
//Main Anni Logical Clusterループを開始する
Main Anni Logical ClusterStart();

Regression A.I. Clusterコンポーネントは、検査フレームワークのメイン・コンポーネントである。Regression A.I. Clusterは、CUDAを使用してGPU内において、バッファリングされたネットワーク・データ上での特定の計算又はRegression A.I. Clusterを実行する、オブジェクトであるべきある。
【0134】
Regression A.I. Clusterコンポーネント設計は、以下の機能
及び設計要求を達成すべきである。
新しいRegression A.I. ClusterコンポーネントのMain Anni Logical Clusterコンポーネントへの容易な追加。
【0135】
各Regression A.I. Clusterは、特定のRegression
A.I. Clusterタスクを実行する、フレームワークベースのプログラム全体における一意エンティティでなければならない。
【0136】
各Regression A.I. Clusterコンポーネントは、GPU Regression A.I. Clusterコード(CUDAコード)、及びRegression A.I. Cluster結果上で行われるアクション(C++ CPUコード)を含まなければならない。
【0137】
Regression A.I. Cluster及びフックセクションのコードは、ライブラリ又はモジュールの形態で、他のRegression A.I. Clusterエンティティにおいて、容易に再使用されるべきである。
【0138】
したがって、Regression A.I. Clusterコンポーネントは、フレームワークベースのプログラム全体における一意オブジェクト又は「静的クラス」であるべきである。Regression A.I. ClusterのMain Anni
Logical Clusterへの追加を容易にするために、すべてのRegression A.I. Clusterは、同じエントリ・ポイント又はメソッド、launchRegression A.I. Cluster(...)を有するべきである。
【0139】
Regression A.I. Clusterの設計は、2つの異なるセクション、すなわち、CUDAコードを含むRegression A.I. Clusterコード・セクションと、CPUコードを含むアクション又はフック・コード・セクションとに分割される。
【0140】
関数:
mining()。この関数は、Regression A.I. Cluster関数によって必要とされるデータをバッファ内に含まれるネットワークパケットから獲得し、それをRegression A.I. Cluster入力データアレイに配置することを担当するルーチンとして定義される。
preRegression A.I. ClusterFiltering()。pre−Regression A.I. Cluster filtering関数は、Regression A.I. Cluster()関数のRegression A.I. Cluster入力データアレイをフィルタリングするコードを含むように意図される。この関数は、mining()関数において使用される基準の代わりに、他の基準によってデータをフィルタリングすることができる。
Regression A.I. Cluster()。Regression A.I. Cluster関数は、入力データアレイをアルゴリズム入力データとして取得し、結果を結果アレイに配置する、Regression A.I. Clusterアルゴリズムを含まなければならない。一般に、結果の数ばかりでなく、入力アレイ及び出力アレイのデータタイプも、異なることができる。
postRegression A.I. ClusterOperations()。
【0141】
hooks()関数の形態を取る、動作又はフックセクションは、GPU Regression A.I. Clusterから獲得される関数として定義される。Regr
ession A.I. Clusterセクションとは対照的に、C/C++コード、unixODBCライブラリなどの外部ライブラリ、及び一般に関係があり得る他の任意のプログラミング・ツールが、hooks()関数内で使用されるべきである。
【0142】
非限定的な例として、
abstract class Regression A.I. Cluster{
/*
ユーザは、
1.Regression A.I. Clusterセクション(カーネル)関数
2.hooks()関数
を実施しなければならない
*/
//CUDA Regression A.I. Clusterメイン関数(カーネル)
global_kernel(Anni DNA or Context DNA buffer,OUTPUT TYPE results){
mining(...);
preRegression A.I. ClusterFiltering(...);
Regression A.I. Cluster(...);
postRegression A.I. ClusterOperations(...);

//Regression A.I. Cluster起動関数
launchRegression A.I. Cluster(Anni DNA or Context DNA buffer){
}}
//Regression A.I. Clusterセクション:GPU関数をコールする
kernel<<<gridSize,blockSize>>>(buffer,results);
//フックセクション
hooks(buffer,results);
上述の説明では、説明を目的として、方法は特定の順序で説明された。代替実施形態では、方法は、説明された順序とは異なる順序で実行することができることを理解されたい。上で説明された方法は、ハードウェアコンポーネントによって実行することができ、又は汎用もしくは専用プロセッサ(GPUもしくはCPU)もしくは命令を用いてプログラムされた論理回路(FPGAもしくはASIC)などの機械に方法を実行させるために使用することができる、1連の機械実行可能命令で具体化することができることも理解されたい。これらの機械実行可能命令は、CD−ROMもしくは他のタイプの光学ディスク、フロッピディスケット、ROM、RAM、EPROM、EEPROM、磁気もしくは光学カード、フラッシュメモリ、又は電子命令を記憶するのに適した他のタイプの機械可読媒体などの、1つ又は複数の機械可読媒体上に記憶することができる。代替として、方法は、ハードウェアとソフトウェアの組合せによって実行することができる。
【0143】
実施形態の完全な理解を提供するために、説明では具体的な詳細が与えられた。しかしながら、実施形態は、これらの具体的な詳細なしに実施することができることが当業者によって理解されよう。例えば、回路は、不必要な詳細の中で実施形態を曖昧にしないために、ブロック図で示すことができる。他の例では、よく知られた回路、工程、アルゴリズム、構造、及び技法は、実施形態を曖昧にすることを避けるために、不必要な詳細なしに
示すことができる。
【0144】
また、実施形態は、フローチャート、フロー図、データフロー図、構造図、又はブロック図として示される工程として説明されたことに留意されたい。フローチャートは、順次的な工程として動作を説明することができるが、動作の多くは、並列又は同時に実行することができる。加えて、動作の順序は、並べ替えることができる。工程は、動作が完了されたときに終了されるが、図に含まれない追加の工程を有することができる。工程は、メソッド、関数、プロシージャ、サブルーチン、サブプログラムなどに対応することができる。工程が関数に対応する場合、その終了は、呼び元関数又はメイン関数への関数の復帰に対応する。
【0145】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、又はそれらの任意の組合せによって実施することができる。ソフトウェア、ファームウェア、ミドルウェア、又はマイクロコードで実施される場合、必要なタスクを実行するプログラムコード又はコードセグメントは、記憶媒体などの機械可読媒体内に記憶することができる。プロセッサは、必要なタスクを実行することができる。コードセグメントは、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、又は命令、データ構造、もしくはプログラムステートメントの任意の組合せを表すことができる。コードセグメントは、情報、データ、引数、パラメータ、又はメモリ内容を渡すこと、及び/又は受け取ることによって、別のコードセグメント又はハードウェア回路に結合することができる。情報、引数、パラメータ、データなどは、メモリシェアリング、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む任意の適切な手段を介して渡し、転送し、又は送信することができる。
【0146】
本明細書で本発明の例示的な実施形態が詳細に説明されたが、本発明の概念は、別の方法で様々に具体化し、利用することができること、また添付の特許請求の範囲は、先行技術による限定を除いて、そのような変形を含むと解釈されることが意図されていることを理解されたい。
図1
図2
図3
図4
図5
図6
図7
図8
【国際調査報告】