(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-22
(54)【発明の名称】分散型テレメトリデータ分析によるマルウェア検出
(51)【国際特許分類】
G06F 21/56 20130101AFI20231115BHJP
G06F 21/53 20130101ALI20231115BHJP
G06N 3/09 20230101ALI20231115BHJP
G06N 3/098 20230101ALI20231115BHJP
【FI】
G06F21/56 360
G06F21/53
G06N3/09
G06N3/098
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023535644
(86)(22)【出願日】2021-09-27
(85)【翻訳文提出日】2023-06-12
(86)【国際出願番号】 CN2021120874
(87)【国際公開番号】W WO2022078196
(87)【国際公開日】2022-04-21
(32)【優先日】2020-10-13
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521555742
【氏名又は名称】キンドリル・インク
【氏名又は名称原語表記】Kyndryl Inc.
【住所又は居所原語表記】One Vanderbilt Avenue,15th Floor,New York,New York 10017,USA
(74)【代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】ウドゥピ ラガヴェンドラ,アルジュン
(72)【発明者】
【氏名】シャイデラー,ティム ウーヴェ
(72)【発明者】
【氏名】スル,マティアス
(72)【発明者】
【氏名】ジョバンニーニ,アンドレア
(57)【要約】
アンチマルウェアシステムの選択されたインスタンスによって悪意のあるプロセスを検出するための方法、コンピュータプログラム製品およびシステムが提供される。本方法は、1以上のプロセッサが、プロセスを、プロセスに対する侵害指標がないか検査することを含む。方法は、また、1以上のプロセッサが、検査の結果に基づいてプロセスの分類を決定することを含む。方法は、プロセスの分類が既知の善意のプロセスおよび既知の悪意のプロセスに対応しないと決定することに応答して、1以上のプロセッサが、プロセスをセキュアなエンクレーブ内で実行することをさらに含む。本方法は、1以上のプロセッサが、プロセスをセキュアなエンクレーブ内で実行することからテレメトリデータを収集することをさらに含む。方法は、1以上のプロセッサが、収集されたテレメトリデータを、ローカルで訓練されたニューラルネットワークシステムに渡すことをさらに含む。
【特許請求の範囲】
【請求項1】
1以上のプロセッサによって、プロセスを、前記プロセスに対する侵害指標がないか検査することと、
1以上のプロセッサによって、前記検査の結果に基づいて前記プロセスの分類を決定することと、
前記プロセスの前記分類が既知の善意のプロセスおよび既知の悪意のプロセスに対応しないと決定することに応答して、1以上のプロセッサによって、前記プロセスをセキュアなエンクレーブ内で実行することと、
1以上のプロセッサによって、前記プロセスを前記セキュアなエンクレーブ内で実行することからテレメトリデータを収集することと、
1以上のプロセッサによって、収集された前記テレメトリデータを、ローカルで訓練されたニューラルネットワークシステムに渡すことであって、前記ローカルで訓練されたニューラルネットワークシステムの訓練データは、前記ローカルで訓練されたニューラルネットワークシステムの基礎にあるホストシステム上で実行されるプロセスからのテレメトリデータを含む、渡すことと、
1以上のプロセッサによって、前記ローカルで訓練されたニューラルネットワークシステムについての第1の損失関数の結果を決定することと、
1以上のプロセッサによって、前記結果を、前記ローカルで訓練されたニューラルネットワークシステムの訓練の終了時の前記第1の損失関数の結果と比較することと
を含む、方法。
【請求項2】
1以上のプロセッサによって、収集された前記テレメトリデータを、連合訓練されたニューラルネットワークシステムに渡すことであって、前記連合訓練されたニューラルネットワークシステムは、連合訓練されたニューラルネットワークモデルを受信するよう適応される、渡すことと、
1以上のプロセッサによって、前記連合訓練されたニューラルネットワークシステムについての第2の損失関数の結果を決定することと、
1以上のプロセッサによって、前記結果を、前記連合訓練されたニューラルネットワークシステムの受信された前記連合訓練されたニューラルネットワークモデルの前記第2の損失関数の結果と比較することと、
1以上のプロセッサによって、前記第1の損失関数および前記第2の損失関数の結果を集約することと、
1以上のプロセッサによって、集約された前記結果に基づいて前記プロセスが異常であるか否かを決定することと
をさらに含む、請求項1に記載の方法。
【請求項3】
1以上のプロセッサによって、アンチマルウェアシステムの選択されたインスタンス上で実行されている悪意のないプロセスのテレメトリデータを収集することと、
1以上のプロセッサによって、収集された前記テレメトリデータを用いて、前記ローカルで訓練されたニューラルネットワークシステムを再訓練して、更新されたローカルニューラルネットワークモデルを定期的に構築することと
をさらに含む、請求項1に記載の方法。
【請求項4】
1以上のプロセッサによって、前記連合訓練されたニューラルネットワークシステムのための更新された連合訓練されたニューラルネットワークモデルを受信することをさらに含み、前記連合訓練されたニューラルネットワークモデルは、入力として、選択された複数のインスタンスのローカルで訓練されたニューラルネットワークシステムを使用して構築される、請求項2に記載の方法。
【請求項5】
前記ローカルで訓練されたニューラルネットワークシステムおよび前記連合訓練されたニューラルネットワークシステムのうちの少なくとも1つは、オートエンコーダシステムである、請求項2に記載の方法。
【請求項6】
前記プロセスの前記分類が異常なプロセスに対応すると決定したことに応答して、1以上のプロセッサによって、前記プロセスを破棄することをさらに含む、請求項1に記載の方法。
【請求項7】
前記プロセスが通常のプロセスであると決定することに応答して、前記セキュアなエンクレーブにおける実行に基づいて、1以上のプロセッサによって、前記プロセスを前記セキュアなエンクレーブ外に移動することと、
1以上のプロセッサによって、前記プロセスを通常のプロセスとして実行することと
をさらに含む、請求項1に記載の方法。
【請求項8】
前記連合訓練されたニューラルネットワークシステムは、複数のホストからのテレメトリデータを用いて訓練される、請求項2に記載の方法。
【請求項9】
前記連合訓練されたニューラルネットワークシステムを訓練することは、
1以上のプロセッサによって、複数の受信されたローカルで訓練されたニューラルネットワークモデルの各々によって、代表的なテレメトリデータのセットを処理し、それぞれの結果を格納することと、
1以上のプロセッサによって、前記連合訓練されたニューラルネットワークモデルの訓練のための入力データとして、テレメトリデータの処理の間に使用され、また生成されたテレメトリデータの入力/出力のペアを使用して、前記連合訓練されたニューラルネットワークモデルを訓練することと
をさらに含む、請求項8に記載の方法。
【請求項10】
前記連合訓練されたニューラルネットワークモデルの訓練に使用される前記テレメトリデータの入力/出力のペアは、ローカルで受信された前記ニューラルネットワークモデルの地理的ホスト位置と、新しい連合訓練されたニューラルネットワークモデルが訓練される地理的ホスト位置との間の地理的近接性に応じて重み付けされ、
前記連合訓練されたニューラルネットワークモデルの訓練に使用される前記テレメトリデータの入力/出力のペアは、事前定義されたメトリックに依存して重み付けされる、請求項9に記載の方法。
【請求項11】
前記第1の損失関数および前記第2の損失関数の結果を集約することは、
1以上のプロセッサによって、前記第1の損失関数と前記第2の損失関数との加重平均を構築すること
をさらに含む、請求項2に記載の方法。
【請求項12】
決定された前記分類は、既知の善意のプロセス、既知の悪意のプロセスおよび未知のプロセスからなる群から選択される、請求項1に記載の方法。
【請求項13】
コンピュータシステムであって、
1以上のコンピュータプロセッサと、
1以上のコンピュータ可読記憶媒体と、
1以上のプロセッサのうちの少なくとも1つによって実行するためにコンピュータ可読記憶媒体に格納されたプログラム命令と
を含み、前記プログラム命令は、
プロセスを、前記プロセスに対する侵害指標がないか検査するためのプログラム命令と、
前記検査の結果に基づいて前記プロセスの分類を決定するためのプログラム命令と、
前記プロセスの前記分類が既知の善意のプロセスおよび既知の悪意のプロセスに対応しないと決定することに応答して、前記プロセスをセキュアなエンクレーブ内で実行するためのプログラム命令と、
前記プロセスを前記セキュアなエンクレーブ内で実行することからテレメトリデータを収集するためのプログラム命令と、
収集された前記テレメトリデータを、ローカルで訓練されたニューラルネットワークシステムに渡すためのプログラム命令であって、前記ローカルで訓練されたニューラルネットワークシステムの訓練データは、前記ローカルで訓練されたニューラルネットワークシステムの基礎にあるホストシステム上で実行されるプロセスからのテレメトリデータを含む、プログラム命令と、
前記ローカルで訓練されたニューラルネットワークシステムについての第1の損失関数の結果を決定するためのプログラム命令と、
前記結果を、前記ローカルで訓練されたニューラルネットワークシステムの訓練の終了時の前記第1の損失関数の結果と比較するためのプログラム命令と
を含む、コンピュータシステム。
【請求項14】
収集された前記テレメトリデータを、連合訓練されたニューラルネットワークシステムに渡すことであって、前記連合訓練されたニューラルネットワークシステムは、連合訓練されたニューラルネットワークモデルを受信するよう適応される、渡すことと、
前記連合訓練されたニューラルネットワークシステムについての第2の損失関数の結果を決定することと、
前記結果を、前記連合訓練されたニューラルネットワークシステムの受信された前記連合訓練されたニューラルネットワークモデルの前記第2の損失関数の結果と比較することと、
前記第1の損失関数および前記第2の損失関数の結果を集約することと、
集約された前記結果に基づいて前記プロセスが異常であるか否かを決定することと
を行うように前記1以上のプロセッサのうちの少なくとも1つによって実行するために前記コンピュータ可読記憶媒体に格納されたプログラム命令をさらに含む、請求項13に記載のコンピュータシステム。
【請求項15】
アンチマルウェアシステムの選択されたインスタンス上で実行されている悪意のないプロセスのテレメトリデータを収集することと、
収集された前記テレメトリデータを用いて、前記ローカルで訓練されたニューラルネットワークシステムを再訓練して、更新されたローカルニューラルネットワークモデルを定期的に構築することと
を行うように前記1以上のプロセッサのうちの少なくとも1つによって実行するためにコンピュータ可読記憶媒体に格納されたプログラム命令をさらに含む、請求項13に記載のコンピュータシステム。
【請求項16】
前記プロセスの前記分類が異常なプロセスに対応すると決定したことに応答して、前記プロセスを破棄するように前記1以上のプロセッサのうちの少なくとも1つによって実行するためにコンピュータ可読記憶媒体に格納されたプログラム命令をさらに含む、請求項13に記載のコンピュータシステム。
【請求項17】
前記プロセスが通常のプロセスであると決定することに応答して、前記セキュアなエンクレーブにおける実行に基づいて、前記プロセスを前記セキュアなエンクレーブ外に移動することと、
前記プロセスを通常のプロセスとして実行することと
を行うように、前記1以上のプロセッサのうちの少なくとも1つによって実行するためにコンピュータ可読記憶媒体に格納されたプログラム命令をさらに含む、請求項13に記載のコンピュータシステム。
【請求項18】
前記連合訓練されたニューラルネットワークシステムは、複数のホストからのテレメトリデータを用いて訓練される、請求項14に記載のコンピュータシステム。
【請求項19】
コンピュータプログラム製品であって、
1以上のコンピュータ可読記憶媒体と、前記1以上のコンピュータ可読記憶媒体に格納されたプログラム命令とを含み、前記プログラム命令は、
プロセスを、前記プロセスに対する侵害指標がないか検査するためのプログラム命令と、
前記検査の結果に基づいて前記プロセスの分類を決定するためのプログラム命令と、
前記プロセスの前記分類が既知の善意のプロセスおよび既知の悪意のプロセスに対応しないと決定することに応答して、前記プロセスをセキュアなエンクレーブ内で実行するためのプログラム命令と、
前記プロセスを前記セキュアなエンクレーブ内で実行することからテレメトリデータを収集するためのプログラム命令と、
収集された前記テレメトリデータを、ローカルで訓練されたニューラルネットワークシステムに渡すためのプログラム命令であって、前記ローカルで訓練されたニューラルネットワークシステムの訓練データは、前記ローカルで訓練されたニューラルネットワークシステムの基礎にあるホストシステム上で実行されるプロセスからのテレメトリデータを含む、プログラム命令と、
前記ローカルで訓練されたニューラルネットワークシステムについての第1の損失関数の結果を決定するためのプログラム命令と、
前記結果を、前記ローカルで訓練されたニューラルネットワークシステムの訓練の終了時の前記第1の損失関数の結果と比較するためのプログラム命令と
を含む、コンピュータプログラム製品。
【請求項20】
収集された前記テレメトリデータを、連合訓練されたニューラルネットワークシステムに渡すことであって、前記連合訓練されたニューラルネットワークシステムは、連合訓練されたニューラルネットワークモデルを受信するよう適応される、渡すことと、
前記連合訓練されたニューラルネットワークシステムについての第2の損失関数の結果を決定することと、
前記結果を、前記連合訓練されたニューラルネットワークシステムの受信された前記連合訓練されたニューラルネットワークモデルの前記第2の損失関数の結果と比較することと、
前記第1の損失関数および前記第2の損失関数の結果を集約することと、
集約された前記結果に基づいて前記プロセスが異常であるか否かを決定することと
を行うようにするための前記コンピュータ可読記憶媒体に格納されたプログラム命令をさらに含む、請求項19に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、マルウェア検出の分野に関し、より詳細には、アンチマルウェアシステムの選択されたインスタンスにより悪意のあるプロセスを検出することに関する。
【背景技術】
【0002】
長年の間、サイバーセキュリティ攻撃は、引き続き、政府機関および情報技術(IT)組織および企業の最優先事項である。最高情報セキュリティ責任者(CISO)の役割は、任意のIT組織において既知のものである。市場で利用可能なセキュリティ情報およびイベント監視(SIEM)ソリューションの大部分は、組織の少なくとも一部におけるセキュリティインシデントにつながる可能性がある潜在的なセキュリティ脅威を識別して検出するために、高度に訓練された人材により監視および調整される複雑な相関ルールのセットを必要とする。一般データセキュリティ規則(general and data security regulation,GDPR)によれば、欧州連合内で営業する企業は、企業が顧客および/または従業員のデータを保護することに失敗した場合、高額の手数料を課される可能性がある。しかしながら、企業データを保護することは、欧州に基盤を置く企業および政府機関だけのためのトピックだけでなく、世界中のデータを取り扱うすべての事業者のためのものである。
【0003】
典型的には、マルウェアは、ネットワーク接続またはローカルに取り付けられた記憶媒体を介して受信される可能性があり、何らかのイベントによって活性化される可能性がある。例えば、プログラムは、コンピューティング環境において(つまり、オペレーティングシステムのプロセスとして)起動される。そのような潜在的に許容されないプロセスを制御するための1つの方法は、サンドボックス化として知られており、サンドボックス化においては、未知のプロセスは、保護された環境(つまり、残りのプロセス、オペレーティングシステムおよびデータに感染させない処理環境)において実行され、潜在的には、基礎となるコンピューティングシステムに危害を与えることなく除去される。しばしば、マルウェアサンドボックス化よび未知のファイル/プロセスの実行が、集中型されたサンドボックスとして、一般的には仮想アプライアンスにおいて実装され、ここでは、未知のファイルおよびプロセスの挙動を理解するために、また未知のマルウェアに関連する侵害指標(Indicator of Compromise,IoC)を収集し、マルウェアの挙動をさらに分析するために、未知のファイルおよびコードが実行される。
【0004】
このような中央実装は、また、並列的な未知ファイルのセキュアエンクレーブ実行が、より強力なCPU、より大きなメモリ、また、潜在的にはより大きなストレージを必要とする可能性があり、中央マルウェアサンドボックス化は、未知ファイル実行のテストのためのボトルネックとなり得るため、問題が生じる可能性がある。また、並列なセキュアエンクレーブ実行のためのシステムリソースの量が比例を超えて成長する可能性があるため、中央実装は、集中型サンドボックスのサイズおよび能力を制限する可能性がある。
【0005】
加えて、先進的なマルウェアは、集中型サンドボックスの実行も検出する可能性があり、マルウェアの挙動を正当なプロセスとして偽装する可能性がある。したがって、マルウェア解析および未知ファイル/プロセスのための集中型サンドボックスシステムの開発において、ボトルネックの高いリスクがあり、集中型サンドボックスシステムによって実行されるセキュアエンクレーブ実行の数に対する引き換えとして必要とされる利用可能なシステムリソースの量がごくわずかである可能性がある。
【0006】
文献US2019/0319977A1は、テレメトリを使用してアプリケーション挙動を指紋取りする(fingerprinting)および分類するための装置、システムおよび方法を開示する。例示の装置は、プロセッサトレース内のイベントを処理してアプリケーション実行挙動をキャプチャするトレースプロセッサと、キャプチャされたアプリケーション実行挙動および性能監視情報から第1の指紋(fingerprint)を抽出する指紋抽出部とを含む。
【0007】
加えて、文献US10,148,686B2は、物理プロセスセンサからのテレメトリデータを分析して、物理プロセス内にある数を検出するためのシステム、方法およびコンピュータプログラムを開示する。テレメトリ分析システムは、他のシステムログまたはネットワークパケット検査を介しては検出できないゼロデイエクスプロイトに対してサイバー物理システムデバイスを保護する、動作的なテレメトリクスおよびドメイン固有の知識に基づくプロセスレベルの異常検出システムとして開示されている。
【0008】
集中型サンドボックス化を用いる問題は、しかしながら、集中型サンドボックス化がホストシステムの過剰なリソースを必要とする可能性があることである。ゆえに、このボトルネックを克服することが求められており、(i)従来型のマルウェア検出システムによっては検出できない可能性がある、ホスト上の悪意のあるプロセスを識別し、(ii)集中型サンドボックス化のアプローチよりも有意に少ないリソースを必要とする方法を提供することが求められている。
【発明の概要】
【0009】
本発明の側面は、アンチマルウェアシステムの選択されたインスタンスによる悪意のあるプロセスを検出するための方法、コンピュータプログラム製品およびシステムを開示する。本方法は、1以上のプロセッサが、プロセスを、プロセスに対する侵害指標がないか検査することを含む。方法は、さらに、1以上のプロセッサが、検査の結果に基づいてプロセスの分類を決定することを含む。プロセスの分類が既知の善意のプロセスおよび既知の悪意のプロセスに対応しないと決定することに応答して、方法は、さらに、1以上のプロセッサが、プロセスをセキュアなエンクレーブ内で実行することを含む。方法は、さらに、1以上のプロセッサが、プロセスをセキュアなエンクレーブ内で実行することからテレメトリデータを収集することを含む。方法は、さらに、1以上のプロセッサが、収集されたテレメトリデータを、ローカルで訓練されたニューラルネットワークシステムに渡すことを含む。ローカルで訓練されたニューラルネットワークシステムの訓練データは、ローカルで訓練されたニューラルネットワークシステムの基礎にあるホストシステム上で実行されるプロセスからのテレメトリデータを含む。方法は、さらに、1以上のプロセッサが、ローカルで訓練されたニューラルネットワークシステムについての第1の損失関数の結果を決定することを含む。方法は、さらに、1以上のプロセッサが、結果を、ローカルで訓練されたニューラルネットワークシステムの訓練の終了時の前記損失関数の結果と比較することを含む。
【0010】
さらなる側面では、本方法は、1以上のプロセッサが、収集されたテレメトリデータを、連合訓練されたニューラルネットワークシステムに渡すことを含む。連合訓練されたニューラルネットワークシステムは、連合訓練されたニューラルネットワークモデルを受信するよう適応される。方法は、さらに、1以上のプロセッサが、連合訓練されたニューラルネットワークシステムについての第2の損失関数の結果を決定することを含む。方法は、さらに、1以上のプロセッサが、結果を、連合訓練されたニューラルネットワークシステムの受信された連合訓練されたニューラルネットワークモデルの第2の損失関数の結果と比較することを含む。方法は、さらに、1以上のプロセッサが、第1の損失関数および第2の損失関数の結果を集約することを含む。方法は、1以上のプロセッサが、集約された結果に基づいてプロセスが異常であるか否かを決定することをさらに含む。
【0011】
アンチマルウェアシステムの選択されたインスタンスによる悪意のあるプロセスを検出するための提案された方法は、複数の利点、技術的効果、貢献および/または改善を提供することができる。
【0012】
第1に、悪意のあるプロセスを検出するための単一の集中型のアプローチが回避され得る。よって、悪意のあるプロセスを検出するために必要なシステムリソースは、従来のアプローチと比較した場合に有意に削減され得る。ひいては、特定のホスト上で高感度の侵入検出システムを実装するために必要なCPU(Central Processing Unit)能力、メモリおよびストレージの量が削減され得る。
【0013】
従来の侵害指標の検出に加えてテレメトリデータの使用は、テレメトリデータの異なる成分に異なる重みを割り当てて個々の環境に調整されてもよい。加えて、テレメトリデータは、静的な成分と、動的な構成要素とを有してもよく、これは、プロセステレメトリデータを導出するための新しい方法およびコンピューティング環境が利用可能となる場合、迅速に拡張されてもよい。プロセス内の潜在的に悪意のあるパターンを検出するためのオートエンコーダを使用する基礎にあるプロセスは、変化しないままであってもよい。
【0014】
別個の訓練されたニューラルネットワークモデルを使用するローカル訓練されたまたは連合訓練されたニューラルネットワークシステムの定期的な再訓練のオプションは、新たま利用可能なテレメトリデータのパターンへの迅速な適応を可能とすることができる。
【0015】
加えて、ローカルで訓練されたニューラルネットワークシステムおよび関連するニューラルネットワークモデルの個々のインスタンスのそれぞれの統合された「経験」を使用した、連合訓練されたニューラルネットワークモデルの形態の、マルウェア検出システムの選択された複数のインスタンスの組み合わせられた知識は、2つの目標を達成することができる。第1に、複数のホストシステムのプロセスパラメータ(つまり、テレメトリデータ)の分析を、限られた時間内に処理するには多すぎるデータによって中央インスタンスが過負荷とならないように、分散された態様で実行することができる。第2に、異なる処理環境(つまり、プロセッサタイプ、使用可能なメモリ量およびストレージワークロード量およびワークロードタイプなど)からのテレメトリデータを連合ニューラルネットワークモデルの訓練のために考慮することができる。一旦配備され、また、定期的に更新されると、連合訓練されたニューラルネットワークモデルは、連合訓練されたニューラルネットワークシステムで使用されるべくマルウェア検出システムの選択された複数のインスタンスに再度配信されてもよい。
【0016】
したがって、本発明のこのような側面は、中央インスタンスに過負荷を与えずにかつローカルインスタンスから分析データを捕捉することなく中央インスタンスと組み合わせて異なるホストのリソースが使用することができるため、ここで提案された方法および関連するシステムを、適用可能であり、比較的に容易に実装可能であり、拡張可能であり、および柔軟なものとすることができる。しかしながら、また、他方では、ローカルインスタンスは、中央インスタンス(つまり、連合ニューラルネットワークモデルのための訓練環境)に完全に依存はしないが、対応するコンピューティング環境を悪意のあるプロセスに対して防御するためのローカルで訓練されたニューラルネットワークシステムおよび連合訓練されたニューラルネットワークシステムの形態で利用可能なローカルリソースを有する。したがって、「中央サイバー攻撃防御インテリジェンス」およびローカル保護システムは、強力かつ特有の方法で組み合わせられ得る。
【0017】
加えて、本発明の側面は、集中型サンドボックス実行を検出でき、また、マルウェアの挙動を正規のプロセス挙動に偽装できる先進的なマルウェアを検出し、除去するように動作することができる。したがって、この目標は、マルウェア検出システムの連合されたバックボーンの選択されたインスタンスの限られたリソースを用いて達成され得る。
【0018】
以下では、方法に適用可能で、また関連するコンピュータシステムおよびコンピュータプログラム製品にも適用可能な、本発明の概念の追加の実施形態が説明される。
【0019】
別の側面では、本方法は、さらに、1以上のプロセッサがアンチマルウェアシステムの選択されたインスタンス上で実行されている悪意のないプロセスのテレメトリデータを収集することを含む。方法は、1以上のプロセッサが、収集されたテレメトリデータを用いて、ローカルで訓練されたニューラルネットワークシステムを再訓練して、更新されたローカルニューラルネットワークモデルを定期的に構築することを含む。これにより、悪意のないプロセスは、オペレーティングシステムの制御の下、ホスト上で定期的に実行されるプロセスである。悪意のないプロセスは、オペレーティングシステムプロセスまたはアプリケーションプログラムのプロセスであってもよい。典型的なホストシステム上では、数百、数千のこのようなプロセスが毎秒並列に実行される可能性がある。テレメトリデータの収集は、システム管理ツールによってサポートされてもよい。あるいは、データは、コンピュータセキュリティフレームワークのコンポーネントを使用して単独で収集されてもよい。悪意のないプロセス(つまり、通常プロセス)の対応する生成されたテレメトリデータは、ローカルニューラルネットワークシステムのローカルニューラルネットワークモデルを再訓練するために(例えば、定期的に、またはトリガイベントに基づいて)所定の時点で使用されてもよい。したがって、ワークロードの変化および時間とともに変化する可能性があるテレメトリデータプロファイルは、ローカルニューラルネットワークモデルの挙動に反映される可能性がある。
【0020】
加えて、方法は、1以上のプロセッサが、連合訓練されたニューラルネットワークシステムのための更新された連合ニューラルネットワークモデルを受信することをさらに含む。連合ニューラルネットワークモデルは、入力として、選択された複数のインスタンスのローカルで訓練されたニューラルネットワークシステムを使用して構築される。これにより、連合ニューラルネットワークモデルは、選択された複数のインスタンスのローカルで訓練されたニューラルネットワークモデルを入力として構築され得る。したがって、種々のプロファイルのマルウェア攻撃の対象となる可能性がある、複数のホストおよびそれらの関連するマルウェアの検出方法およびシステムの集合的、協同的な「知識」は、種々のタイプのサイバー攻撃に対するグループ全体の「免疫」の基礎となる可能性がある。
【0021】
さらに、ローカルで訓練されたニューラルネットワークシステムおよび連合訓練されたニューラルネットワークシステムのうちの少なくとも1つは、オートエンコーダシステムである。オートエンコーダは、提案された概念をサポートするために特によく備えられる。それぞれのニューラルネットワークの入力層の人工ニューロン(またはノード)の数が、出力層の人工ニューロンの数と等しいので、本発明の側面は、入力層および出力層の間の差分に基づく損失関数の結果を適用し、かつ最小化するように動作することができる。しかしながら、ニューラルネットワークに対する入力値が、使用される訓練テレメトリデータに比較できるほどに近づく場合、最小値に到達する可能性があり、あるいは、損失関数の結果が最小値の範囲内にある可能性がある。他のテレメトリデータが、それぞれのニューラルネットワークの入力層に適用され得る訓練テレメトリデータの範囲外にある場合、損失関数は、所定の閾値よりも大きい値を示す可能性があり、潜在的に悪意のあるプロセスが存在することを示唆する。
【0022】
別の側面においては、プロセスの分類が異常なプロセスに対応すると決定したことに応答して、1以上のプロセッサが、プロセスを破棄することをさらに含む。したがって、潜在的なマルウェアプログラムコードに基づくプロセスは、セキュアエンクレーブおよび潜在的には実際に他のものを離れ、あるいは、ホストコンピューティングシステムのデータを許容できないやり方で処理または操作できない可能性がある(Accordingly, processes based on potential malware program code may not leave the secure enclave and potentially in fact other processes or manipulate data of the host computing system in an unallowable manner)。
【0023】
別の側面においては、プロセスが通常のプロセスであると決定することに応答して、セキュアなエンクレーブにおける実行に基づいて、方法は、1以上のプロセッサが、プロセスをセキュアなエンクレーブ外に移動することさらに含む。方法は、1以上のプロセッサが、プロセスを通常のプロセスとして実行することを含む。したがって、プロセスは、オペレーティングシステムによって制御される正常なプロセスとして実行されてもよく、潜在的には、正常なプロセスの追加のテレメトリデータの生成の基礎となる。
【0024】
追加の側面においては、連合訓練されたニューラルネットワークシステムは、複数のホストからのテレメトリデータを用いて訓練される。例えば、本方法は、クラウドコンピューティングシステム上で動作するような集中型システムへ(例えば、対応するパラメータおよびハイパーパラメータの形態で)ローカルで訓練されたニューラルネットワークモデルを(例えばそれぞれのローカルホストから)送信するように動作してもよい。
【0025】
さらに、連合訓練されたニューラルネットワークシステムを訓練することは、1以上のプロセッサが、複数の受信されたローカルで訓練されたニューラルネットワークモデルの各々によって、代表のテレメトリデータのセットを処理し、それぞれの結果を格納することと、1以上のプロセッサが、連合ニューラルネットワークモデルの訓練のための入力データとして、テレメトリデータの処理の間に使用され、また生成されたテレメトリデータの入力/出力のペアを使用して、連合ニューラルネットワークモデルを訓練することとをさらに含む。連合ニューラルネットワークモデルの訓練に使用されるテレメトリデータの入力/出力のペアは、ローカルで受信されたニューラルネットワークモデルの地理的ホスト位置と、新しい連合ニューラルネットワークモデルが訓練される地理的ホスト位置との間の地理的近接性に応じて重み付けされる。連合ニューラルネットワークモデルの訓練に使用されるテレメトリデータの入力/出力のペアは、事前定義されたメトリックに依存して重み付けされる。
【0026】
これにより、個々のホストシステムおよび対応する連合訓練されたニューラルネットワークモデルのローカルの詳細が反映され得る。本発明の実施形態は、あるプロファイルのサイバー攻撃が特定の地理的領域を対象とすることが多いことを認識する。提案された概念は、このような特殊性がマルウェア検出システムにより良好に反映させることを可能にし、これは、ある種のサイバー攻撃に対する感受性を増加させ、システムリソースを有利に節約することができる。したがって、異なるホスト上の個々の連合訓練されたニューラルネットワークモデルは、そのような実施形態において異なってもよい。
【0027】
例示の実施形態においては、10個のインスタンスが、それぞれ、対応するローカルニューラルネットワークモデルをマルウェア検出システムの中央サービスに送信してもよい。それぞれの地理的位置は、既知であってもよい。次いで、例えば、インスタンス3の連合ニューラルネットワークモデルの訓練のためのプロセスは、(i)インスタンス3と他のすべての9個のインスタンスとの間の距離情報を評価し、(ii)受信されたローカルで訓練されたニューラルネットワークモデルによって、それぞれの代表的なテレメトリデータのセットを処理し、それぞれの結果を(上述したように)格納し、(iii)、ステップ(i)の下で決定された距離に反比例した入力/出力ペアの使用を繰り返すことを含であろう。
【0028】
追加の例示的な側面においては、インスタンス3に地理的に非常に近いインスタンス5からのペアを考慮する場合、ペアは、訓練の間に10回(所定の回数)繰り返されてもよく(つまり、ネットワークにバイアスを与える)、代わりに、例えば、10倍離れたインスタンス7からのペアを考慮する場合、値ペアは、訓練データ内に1回だけ出現するであろう。
【0029】
この方法の別の実施形態によれば、連合ニューラルネットワークモデルの訓練に使用されるテレメトリデータの入力/出力ペアは、事前定義されたメトリックに依存して重み付けされてもよい。重み付けは、潜在的なサイバー攻撃に関連して地理的位置およびその詳細だけでなく、ローカルホストの他のプロファイルも反映させることを可能にし得る。例えば、ある垂直的な業界、特定の部門、ホストコンピュータのタイプ(例えば、中央システム企業コンピューティングシステム対インターネットオブシングス(IoT)システムまたは個人デバイス)内の使用。さらに、重み付けは、マルウェアに対するより調整可能なパラメータに依存して、潜在的に悪意のあるプロセスを結果として生じるマルウェアに対する改善された保護を可能にすることができる。
【0030】
方法の別の実施形態によれば、損失関数の結果を集約することは、損失関数の加重平均を構築することを含んでもよく、損失関数の加重平均は、連合訓練されたニューラルネットワークモデル(例えば、中央オートエンコーダ)対ローカルで訓練されたニューラルネットワークモデル(例えば、ローカルオートエンコーダ)によって見られるデータの量に従って、それぞれの重み係数の値が調整され得ることを反映する可能性がある。したがって、「より経験の高い」オートエンコーダは、「より大きな影響」を有する可能性がある。
【0031】
別の側面においては、第1の損失関数および第2の損失関数の結果を集約する方法は、1以上のプロセッサが、第1の損失関数と第2の損失関数との加重平均を構築することをさらに含む。別の側面においては、決定された分類は、既知の善意のプロセス、既知の悪意のプロセスおよび未知のプロセスからなる群から選択される。
【0032】
さらに、実施形態は、コンピュータまたは任意の命令実行システムによって、または、それに関係して使用するためのプログラムコードを提供する、コンピュータ使用可能またはコンピュータ可読媒体からアクセス可能な、関連するコンピュータプログラム製品の形態をとってもよい。本明細書の目的のために、コンピュータ使用可能またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによって、または、関連して使用するために、プログラムを格納し、通信し、伝播し、または輸送するための手段を包含することができる任意の装置であってもよい。
【0033】
上記で定義された側面および本発明のさらなる側面が、以下説明される実施形態の例から明らかであり、また、実施形態の例を参照しながら説明されるが、本発明は、これに限定されるものではない。本発明の好ましい実施形態について、一例としてのみ、以下の図面を参照して説明する。
【図面の簡単な説明】
【0034】
【
図1】
図1は、本発明の実施形態による、アンチマルウェアシステムの選択されたインスタンスによる悪意のあるプロセスを検出するための方法の実施形態のブロック図を示す。
【
図2】
図2は、本発明の実施形態による、異常ではないプロセスのテレメトリ測定データの例を示す。
【
図3】
図3は、本発明の実施形態による、オートエンコーダニューラルネットワークの例示的な構造を示す。
【
図4】
図4は、本発明の実施形態による、提案された概念のより詳細な例示的フローチャートの第1の部分を示す。
【
図5】
図5は、本発明の実施形態による、提案された概念のより詳細な例示的フローチャートの第2の部分を示す。
【
図6】
図6は、本発明の実施形態による、本明細書で提案された概念および対応する依存関係のコンポーネントの実施形態のブロック図を示す。
【
図7】
図7は、本発明の実施形態による、検査されるべき所与のプロセスに対しテレメトリおよびメタデータを生成するためのプロセスを示す実施形態のブロック図を示す。
【
図8】
図8は、本発明の実施形態による、訓練されたニューラルネットワークモジュールのユーザを含む、異常検出のための部分的なプロセスを示す実施形態のブロック図を示す。
【
図9】
図9は、本発明の実施形態による、提案されたマルウェア検出システムの実施形態のブロック図を示す。
【
図10】
図10は、本発明の実施形態による、
図9に従う提案されたマルウェア検出システムを含むコンピューティングシステムの実施形態のブロック図を示す。
【発明を実施するための形態】
【0035】
以下、図面の詳細な説明が与えられるであろう。図中のすべての指示は概略的である。第1に、アンチマルウェアシステムの選択されたインスタンスによる悪意のあるプロセスを検出するための本発明の方法の実施形態のブロック図が与えられる。その後、さらなる実施形態、ならびに、アンチマルウェアシステムの選択されたインスタンスによる悪意のあるプロセスを検出するためのマルウェア検出システムの実施形態が説明されるであろう。
【0036】
本発明の実施形態は、種々の主題を参照しながら説明されることに留意すべきである。特に、いくつかの実施形態は、方法タイプの請求項を参照して説明され、他の実施形態は、装置タイプの請求項を参照して説明される。しかしながら、当業者であれば、上記および以下の説明から、特に断らない限り、1つのタイプの主題に属する特徴の任意の組み合わせに加えて、異なる主題に関する特徴、特に、方法タイプの請求項の特徴と、装置タイプの請求項の特徴との間の任意の組み合わせも、この文書内で開示されるもの見なされることがわかるであろう。
【0037】
本明細書の文脈では、以下の慣例、用語および/または表現が使用される可能性がある。
【0038】
用語「悪意のあるプロセス(malicious process)」は、コンピューティングシステムおよびオペレーティングシステムの動作完全性およびコンピュータシステムの正常なアプリケーションを危殆化する、コンピューティングシステム上の任意のコンピュータコードに関連したアクティビティを示し、また関連する可能性がある。悪意のあるプロセスは、ホストシステム(つまり、コンピューティングシステム)上で受信されたデータ/コンピュータコードに基づく可能性がある。よって、異常または非通常(non-regular)のプロセス(つまり、オペレーティングシステムの制御の下で実行される故意のプロセス)は、悪意のあるプロセスとして分類される可能性がある。悪意のあるプロセスは、コンピューティングシステム上のデータを変更する可能性があり、コンピューティングシステム上のデータを観察しまたはひそかに探り出す可能性があり、コンピュータシステムの任意の機能を意図しないやり方で変更する可能性がある。
【0039】
用語「選択されたインスタンス(selected instance)」は、アンチマルウェアシステムの一部であるコンピューティングシステムまたはホストを示す可能性がある。選択されたインスタンスは、ローカルホストとも参照される可能性がある。
【0040】
用語「アンチマルウェアシステム(anti-malware system)」は、サイバー攻撃に対するより良好な保護のためにローカルインスタンスの機能をサポートする中央インスタンスと協働して作動する、複数の選択されたインスタンスを示す可能性がある。
【0041】
用語「侵害指標(indicators of compromise,略して、IoC)」は、コンピュータフォレンジックスにおける良く知られた概念を示す可能性があり、ネットワーク上で観測される、またはオペレーティングシステム内で観測される、高い信頼度でコンピュータ侵入を示す可能性があるアーチファクトを表す可能性がある。侵害指標の種類は、ウイルスシグネチャ、既知の疑わしいインターネットプロトコル(IP)アドレス、マルウェアファイルのMD5ハッシュ値、ボットネットコマンドおよび制御サーバのドメイン名の統一リソースロケータ(URL)などを含んでもよい。インシデント対応および/またはコンピュータフォレンジックスのプロセスを介してIoCを識別した後、本発明の実施形態は、侵入検出システムおよび/またはアンチウィルスソフトウェアを使用して、将来の攻撃を早期に検出するためにIoCを利用することができる。
【0042】
用語「既知の有益なプロセス(known benevolent process)」は、悪意のあるプロセスとは対照的に、如何なる方法でもオペレーティングシステムに対して損害を与えない、高い信頼性を有するオペレーティングシステムにおけるプロセスを示す。例えば、既知の善意のプロセスは、オペレーティングシステムまたは関連するアプリケーションソフトウェアプログラムの一部としてオペレーティングシステムによって目的をもって開始することができる。既知の善意のプロセスは、また、セキュアなソースからネットワークを介して受信されたプログラムコードに関連してもよい。
【0043】
用語「既知の悪意のプロセス(known malicious process)」は、高い信頼度でオペレーティングシステムまたはその基礎となるコンピューティングシステムを危殆化する、オペレーティングシステムにおけるプロセスを示す可能性がある。種々の側面においては、IoCを使用して既知の悪意のプロセスが識別されてもよい。
【0044】
「未知のプロセス(unknown process)」という用語は、悪意のあるプロセスとしてまたは通常/セキュアなプロセスとして分類されない、オペレーティングシステムにおけるプロセスを示す可能性がある。
【0045】
用語「セキュアなエンクレーブ(secure enclave)」は、コンピューティングシステムおよび/またはそれぞれのオペレーティングシステムおよびそのアプリケーションの通常の動作環境を保護することができる、セキュアなサンドボックスコンピューティング環境を示す可能性がある。
【0046】
用語「テレメトリデータ(telemetry data)」は、実行しているプロセスの特性で生じるデータ(character arising data of an executing process)の少なくとも2つのクラス、(a)静的テレメトリデータおよび(b)動的テレメトリデータを示す可能性がある。静的テレメトリデータは、アドレス指定されたプロセスに関するデータ(つまり、未だ実行されていないプロセスを定義するプログラムコード)に関する。静的テレメトリデータは、少なくとも(i)ファイルを指紋取りする(fingerprint)ための実行形式ファイルの決定されたファイルハッシュ値と、(ii)実行形式ファイルからのストリング分析のためのストリング抽出と、(iii)実行形式ファイルのレイアウト抽出と、(iv)実行可能ファイルのコードおよびコード構造の自動逆アセンブルとを含み得る。対照的に、動的テレメトリデータは、観測され、実行しているプロセスのデータである可能性がある。動的テレメトリデータは、少なくとも、(i)システム監視データ、(ii)レジストリアクティビティデータ、(iii)ファイル(つまり、ファイルアクセス)アクティビティデータ、(iv)プロセスアクティビティデータ、および(v)ネットワークアクティビティデータを含んでもよい。したがって、動的テレメトリデータは、プロセスの寿命にわたって変化する可能性があり、特性プロファイルを示し得る。
【0047】
これにより、しばしば知られている技術が使用される。例えば、以下を挙げることができる。ストリング抽出(string extraction)は、IPアドレス、ドメイン、関数、データ、またはマルウェア開発者によって除去されていない任意の他の情報などの有用な情報を簡便に抽出するための最初にすることの1つである。これにより、ストリングは、文字のシーケンスであり、定数であってもよいし、変数であってもよい。ストリングは、データのタイプであり、要素のシーケンスを格納するバイト(またはワード)データ構造として実装されてもよい。ストリングスは、コンピュータプログラミングに固有であり、基本的には、ソフトウェアを作成するために使用され、リバースエンジニアリングにおいて機能性に関する手がかりを獲得するために使用される価値のあるデータである。レイアウトの抽出は、コード、アプリケーションのタイプ、要求されるライブラリ関数、および潜在的なマルウェアのスペース要件に関する情報をマップするために、実行可能なプログラムコードのヘッダをチェックすることに着目する。最初にマルウェア実行ファイルを指紋取りするために行われるファイルのハッシュ化は、典型的には、ファイルのハッシュ化がマルウェアファイルのMD5を抽出するためのものであり、このステップにおいて言及される詳細を抽出するのに適していない。コードおよびコード構造の自動逆アセンブルは、コードの逆アセンブルを迅速に行うことができる、既知のまたは開発されるツールによって実行されてもよい。静的マルウェア解析のために、このインタラクティブ逆アセンブルに使用される共通ツール。
【0048】
用語「ローカルで訓練されたニューラルネットワークシステム(locally trained neural network system)」は、ニューラルネットワークモデルを開発するために、ローカルで利用可能な訓練データ(例えば、通常プロセスのローカルで生成されたテレメトリデータ)を使用するニューラルネットワークシステムを示す可能性がある。ニューラルネットワークモデルおよび/またはニューラルネットワークシステムは、オートエンコーダニューラルネットワークの規則に従って構築されてもよい。しかしながら、他のニューラルネットワークのタイプも有利に使用されてもよい。
【0049】
用語「ホストシステム(host system)」は、マルウェア検出システム内の選択されたインスタンスとしても示される、コンピューティングシステムを示す可能性がある。
【0050】
用語「連合訓練されたニューラルネットワークシステム(federated trained neural network system)」は、中央インスタンスのマルウェア検出システム上で訓練される基礎となるニューラルネットワークモデルを含む、ニューラルネットワークシステムを示す可能性がある。連合訓練されたニューラルネットワークシステムは、クラウドサービスとして動作されてもよく、複数のローカルインスタンスまたはホストシステムに対しマルウェア検出および保護サービスのサポートを提供することができる。
【0051】
用語「第1の損失関数(first loss function)」は、ニューラルネットワーク(例えば、オートエンコーダ)への入力値をそれぞれの出力値と比較した場合に結果の値または結果のベクトルを返す関数を表す可能性がある。特に、オートエンコーダについては、(例えば、どのオートエンコーダにも根底にある考え方および完璧なモデルを有しているわけではないため)出力値は、いつも、それぞれの入力値から多かれ少なかれ異なる可能性がある。第1の損失関数は、訓練されたローカルのニューラルネットワークシステムに関連する可能性があり、一方、第2の損失関数は、連合訓練されたニューラルネットワークシステムに関連する可能性があり、これは、また、オートエンコーダであってもよい。
【0052】
用語「更新された連合ニューラルネットワークモデル(updated federated neural network model)」は、新しい訓練データを用いて再訓練される新しい連合ニューラルネットワークモデルを表す可能がある。更新された連合ニューラルネットワークモデルは、次いで、マルウェア検出および保護システムの中央システムと協調して動作し、データ交換する、接続されたローカルインスタンスに配信されてもよい。
【0053】
用語「オートエンコーダ(auto-encoder)」は、教師なしのやり方で効率的にデータコーディングを学習するために使用される特定のタイプの人工ニューラルネットワークを表す可能性がある。これにより、オートエンコーダの目的は、典型的には次元削減するために、ニューラルネットワークを信号の「雑音」を無視するように訓練することによって、データのセットの表現(つまりエンコーディング)を学習することである。削減側に沿って、再構成側も訓練され(つまり、学習され)、ここで、オートエンコーダは、削減されたエンコーディングから、元の入力に可能な限り近い表現を生成することを試みる。
【0054】
用語「通常のプロセス(regular process)」は、オペレーティングシステムによって起動されおよび/または制御されるオペレーティングシステムのプロセスを示す可能性がある。例えば、オペレーティングシステムの内部プロセスまたはアプリケーションに関する意図されたプロセスが挙げられる。
【0055】
用語「損失関数(loss functions)」は、その最も単純な形で、(例えば、ニューラルネットワークシステム、オートエンコーダなどからの)出力値および入力値の間の差分を表す可能性がある。本発明の実施形態は、損失関数が人工知能(AI)システムにおいて広く使用されていることを認識する。
【0056】
本発明の実施形態は、ホスト(つまり、プロセスを実行するコンピュータシステム)をマルウェアの悪影響から保護する方法を提供する。マルウェアは、ネットワーク接続を介して(例えば、電子メールの添付ファイル、プログラムのダウンロード、アプリまたはウェブブラウザ内のアプレットなどとして)ホストに到達する。
【0057】
本発明の実施形態は、異常検出のために未知のプロセスのローカルサンドボックス化を利用することができる。入来するネットワークトラフィックは、まず、侵害指標(IoC)があるかの最初のチェックの対象となる。例えば、既知の悪意のあるIPアドレスまたはウイルスシグネチャ。プロセスが既知の善意のプロセスおよび既知の悪意のプロセスのいずれでもない場合、本発明の実施形態は、プロセスが実行することを可能にすることができるが、最初は、セキュアなエンクレーブ、つまりサンドボックスに維持され得る。
【0058】
概念は、また、プロセスが悪意あるものであるか否かを識別するための(ホスト上でローカルに実行される)意思決定方法も含む。悪意のあるプロセスは、破棄され、悪意のないプロセスは、サンドボックスから移動され、通常のプロセスとして実行される。
【0059】
様々な実施形態においては、各ローカルホストは、2つの異常検出部またはシステムを動作させる:第1のものは、ここで提案された発明的着想の基本概念を共有する、全てのホスト上で実行されるテレメトリ抽出器によって寄与されるプロセステレメトリデータから構築された連合機械学習モデルを使用し、第2のものは、ローカルで抽出されたプロセステレメトリデータから構築された機械学習モデルを使用する。例示の実施形態においては、異常検出部は、オートエンコーダである。しかしながら、他の機械学習の実装も可能である。機械学習モデル(MLM)は、通常(異常ではない)プロセスからのテレメトリデータによって訓練される(つまり、通常のプロセスのテレメトリデータの特性の範囲を記述する)。この範囲からの逸脱を異常とみなす。
【0060】
本発明の実施形態は、このアプローチによる課題が、偽陽性率(つまり、通常のプロセスが誤ってマルウェアとして分類される事例の相対的な量)を制御し、一方で、マルウェアが正常なプロセスとして通過してしまうことを防止することであることを認識する。高い偽陽性率およびマルウェアの通り抜けの両方は、セキュリティシステムの有効性に多大な影響を及ぼす。デュアルな異常検出部を使用する方法は、真陽性/偽陽性率を調整および最適化するための感度ファクタを導入することを可能とする。
【0061】
本発明の様々な実施形態は、長年の間、サイバーセキュリティ攻撃は、引き続き、政府機関および情報技術(IT)組織および企業の最優先事項であることを認識する。最高情報セキュリティ責任者(CISO)の役割は、任意のIT組織において既知である。本発明の実施形態は、市場で利用可能なセキュリティ情報およびイベント監視(SIEM)ソリューションの大部分は、組織の少なくとも一部におけるセキュリティインシデントにつながる可能性がある潜在的なセキュリティ脅威を識別して検出するために、高度に訓練された人材により監視および調整される複雑な相関ルールのセットを必要とすることを認識する。一般データセキュリティ規則(general and data security regulation,GDPR)によれば、欧州連合内で営業する企業は、企業が顧客および/または従業員のデータを保護することに失敗した場合、高額の手数料を課される可能性がある。しかしながら、企業データを保護することは、欧州に基盤を置く企業および政府機関だけのためのトピックだけでなく、世界中のデータを取り扱うすべての事業者のためのものである。
【0062】
本発明の追加の実施形態は、先進的なマルウェアは、集中型サンドボックスの実行も検出する可能性があり、マルウェアの挙動を正当なプロセスとして偽装する可能性があることを認識する。したがって、マルウェア解析および未知ファイル/プロセスのための集中型サンドボックスシステムの開発において、本発明の実施形態は、ボトルネックの高いリスクがあることを認識する。本発明の実施形態は、また、集中型サンドボックスシステムによって実行されるセキュアエンクレーブ実行の数に対する引き換えとして必要とされる利用可能なシステムリソースの量がごくわずかである可能性があることを認識する。
【0063】
本発明のさらなる実施形態は、集中型サンドボックス化を用いる問題は、しかしながら、集中型サンドボックス化がホストシステムの過剰なリソースを必要とする可能性があることであると認識する。ゆえに、本発明の実施形態は、このボトルネックを克服することが求められており、(i)従来型のマルウェア検出システムによっては検出できない可能性がある、ホスト上の悪意のあるプロセスを識別し、(ii)集中型サンドボックス化のアプローチよりも有意に少ないリソースを必要とする方法を提供することが求められていることを認識する。
【0064】
以下において、本方法および関連するシステムに適用可能な追加の実施形態について説明する。
【0065】
図1は、本発明の実施形態による、アンチマルウェアシステムの選択されたインスタンス(つまり、ホスト)による悪意のある(例えば、特に、異常なまたは非通常の(non-regular))プロセスを検出するための方法100の好ましい実施形態のブロック図を示す。例えば、特に、複数のホストおよび(例えばクラウドベースの)中央システムを含むアンチマルウェアシステムが、ボトルネックにならずに、必要に応じて随時使用される。説明のために、
図1に記載された方法100は、
図6(例えば、コンポーネント600を利用する)、
図7(例えば、実施形態700を利用する)、
図8(例えば、サブプロセス800を利用する)、
図9(例えば、マルウェア検出システム900を利用する)および
図10(例えば、コンピュータシステム1000を利用する)に示されるシステムにおいて図示されたダイアグラムおよびシステムの1または複数において実装されてもよい。代替的に、方法100の実行は、この実装に限定されない。例示の実施形態においては、マルウェア検出システム900は、
図1の方法100を実行してもよい。
【0066】
方法100は、侵害指標がないかプロセスを検査すること(ステップ102)を含む。例示の実施形態において、プロセスは、以前に受信したプログラムコードまたはデータに関連する。方法100は、また、検査の結果に基づいて、プロセスを分類すること(ステップ104)を含む。様々な実施形態において、方法100は、既知の善意のプロセス、既知の悪意のプロセスおよび未知のプロセスからなる群の中から選択された1つとしてプロセスを分類することができる。
【0067】
ステップ106において、方法100は、セキュアなエンクレーブでプロセスを実行することを含む。プロセスが既知の善意のプロセスとしても既知の悪意のプロセスとしても分類されない場合、方法100は、セキュアなエンクレーブ(つまり、基礎となるホストコンピューティングシステム上のセキュアなサンドボックス)においてプロセスを実行する。さらに、方法100は、プロセスが、悪意があると考えられるかどうかを決定するように動作してもよい。ステップ108において、方法100は、テレメトリデータを収集することを含む。特に、観測の下(セキュアなエンクレーブ内で実行されている)プロセスの実行からの静的および動的テレメトリデータ。
【0068】
さらに、ステップ110において、方法100は、収集されたテレメトリデータを、ローカルで訓練されたニューラルネットワークシステムに渡すことを含む。様々な実施形態においては、ローカルで訓練されたニューラルネットワークシステムの(例えば、訓練済みニューラルネットワークモデルを開発するための)訓練データは、ローカルインスタンスの基礎となるホストシステム上で実行されるプロセス(例えば、通常のプロセスなどの悪意のないプロセス)からのテレメトリデータを含む。
【0069】
加えて、ステップ112において、方法100は、また、収集されたテレメトリデータを、連合訓練されたニューラルネットワークシステムに渡すことを含む。例示の実施形態においては、連合訓練されたニューラルネットワークシステムは、連合訓練されたニューラルネットワークモデルを受信するように適合される。例えば、マルウェア検出システムの一部である支援クラウドシステムから。
【0070】
さらに、ステップ114において、方法100は、ローカルで訓練されたニューラルネットワークシステムについての第1の損失関数(例えば、2つのベクトルの平均二乗)の結果を決定することを含む。方法100は、次いで、結果を、ローカルで訓練されたニューラルネットワークモデルの訓練の終了時の損失関数の結果と比較してもよい。次いで、ステップ116において、方法100は、連合訓練されたニューラルネットワークシステムについての第2の損失関数(例えば、平均二乗ベース)の結果を決定することを含む。方法100は、次いで、結果を、連合訓練されたニューラルネットワークシステムの受信された連合訓練されたニューラルネットワークモデルの損失関数の結果と比較してもよい。
【0071】
次に、方法100は、第1および第2の損失関数の結果を集約すること(ステップ118)を含む。さらに、方法100は、集約された結果に基づいて、プロセスが異常であるかどうかを決定すること(ステップ120)を含む。様々な実施形態において、集約は、集約された結果を決定するために事前定義されたプロセスを使用してもよい(さらに詳細に説明される例については以下を参照のこと)。
【0072】
図2は、異常ではないプロセスのテレメトリデータを示す
図200を示す。
図2は、連合異常検出器(左側のより広い分布:連合訓練されたニューラルネットワークモデル)およびローカル異常検出部(狭い分布204:ローカルで訓練されたニューラルネットワークシステム)の機械学習モデル(MLM)についての入力テレメトリデータの分布を示す。図面200のx軸は、テレメトリデータ特性のカテゴリを示し、これに対して、図面200のy軸は、その発生の相対頻度を示す。
【0073】
図2の図示される例では、現在調査対象のプロセス(特に、プロセスA(206)、プロセスB(208)およびプロセスC(210))のテレメトリデータの特性が分布の中心(つまり、ガウス曲線の頂点)に近ければ近いほど、プロセスが通常であるという(つまり、悪意のない)信頼性が高くなる。
【0074】
本発明の実施形態は、MLMが現実世界を表現しておらず、代わりにMLMが、常にいくらかのバイアスがかかる、入力データに基づく世界を表すことを認識する。この例では、この特定のローカルホスト上に収集されたテレメトリデータの特性は、環境を横断して収集された特性とは異なる。異なる訓練データに起因して、プロセスBが、連合異常検出部によって通常のプロセスとして見なされないにもかかわらず、プロセスB208は、実際に、ローカルホスト上での通常のプロセスである。異なる特性を有するシステム上での通常のプロセスをブロックすることを回避するために、原則的には、両方の異常検出部が、異常としてプロセスを分類しなければならず、これは、プロセスC(210)の場合である。
図2の例では、プロセスC(210)は、ガウス曲線202およびガウス曲線204の範囲外である。モデル固有の感度パラメータを使用して、また、異常検出部(つまり、それぞれの訓練されたニューラルネットワークモデル/システム)の中で結果を重み付けして、本発明の実施形態は、真/偽の陽性率を改善するように動作することができる。
【0075】
図3は、オートエンコーダ300の構造を示す。図示の例では、オートエンコーダ300が、複数のノードの層を含むニューラルネットワークの典型的な実装において示される。上述したように、オートエンコーダは、教師なしのやり方で効果的なデータコーディングを学習するために使用される人工ニューラルネットワークの一種である。オートエンコーダの目的は、典型的には、次元削減のために、信号「雑音」を無視するようにネットワークを訓練することによって、データのセットに対する表現(つまりエンコーディング)を学習することである。削減側と併せて、再構成側が学習され、ここで、オートエンコーダは、削減されたエンコーディングから、元の入力に可能な限り近い表現を生成することを試み、よってその名前がある。ゆえに、訓練後、出力ノード306は、推論フェーズにおいて、入力層302に入力された同じデータ信号を供給する。
図3に示される例において、各円は、ニューラルネットワークのノードまたは人工ニューラルネットワークのセルを表す。オートエンコーダ300は、3つの層302,304,306のみで示されており、ここで、層304は隠れ層である。一般に、オートエンコーダは、複数の隠れ層を含んでもよい。しかしながら、層数は、オートエンコーダの一般的な機能を変化させない。
【0076】
図4は、本発明の実施形態のより詳細な例示的なフローチャートの第1の部分、フローチャート400を示す。まず、インバウンドのネットワークトラフィック402が、トラフィック分析404を受ける。ここで、本発明の実施形態は、フローチャート400を利用して、受信されたデータが、既知の良性のトラフィック/許可リストされたトラフィック406(左の分岐)、直ちにブロックされ得る、既知の悪意のあるトラフィック408(左の分岐)、トラフィック分析404を下に残す未知のトラフィック410に属するかどうかの三分岐の決定を行う。未知のトラフィックは、(未知のトラフィック410において)良性であるかまたは不良であるかを直接分類することができない。未知のトラフィックは、次いで、サブプロセス412、「ネットワーク分析エンジンプロセスワークフロー」、および、(パケットキャッシュを介して)サブプロセス414、「ホスト分析エンジンプロセスワークフロー」にフィードされてもよい。加えて、サブプロセス412の深層パケット解析が、悪意のないトラフィックを確認した場合、次いで、ホスト分析エンジンプロセスワークフロー414に情報が転送される。処理フローは、
図5に続く。
図4および
図5のフローチャートは、接続「A」、「B」および「C」によりリンクされる。
【0077】
図5は、本発明の実施形態のより詳細な例示的なフローチャートの第2の部分、フローチャート500を示す。プロセスフローは、「A」で
図4から継続する。ホスト分析エンジンプロセスワークフロー414(
図4比較)は、ネットワーク分析エンジンからの確認(
図4、プロセス412)の後、プロセス502において、セキュアなエンクレーブ(つまり、セキュアなサンドボックス実行環境)におけるプロセス実行を可能にする。
【0078】
次いで、フローチャート500は、プロセス504、テレメトリデータの記録を開始し、その間、本発明の実施形態は、プロセス506、テレメトリデータおよび生成された警告からのメタデータの抽出を実行してもよい。フローチャート500は、プロセス508、異常が検出されたかどうかの決定を継続する。異常が検出された場合(プロセス508、Y分岐)、プロセスは、(プロセス510で)破棄され、関連するデータは、削除される。加えて、フローチャート500は、プロセス512を含み、収集されたメタデータを、更新された形態で、ホストおよびネットワークエンジンに転送し、また分析プロセスは、接続「B」および「C」に沿って
図4に戻る。
【0079】
プロセス508における決定が、異常が検出されていないこと(つまり、悪意のあるコード/データがないこと)を示す場合(プロセス508、N分岐)、フローチャート500は、プロセス514に進み、プロセスをホスト上で通常のやり方で実行する。次いで、特定のプロセスに対するセキュリティ監視を終了する(プロセス516)。
【0080】
図6は、本発明の様々な側面のコンポーネント600の実施形態のブロック図を示す。分類できないプロセス(エンクレーブプロセス実行602)をセキュアエンクレーブプロセスとして実行すること応答して、テレメトリ記録およびメタデータ抽出部604は、エンクレーブプロセス実行602から生成されるデータを収集する。第1に、テレメトリ記録部606は、データを収集し、データをテレメトリおよびメタデータ抽出部モジュール608に渡す。次いで、テレメトリ記録部およびメタデータ抽出部604は、異常検出部610にデータを転送してもよく、データは、異常検出部610からメタデータ更新部614に(転送を介して)進められ得る。
【0081】
メタデータ更新部614にデータが転送されると、プロセスは、自動的に破棄され、関連するプロセス出力データが削除される。それ以外の場合には、ホストプロセス実行部612が開始される。しかしながら、ホストプロセス実行部612は、異常検出部610が悪意のないプロセスを確認した場合にのみ活性化される。
【0082】
図7は、本発明の様々な実施形態による、検査されるべき所与のプロセスについてテレメトリおよびメタデータを生成するプロセスを示す実施形態700のブロック図を示す。テレメトリ記録部702は、プロセス/ファイル抽出部701からデータを受信することができる。テレメトリ記録部702は、2つのステップで動作して、静的テレメトリ(TM)記録部704および動的テレメトリ記録部706を用いて、実行可能プロセスおよび他の関連データを記録する。静的テレメトリ記録部704は、プロセス/コード実行前に直接取得されたコンテンツを記録し、これは、(i)ファイルの指紋を取る(fingerprint)ための実行形式ファイルの決定されたファイルハッシュ値(例えば、ファイル指紋取り(fingerprinting)708)と、(ii)実行形式ファイルからのコードストリング分析710のためのコードストリング抽出と、(iii)実行形式ファイルの実行可能レイアウト抽出712と、(iv)実行可能ファイルのコードおよびコード構造の自動逆アセンブル714とを含んでもよい。
【0083】
加えて、動的テレメトリ記録部706は、取得されたコンテンツのキャプチャリング/コード実行を記録する。記録することは、(i)システム監視データ、(ii)レジストリアクティビティデータ716、(iii)ファイルアクティビティデータ718(つまり、ファイルアクセス)、(iv)プロセスアクティビティデータ720、および、(v)ネットワークアクティビティデータ722を補足することおよび記録することを少なくとも含む。
【0084】
その結果、テレメトリ(TM)およびメタデータ抽出部724は、指紋ハッシュデータ(fingerprint hash data)、コード内のストリング、実行形式ファイルのプログラムコードの実行形式レイアウト/パターンおよび逆アセンブル情報を含む静的テレメトリ抽出データ726を提供することができる。他の側面では、動的テレメトリ抽出データ728は、例示的なレジストリダンプ、ファイルアクティビティ抽出、プロセスダンプおよびネットワークダンプを含む。両方について、静的テレメトリ記録部704および動的テレメトリ記録部706は、部分的に、再使用されてもよい(および適用可能であれば、既存技術も)。
【0085】
図8は、本発明の様々な実施形態による、訓練されたニューラルネットワークモジュールの使用を含む、異常検出のためのサブプロセス800を示す実施形態のブロック図を示す。様々な実施形態において、サブプロセス8の実行に関連する主要なコンポーネントは、ローカル異常検出部804(つまり、ローカルで訓練されたニューラルネットワークシステム)、連合異常検出部806(つまり、連合訓練されたニューラルネットワークシステム)、訓練データ収集部812、再訓練モジュール814、複数集合モデル連合学習ユニット820および提供された(例えば、異常検出モデルクラウド818などのクラウドサービスとして提供される)異常検出モデルを含み、最後の2つのコンポーネントが中央サービスまたは中央システム816の一部である。
【0086】
テレメトリデータのストリームは、時間的集約部802に入る。例えば、時間的集約部802は、次のモジュール、(例えば、オートエンコーダの形態の)ローカル異常検出部804にデータを送信する前に、データストリームをn秒間集約する。並行して、集約されたテレメトリデータは、また、(例えば、同様にオートエンコーダの形態の)連合異常検出部806にパース(parsed)される。ブロック808においては、両方の結果が集約されて、異常評価(anomaly estimations)が形成される。決定モジュール810は、「異常が真(anomaly true)」または「異常が偽(anomaly false)」の条件が満たされるか否かを決定する。
【0087】
次いで、テレメトリデータは、(例えば、転送を介して)訓練データ収集部812に進んでもよく、訓練データ収集部812は、次いで、テレメトリデータを再訓練モジュール814に渡す。再訓練モジュール814は、ローカルで訓練されたニューラルネットワークモデル(つまり、ローカル異常検出部804)を定期的に(例えば、一日ごと、一時間ごと、または任意の他のタイミングスキームに従って)訓練することに役立つことができる。あるいは、再訓練は、所定のトリガ機構によって開始されてもよい。さらに、再訓練モジュール814は、テレメトリデータを、(クラウドベースの)連合異常検出部または異常検出モデルクラウド818を含み得る中央システム816にパルスする。加えて、異常検出モデルクラウド818は、複数集合モデル連合学習ユニット820を使用して、そこからローカルで訓練されたニューラルネットワークモデルが使用される異なるホストからの複数の集合されたニューラルネットワークモデルに基づいて、再訓練されてもよい。
【0088】
したがって、本発明の様々な実施形態は、連合異常検出部およびローカル異常検出部の両方を有することの利点が、リソース消費の観点のみならず、訓練に使用されるデータの観点からもあることを認識する。実際、連合学習オートエンコーダは、環境の周りのアンチマルウェアシステムの全てのインスタンスからのデータに触れさせられ、連合学習オートエンコーダは、単一のインスタンスのオートエンコーダに任意の情報を直接転送することなく、データ上で学習する。異なるインスタンスの知識の移転は、連合訓練されたニューラルネットワークモデル内に閉じており、連合訓練されたニューラルネットワークモデルは、次いで、ローカルホスト内の連合異常検出部のニューラルネットワークシステムに定期的に転送される。
【0089】
訓練中、オートエンコーダは、入力および出力として、集約されたテレメトリデータに触れさせられ、オートエンコーダは、(オートエンコーダ機能を理由として)集約されたテレメトリデータを再現するように学習する。使用される典型的な損失関数は、平均二乗誤差関数(MSE)である。
【0090】
推論中(つまり、
図8に示されるプロセスにおけるモデルの使用)、ローカルおよび連合オートエンコーダは、セキュアなエンクレーブにおいて実行される未知のコードから抽出された現在のテレメトリデータを用いて使用される。次いで、同一のMSEメトリックが、再構成されたデータと元のデータとの間で両方のオートエンコーダについて独立して計算される。値は、次いで、以下のように集約される:両方のオートエンコーダ(AE)について、結果は、m
AE=MSE
current-(MSE
current-訓練中)/sfによって決定され、ここで「sf」は、感度ファクタである。
【0091】
結果として生じる値がAEについて負である場合、異常は検出されない。そうでなければ、マージンmAEは、加重平均、例えば、mAE+Wfed*mAE,fedによって結合される。重みWfedは、連合AE対ローカルAEにより見られるデータの量に依存する可能性がある。一実施形態においては、より多くのデータから学習する連合AEがより高い重み値を有するように線形依存性が使用される。第4のステップとして、mAE,loc+Wfed*mAE,fedが正である場合、異常が識別され、検査対象のプロセスが破棄され、そうでない場合には、上述したように、プロセスは、異常ではなく、テレメトリデータが訓練データ収集部に渡される。
【0092】
また、訓練データ収集部は、検出部を通過し通常として分類された全てのテレメトリデータを格納することを言及しておかなければならない。定期的に、訓練データ収集部は、再訓練モジュールにデータのバッジを送信する。
【0093】
再訓練モジュールは、訓練データ収集部から入来するテレメトリデータを用いてAEの訓練を撤収する(retreat)。例えば、典型的な周期は一日である。本発明の様々な実施形態は、訓練中のニューラルネットワークモデルの性能の改善に基づく条件を利用して、いつ訓練が完了したかを自動的に決定することができる。一例では、好適な条件は、アーリーストッピング(early stopping)である。モデル訓練が完了すると、ローカルAEのモデルが、新しいモデルで置き換えられ、新しいモデルが連合学習モジュールに送信される。(例えば、クラウドサービスとして)中央コンピューティング位置で動作する複数集合モデル連合学習は、単一のローカルニューラルネットワークモデル(またはローカル異常検出部の知識)を忘れないようにするために、新しいモデルのセットを定期的(時間範囲は設定可能)に受信し、入来したモデルを統合する。
【0094】
様々な側面においては、単一のローカルニューラルネットワークモデル(またはローカル異常検出部の知識)の正確な利用を保証するために、プロセスは、以下を含む。第1に、代表的に生成されたテレメトリデータのセットは、それぞれの単一の収集されたローカルで訓練されたニューラルネットワークシステムを通して処理され、反対側が格納される。出力は、単一の機械学習モデルの経験をエンコードするであろう。第2に、単一のモデルによって生成されたペア(AEの入力/出力)が取得されて、連合ニューラルネットワークモデルがこれらのデータペアを用いて訓練される。訓練が完了すると、新しい連合訓練されたニューラルネットワークモデルは、異常検出モデルクラウド818に送信され、異常検出モデルクラウド818は、次いで、新しい連合訓練されたニューラルネットワークモデルをローカルホスト上の全ての連合異常検出部にプッシュする。連合異常検出部は、新しいモデルを受信することができ、適切な瞬間に、モデルを置き換えることができる。
【0095】
1つの例示的な実施形態においては、連合AEの感度ファクタについての単一の値が、セキュリティ分析者によって観測された真/偽陽性率に基づいて割り当てられる。変形された例示の実施形態においては、ローカルAE上の感度ファクタsflocは、以下の自動的に観測されるパラメータの組み合わせに基づいて調整される。第1のパラメータは、ローカルモデルを構築するためのローカルのテレメトリ測定プロセスの量であってもよい(例えば、比較的新しいサーバについては、通常の挙動を記述するわずかなサンプルがモデルに組み込まれ、これは容易に誤警報(マルウェアからの悪意のあるプロセスを検出する)をトリガする可能性がある)。例えば、感度ファクタは、ゼロに近い非常に低い値に設定することができる。
【0096】
第2のパラメータは、ローカルモデルを構築するためのローカルテレメトリ測定プロセスの変化の度合い(variation)であってもよい。例えば、特定の目的を有するサーバは、正常な挙動を記述する特定のセットの入力を受信し、バイアスされたモデルを結果として生じる可能性がある。偽陽性警報を回避するために、より低いsflocが小さな分散σに割り当てられる。テレメトリデータのより広いセットを受信するサーバは、よりバランスのとれたモデルを構築する。ここで、大きな分散σに対し、1に近い値がsflocに割り当てられる。
【0097】
テレメトリ入力データの分散は、以下のように定義することができる:
【数1】
ここで、「n」は、テレメトリデータ測定の回数(n>1)である。第1のベクトル(a
i,b
i,c
i,…)は、実際のテレメトリデータ測定値を表し、第2のベクトル(個々のホスト上でローカルでの)平均テレメトリデータ測定を表す。感度ファクタは、分散によって、以下のように定義される。
【数2】
【0098】
第3のパラメータは、連合モデルとローカルモデルとの間の重複の量であってもよい(
図2比較)。重複は、調査された事例にわたる結果m
AE,loc-m
AE,fedを豊富化することによって決定される。大きい重複については、ゼロに近い感度ファクタsf
locが割り当てられ(ホストは共通のホスト)、小さな重複(特に、テレメトリデータ測定の小さな分散と組み合わせて)、低い値が感度ファクタsf
locに割り当てられる。
【0099】
図9は、本発明の様々な態様による、提案されたマルウェア検出システム900の実施形態のブロック図を示す。マルウェア検出システム900は、メモリと、メモリ904に通信可能に結合されたプロセッサ902と含み、プロセッサ902は、メモリ904に格納されたプログラムコードを使用して、(特に、検査ユニット906によって)侵害指標があるかプロセスを検査し、(特に、分類モジュール908によって)検査ユニット906の結果に基づいて、プロセスを、既知の善意のプロセス、既知の悪意のプロセスおよび未知のプロセスからなる群から選択された1つとして分類するように構成される。
【0100】
プロセッサ902は、メモリ904に格納されたプログラムコードを使用して、プロセスが既知の善意のプロセスにも既知の悪意のプロセスにも分類されない場合、(特に、実行ユニット910によって)セキュアなエンクレーブ内でプロセスを実行して、(特に収集モジュール912によって)実行しているプロセスからのテレメトリデータを収集するようにさらに構成される。
【0101】
さらに、プロセッサ902は、また、メモリ904に格納されたプログラムコードを使用して、(特に、第1のパッシングユニット(passing unit)914によって)収集されたテレメトリデータを、ローカルで訓練されたニューラルネットワークシステムに渡すように、また、(特に、第2のパッシングユニット916によって)収集されたテレメトリデータを、連合訓練されたニューラルネットワークシステムに渡すように構成され、ここで、ローカルで訓練されたニューラルネットワークシステムの訓練データは、ローカルインスタンスの基礎となるホストシステム上で実行されるプロセスからのテレメトリデータを含み、連合訓練されたニューラルネットワークシステムは、連合訓練されたニューラルネットワークモデルを受信するように適合される。
【0102】
加えて、プロセッサ902は、メモリ904に格納されたプログラムコードを使用して、(特に、第1の決定モジュール918によって)ローカルで訓練されたニューラルネットワークシステムについての第1の損失関数の結果を決定し、結果を、ローカルで訓練されたニューラルネットワークシステムの訓練の終了時の損失関数の結果と比較し、また(特に、第2の決定モジュール920によって)連合訓練されたニューラルネットワークシステムについての第2の損失関数の結果を決定し、結果を、連合訓練されたニューラルネットワークシステムの受信された連合訓練されたニューラルネットワークモデルの損失関数の結果と比較するよう構成される。
【0103】
最後に述べるが、大切なことであるが、プロセッサ902は、メモリ904に格納されたプログラムコードを使用して、(特に、集約モジュール922によって)第1および第2の損失関数の結果を集約し、(特に、第3の決定モジュール924によって)集約された結果に基づいて、プロセスが異常であるか否かを決定するように構成される。
【0104】
また、すべてのユニットおよびモジュールがハードウェアユニットおよびモジュールとして実装されてもよく、ユニットが信号およびデータ交換のために互いに通信可能に結合されることにも言及する必要がある。代替的に、一対一の通信スキーマに対して、ユニットおよびモジュールは、また、マルウェア検出システムの内部バスシステム926に接続されてもよい(つまり、プロセッサ902、メモリ904、検査ユニット906、分類モジュール908、実行ユニット910、収集モジュール912、第1のパッシングユニット914、第2のパッシングユニット916、第1の決定モジュール918、第2の決定モジュール920、集約モジュール922および第3の決定モジュールは、全て、信号およびデータ交換のために、マルウェア検出システムの内部バスシステム926に接続されてもよい)。
【0105】
本発明の実施形態は、プラットフォームが、プログラムコードを格納することにおよび/または実行することに適しているかにかかわらず、実質的に任意のタイプのコンピュータを用いて実装されてもよい。
図10は、一例として、本発明の様々な実施形態に従う、提案された方法に関連するプログラムコードを実行することに適したコンピュータシステム1000を示す。
【0106】
コンピュータシステム1000は、適切なコンピュータシステムの一例であり、コンピュータシステム1000が、上記で説明した機能性のいずれかを実装可能であるかおよび/または実行することが可能であるかに関わらず、本明細書で説明される発明の実施形態の使用または機能性の範囲についてのいかなる限定を示唆することを意図するものではない。コンピュータシステム1000においては、コンポーネントがあり、コンポーネントは、多数の他の汎用または特定用途のコンピューティングシステム環境または構成で動作可能である。コンピュータシステム1000と使用するのに適した周知のコンピューティングシステム、環境および/または構成の例は、これらに限定されないが、パーソナル・コンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラマブルコンシューマエレクトロニクス、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、上述したシステムまたはデバイスなどの任意のものを含む分散型クラウドコンピューティング環境などを含む。コンピュータシステム1000(例えばサーバ)は、コンピュータシステム1000によって実行されるプログラムモジュールのようなコンピュータシステム実行可能命令の一般的な文脈で説明されてもよい。概して、プログラムモジュールは、特定のタスクを実行するか、または特定の抽象的なデータタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含んでもよい。コンピュータシステム1000(例えばサーバ)は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行され得る分散型クラウドコンピューティング環境で実装してもよい。分散型クラウドコンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含むローカルおよびリモートの両方のコンピュータシステム記憶媒体に配置されてもよい。
【0107】
図10に示すように、コンピュータシステム1000(例えばサーバ)が、汎用コンピューティングデバイスの形態で示される。コンピュータシステム1000(例えばサーバ)のコンポーネントは、これらに限定されないが、1以上のプロセッサまたは処理ユニット1002と、システムメモリ1004と、システムメモリ1004を含む様々なシステムコンポーネントを処理ユニット1002に結合するバス1006とを含む。バス1006は、メモリバスまたはメモリコントローラ、周辺バス、アクセラレーテッドグラフィックスポート、および種々のバスアーキテクチャの任意のものを使用するプロセッサまたはローカルバスを含む、いくつかのタイプのバス構造のうちの1または複数を表す可能性がある。例として、また、限定なく、このようなアーキテクチャには、インダストリスタンダードアーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバスおよびペリフェラル・コンポーネント・インターコネクト(PCI)バスが含まれる。コンピュータシステム1000(例えばサーバ)は、典型的には、種々のコンピュータシステム可読媒体を含んでもよい。そのような媒体は、コンピュータシステム1000(例えばサーバ)によりアクセス可能である任意の利用可能な媒体であってもよく、揮発性および不揮発性の両方の媒体、リムーバブルおよび非リムーバブルの両方の媒体を含む。
【0108】
システムメモリ1004は、ランダムアクセスメモリ(RAM)1008および/またはキャッシュ・メモリ1010などの揮発性メモリの形態でコンピュータシステム可読媒体を含んでもよい。コンピュータシステム1000(例えばサーバ)は、さらに、他のリムーバブル/非リムーバブル揮発性/不揮発性コンピュータシステム記憶媒体を含んでもよい。単なる例として、記憶システム1012は、非リムーバブル不揮発性磁気媒体(図示せず、典型的には「ハードドライブ」と参照される)からの読み出しおよび非リムーバブル不揮発性磁気媒体への書き込みのために提供されてもよい。図示されていないが、リムーバブル不揮発性磁気ディスク(例えば、フロッピーディスク(登録商標))からの読み出しおよびリムーバブル不揮発性磁気ディスクへの書き込みのための磁気ディスクドライブ、並びに、CD-ROM、DVD-ROMまたは他の光学媒体のようなリムーバブル不揮発性光学ディスクからの読み出しまたはリムーバブル不揮発性光学ディスクへの書き込みを行うための光学ディスクドライブが提供されてもよい。そのような例では、各々は、1以上のデータメディアインタフェースによってバス1006に接続されてもよい。さらに図示し、また説明するように、メモリ1004は、本発明の実施形態の機能を実行するよう構成されるプログラムモジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含んでもよい。
【0109】
プログラム/ユーティリティは、プログラムモジュール1016のセット(少なくとも1つ)を有し、一例として、メモリ1004に格納されてもよく、限定されないが、オペレーティングシステム、1以上のアプリケーションプログラム、他のプログラムモジュールおよびプログラムデータも同様である。オペレーティングシステム、1以上のアプリケーションプログラム、他のプログラムモジュールおよびプログラムデータまたはこれらのいくつかの組み合わせの各々は、ネットワーキング環境の実装を含んでもよい。プログラムモジュール1016は、本明細書で説明されるように、本発明の実施形態の機能および/または方法論を実行することができる。
【0110】
コンピュータシステム1000(例えばサーバ)は、また、キーボード、ポインティング・デバイス、ディスプレイ1020などの1以上の外部デバイス1018と、ユーザがコンピュータシステム1000(例えばサーバ)と対話することを可能にする1以上のデバイス、および/またはコンピュータシステム1000(例えばサーバ)が1以上の他のコンピューティングデバイスと通信することを可能にする任意のデバイス(例えば、ネットワーク・カード、モデムなど)と通信してもよい。このような通信は、入力/出力(I/O)インタフェース1014を介して生じ得る。さらに、コンピュータシステム1000(例えばサーバ)は、ネットワークアダプタ1022を介して、ローカルエリアネットワーク(LAN)、一般ワイドエリアネットワーク(WAN)および/または公衆ネットワーク(例えば、インターネット)などの1以上のネットワークと通信することができる。図示されるように、ネットワークアダプタ1022は、バス1006を介してコンピュータシステム1000(例えばサーバ)の他のコンポーネントと通信することができる。図示されていないが、他のハードウェアおよび/またはソフトウェアコンポーネントを、コンピュータシステム1000(例えばサーバ)と組み合わせて使用することができる。例としては、これらに限定されないが、マイクロコード、デバイスドライバ、冗長処理ユニット、外部ディスクドライブアレイ、RAIDシステム、テープドライブ、およびデータアーカイブ記憶システムなどを挙げることができる。
【0111】
加えて、アンチマルウェアシステムの選択されたインスタンスによる悪意のあるプロセスを検出するためのマルウェア検出システム900は、バス1006に取り付けられてもよい。
【0112】
本明細書で説明されるプログラムは、本発明の特定の実施形態で実装されるアプリケーションに基づいて識別される。しかしながら、本明細書における任意の特定のプログラム命名法は、便宜のためのみに使用されることを理解すべきであり、したがって、本発明は、そのような命名法によって識別および/または暗に示される任意の特定のアプリケーションにおいて使用することのみに限定されるべきではないことを理解されたい。
【0113】
本発明は、任意の可能な統合の技術的詳細レベルでのシステム、方法および/またはコンピュータプログラム製品であってもよい。コンピュータプログラム製品は、プロセッサに本発明の側面を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体を含んでもよい。
【0114】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持し格納する有形のデバイスであってよい。コンピュータ可読記憶媒体は、例えば、これに限定されるものではないが、電子的記憶デバイス、磁気的記憶デバイス、光学的記憶デバイス、電磁気的記憶デバイス、半導体記憶デバイスまたは上記の任意の適切な組み合わせであってよい。コンピュータ可読記憶媒体のより具体的な例示の例示列挙としては、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリーメモリ(CD-ROM)、デジタルバーサタイルディスク(DVD)、メモリースティック(登録商標)、フロッピーディスク(登録商標)、パンチカードまたは記録された命令を有する溝内の隆起構造のような機械的エンコードされたデバイス、および上記の任意の適切な組み合わせが含まれる。コンピュータ可読記憶媒体は、本明細書で使用されるように、電波、自由伝搬する電磁波、導波路または他の伝送媒体を伝搬する電磁波(たとえば、ファイバ光ケーブルを通過する光パルス)または、ワイヤを通して伝送される電気信号のような、それ自体が一時的な信号として解釈されるものではない。
【0115】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピュータ/処理デバイスに、または、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワークおよび/または無線ネットワークまたはこれらの組み合わせといったネットワークを介して外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバまたはこれらの組み合わせを含んでもよい。コンピュータ/処理デバイス(複数可)におけるネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【0116】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、または、1以上のプログラミング言語の任意の組み合わせで書かれたソースコードあるいはオブジェクトコードであってよく、1以上のプログラミング言語は、Smalltalk(登録商標)、C++またはこれらに類するもなどのオブジェクト指向言語、Cプログラミング言語または類似のプログラミング言語などの手続型言語を含む。コンピュータ可読プログラム命令は、スタンドアローンのソフトウェアパッケージとして、全体としてユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上かつ部分的に遠隔のコンピュータ上で、または、完全に遠隔のコンピュータまたはサーバ上で実行されてもよい。後者のシナリオでは、遠隔のコンピュータは、ユーザのコンピュータに、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通じて接続されてもよく、あるいは接続は、(例えば、インターネットサービスプロバイダを用いてインターネットを通じて)外部コンピュータになされてもよい。いくつかの実施形態においては、電気的回路は、本発明の側面を実行するために、コンピュータ可読プログラム命令の状態情報を利用して、電気的回路を個別化することによって、コンピュータ可読プログラム命令を実行してもよく、この電気的回路は、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む。
【0117】
本発明の側面は、本明細書において、本開示の実施形態に従った方法、装置(システム)およびコンピュータプログラム製品のフローチャート図および/またはブロック図を参照しながら、説明される。フローチャート図および/またはブロック図の各ブロック、および、フローチャート図および/またはブロック図における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されてもよいことが理解されよう。
【0118】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサまたは他のプログラマブルデータ処理装置に提供されてマシンを生成し、命令が、コンピュータのプロセッサまたは他のプログラマブルデータ処理装置を介して実行されて、フローチャート図および/またはブロックまたはその両方のブロックまたは複数のブロックにおいて特定される機能/作用を実装するための手段を作成するようにする。これらのコンピュータ可読プログラム命令は、また、コンピュータ、プログラマブルデータ処理装置および/または他のデバイスに特定のやり方で機能するよう指示できるコンピュータ可読記憶媒体に格納され、それに格納された命令を有するコンピュータ可読記憶媒体に、フローチャートおよび/またはブロックのブロックまたは複数のブロックで特定される機能/作用の側面を実装する命令を含む製品が含まれるようにする。
【0119】
コンピュータ可読プログラム命令は、また、コンピュータ、別のプログラマブルデータ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラマブルデータ処理装置または他のデバイス上で一連の動作ステップを実行させて、コンピュータ、他のプログラマブルデータ処理装置または別のデバイス上で実行される命令が、フローチャートおよび/またはブロックのブロックまたは複数のブロックで特定される機能/作用の側面を実装するように、コンピュータ実装処理を生成することもできる。
【0120】
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に従ったシステム、方法およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能性および動作を示す。この点に関して、フローチャートまたはブロック図の各ブロックは、特定の論理機能(複数可)を実装するための1以上の実行可能な命令を含む、モジュール、セグメントまたは命令の部分を表す可能性がある。いくつかの代替の実装では、ブロックにおいて言及された機能は、図面に示された順序から外れて生じる可能性がある。例えば、連続して示される2つのブロックは、実際には、一つのステップとして完結してもよいし、同時に実行されてもよく、一部または全部が時間的に重なり合う態様で、実質的に同時に実行されてもよく、あるいは、複数のブロックは、関与する機能性に応じて逆の順序で実行されてもよい。ブロック図および/またはフローチャート図の両方の各ブロックおよびブロック図および/またはフローチャート図の複数のブロックの組み合わせが、特定の機能または作用を実行し、または、特別な目的のハードウェアおよびコンピュータ命令の組み合わせを実施する、特定目的ハードウェアベースのシステムによって実装されてもよいことに留意されたい。
【0121】
本発明の種々の実施形態の説明が、説明のために提示されるが、しかし、網羅的であること、または、開示される実施形態に限定することを意図するものではない。本発明の範囲を逸脱することなく、多くの変更および変形が当業者にとって明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の応用または市場で発見される技術に対する技術的改善を最もよく説明するために、あるいは、他の当業者が、本明細書で開示される実施形態を理解できるように選ばれたものである。
【国際調査報告】