IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ パロ アルト ネットワークス (イスラエル アナリティクス) リミテッドの特許一覧

<>
  • 特表-サプライチェーンアタック検出 図1
  • 特表-サプライチェーンアタック検出 図2
  • 特表-サプライチェーンアタック検出 図3
  • 特表-サプライチェーンアタック検出 図4
  • 特表-サプライチェーンアタック検出 図5
  • 特表-サプライチェーンアタック検出 図6
  • 特表-サプライチェーンアタック検出 図7
  • 特表-サプライチェーンアタック検出 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-01
(54)【発明の名称】サプライチェーンアタック検出
(51)【国際特許分類】
   G06F 21/55 20130101AFI20240725BHJP
【FI】
G06F21/55 320
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024504256
(86)(22)【出願日】2023-06-13
(85)【翻訳文提出日】2024-01-23
(86)【国際出願番号】 IB2023056071
(87)【国際公開番号】W WO2024009158
(87)【国際公開日】2024-01-11
(31)【優先権主張番号】17/857,196
(32)【優先日】2022-07-05
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】523015600
【氏名又は名称】パロ アルト ネットワークス (イスラエル アナリティクス) リミテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100229448
【弁理士】
【氏名又は名称】中槇 利明
(72)【発明者】
【氏名】ザン,ユヴァル
(72)【発明者】
【氏名】レヴィ,エレズ
(72)【発明者】
【氏名】アグロン,ドール
(72)【発明者】
【氏名】ダドン,ヤロム
(72)【発明者】
【氏名】エフギ,チェン
(57)【要約】
方法、ストレージシステム、および、コンピュータプログラム製品は、特定のソフトウェアアプリケーションに係るそれぞれのインスタンスを実行している複数のホストコンピュータを識別することを含む、本発明の実施形態を実装し、各所与のホストコンピュータにおける各所与のインスタンスは、ホストコンピュータによって、それぞれのストレージ装置からロードされたプログラム命令のセットを含む。実行しているインスタンスによって実行されたアクションに対する情報がホストコンピュータから収集され、複数のホストコンピュータから収集された情報に基づいて、特徴が計算される。所与のインスタンスについて収集された情報は、所与のインスタンスを良性のもの、または、疑わしいものとして分類するために特徴と比較され、そして、所与のインスタンスを疑わしいものとして分類したときのみ、所与のインスタンスに対してアラートが生成される。
【特許請求の範囲】
【請求項1】
特定のソフトウェアアプリケーションに係るそれぞれのインスタンスを実行している複数のホストコンピュータを識別するステップであり、各所与のホストコンピュータにおける各所与のインスタンスは、前記ホストコンピュータによって、それぞれのストレージ装置からロードされたプログラム命令のセットを含む、ステップと、
前記ホストコンピュータから、実行している前記インスタンスによって実行されたアクションに対する情報を収集するステップと、
前記複数のホストコンピュータから収集された前記情報に基づいて、特徴を計算するステップと、
所与のインスタンスを良性のもの、または、疑わしいものとして分類するために、プロセッサによって、前記所与のインスタンスについての収集された情報を前記特徴と比較するステップと、
前記所与のインスタンスを疑わしいものとして分類したときにのみ、前記所与のインスタンスに対してアラートを生成するステップと、
を含む、方法。
【請求項2】
前記情報は、アクションタイプおよびエンティティを含む、
請求項1に記載の方法。
【請求項3】
所与のアクションの前記アクションタイプは、プロセスを作成すること、または、注入することを含み、
前記所与のアクションの前記エンティティは、プロセス名を有しているプロセスを含む、
請求項2に記載の方法。
【請求項4】
所与のアクションの前記アクションタイプは、ドメインにアクセスすることを含み、
前記所与のアクションの前記エンティティは、ドメイン名を含む、
請求項2に記載の方法。
【請求項5】
所与のアクションの前記アクションタイプは、インターネットプロトコル(IP)アドレスにアクセスすることを含み、
前記所与のアクションの前記エンティティは、IPアドレスを含む、
請求項2に記載の方法。
【請求項6】
所与のアクションの前記アクションタイプは、自律システム番号(ASN)アドレスにアクセスすることを含み、
前記所与のアクションの前記エンティティは、ASNを含む、
請求項2に記載の方法。
【請求項7】
所与のアクションの前記アクションタイプは、共有ライブラリをロードすることを含み、
前記所与のアクションの前記エンティティは、それぞれの名前を有している共有ライブラリを含む、
請求項2に記載の方法。
【請求項8】
所与のアクションの前記アクションタイプは、ファイルにアクセスすることを含み、
前記所与のアクションの前記エンティティは、ファイル名を有しているファイルを含む、
請求項2に記載の方法。
【請求項9】
所与のアクションの前記アクションタイプは、レジストリ内のキーにアクセスすることを含み、
前記所与のアクションの前記エンティティは、キー名を有しているレジストリキーを含む、
請求項2に記載の方法。
【請求項10】
所与のアクションの前記アクションタイプは、オペレーティングシステムにシステムコールを伝達することを含み、
前記所与のアクションの前記エンティティは、システムコール名を有しているシステムコールを含む、
請求項2に記載の方法。
【請求項11】
前記ホストコンピュータは、複数のソース間に分散された第1ホストコンピュータを含み、
前記ソース間に分散されたホストコンピュータのセットは、前記第1ホストコンピュータおよび追加のホストコンピュータを含み、
前記方法は、さらに、
前記エンティティを、正規化エンティティへと正規化するステップと、
前記アクションのそれぞれについて、それぞれのアクションタイプ、および、前記アクションのうち1つについての正規化エンティティを含んでいる、対応する正規化アクションを定義するステップと、
を含む、請求項2乃至10のいずれか一項に記載の方法。
【請求項12】
前記特徴を計算するステップは、前記ソースのカウントを計算すること、
を含む、請求項11に記載の方法。
【請求項13】
前記特徴を計算するステップは、前記ソフトウェアアプリケーションの所与のインスタンスを実行している前記セット内の少なくとも1つのホストコンピュータを含む、前記ソースのカウントを計算すること、
を含む、請求項11に記載の方法。
【請求項14】
各所与のアクションタイプについて、前記特徴を計算するステップは、
前記所与のアクションタイプを含む所与のアクションを実行した前記ソフトウェアアプリケーションに係る所与のインスタンスを実行している、前記セット内の前記ホストコンピュータのカウントを計算すること、
を含む、請求項11に記載の方法。
【請求項15】
各所与のアクションタイプについて、前記特徴を計算するステップは、
前記所与のアクションタイプを含む所与のアクションを実行した前記セット内の少なくとも1つのホストコンピュータを含む、前記ソースのカウントを計算すること、
を含む、請求項11に記載の方法。
【請求項16】
各所与の正規化アクションについて、前記特徴を計算するステップは、
前記所与の正規化アクションを実行した前記セット内の少なくとも1つのホストコンピュータを含む、前記ソースのカウントを計算すること、
を含む、請求項11に記載の方法。
【請求項17】
前記特徴を計算するステップは、
別個の正規化アクションのカウントを計算すること、
を含む、請求項11に記載の方法。
【請求項18】
所与のソースについて、前記特徴を計算するステップは、
前記所与のソースにおいて前記ホストコンピュータ上で実行されている前記ソフトウェアアプリケーションのインスタンスによって実行された別個の正規化アクションの第1カウントを計算すること、
前記所与のソース以外の前記ソースそれぞれにおいて前記ホストコンピュータ上で実行されている前記ソフトウェアアプリケーションのインスタンスによって実行された別個の正規化アクションに係るそれぞれの第2カウントを計算すること、
前記第2カウントの平均を計算すること、および、
前記第1カウントを前記計算された平均と比較すること、
を含む、請求項11に記載の方法。
【請求項19】
所与のアクションタイプそれぞれについて、前記特徴を計算するステップは、
前記所与のアクションタイプを含む所与のアクションを実行した、前記ソフトウェアアプリケーションに係る所与のインスタンスを実行している前記セット内の少なくとも1つのホストコンピュータを有している前記ソースのカウントを計算すること、
を含む、請求項11に記載の方法。
【請求項20】
所与の正規化アクションそれぞれについて、前記特徴を計算するステップは、
前記所与の正規化アクションを実行した、前記ソフトウェアアプリケーションに係る所与のインスタンスを実行している前記セット内の少なくとも1つのホストコンピュータを有している前記ソースのカウントを計算すること、
を含む、請求項11に記載の方法。
【請求項21】
所与の正規化アクションそれぞれについて、前記特徴を計算するステップは、
前記所与の正規化アクションを実行した、前記ソフトウェアアプリケーションに係る所与のインスタンスを実行している前記セット内の前記ホストコンピュータのカウントを計算すること、
を含む、請求項11に記載の方法。
【請求項22】
所与のソースそれぞれについて、前記特徴を計算するステップは、
前記ソフトウェアアプリケーションに係る所与のインスタンスを実行している前記セット内の前記ホストコンピュータのカウントを計算すること、
を含む、請求項11に記載の方法。
【請求項23】
所与のソースおよび所与の正規化アクションを含む各組合せについて、前記特徴を計算するステップは、
前記所与の正規化アクションを実行した、前記所与のソース内の前記ホストコンピュータのカウントを計算すること、
を含む、請求項11に記載の方法。
【請求項24】
所与のソースおよび所与のアクションタイプを含む各組合せについて、前記特徴を計算するステップは、
前記所与のアクションタイプを含む所与の正規化アクションを実行した、前記所与のソース内の前記ホストコンピュータのカウントを計算すること、
を含む、請求項11に記載の方法。
【請求項25】
各ソースについて、前記特徴を計算するステップは、
前記所与のソースに属している前記ホストコンピュータ上で実行されている前記ソフトウェアアプリケーションによって実行された異なる正規化アクションのカウントを計算すること、
を含む、請求項11に記載の方法。
【請求項26】
各ソースについて、前記特徴を計算するステップは、
前記所与のソースに属している前記ホストコンピュータのカウントを計算すること、
を含む、請求項11に記載の方法。
【請求項27】
前記ホストコンピュータは、それぞれの名前を有している複数のソフトウェアアプリケーションを実行し、かつ、
前記方法は、さらに、
前記名前を正規化すること、を含み、
前記特定のソフトウェアアプリケーションに係る前記インスタンスは、同一の正規化された名前を有している前記ソフトウェアアプリケーションに係る前記インスタンスを含む、
請求項1に記載の方法。
【請求項28】
所与のホストコンピュータ上で所与のインスタンスによって実行された所与のアクションに対する前記情報を収集するステップは、
前記ホストコンピュータ上で実行されているエンドポイントエージェントによって、前記所与のインスタンスによって実行された前記所与のアクションを検出すること、
前記エンドポイントエージェントによって、前記所与のアクションに対する前記情報を抽出すること、
前記エンドポイントエージェントによって、前記抽出された情報を伝達すること、および、
前記プロセッサによって、前記伝達された情報を受信すること、
を含む、請求項1に記載の方法。
【請求項29】
装置であって、
ネットワークインターフェイスコントローラ(NIC)と、
1つ以上のプロセッサと、を含み、前記プロセッサは、
特定のソフトウェアアプリケーションに係るそれぞれのインスタンスを実行している複数のホストコンピュータを識別し、各所与のホストコンピュータにおける各所与のインスタンスは、前記ホストコンピュータによって、それぞれのストレージ装置からロードされたプログラム命令のセットを含み、
前記NICを介して前記ホストコンピュータから、実行している前記インスタンスによって実行されたアクションに対する情報を収集し、
前記複数のホストコンピュータから収集された前記情報に基づいて、特徴を計算し、
所与のインスタンスを良性のもの、または、疑わしいものとして分類するために、前記所与のインスタンスについての前記収集された情報を前記特徴と比較し、かつ、
前記所与のインスタンスを疑わしいものとして分類したときにのみ、前記所与のインスタンスに対してアラートを生成する、
ように構成されている、
装置。
【請求項30】
コンピュータプログラムであって、前記コンピュータプログラムは、コンピュータ命令を含み、非一時的コンピュータ可読媒体に保管されており、
前記コンピュータ命令は、プロセッサによって実行されると、前記コンピュータに、
特定のソフトウェアアプリケーションに係るそれぞれのインスタンスを実行している複数のホストコンピュータを識別し、各所与のホストコンピュータにおける各所与のインスタンスは、前記ホストコンピュータによって、それぞれのストレージ装置からロードされたプログラム命令のセットを含み、
前記NICを介して前記ホストコンピュータから、実行している前記インスタンスによって実行されたアクションに対する情報を収集し、
前記複数のホストコンピュータから収集された前記情報に基づいて、特徴を計算し、
所与のインスタンスを良性のもの、または、疑わしいものとして分類するために、前記所与のインスタンスについての前記収集された情報を前記特徴と比較し、かつ、
前記所与のインスタンスを疑わしいものとして分類したときにのみ、前記所与のインスタンスに対してアラートを生成する、
ようにさせる、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的に、コンピュータセキュリティおよびネットワークに関する。そして、特には、複数の企業における複数のホストコンピュータ上に配備されたソフトウェアアプリケーションに係る所与のインスタンスによって実行される異常アクション(anomalous action)を検出することに関する。
【背景技術】
【0002】
多くのコンピュータおよびネットワークシステムにおいては、セキュリティ脅威の絶えず増大する範囲を検出し、かつ、撃退するために、多層のセキュリティ装置およびソフトウェアが配備されている。最も基本的なレベルにおいて、コンピュータは、不正プログラムがコンピュータ上で実行されているのを防止するために、アンチウイルスソフトウェアを使用する。ネットワークレベルにおいて、侵入検出および防止システムは、マルウェアがネットワークを通じて拡散することを検出および防止するために、ネットワークトラフィックを分析し、かつ、制御する。
【0003】
上記の説明は、この分野における関連技術の一般的な概要として提示されているものであり、そして、それが含む情報のいずれかが本特許出願に対する先行技術を構成することを認めるものと解釈されるべきではない。
【発明の概要】
【0004】
本発明の一つの実施形態に従って、方法が提供される。本方法は、特定のソフトウェアアプリケーションに係るそれぞれのインスタンスを実行している複数のホストコンピュータを識別するステップであり、各所与のホストコンピュータにおける各所与のインスタンスは、前記ホストコンピュータによって、それぞれのストレージ装置からロードされたプログラム命令のセットを含む、ステップと、前記ホストコンピュータから、実行している前記インスタンスによって実行されたアクションに対する情報を収集するステップと、前記複数のホストコンピュータから収集された前記情報に基づいて、特徴を計算するステップと、所与のインスタンスを良性のもの、または、疑わしいものとして分類するために、プロセッサによって、前記所与のインスタンスについての前記収集された情報を前記特徴と比較するステップと、前記所与のインスタンスを疑わしいものとして分類したときにのみ、前記所与のインスタンスに対してアラートを生成するステップと、を含む。
【0005】
いくつかの実施形態において、前記情報は、アクションタイプおよびエンティティを含む。
【0006】
第1の情報の実施形態において、所与のアクションの前記アクションタイプは、プロセスを作成すること、または、注入することを含み、前記所与のアクションの前記エンティティは、プロセス名を有しているプロセスを含む。
【0007】
第2の情報実施形態において、所与のアクションの前記アクションタイプは、ドメインにアクセスすることを含み、前記所与のアクションの前記エンティティは、ドメイン名を含む。
【0008】
第3の情報の実施形態において、所与のアクションの前記アクションタイプは、インターネットプロトコル(IP)アドレスにアクセスすることを含み、
前記所与のアクションの前記エンティティは、IPアドレスを含む。
【0009】
第4の情報の実施形態において、所与のアクションの前記アクションタイプは、自律システム番号(ASN)アドレスにアクセスすることを含み、
前記所与のアクションの前記エンティティは、ASNを含む。
【0010】
第5の情報実施形態において、所与のアクションの前記アクションタイプは、共有ライブラリをロードすることを含み、前記所与のアクションの前記エンティティは、それぞれの名前を有している共有ライブラリを含む。
【0011】
第6の情報の実施形態において、所与のアクションの前記アクションタイプは、ファイルにアクセスすることを含み、前記所与のアクションの前記エンティティは、ファイル名を有しているファイルを含む。
【0012】
第7の情報の実施形態において、所与のアクションの前記アクションタイプは、レジストリ内のキーにアクセスすることを含み、前記所与のアクションの前記エンティティは、キー名を有しているレジストリキーを含む。
【0013】
第8の情報実施形態において、所与のアクションの前記アクションタイプは、オペレーティングシステムにシステムコールを伝達することを含み、前記所与のアクションの前記エンティティは、システムコール名を有しているシステムコールを含む。
【0014】
いくつかの実施形態において、前記ホストコンピュータは、複数のソース間に分散された第1ホストコンピュータを含み、前記ソース間に分散されたホストコンピュータのセットは、前記第1ホストコンピュータおよび追加のホストコンピュータを含む。前記方法は、さらに、前記エンティティを、正規化エンティティへと正規化するステップと、前記アクションのそれぞれについて、それぞれのアクションタイプ、および、前記アクションのうち1つについての正規化エンティティを含んでいる、対応する正規化アクションを定義するステップとを含む。
【0015】
第1の特徴の実施形態において、所与の特徴を計算するステップは、前記ソースのカウントを計算すること、を含む。
【0016】
第2の特徴の実施形態において、所与の特徴を計算するステップは、前記ソフトウェアアプリケーションの所与のインスタンスを実行している前記セット内の少なくとも1つのホストコンピュータを含む、前記ソースのカウントを計算することを含む。
【0017】
第3の特徴の実施形態において、各所与のアクションタイプについて、所与の特徴を計算するステップは、前記所与のアクションタイプを含む所与のアクションを実行した前記ソフトウェアアプリケーションに係る所与のインスタンスを実行している、前記セット内の前記ホストコンピュータのカウントを計算することを含む。
【0018】
第4の特徴の実施形態において、各所与のアクションタイプについて、所与の特徴を計算するステップは、前記所与のアクションタイプを含む所与のアクションを実行した前記セット内の少なくとも1つのホストコンピュータを含む、前記ソースのカウントを計算することを含む。
【0019】
第5の特徴の実施形態において、各所与の正規化アクションについて、所与の特徴を計算するステップは、前記所与の正規化アクションを実行した前記セット内の少なくとも1つのホストコンピュータを含む、前記ソースのカウントを計算することを含む。
【0020】
第6の特徴の実施形態において、所与の特徴を計算するステップは、別個の正規化アクションのカウントを計算することを含む。
【0021】
第7の特徴の実施形態において、所与のソースについて、所与の特徴を計算するステップは、前記所与のソースにおいて前記ホストコンピュータ上で実行されている前記ソフトウェアアプリケーションのインスタンスによって実行された別個の正規化アクションの第1カウントを計算すること、前記所与のソース以外の前記ソースそれぞれにおいて前記ホストコンピュータ上で実行されている前記ソフトウェアアプリケーションのインスタンスによって実行された別個の正規化アクションに係るそれぞれの第2カウントを計算すること、前記第2カウントの平均を計算すること、および、前記第1カウントを前記計算された平均と比較することを含む。
【0022】
第8の特徴の実施形態において、所与のアクションタイプそれぞれについて、所与の特徴を計算するステップは、前記所与のアクションタイプを含む所与のアクションを実行した、前記ソフトウェアアプリケーションに係る所与のインスタンスを実行している前記セット内の少なくとも1つのホストコンピュータを有している前記ソースのカウントを計算することを含む。
【0023】
第9の特徴の実施形態において、所与の正規化アクションそれぞれについて、所与の特徴を計算するステップは、前記所与の正規化アクションを実行した、前記ソフトウェアアプリケーションに係る所与のインスタンスを実行している前記セット内の少なくとも1つのホストコンピュータを有している前記ソースのカウントを計算することを含む。
【0024】
第10の特徴の実施形態において、所与の正規化アクションそれぞれについて、所与の特徴を計算するステップは、前記所与の正規化アクションを実行した、前記ソフトウェアアプリケーションに係る所与のインスタンスを実行している前記セット内の前記ホストコンピュータのカウントを計算することを含む。
【0025】
第11の特徴の実施形態において、所与のソースそれぞれについて、所与の特徴を計算するステップは、前記ソフトウェアアプリケーションに係る所与のインスタンスを実行している前記セット内の前記ホストコンピュータのカウントを計算することを含む。
【0026】
第12の特徴の実施形態において、所与のソースおよび所与の正規化アクションを含む各組合せについて、所与の特徴を計算するステップは、前記所与の正規化アクションを実行した、前記所与のソース内の前記ホストコンピュータのカウントを計算することを含む。
【0027】
第13の特徴の実施形態において、所与のソースおよび所与のアクションタイプを含む各組合せについて、所与の特徴を計算するステップは、前記所与のアクションタイプを含む所与の正規化アクションを実行した、前記所与のソース内の前記ホストコンピュータのカウントを計算することを含む。
【0028】
第14の特徴の実施形態において、各ソースについて、所与の特徴を計算するステップは、前記所与のソースに属している前記ホストコンピュータ上で実行されている前記ソフトウェアアプリケーションによって実行された異なる正規化アクションのカウントを計算することを含む。
【0029】
第15の特徴の実施形態において、各ソースについて、所与の特徴を計算するステップは、前記所与のソースに属している前記ホストコンピュータのカウントを計算することを含む。
【0030】
一つの実施形態において、前記ホストコンピュータは、それぞれの名前を有している複数のソフトウェアアプリケーションを実行する。前記方法は、さらに、前記名前を正規化することを含み、前記特定のソフトウェアアプリケーションに係る前記インスタンスは、同一の正規化された名前を有している前記ソフトウェアアプリケーションに係る前記インスタンスを含む。
【0031】
別の実施形態において、所与のホストコンピュータ上で所与のインスタンスによって実行された所与のアクションに対する前記情報を収集するステップは、前記ホストコンピュータ上で実行されているエンドポイントエージェントによって、前記所与のインスタンスによって実行された前記所与のアクションを検出すること、前記エンドポイントエージェントによって、前記所与のアクションに対する前記情報を抽出すること、前記エンドポイントエージェントによって、前記抽出された情報を伝達すること、および、前記プロセッサによって、前記伝達された情報を受信することを含む。
【0032】
本発明の一つの実施形態に従って、また、装置も提供される。本装置は、ネットワークインターフェイスコントローラ(NIC)と、1つ以上のプロセッサとを含む。前記プロセッサは、特定のソフトウェアアプリケーションに係るそれぞれのインスタンスを実行している複数のホストコンピュータを識別し、各所与のホストコンピュータにおける各所与のインスタンスは、前記ホストコンピュータによって、それぞれのストレージ装置からロードされたプログラム命令のセットを含み、前記NICを介して前記ホストコンピュータから、実行している前記インスタンスによって実行されたアクションに対する情報を収集し、前記複数のホストコンピュータから収集された前記情報に基づいて、特徴を計算し、所与のインスタンスを良性のもの、または、疑わしいものとして分類するために、前記所与のインスタンスについての前記収集された情報を前記特徴と比較し、かつ、前記所与のインスタンスを疑わしいものとして分類したときにのみ、前記所与のインスタンスに対してアラートを生成する、ように構成されている。
【0033】
本発明の一つの実施形態に従って、コンピュータソフトウェア製品が、追加的に提供さる。本製品は、プログラム命令が保管された、非一時的コンピュータ可読媒体を含む。本命令は、コンピュータによって読み取られると、コンピュータに、特定のソフトウェアアプリケーションに係るそれぞれのインスタンスを実行している複数のホストコンピュータを識別し、各所与のホストコンピュータにおける各所与のインスタンスは、前記ホストコンピュータによって、それぞれのストレージ装置からロードされたプログラム命令のセットを含み、前記NICを介して前記ホストコンピュータから、実行している前記インスタンスによって実行されたアクションに対する情報を収集し、前記複数のホストコンピュータから収集された前記情報に基づいて、特徴を計算し、所与のインスタンスを良性のもの、または、疑わしいものとして分類するために、前記所与のインスタンスについての前記収集された情報を前記特徴と比較し、かつ、前記所与のインスタンスを疑わしいものとして分類したときにのみ、前記所与のインスタンスに対してアラートを生成する、ようにさせる。
【図面の簡単な説明】
【0034】
本開示は、添付の図面を参照して、単なる例として、本明細書に記載されている。
図1図1は、本発明の一つの実施形態に従った、複数のネットワークにおけるホストコンピュータ上で実行されているソフトウェアアプリケーションによって実行される異常アクションを検出するために使用され得る、モデルを訓練し(train)、かつ、実行するように構成されたセキュリティサーバを概略的に示すブロック図である。
図2図2は、本発明の一つの実施形態に従った、所与のホストコンピュータに係る例示的なハードウェア、ソフトウェア、およびデータコンポーネントのブロック図である。
図3図3は、本発明の一つの実施形態に従った、例示的なセキュリティサーバのハードウェアおよびデータコンポーネントを示すブロック図である。
図4図4は、本発明の実施形態に従った、セキュリティサーバがアクションログに保管することができる例示的なデータコンポーネントを示すブロック図である。
図5図5は、本発明の一つの実施形態に従った、例示的なモデルを示すブロック図である。
図6図6は、本発明の一つの実施形態に従った、訓練データのセットに対してモデルを訓練する方法を概略的に示すフローチャートである。
図7図7は、本発明の一つの実施形態に従った、訓練データ内のアクションを分類するためにモデルを使用する方法を概略的に示すフローチャートである。
図8図8は、本発明の一つの実施形態に従った、ソフトウェアアプリケーションによって実行されるアクションをリアルタイムで分類するためにモデルを使用する方法を概略的に示すフローチャートである。
【発明を実施するための形態】
【0035】
企業が、データを保護するために採用することができるセキュリティの1つのレベルは、企業のネットワーク上に配備されるソフトウェアアプリケーションを、署名されたソフトウェアアプリケーションに制限することである。しかしながら、アプリケーションが署名される以前に、悪意のあるコードが所与のソフトウェアアプリケーションに挿入されるインスタンスが存在し得る。これらのインスタンスにおいて、ベンダは、所与の顧客においてサイバー攻撃を開始するために使用され得る悪意のあるコードを含む、ソフトウェアアプリケーションの署名されたバージョンを、企業顧客に対して、配布することができる。これらのサイバー攻撃は、ときどき、サプライチェーン攻撃として知られている。
【0036】
本発明の実施形態は、悪意のあるコードを含む署名されたソフトウェアアプリケーションを識別するための方法およびシステムを提供する。以下で説明されるように、特定のソフトウェアアプリケーションのそれぞれのインスタンスを実行している複数のホストコンピュータが識別され、各所与のホストコンピュータ上の各所与のインスタンスは、ホストコンピュータによって、それぞれのストレージ装置からロードされたプログラム命令のセットを含んでいる。実行しているインスタンスによって実行されるアクションに関する情報がホストコンピュータから収集され、そして、複数のホストコンピュータから収集された情報に基づいて、特徴が計算される。所与のインスタンスについて収集された情報は、所与のインスタンスを良性または疑わしいものとして分類するために、特徴と比較され、そして、所与のインスタンスが疑わしいとして分類されたときのみ、所与のインスタンスについてアラートが生成される。
【0037】
本発明の実施形態を実装するシステムは、数百の企業に配備されている数千のホストコンピュータ上で実行されている数十の異なるソフトウェアアプリケーションによって実行される数百万のアクションをモニタリングすることができる。この豊富な情報により、これらのシステムは、所与のアプリケーションが署名されている場合であっても、所与のアプリケーションに係る所与のインスタンスによって実行される異常な(そして、従って、疑わしい)アクションを識別することができる。
【0038】
システムの説明
図1は、本発明の一つの実施形態に従った、異常アクショ検出モデル22を訓練し、かつ、実行するように構成された、例示的なセキュリティサーバを概略的に示すブロック図である。以下で説明される実施形態において、セキュリティサーバ20は、複数のソース32に配備されているホストコンピュータ30上で実行しているソフトウェアアプリケーション28によって実行されるアクション26から収集された情報を保管するアクションログ24を分析することによって、モデル22を訓練するように構成されている。
【0039】
いくつかの実施形態において、ホストコンピュータ30のセットは、全てのソース32における全てのホストコンピュータ30を含み得る。各所与のソフトウェアアプリケーション28について、第1サブセットは、所与のソフトウェアアプリケーションそれぞれのインスタンスを実行しているホストコンピュータ(すなわち、全てのソース32のもの)を含み得る。そして、各所与のソース32は、所与のソフトウェアアプリケーションそれぞれのインスタンスを実行している所与のソースにおけるホストコンピュータを含むホストコンピュータそれぞれの第2サブセットを有し得る。
【0040】
いくつかの実施形態において、各所与のホストコンピュータ30は、所与のホストコンピュータ上で実行しているソフトウェアアプリケーション28によって実行されるアクション26を検出し、各所与の検出されたアクション26から情報を抽出し、そして、検出されたアクションについての抽出された情報をセキュリティサーバ20に伝達する、エンドポイントエージェント34に係るそれぞれのインスタンスを実行することができる。
【0041】
各ソース32は、それぞれのソース識別子(ID)36によって参照することができ、そして、ホストコンピュータを、(相互に、および)LAN38をインターネット42といったパブリックネットワークに結合する、ゲートウェイ40に対して結合しているローカルエリアネットワーク(LAN)38といったローカルデータネットワークを有する、組織または企業を含み得る。
【0042】
図1に示される構成において、ホストコンピュータ30は、インターネット40を介して、インターネットプロトコル(IP)アドレス46、ドメイン(名前)48、および、自律システム番号(ASN)50といった、それぞれの属性を有している1つ以上のリモートサーバ44(例えば、ウェブサーバ、CDNサーバ、等)と通信することができる。
【0043】
図2は、発明の一つの実施形態に従った、所与のホストコンピュータ300にける例示的なハードウェア、ソフトウェア、およびデータコンポーネントを示すブロック図である。所与のホストコンピュータは、ホストプロセッサ60、ホストメモリ62、ストレージ装置64、および、所与のホストコンピュータをそれぞれのLAN 38に結合する、ホストネットワークインターフェイスコントローラ(NIC)66を含み得る。
【0044】
いくつかの実施形態において、各ホストコンピュータ30は、それぞれのホストID 68を含み得る(または、割り当てられる)。例示的なホストIDは、これらに限定されるわけではないが、メディアアクセス制御(MAC)アドレス、および、ローカルIPアドレスを含む。
【0045】
ストレージ装置64は、典型的に、ファイル70のセットを保管する。いくつかの実施形態において、所与のファイル70は、それぞれのファイル署名72(例えば、計算されたハッシュ)、および、それぞれのファイル署名を生成したエンティティのアイデンティティを示すそれぞれのファイル署名ID 74を含み得る。各所与のファイル70は、それぞれのファイル名76、それぞれのファイルサイズ78、および、それぞれのファイルタイプ80を含んでいる。例示的なファイルタイプ80は、これらに限定されるわけではないが、実行可能ファイル、共有ライブラリ(例えば、DLL)、文書、画像、およびZIPTM(すなわち、圧縮されたもの)を含む。
【0046】
本明細書の実施形態において、所与のタイプ80を有している所与のファイル70は、それぞれのタイプ80によって参照され得る。例えば、それぞれのタイプ80が「実行可能(“executable”)」である所与のファイル70は、本明細書では所与の実行ファイル70と称され得る。そして、それぞれのタイプ80が「共有ライブラリ(“shared library”)」である所与のファイル70は、本明細書では所与のDLLファイル70と称され得る。
【0047】
いくつかの実施形態において、所与のホストコンピュータ30上で実行している所与のエンドポイントエージェント34は、それぞれのホストプロセッサが所与のファイルから読み取り、または書き込む、データを分析することによって、所与のファイル70についてファイルタイプを分類することができる。例えば、データが圧縮画像データを含む場合に、所与のエンドポイントエージェントは、ファイルタイプを画像ファイルタイプ(例えば、JPG)として分類することができる。
【0048】
図2に示される構成において、メモリ62は、オペレーティングシステム82、管理情報84、レジストリ86、エンドポイントエージェント34、および、それぞれのプロセス名90を有している複数のプロセス88を含む。いくつかの実施形態において、オペレーティングシステム82は、それぞれのシスコール名83を有しているシステムコールのセット(syscalls)81を含み得る。オペレーティングシステム82の一つの例は、米国ワシントン州レドモンドのマイクロソフト社によって製造された、WINDOWS(登録商標)である。エンドポイントエージェント34の一つの例は、米国カリフォルニア州95054サンタクララ、タンナーウェイ3000のパルアルトネットワークス社によって製造された、CORTEX XDRTMである。
【0049】
所与のホストコンピュータの動作を管理するために、プロセッサ60は、オペレーティングシステム82を実行することができる。レジストリ86は、オペレーティングシステムについて低レベル設定を保管する、それぞれのキー名93を有しているレジストリキー92のデータベースを含み得る。動作中に、オペレーティングシステム82は、所与のホストコンピュータを管理するために、キー92にアクセスする(すなわち、読み取るか、または、更新する)ことができる。
【0050】
所与のプロセス88は、プロセッサ100によって実行され得る、プログラム命令94のセットを含んでいる。所与のソフトウェアアプリケーション28の実行を開始するために、プロセッサ60は、所与の実行ファイル70(すなわち、それぞれのファイルタイプ78が「実行可能」である所与のファイル70)をロードし、そして、所与のプロセスとして、プログラム命令94の実行を開始することができる。
【0051】
いくつかの実施形態において、所与のプロセス88は、それぞれのプロセス署名96、および、それぞれのプロセス署名を生成した、エンティティのアイデンティティを示すそれぞれのプロセス署名ID 98を含み得る。
【0052】
図3は、本発明の一つの実施形態に従った、例示的なセキュリティサーバ20におけるハードウェアおよびデータコンポーネントを示すブロック図である。図3に示される構成において、セキュリティサーバ20は、サーバプロセッサ100、アクションログ24とモデル22を保管するサーバメモリ102、および、セキュリティサーバをインターネット42に結合するサーバNIC 104を含んでいる。
【0053】
いくつかの実施形態において、アクションログ24は、ログエントリ106のセットを含み、そして、モデル22は、特徴108のセットを含んでいる。ログエントリ106は、以下の図4を参照する記載において説明され、特徴108は、以下の図5を参照する記載において説明されている。
【0054】
プロセッサ60および100は、汎用中央処理装置(CPU)または専用組み込みプロセッサを含み、これらは、本明細書で説明される機能を実行するようにソフトウェアまたはファームウェアでプログラムされている。このソフトウェアは、例えば、ネットワークを介して、電子形式でホストコンピュータ30またはセキュリティサーバ22にダウンロードされ得る。追加的または代替的に、ソフトウェアは、光学、磁気、または電子メモリ媒体といった、有形の非一時的コンピュータ可読媒体に保管され得る。さらに、追加的または代替的に、プロセッサ60および100の機能の少なくともいくつかは、ハードワイヤードまたはプログラマブルデジタル論理回路によって実行され得る。
【0055】
例示的なメモリ62、102、および、ストレージ装置64は、ダイナミックランダムアクセスメモリ、不揮発性ランダムアクセスメモリ、ハードディスクドライブ、および、ソリッドステートディスクドライブを含んでいる。
【0056】
いくつかの実施形態において、プロセッサ60および90によって実行される本明細書で説明されるタスクは、複数の物理的、及び/又は、仮想コンピューティングデバイス間で分割され得る。他の実施形態において、これらのタスクは、マネージドクラウドにおいて実行され得る。
【0057】
図4は、本発明の実施形態に従った、プロセッサ100が所与のログエントリ106に保管することができる例示的なデータを示すブロック図である。本明細書の実施形態において、ログエントリ106は、アクション26と一対一の対応を有しており、そして、一旦、所与のホストコンピュータ39上で実行されている所与のエンドポイントエージェント34から、新しい所与のアクション26に関する情報を受信すると、プロセッサ100は、新しいログエントリ106を追加し、かつ、新しいログエントリに以下のような情報を投入(populate)することができる。
●ホストID 110.プロセッサ100は、ホストID 110に、所定のホストコンピュータのホストID 68を保管することができる。
●ソースID 112.上述のように、所与のホストコンピュータ30は、所与のソース32に配備される。プロセッサ100は、ソースID 112に、所与のソースのソースID 36を保管することができる。
●時間114.プロセッサ100は、時間114に、所与のアクションの日付および時間を保管することができる。
●完全(full)アプリケーション名116.所与のソフトウェアアプリケーション28のプログラム命令94が所与のアクションを実行した実施形態において、プロセッサ100は、完全アプリケーション名116に、プログラム命令を保管している実行ファイルのファイル名76を保管することができる。
●正規化アプリケーションID 118.以下で図6を参照する記載において説明される実施形態を使用して、プロセッサ100は、完全アプリケーション名116について正規化(normalized)アプリケーションIDを導出することができる。
●アクションタイプ120.以下は、所与のアクションについての情報を受信したことに応答して、プロセッサ100が、新しいログエントリに保管することができる例示的なアクションタイプ120である。
○プロセス作成.所与のホストコンピュータ上で実行されている所与のソフトウェアアプリケーション28は、新しいプロセス88を作成した。
○ドメインアクセス.所与のホストコンピュータ上で実行されている所与のソフトウェアアプリケーションが、所与のドメイン48にアクセスした。
○IPアドレスアクセス.所与のホストコンピュータ上で実行されている所与のソフトウェアアプリケーション28は、所与のIPアドレス46にアクセスした。
○ASNアクセス.所与のホストコンピュータ上で実行されている所与のソフトウェアアプリケーション28は、所与のASN50に属している所与のIPアドレス46にアクセスした。
○モジュールロード.所与のホストコンピュータ上で実行されている所与のソフトウェアアプリケーション28は、所与のDLLファイル70といった共有ライブラリをロードする。
○プロセス注入.所与のホストコンピュータ上で実行されている所与のソフトウェアアプリケーション28は、新しいプロセス88を注入し得る。
○ファイルアクセス.所与のホストコンピュータ上で実行されている所与のソフトウェアアプリケーション28は、所与のファイル70を作成し、そこから読み取り、そこに書き込み、または、削除し得る。
○レジストリアクセス.所与のホストコンピュータ上で実行されている所与のソフトウェアアプリケーション28は、レジストリ86内の所与のレジストリキー92にアクセスし得る。
○シスコール.所与のホストコンピュータ上で実行されている所与のソフトウェアアプリケーション28は、所与のシステムコール81(例えば、GetClipboardData)をオペレーティングシステム82に伝達し得る。
○リモートプロシージャコール(RPC).所与のホストコンピュータ上で実行されている所与のソフトウェアアプリケーション28は、RPCを伝達し得る。RPCの例は、以下で図6を参照する記載において説明されている。
●生アクション(raw action)エンティティ122.プロセッサ100は、生アクションエンティティ122に、所与のアクションが所与のソフトウェアアプリケーション28によって実行された「エンティティ名(“entity name”)」を保管することができる。例えば、
○アクションタイプ120がプロセス作成またはプロセス注入である場合に、プロセッサ100は、生アクションエンティティ122に、所与のアクションによって作成/注入されたプロセスのプロセス名を保管することができる。
○アクションタイプ120がドメインアクセスである場合に、プロセッサ100は、生アクションエンティティ122に、所与のアクションによってアクセスされたドメイン名を保管することができる。
○アクションタイプ120がIPアドレスアクセスである場合に、プロセッサ100は、生アクションエンティティ122に、所与のアクションによってアクセスされたIPアドレスを保管することができる。
○アクションタイプ120がASNアクセスである場合に、プロセッサ100は、生アクションエンティティ122に、所与のアクションによってアクセスされたIPアドレスのASNを保管することができる。
○アクションタイプ120がモジュールロードである場合に、プロセッサ100は、生アクションエンティティ122に、所与のアクションによってロードされたDLL(すなわち、共有ライブラリ)ファイルのファイル名を保管することができる。
○アクションタイプ120がファイルアクセスである場合に、プロセッサ100は、生アクションエンティティ122に、所与のアクションによってアクセスされたファイルのファイル名を保管することができる。
○アクションタイプ120がレジストリアクセスである場合に、プロセッサ100は、生アクションエンティティ122に、所与のアクションによってロードされたレジストリキーの名前/識別子を保管することができる。
○アクションタイプ120がシスコールである場合に、プロセッサ100は、生アクションエンティティ122に、所与のアクションによって呼び出されたシスコール名システムコールを保管することができる。
○アクションタイプ120が管理システムアクセス(例えば、オペレーティングシステム82内の設定(setting)にアクセスすること)である場合に、プロセッサ100は、生アクションエンティティ122に、管理情報84内の設定に対するクエリを保管することができる。
●正規化アクションエンティティ124.以下で図6を参照する記載において説明された実施形態を使用して、プロセッサ100は、生アクションエンティティ122について正規化アクションエンティティを導出することができる。
●正規化アクション126は、アクションタイプ120と正規化アクションエンティティ124との組合せを含んでいる。
【0058】
図5は、本発明の一つの実施形態に従った、セキュリティサーバがモデル22に保管することができる例示的なデータコンポーネントを示すブロック図である。特徴108のセットに加えて、モデル22は、また、特徴と一対一の対応を有している重み(weight)130のセットも含んでいる。図5において、特徴108および重み130は、識別番号に対して文字を付加することによって区別することができ、その結果、特徴は、特徴108A-108Oを含み、重みは130A-130Oを含む。
【0059】
本明細書の実施形態において、プロセッサ100は、所与の各ソフトウェアアプリケーション28について、所与のソフトウェアアプリケーションによって実行されるアクションのそれぞれのメトリック(metrics)を反映する特徴108を計算する。加えて、特徴は、以下を含むことができる。
●それぞれの特徴タイプ(図示なし)が「グローバル(“global”)」である特徴108(これらの特徴108は、本明細書ではグローバル特徴108と称される)。いくつかの実施形態において、プロセッサ100は、全てのログエントリ106を分析することによってグローバル特徴108を計算することができる。
●それぞれの特徴タイプが所与のソースID 36を含む特徴108(これらの特徴108は、本明細書ではローカル特徴108と称される)。いくつかの実施形態において、プロセッサ100は、それぞれのソースID 112が所与のソースID36と一致(match)するログエントリ106を分析することによって、ローカル特徴108を計算することができる。
【0060】
プロセッサ100がログエントリ106に基づいて計算することができる例示的なグローバル特徴108は、以下を含む。
●特徴108A:プロセッサ100は、別個の(すなわち、異なる)ソースID 112のカウント(count)を(すなわち、それぞれのソース32を参照して)計算することができる。
●特徴108B:各所与の正規化アプリケーションID 118について、プロセッサ100は、それぞれの正規化アプリケーションID 118が所与の正規化アプリケーションID 118と一致するログエントリ内の別個のソース32のカウントを含んでいる、それぞれの特徴108Bを計算することができる。
●特徴108C:所与の正規化アプリケーションID 118および所与の正規化アクション126を含む各組み合わせについて、プロセッサ100は、別個のホストID 110のカウントを含むそれぞれの特徴108Cを(すなわち、それぞれのホストコンピュータ30を参照して)計算することができる。
●特徴108D:各アクションタイプ120について、プロセッサ100は、別個のソースID 112のカウントを含んでいる、それぞれの特徴108Dを計算することができる。
●特徴108E:各正規化アクション126について、プロセッサ100は、別個のソースID 112のカウントを含んでいる、それぞれの特徴108Eを計算することができる。
●特徴108F:各所与の正規化アプリケーションID 118について、プロセッサ100は、別個の正規化アクション126(すなわち、所与の正規化アプリケーションIDによって参照されるソフトウェアアプリケーション28によって実行されるもの)のカウントを含んでいる、それぞれの特徴108Fを計算することができる。
いくつかの実施形態において、プロセッサ100は、少なくとも指定された数(例えば、5つ)の別個のソースID 112によって実行された(すなわち、ログエントリ106によって示されるような)、正規化アクション126についてだけ特徴108Fを計算することができる。
●特徴108G:所与の正規化されたアプリケーションID 118および所与のアクションタイプ120を含んでいる各組合せについて、プロセッサ100は、別個のソースID 112のカウントを含んでいる、それぞれの特徴108Gを計算することができる。
●特徴108H:所与の正規化されたアプリケーションID 118および所与の正規化アクション126を含んでいる各組み合わせについて、プロセッサ100は、別個のソースID 112のカウントを含んでいる、それぞれの特徴108Hを計算することができる。
●特徴108I:所与の正規化アプリケーションID 118および所与の正規化アクション126を含んでいる所与の組み合わせを含む各組み合わせについて、プロセッサ100は、別個のホストID 110のカウントを含んでいる、それぞれの特徴108Iを計算することができる。
【0061】
ログエントリ106に基づいて、プロセッサ100が計算することができる例示的なローカル特徴108は、以下を含んでいる。
●特徴108J:所与の別個のソースID 112および所与の正規化アプリケーションID 118を含む各組み合わせについて、プロセッサ100は、所与の正規化アプリケーションIDに対応するソフトウェアアプリケーションを含むホストID 110(すなわち、ホストコンピュータ30)のカウントを含むそれぞれの特徴108Iを計算することができる。いくつかの実施形態において、プロセッサ100は、所与のコンピュータが指定された期間(例えば、以前の30日)内にソフトウェアアプリケーション(すなわち、所与の正規化アプリケーションIDに対応しているもの)を実行した場合にのみ、所与のホストコンピュータ30をカウントに含めることができる。
●特徴108K:所与の別個のソースID 112および所与の正規化アクション126と含む各組み合わせについて、プロセッサ100は、所与の正規化アクションを実行したホストID 110(すなわち、それぞれのホストコンピュータ30を参照しているもの)のカウントを含むそれぞれの特徴108Jを計算することができる。
●特徴108L:所与の別個のソース32および所与のアクションタイプ120の各組み合わせについて、プロセッサ100は、所与のアクションタイプを実行したホストID 110のカウントを含むそれぞれの特徴108Kを計算することができる。
●特徴108M:所与の別個のソースID 112および所与の正規化アプリケーションID 118を含む各組み合わせについて、プロセッサ100は、別個の正規化アクション126のカウントを含むそれぞれの特徴108Lを計算することができる。
●特徴108N:所与の別個のソースID 112ごとに、プロセッサ100は、所与のソースに属している(すなわち、その中に配備されている)ホストID 110(すなわち、ホストコンピュータ30)のカウントを含むそれぞれの特徴108Mを計算することができる。
【0062】
上記で説明されたグローバル特徴およびローカル特徴108に加えて、特徴108は、ハイブリッド(すなわち、グローバル/ローカル)である特徴108Oを含み得る。所与の別個のソースID 112および別個の正規化アプリケーションID 118(すなわち、所与のソース32におけるホストコンピュータのうち1つ以上で実行されている所与のソフトウェアアプリケーション28を参照しているもの)を含む各組合せについて、プロセッサ100は、別個の正規化アクション126のそれぞれのカウントを計算することができる(すなわち、所与のソースにおける所与のホストコンピュータ30において所与のソフトウェアアプリケーションによって実行される)。各所与の計算されたカウントについて、プロセッサ100は、所与の計算されたカウント以外の全ての計算されたカウントを平均し、次いで、所与の計算されたカウントを計算された平均と比較することによって、それぞれの特徴108Oを計算することができる。これは、「ローカルプロファイルにわたりグローバルプロファイルを計算する(“computing the global profiles over the local profiles”)」と称することができる。例えば、以下のようである。
●計算されたカウントを、local_distinct_actionsとして参照する。
●それぞれの別個の正規化されたアプリケーションID 118について、プロセッサ100は、以下を計算する。
○AVG(local_distinct_actions)
○STDDEV(local_distinct_actions) (すなわち、他の全てのソースIDに対して)
●各別個のソースID 112に対して、プロセッサ100は、以下を計算する。
z-score=(local_distinct_actions)-
AVG(local_distinct_actions)/STDDEV(local_distinct_actions)
zスコアは、local_distinct_actionsがAVG(local_distinct_actions)よりも大きい標準偏差がいくつあるかを表している。
【0063】
上記で説明された特徴108A-108において、プロセッサ100は、指定された条件に一致するログエントリ106の数をカウントすることによってカウントを実行する。例えば、特徴108Nにおいて、指定された条件は、別個のソースおよび正規化アプリケーションIDの組み合わせを含む。
【0064】
以下で説明されるように、プロセッサ100は、アクションについて生成された特徴に基づいて、各アクションに対するスコアを計算することができる。上記の特徴において、
●特徴108C-Mについて、より低い値は、より高い値よりも疑わしい。特徴108について、より低い値は、より高い値よりも疑いが少ない。
いくつかの実施形態において、プロセッサ100は、各特徴108C-Mおよび108Oについて、0-1の間の値を計算することができる。ここで、0に近い値ほど、より疑わしく、かつ、1に近い値ほど、より疑いが少ない。
●プロセッサ100は、機能108C-Mおよび108Oに対してコンテキストを提供するために、機能108Bを使用することができる。例えば、特徴108Bが低い数である場合(例として、ソースの5%未満)、プロセッサ100は、特徴108C-Mおよび108Oの疑わしさを低減するために、特徴108Bを使用することができる。
●プロセッサ100は、他の特徴108を(例えば、上記で説明された0-1の範囲に)「正規化(“normalize”)」するために、特徴108Aおよび108Nを使用することができる。例えば、特徴108Dが700であり、かつ、特徴108Aが1000である場合に、プロセッサ100は、特徴108Dについて正規化された値を以下のように計算することができる。
Normalized 108D =700/1000 =0.7
【0065】
モデルの訓練および配備
図6は、本発明の一つの実施形態に従った、訓練データのセットに対してモデル22を訓練する方法を概略的に示すフローチャートである。本明細書で説明される実施形態において、訓練データはアクションログ24を含んでいる。
【0066】
ステップ140において、プロセッサ100は、複数のソース32に配備されているホストコンピュータ30においてそれぞれ実行されている複数のエンドポイントエージェント34から、ホストコンピュータ上で実行されているソフトウェアアプリケーションによって、それぞれの生アクションエンティティ122において実行されるアクション26のそれぞれのセットを収集する。
【0067】
ステップ142において、上記で説明された実施形態を使用して、プロセッサは、収集されたアクションからの情報を、アクションログ24における各ログエントリ106に保管する。
【0068】
ステップ144において、プロセッサ100は、ログエントリ106において、生のエンティティ122を正規化エンティティ124へ、アクション26を正規化アクション126へ、そして、ソフトウェアアプリケーション28の名前116を正規化アプリケーションID 118へと正規化する。上述のように、正規化アクション126は、アクションタイプ120および正規化アクションエンティティのそれぞれの組合せを含んでいる。
【0069】
所与のソフトウェアアプリケーション28の異なるインスタンスは、異なるビルドまたはバージョンを反映する異なる名前116を有し得る。ソフトウェアアプリケーション正規化の実施形態において、プロセッサ100は、全てのインスタンスにわたり共通の正規化アプリケーションID 118を決定するために、不必要な情報を除去することによって、アプリケーション名116を正規化することができる。例えば、プロセッサ100は、以下の完全アプリケーション名116
Company-App-Agent-x86_64-7.12.0-15.exe
Company-App-Agent-x86_64-7.13.0-15.exe
Company-App-Agent-x86_64-7.12.0-16.exe
のうちいずれかを、
companyappagent
へと、正規化することができ、
そして、companyappagentを正規化アプリケーションID 118に保管する。
【0070】
一つの実施形態において、所与のソフトウェアアプリケーションについての署名がそれぞれのファイル署名72を含む場合に、プロセッサ100は、ベンダ名(すなわち、所与のソフトウェアアプリケーションを提供または生成したベンダ)をそれぞれの正規化されたアプリケーションID 118に連結することによって、所与のソフトウェアアプリケーションのアプリケーション名を正規化することができる。追加的な実施形態において、プロセッサ100は、所与のソフトウェアアプリケーションの実行ファイル70についてのハッシュ値を計算することによって、所与のソフトウェアアプリケーションを正規化することができる。
【0071】
プロセス正規化の実施形態において、所与のアクションタイプ120が、所与のプロセス名90を有している新しいプロセス88を含むプロセス作成またはプロセス注入を含む場合に、プロセッサ100は、名前における任意の不必要な情報を除去することによって、プロセス名を正規化することができる。いくつかの実施形態において、所与のプロセスが、それぞれのプロセス署名96を含む場合に、プロセッサ100は、それぞれのプロセス署名ID 98をそれぞれの正規化エンティティ124に追加することによって、プロセス名を正規化することができる。
【0072】
ドメイン正規化の実施形態において、所与のアクションタイプ120は、所与のドメイン48へのドメインアクセスを含んでいる。この実施形態において、プロセッサ100は、各ドメイン48を、3個のセクションへと分割することができる。例えば、ドメイン「a.b.c.site.com」は、
●パブリックサフィックス「.com」
●メインドメイン「site」
●サブドメイン「a.b.c」
へと分割され得る。
【0073】
サブドメインは、たいてい、攻撃者によって制御される(attacker-controlled)ので、プロセッサ100は、パブリックサフィックスと連結されたメインドメイン(すなわち、「site.com」)に基づいて、この正規化を実行することができる。
【0074】
ASN正規化の実施形態において、所与のアクションタイプ120は、所与のIPアドレス46に対するアクセスを含んでいる。プロセッサ100が、所与のIPアドレスを、ジオロケーション(geolocation)を含む所与のASN50に対してマッピングすることができる場合に、サーバプロセッサは、所与のIPアドレスをジオロケーションに対して正規化することができる。
【0075】
ファイル正規化の実施形態において、所与のアクションタイプ120は、所与のファイル70のファイルアクセスを含んでいる。1つのファイル正規化の実施形態において、プロセッサ100は、それぞれのファイル名76から不要な情報を除去することによって所与のファイルを標準化するために、ソフトウェアアプリケーションの実施形態、および、上記で説明されたプロセス正規化の実施形態を使用することができる。他のファイル正規化の実施形態において、プロセッサ100は、所与のファイルを正規化するために、それぞれのファイルサイズ80及び/又はそれぞれのファイルタイプ78を使用することができる。
【0076】
RPC正規化の実施形態において、所与のアクションタイプ120はRPCコールを含んでいる。例えば、WINDOWSTMオペレーティングシステムは、システムデータをクエリする(query)ために、WINDOWS MANAGEMENT INSTRUMENTATIONTMクエリを使用する。WMITMクエリは、正当なアプリケーションと攻撃者の両方によって使用され、そして、クエリは、3個のセクション、すなわち、SELECT、FROM、およびWHEREへと分割され得る。WHEREセクションは、たいてい、冗長な情報を含むので、プロセッサ100はSELECTセクションおよびFROMセクションだけを使用することによって、クエリを正規化することができる。
【0077】
例えば、プロセッサ100は、以下のWMITMクエリを正規化するために、この実施形態を使用することができる。
SELECT ParentProcessId FROM win32_process
WHERE ProcessID='16236
to
SELECT ParentProcessId FROM win32_process
【0078】
レジストリ正規化の実施形態において、所与のアクションタイプ120は、所与のパスを有している所与のキー92に対するレジストリアクセスを含んでいる。一つのレジストリ正規化の実施形態において、プロセッサ100は、パス内の冗長で、かつ、ランダム化された情報を除去することによって、レジストリアクセスを正規化することができる。
【0079】
レジストリキー92グループのうちいくつかのグループは、他のものよりも頻繁に悪意のあるアクティビティのために使用される傾向がある。別のレジストリ正規化の実施形態において、プロセッサ100は、グループそれぞれに対してそれぞれの識別子を割り当て(すなわち、それぞれのグループが悪意のあるアクティビティに使用される傾向があるか否かを示す識別子)、そして、正規化のために識別子を使用することができる。
【0080】
シスコール正規化の実施形態において、所与のアクションタイプ120がシスコールを含む場合に、プロセッサ100は、シスコール81をシスコール名83に正規化することができる(すなわち、シスコール81内にパラメータを含まない)。
【0081】
フローチャートに戻ると、ステップ146において、上記で説明された実施形態を使用して、プロセッサ100は、ローカル特徴およびグローバル特徴108を計算するために、アクションログ24(ここでは、正規化アプリケーションID 118、正規化エンティティ124、および正規化アクション126を含む)を分析する。本明細書の実施形態において、アクションログ24は、プロセッサ100がホストコンピュータ30から収集する情報(例えば、ホストID 110、ソースID 112、時間114、完全アプリケーション名116、アクションタイプ120、および生アクションエンティティ122)、並びに、サーバプロセッサによって正規化された情報(例えば、正規化アプリケーション名118、正規化アクションエンティティ124、および正規化アクション126)を含んでいる。
【0082】
ステップ148において、プロセッサ100は、計算されたローカル特徴およびグローバル特徴をモデル22に保管し、そして、方法は終了する。
【0083】
図7は、本発明の一つの実施形態に従った、アクションログ24内の正規化アクション126を分類するためにモデルを使用する方法を概略的に示すフローチャートである。
【0084】
ステップ150において、プロセッサ100は、アクションログ24内の第1ログエントリ106を選択する。選択されたログエントリは、所与の正規化アプリケーションID 118および所与の正規化アクション126を含んでいる。
【0085】
ステップ152において、プロセッサ100は、所与の正規化アクションを分析するためにサーバプロセッサが使用することができる、ローカル特徴およびグローバル特徴108のセットを識別する。ログエントリ106内の正規化アクション126を分析するとき、プロセッサ100は、以下を使用し得る。
●全ての正規化アクションについて1つ以上の第1所与の特徴108(例えば、特徴108A)。
●所与の正規化されたアプリケーションIDのみに基づく1つ以上の第2所与の特徴108(例えば、特徴108B)。
●所与の正規化アクションのみに基づく1つ以上の第3所与の特徴108(例えば、特徴108L)。
●所与の正規化されたアプリケーションIDと所与の正規化アクションとの組み合わせに基づく1つ以上の第4所与の特徴108(例えば、特徴108C)。
【0086】
ステップ154において、プロセッサ100は、所与の正規化アクションを良性または疑わしいもののいずれかとして分類するように、識別された特徴を所与の正規化アクションに適用する。以下の実施例において、プロセッサ100は、識別された特徴に基づいてスコアを計算し、そして、計算されたスコアに基づいて分類を決定することができる。この実施例において、0-1のスコア範囲より低いスコアは、より疑わしいものであり、そして、プロセッサ100は、分類を決定するための閾値を設定することができる(例えば、0.3未満のスコアは、所与の正規化アクションが疑わしいことを示すことができ、そして、0.3以上のスコアは、所与の正規化アクションが良性であることを示すことができる)。
【0087】
スコアについて、重要でない要因(例えば、異なるソース32の数、異なるホストコンピュータ30の数、および、異なるソフトウェアアプリケーション28の数)によって影響されないようにするために、プロセッサ100は、識別された特徴を[0,1]の範囲に正規化するように、各識別された特徴108を正規化することができる。例えば、プロセッサ100は、以下のステップを実行することができる。
●正規化された特徴(Fi)を得るために、各特徴(Fi)(すなわち、特徴108)をその「最大値(“maximum value”)」(Mi)で除算する。
○大きな数をスケールダウンするために、分子および分母の両方をログ(log)する。
○オーバーフィッティングを回避し、かつ、結果を安定化するようにデータをビンに入れる(bin)ために、ログの結果を切り捨てる。
●単一のスコアを得るために、正規化された特徴の加重平均を計算する。各特徴は、異なる重み(Wi)値(すなわち、重み130)を有している。
【数1】
●スコアを計算する。
【数2】
【0088】
いくつかの実施形態において、スコアを計算することは、プロセッサ100が、正規化アクションを良性、または、異常、従って、疑わしいもののいずれかとして分類するように、アクション正規化アクションを識別された特徴と比較することを可能にする。
【0089】
ステップ156において、プロセッサ100が(すなわち、上記で説明された実施形態を使用して)所与の正規化アクションを疑わしいものとして分類した場合には、ステップ158において、サーバプロセッサは、所与の正規化されたアプリケーションIDに対応しているソフトウェアアプリケーションのインスタンスについてアラートを生成することができる。
【0090】
ステップ160において、プロセッサ100は、アクションログ24において非選択(non-selected)ログエントリ106が存在するか否かを判定する。アクションログ24内に非選択ログエントリ106が存在する場合には、ステップ162において、プロセッサ100は、アクションログ内の次のログエントリ106を選択し、そして、方法は終了する。
【0091】
ステップ160に戻って、アクションログ24に非選択ログエントリ106が存在しない場合に、方法は終了する。
【0092】
ステップ156に戻って、プロセッサ100が所与の正規化アクションを良性として分類した場合に、方法はステップ162に進む。
【0093】
図8は、本発明の一つの実施形態に従った、アクション26のリアルタイム分類を実行するためにモデルを使用する方法を概略的に示すフローチャートである。
【0094】
ステップ170において、プロセッサ100は、所与のホストコンピュータ30上で実行されている所与のエンドポイントエージェント34から、所与のソフトウェアアプリケーション28によって所与の生アクションエンティティ122において実行される新しいアクション26の情報を受信する。
【0095】
ステップ172において、上述の実施形態を使用して、プロセッサ100は、新しいログエントリ106を作成し、そして、ホストID 110、ソースID 112、時間114、完全アプリケーション名116、正規化アプリケーションID 118、アクションタイプ120、生アクションエンティティ122、正規化エンティティ124、および正規化アクション126を、新しいログエントリに投入する。
【0096】
ステップ174において、プロセッサ100は、上述の実施形態を使用して、サーバプロセッサが新しい正規化アクションを分析するために使用することができる、ローカル特徴およびグローバル特徴108のセットを識別する。
【0097】
ステップ176において、プロセッサ100は、新しい正規化アクションを良性または疑わしいもののいずれかとして分類するように、新しい正規化アクションに対して識別された特徴を適用するために、上記で説明された実施形態を使用する。
【0098】
ステップ178において、プロセッサ100が新しい正規化アクションを疑わしいものとして分類した場合には、ステップ180において、サーバプロセッサは、新しい正規化されたアプリケーションIDに対応しているソフトウェアアプリケーションのインスタンスについてアラートを生成することができる。
【0099】
ステップ182において、プロセッサ100は、新しいログエントリ内の情報を用いて特徴108を更新し、そして、方法は終了する。いくつかの実施形態において、プロセッサ100は、新しいログエントリ106内の情報を用いて特徴108を周期的に(例えば、24時間毎に1回)(すなわち、以前の更新から)更新することができる。
【0100】
ステップ178に戻って、プロセッサ100が、新しい正規化アクションを良性として分類した場合に、方法はステップ182に進む。
【0101】
上述の実施形態は、実施例として引用されていること、および、本発明は、上記で、特に示され、かつ、説明されたものに限定されないことが理解されるであろう。むしろ、本発明の範囲は、上記で説明された様々な特徴の組み合わせ及びサブコンビネーションの両方、並びに、前述の説明を読めば当業者には思い浮かぶであろうし、かつ、先行技術には開示されていない、それらの変形および修正を含んでいる。
図1
図2
図3
図4
図5
図6
図7
図8
【国際調査報告】