(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-20
(54)【発明の名称】メタパス近傍サンプリングおよび対照学習を使用するグラフ・ニューラル・ネットワーク(GNN)の訓練
(51)【国際特許分類】
G06F 21/55 20130101AFI20240912BHJP
【FI】
G06F21/55 320
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024517447
(86)(22)【出願日】2022-07-25
(85)【翻訳文提出日】2024-05-09
(86)【国際出願番号】 IB2022056829
(87)【国際公開番号】W WO2023042000
(87)【国際公開日】2023-03-23
(32)【優先日】2021-09-20
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】シー、ドンドン
(72)【発明者】
【氏名】シュー、シャオクイ
(72)【発明者】
【氏名】エイクホルト、ケヴィン
(72)【発明者】
【氏名】ジャン、ジヨン
(57)【要約】
コンピューティング・システム内の異常な挙動を検出する方法は、メタパス・サンプリングを使用して1つまたは複数の異種グラフから導出された正のサンプルのセットおよび負のサンプルのセットに対照表現学習を適用することにより、教師なし方式でグラフ・ニューラル・ネットワーク(GNN)を訓練することによって開始する。訓練に続いて、システムによって生成されたイベントから導出された時間グラフが受け取られる。GNNを使用して、時間グラフを、ベクトル空間内のベクトル表現に埋め込む。また、訓練されたGNNを使用して、攻撃パターン・グラフのセットを、ベクトル空間内の対応するベクトル表現に埋め込む。異常検出のために、時間グラフに対応する表現が、攻撃パターン・グラフに対応する表現と比較される。1つの実施形態では、比較は、ファジー・パターン・マッチング・アルゴリズムを使用して実装される。ファジー・マッチが見つかった場合、時間グラフがコンピューティング・システム上の潜在的な攻撃に関連するという報知が出力される。
【特許請求の範囲】
【請求項1】
コンピューティング・システム内の異常な挙動を検出する方法であって、
メタパス・サンプリングを使用して1つまたは複数の異種グラフから導出された正のサンプルのセットおよび負のサンプルのセットに対照表現学習を適用することにより、教師なし方式でグラフ・ニューラル・ネットワーク(GNN)を訓練することと、
訓練に続いて、システムによって生成されたイベントから導出された時間グラフを受け取ることと、
前記訓練されたGNNを使用して、前記時間グラフを表現に埋め込むことと、
前記表現を、前記訓練されたGNNによって生成され、1つまたは複数のパターン・グラフに対応する、1つまたは複数の表現のセットと比較することと、
前記比較に基づいて、前記時間グラフが前記コンピューティング・システム内の潜在的な異常な挙動に関連するという報知を出力することと、を含む方法。
【請求項2】
メタパス・サンプリングが、前記異種グラフのうち1つの中のメタパスを特定し、メタパスは、ソース・ノード・タイプをターゲット・ノード・タイプに接続する一続きのエッジである、請求項1に記載の方法。
【請求項3】
前記メタパス・サンプリングが、正のサンプルのペア間の表現空間における埋め込み距離を最小にし、負のサンプルのペア間の前記表現空間における埋め込み距離を最大にする、請求項1に記載の方法。
【請求項4】
メタパス・サンプリングは、指定されたノードを基準として前記異種グラフの1つをトラバースして、前記指定されたノードと共通のノード・タイプを有する1つまたは複数のノードに到達することによって前記正のサンプルを生成し、前記指定されたノードと異なるノード・タイプを有するノードを無作為に選定することによって前記負のサンプルを生成する、請求項1に記載の方法。
【請求項5】
前記対照表現学習が、損失関数L=-log(S
pos)-log(1-S
neg)を実装し、S
posは前記正のサンプルのセットであり、S
negは前記負のサンプルのセットである、請求項1に記載の方法。
【請求項6】
前記表現がベクトルであり、表現を比較することがファジー・パターン・マッチを使用する、請求項1に記載の方法。
【請求項7】
前記時間グラフから部分グラフのセットを導出することと、
前記部分グラフのセットの各部分グラフをベクトル表現に埋め込むことと、
をさらに含み、
前記比較することが、ある部分グラフに対応する各ベクトル表現を、パターン・グラフに対応するベクトル表現と比較する、請求項1に記載の方法。
【請求項8】
装置であって、
プロセッサと、
前記プロセッサによって実行されるコンピュータ・プログラム命令を保持しているコンピュータ・メモリと、を備え、前記コンピュータ・プログラム命令は、コンピュータ・システム内の異常な挙動を検出するように構成され、前記コンピュータ・プログラム命令は、
メタパス・サンプリングを使用して1つまたは複数の異種グラフから導出された正のサンプルのセットおよび負のサンプルのセットに対照表現学習を適用することにより、教師なし方式でグラフ・ニューラル・ネットワーク(GNN)を訓練し、
訓練に続いて、システムによって生成されたイベントから導出された時間グラフを受け取り、
前記訓練されたGNNを使用して、前記時間グラフを表現に埋め込み、
前記表現を、前記訓練されたGNNによって生成され、1つまたは複数のパターン・グラフに対応する、1つまたは複数の表現のセットと比較し、
前記比較に基づいて、前記時間グラフが前記コンピューティング・システム内の潜在的な異常な挙動に関連するという報知を出力する
ように構成されたプログラム・コードを含む、装置。
【請求項9】
メタパス・サンプリングが、前記異種グラフのうち1つの中のメタパスを特定するように構成されたコンピュータ・プログラム・コードを含み、メタパスは、ソース・ノード・タイプをターゲット・ノード・タイプに接続する一続きのエッジである、請求項8に記載の装置。
【請求項10】
前記メタパス・サンプリングが、正のサンプルのペア間の表現空間における埋め込み距離を最小にし、負のサンプルのペア間の前記表現空間における埋め込み距離を最大にする、請求項8に記載の装置。
【請求項11】
メタパス・サンプリングは、指定されたノードを基準として前記異種グラフの1つをトラバースして、前記指定されたノードと共通のノード・タイプを有する1つまたは複数のノードに到達することによって前記正のサンプルを生成し、前記指定されたノードと異なるノード・タイプを有するノードを無作為に選定することによって前記負のサンプルを生成するコンピュータ・プログラム・コードを含む、請求項8に記載の装置。
【請求項12】
前記対照表現学習が、損失関数L=-log(S
pos)-log(1-S
neg)を実装し、S
posは前記正のサンプルのセットであり、S
negは前記負のサンプルのセットである、請求項8に記載の装置。
【請求項13】
前記表現がベクトルであり、表現を比較するように構成された前記コンピュータ・プログラム・コードが、ファジー・パターン・マッチング・アルゴリズムを実装するコンピュータ・プログラム・コードを含む、請求項8に記載の装置。
【請求項14】
前記コンピュータ・プログラム・コードが、
前記時間グラフから部分グラフのセットを導出し、
前記部分グラフのセットの各部分グラフをベクトル表現に埋め込む
ようにさらに構成され、
前記コンピュータ・プログラム・コードは、ある部分グラフに対応する各ベクトル表現を、パターン・グラフに対応するベクトル表現と比較するようにさらに構成される、請求項8に記載の装置。
【請求項15】
データ処理システムで使用するための非一過性コンピュータ可読媒体内のコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品がコンピュータ・プログラム命令を保持しており、前記コンピュータ・プログラム命令は、前記データ処理システムによって実行されたときに、コンピュータ・システム内の異常な挙動を検出するように構成され、前記コンピュータ・プログラム命令が、
メタパス・サンプリングを使用して1つまたは複数の異種グラフから導出された正のサンプルのセットおよび負のサンプルのセットに対照表現学習を適用することにより、教師なし方式でグラフ・ニューラル・ネットワーク(GNN)を訓練し、
訓練に続いて、システムによって生成されたイベントから導出された時間グラフを受け取り、
前記訓練されたGNNを使用して、前記時間グラフを表現に埋め込み、
前記表現を、前記訓練されたGNNによって生成され、1つまたは複数のパターン・グラフに対応する、1つまたは複数の表現のセットと比較し、
前記比較に基づいて、前記時間グラフが前記コンピューティング・システム内の潜在的な異常な挙動に関連するという報知を出力する
ように構成されたプログラム・コードを含む、コンピュータ・プログラム製品。
【請求項16】
メタパス・サンプリングが、前記異種グラフのうち1つの中のメタパスを特定するように構成されたコンピュータ・プログラム・コードを含み、メタパスは、ソース・ノード・タイプをターゲット・ノード・タイプに接続する一続きのエッジである、請求項15に記載のコンピュータ・プログラム製品。
【請求項17】
前記メタパス・サンプリングが、正のサンプルのペア間の表現空間における埋め込み距離を最小にし、負のサンプルのペア間の前記表現空間における埋め込み距離を最大にする、請求項15に記載のコンピュータ・プログラム製品。
【請求項18】
メタパス・サンプリングは、指定されたノードを基準として前記異種グラフの1つをトラバースして、前記指定されたノードと共通のノード・タイプを有する1つまたは複数のノードに到達することによって前記正のサンプルを生成し、前記指定されたノードと異なるノード・タイプを有するノードを無作為に選定することによって前記負のサンプルを生成するコンピュータ・プログラム・コードを含む、請求項15に記載のコンピュータ・プログラム製品。
【請求項19】
前記対照表現学習が、損失関数L=-log(S
pos)-log(1-S
neg)を実装し、S
posは前記正のサンプルのセットであり、S
negは前記負のサンプルのセットである、請求項15に記載のコンピュータ・プログラム製品。
【請求項20】
前記表現がベクトルであり、表現を比較するように構成された前記コンピュータ・プログラム・コードが、ファジー・パターン・マッチング・アルゴリズムを実装するコンピュータ・プログラム・コードを含む、請求項15に記載のコンピュータ・プログラム製品。
【請求項21】
前記コンピュータ・プログラム・コードが、
前記時間グラフから部分グラフのセットを導出し、
前記部分グラフのセットの各部分グラフをベクトル表現に埋め込む
ようにさらに構成され、
前記コンピュータ・プログラム・コードは、ある部分グラフに対応する各ベクトル表現を、パターン・グラフに対応するベクトル表現と比較するようにさらに構成される、請求項15に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、全般的にコンピュータ・ネットワークおよびシステム・セキュリティに関し、詳細には、ユーザ挙動を特徴付け、判別するための技術に関する。
【背景技術】
【0002】
サイバー脅威ハンティングは、システム/ネットワーク活動を監視し、現在の活動が悪意のあるものか無害なものであるかを判定する、能動的な防御技術である。これらの技術は通例、グラフに基づく自動化を用いる。そのような自動化されたアプローチでは、脅威の発見が、グラフ計算問題に変形される。詳細には、セキュリティ・ログ、トレース、およびアラートが、増大し続けるグラフ(またはそのようなグラフのセット)とみなされる。グラフは、無害な活動と悪意ある活動を含む、監視されるシステムの履歴を、相互に接続されたエンティティおよびイベントとして記録する。すると、脅威の発見は、脅威または攻撃を表すその中の部分グラフを特定するグラフ計算問題になる。
【0003】
現実には、サイバー脅威ハンティングの主な課題の1つは、いかにして多数のグラフ(すなわち、システム/ネットワーク活動)をいくつかの予め定められたグラフ・パターン(すなわち、悪意ある活動パターン)と効率的に比較するかということである。近年、グラフ・ニューラル・ネットワーク(GNN)を用いたいくつかの深層学習技術が開発され、この問題に応用されている。そのような研究には、言語のモデル化方法を使用して、グラフのランダム・ウォークを文と考えることによってグラフ・ノードごとに潜在表現を学習するDeepwalk、サンプル近傍ノードのセットからの特徴を集約することを通じて構成的学習方式でノード埋め込みを学習するGraphSage、および、メタパスレベルの階層的アテンションを用いて、教師あり学習の設定でノード埋め込みを学習する異種グラフ・アテンション・ネットワーク(HAN:Heterogeneous Graph Attention Network)がある。しかし、DeepwalkとGraphSageは、隣接するノード同士が類似する同種グラフにしか機能しない。HANは異種グラフに機能するが、このアプローチは教師あり学習の設定でしか適用することができない。
【0004】
多くの現実世界の用途において、データのストリームから生成されるグラフは、多数のタイプのノードとエッジを含み、構造が複雑であり、しばしば高水準のセマンティクスを欠いている。さらに、異種グラフの隣接ノードは類似していない。よって、グラフ・ニューラル・ネットワーク(GNN)が教師なし学習の設定でそのような異種グラフの潜在表現を学習することは非常に難しい。
【0005】
本明細書の技術はこの問題に対処する。
【発明の概要】
【0006】
本明細書の技術は、対照表現学習を使用する、異種グラフに対する教師なし学習手法を提供する。本明細書のアプローチは、「メタパス」近傍間の類似する表現、および非メタパス表現間の類似しない表現を促進し、メタパスは、異種グラフ内でソース・ノード・タイプをターゲット・ノード・タイプに接続する一続きのエッジである。
【0007】
このアプローチによれば、コンピューティング・システム内の異常な挙動を検出する方法は、メタパス・サンプリングを使用して1つまたは複数の異種グラフから導出された正のサンプルのセットおよび負のサンプルのセットに対照表現学習を適用することにより、教師なし方式でグラフ・ニューラル・ネットワーク(GNN)を訓練することによって開始する。訓練に続いて、システムによって生成されたイベントから導出された時間グラフが受け取られる。GNNを使用して、時間グラフを、ベクトル空間内のベクトル表現に埋め込む。また、訓練されたGNNを使用して、攻撃パターン・グラフのセットを、ベクトル空間内の対応するベクトル表現に埋め込む。異常検出のために、時間グラフに対応する表現が、攻撃パターン・グラフに対応する表現と比較される。1つの実施形態では、比較は、ファジー・パターン・マッチング・アルゴリズムを使用して実装される。ファジー・マッチが見つかった場合、時間グラフがコンピューティング・システム内の異常な挙動(例えば、潜在的な攻撃)に関連するという報知が出力される。次いで、1つまたは複数の緩和措置または他の改善措置が取られてよい。好ましい実施形態では、部分グラフのセットが時間グラフから導出され、各部分グラフは、GNNによってベクトル表現に埋め込まれる。次いで、部分グラフをパターン・グラフと比較することにより、ファジー・マッチングがベクトル表現に対して実施される。
【0008】
上記は、本主題のより多くの関連する特徴のうちいくつかを概説した。これらの特徴は、単に例示的なものと解釈すべきである。開示される主題を異なる形で適用することにより、または主題を後に説明されるように変更することにより、多くの他の有益な結果を達成することができる。
【0009】
開示される主題およびその利点をより完全に理解するために、次いで添付図面と併せて以下の説明が参照される。
【図面の簡単な説明】
【0010】
【
図1】例示的実施形態の例示的態様が実施され得る分散データ処理環境の例示的ブロック図である。
【
図2】例示的実施形態の例示的態様が実施され得るデータ処理システムの例示的ブロック図である。
【
図3】本開示の技術が実施され得るセキュリティ・インテリジェンス・プラットフォームの図である。
【
図4】本開示の技術が実施され得る高度持続的脅威(APT:AdvancedPersistent Threat)プラットフォームの図である。
【
図5】認知サイバーセキュリティ・インテリジェンス・センターを使用してエンドポイント・マシンを管理し、本開示の技術が実施され得る、動作環境の図である。
【
図6】代表的な悪意ある挙動グラフ抽象化、およびそのグラフ抽象化とマッチングされるいくつかのプロセス間活動グラフを示す図である。
【
図7】エンドポイントにおいてエンティティ間の活動を監視することにより構築される代表的なプロセス間グラフ、およびどのように本明細書の技術によるエンドポイント保護システムによって様々なマッチング技術がそのグラフに対して実行されるかを示す図である。
【
図8】エンドポイント・プロセス間活動抽出およびパターン・マッチング・システムの一実装の図である。
【
図9】ホスト・レベルの活動についての代表的な活動グラフの図である。
【
図10】ネットワーク・レベルの活動のセットについての代表的な活動グラフの図である。
【
図11】プロセス・レベルの活動のセットについての代表的な活動グラフの図である。
【
図12】アラートの報告に応答して関係する挙動の意図を特定するように動作する、本開示による自動化された方法を示す図である。
【
図13】本開示によるメタパス近傍グラフ構成の一例の図である。
【
図14】異種グラフから導出された部分グラフを埋め込んでベクトル表現を生成するようにグラフ・ニューラル・ネットワーク(GNN)を訓練することを示す図である。
【
図15】複数の部分グラフが、訓練されたGNNによって処理されてベクトル表現にされ、それら表現を攻撃パターンのセットのベクトル表現に対してファジー・マッチングするのを容易にする、本開示のサイバー・ハンティング技術を示す図である。
【
図17】移動する畳み込みフィルタを使用して、
図16に示される時間グラフの部分グラフから情報を抽出するためのプロセスを図式的に示す図である。
【発明を実施するための形態】
【0011】
以下に説明されるように、本明細書の技術は、機械学習を利用して、挙動に基づくマルウェア検出を提供するために使用する、システム・イベントの意味的モデルを導出する。通例、機械学習アルゴリズムおよび関連する機構は、1つまたは複数のコンピューティング・マシンで実行されるソフトウェア、例えば1つまたは複数のコンピュータ・プログラム、として実行される。背景として、以下に、学習プロセスを実行し、導出されたシステム・イベント・モデルを使用するために利用されてよい代表的なコンピューティング・マシンおよびシステムを説明する。いくつかの実行環境(
図3~
図5)についても説明する。
【0012】
ここで図面、特に
図1~
図2を参照すると、本開示の例示的実施形態が実施され得るデータ処理環境の例示的な図が提供されている。
図1~
図2は例示的なものに過ぎず、開示される主題の態様または実施形態が実装され得る環境に関する制限を主張するものでも示唆するものでもないことが認識されるべきである。本発明の範囲から逸脱することなく、示される環境への多くの変更がなされ得る。
【0013】
ここで図面を参照すると、
図1は、例示的実施形態の態様が実施され得る例示的分散データ処理システムの絵画的表現を示している。分散データ処理システム100は、例示的実施形態の態様が実施され得るコンピュータのネットワークを含んでよい。分散データ処理システム100は、少なくとも1つのネットワーク102を含んでおり、これは、分散データ処理システム100内で共に接続された様々なデバイスおよびコンピュータ間の通信リンクを提供するために使用される媒体である。ネットワーク102は、配線、ワイヤレス通信リンク、または光ファイバー・ケーブルなどの接続を含んでよい。
【0014】
示される例では、サーバ104およびサーバ106は、記憶ユニット108と共にネットワーク102に接続されている。加えて、クライアント110、112、および114も、ネットワーク102に接続されている。これらのクライアント110、112、および114は、例えば、パーソナル・コンピュータ、ネットワーク・コンピュータ等であってよい。示された例では、サーバ104は、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータを、クライアント110、112、および114に提供する。クライアント110、112、および114は、示された例においてサーバ104に対するクライアントである。分散データ処理システム100は、図示されない追加的なサーバ、クライアント、および他のデバイスを含んでよい。
【0015】
示された例では、分散データ処理システム100はインターネットであり、ネットワーク102は、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)のプロトコル・スイートを使用して互いと通信するネットワークおよびゲートウェイの世界規模の集合を表す。インターネットの核にあるのは、主要ノードまたはホスト・コンピュータ間の高速データ通信回線のバックボーンであり、データおよびメッセージを回送する何千もの商業、政府、教育、およびその他のコンピュータ・システムからなる。無論、分散データ処理システム100は、いくつかの異なるタイプのネットワーク、例えば、イントラネット、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)等、を含むように実装されてもよい。上で述べたように、
図1は、開示される主題の種々の実施形態についてのアーキテクチャ上の制限としてではなく、例として意図され、したがって、
図1に示される特定の要素は、本発明の例示的実施形態が実装され得る環境に関して制限的なものとみなされるべきではない。
【0016】
次いで
図2を参照すると、例示的実施形態の態様が実施され得る例示的データ処理システムのブロック図が示されている。データ処理システム200は、本発明の例示的実施形態のためのプロセスを実装するコンピュータ使用可能コードまたは命令が位置し得る、
図1のクライアント110などのコンピュータの一例である。
【0017】
次いで
図2を参照すると、例示的実施形態の態様が実施され得る例示的データ処理システムのブロック図が示されている。データ処理システム200は、例示的実施形態のためのプロセスを実装するコンピュータ使用可能プログラム・コードまたは命令が位置し得る、
図1のサーバ104またはクライアント110などのコンピュータの例である。この説明例では、データ処理システム200は、通信ファブリック202を含み、これはプロセッサ・ユニット204、メモリ206、永続ストレージ208、通信ユニット210、入出力(I/O)ユニット212、およびディスプレイ214間の通信を提供する。
【0018】
プロセッサ・ユニット204は、メモリ206にロードされ得るソフトウェアの命令を実行する働きをする。プロセッサ・ユニット204は、特定の実装に応じて、1つまたは複数のプロセッサのセットであってよく、またはマルチプロセッサ・コアであってもよい。さらに、プロセッサ・ユニット204は、メイン・プロセッサが2次プロセッサと共に単一のチップ上に存在する、1つまたは複数の異種混成プロセッサ・システムを使用して実装されてよい。別の説明例として、プロセッサ・ユニット204は、同じタイプの複数のプロセッサを含んでいる対称マルチプロセッサ(SMP)システムであってよい。
【0019】
メモリ206および永続ストレージ208は、記憶装置の例である。記憶装置は、一時的に、または恒久的に、あるいはその組合せで、情報を記憶することが可能なハードウェアである。これらの例におけるメモリ206は、例えばランダム・アクセス・メモリまたは任意の他の好適な揮発性または不揮発性の記憶装置であってよい。永続ストレージ208は、特定の実装に応じて、様々な形態を取ってよい。例えば、永続ストレージ208は、デバイスの1つまたは複数の構成要素を含んでいてよい。例えば、永続ストレージ208は、ハード・ドライブ、フラッシュ・メモリ、書き換え可能光ディスク、書き換え可能磁気テープ、または上記の何らかの組合せであってよい。永続ストレージ208によって使用される媒体は、取外し可能であってもよい。例えば、取外し可能ハード・ドライブが永続ストレージ208として使用されてよい。
【0020】
これらの例における通信ユニット210は、他のデータ処理システムまたはデバイスとの通信を提供する。これらの例では、通信ユニット210はネットワーク・インターフェース・カードである。通信ユニット210は、物理的な通信リンクおよびワイヤレス通信リンクのいずれかまたは両方の使用を通じて通信を提供してよい。
【0021】
入出力ユニット212は、データ処理システム200に接続され得る他のデバイスとのデータの入力および出力を可能にする。例えば、入出力ユニット212は、キーボードおよびマウスを通じてユーザ入力のための接続を提供してよい。さらに、入出力ユニット212は、プリンタに出力を送信してよい。ディスプレイ214は、ユーザに情報を表示するための機構を提供する。
【0022】
オペレーティング・システムおよびアプリケーションまたはプログラムに関する命令は、永続ストレージ208に位置する。これらの命令は、プロセッサ・ユニット204による実行のためにメモリ206にロードされてよい。異なる実施形態のプロセスは、メモリ206などのメモリに位置してよいコンピュータ実装命令を使用して、プロセッサ・ユニット204によって実行されてよい。これらの命令は、読み出されて、プロセッサ・ユニット204のプロセッサによって実行され得る、プログラム・コード、コンピュータ使用可能プログラム・コード、またはコンピュータ可読プログラム・コードと呼ばれる。異なる実施形態におけるプログラム・コードは、メモリ206または永続ストレージ208などの異なる物理的なまたは有形のコンピュータ可読媒体に具現化されてよい。
【0023】
プログラム・コード216は、選択的に取外し可能なコンピュータ可読媒体218上に関数の形態で位置し、プロセッサ・ユニット204による実行のためにデータ処理システム200にロードまたは転送されてよい。プログラム・コード216およびコンピュータ可読媒体218は、これらの例においてはコンピュータ・プログラム製品220を形成する。一例では、コンピュータ可読媒体218は、有形形態、例えば、永続ストレージ208の一部であるハード・ドライブなどの記憶装置に転送するために、永続ストレージ208の一部であるドライブまたは他のデバイスに挿入または配置される光学または磁気ディスクであってよい。有形形態では、コンピュータ可読媒体218は、データ処理システム200に接続されているハード・ドライブ、サム・ドライブ、またはフラッシュ・メモリなどの永続ストレージの形態を取ってもよい。有形形態のコンピュータ可読媒体218は、コンピュータ記録可能記憶媒体とも呼ばれる。一部の例では、コンピュータ記録可能媒体218は取外し可能でなくてよい。
【0024】
代替として、プログラム・コード216は、コンピュータ可読媒体218から、通信ユニット210への通信リンクを通じて、または入出力ユニット212への接続を通じて、あるいはその両方で、データ処理システム200に転送されてよい。通信リンクまたは接続あるいはその両方は、例示的な例において、物理的なものであってもワイヤレスであってもよい。コンピュータ可読媒体は、通信リンクまたはプログラム・コードを含んでいるワイヤレス伝送などの非有形媒体の形態を取ってもよい。データ処理システム200に関して図示される種々の構成要素は、異なる実施形態が実装され得る方式へのアーキテクチャ上の制限を提供するものではない。異なる例示的実施形態は、データ処理システム200に関して図示される構成要素に加えて、またはそれに代わる構成要素を含むデータ処理システムで実装されてよい。
図2に示される他の構成要素は、示される説明例から異ならせることができる。一例として、データ処理システム200内の記憶装置は、データを記憶し得る任意のハードウェア装置である。メモリ206、永続ストレージ208、およびコンピュータ可読媒体218は、有形形態の記憶装置の例である。
【0025】
別の例では、通信ファブリック202を実装するためにバス・システムが使用されてよく、それは、システム・バスまたは入出力バスなどの1つまたは複数のバスからなってよい。無論、バス・システムは、バス・システムに取り付けられた種々の構成要素またはデバイス間のデータの転送を提供する、任意の好適なタイプのアーキテクチャを使用して実装されてよい。加えて、通信ユニットが、モデムまたはネットワーク・アダプタなど、データを送受信するために使用される1つまたは複数のデバイスを含んでよい。さらに、メモリは、例えば、通信ファブリック202に存在することもあるインターフェースおよびメモリ・コントローラ・ハブに見られるようなメモリ206またはキャッシュであってよい。
【0026】
本発明の動作を実施するためのコンピュータ・プログラム・コードは、Java(R)(商標)、Smalltalk(R)、C++等のオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれてよい。プログラム・コードは、スタンドアロンのソフトウェア・パッケージとして、全体がユーザのコンピュータ上で、一部がユーザのコンピュータ上で、一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータもしくはサーバ上で実行されてよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意タイプのネットワークを通じてユーザのコンピュータに接続されてよく、または接続は外部コンピュータになされてもよい(例えばインターネット・サービス・プロバイダを使用してインターネットを通じて)。
【0027】
当業者は、
図1~2のハードウェアは実装に応じて様々に異なってよいことを認識するであろう。フラッシュ・メモリ、同等の不揮発性メモリ、または光ディスク・ドライブ等の他の内部ハードウェアや周辺デバイスが、
図1~
図2に示されるハードウェアに加えて、またはその代わりに使用されてよい。また、例示的実施形態のプロセスは、開示される主題の範囲から逸脱することなく、上述したSMPシステム以外のマルチプロセッサ・データ処理システムに適用されてよい。
【0028】
理解されるように、本明細書に記載される技術は、クライアント・マシンが、1つまたは複数のマシンのセット上で実行される、インターネット・アクセス可能なウェブベースのポータルと通信する、
図1に図示されるような標準的なクライアント-サーバの枠組みの中で動作してよい。エンド・ユーザは、ポータルにアクセスし、ポータルと対話することが可能なインターネット接続可能デバイス(例えば、デスクトップ・コンピュータ、ノートブック・コンピュータ、インターネット対応モバイル・デバイス等)を操作する。通例、各クライアントまたはサーバ・マシンは、ハードウェアおよびソフトウェアを備える、
図2に図示されるようなデータ処理システムであり、これらのエンティティは、インターネット、イントラネット、エクストラネット、プライベート・ネットワークなどのネットワーク、または任意の他の通信媒体もしくはリンクを介して互いと通信する。データ処理システムは通例、1つまたは複数のプロセッサ、オペレーティング・システム、1つまたは複数のアプリケーション、および1つまたは複数のユーティリティを含む。データ処理システム上のアプリケーションは、とりわけ、HTTP、SOAP、XML、WSDL、UDDI、およびWSFLのサポートを制限することなく含む、ウェブサービスのネイティブなサポートを提供する。SOAP、WSDL、UDDI、およびWSFLに関する情報は、これら規格の開発および維持を担うWorld Wide Web Consortium(W3C)から入手可能であり、HTTPおよびXMLに関するさらなる情報は、Internet Engineering Task Force(IETF)から入手可能である。これらの規格に精通していることが想定される。
【0029】
上記で説明されたようなコンピューティング・マシンは、機械学習が可能であることがある。よく知られているように、機械学習は、データから反復的に学習することによって、コンピュータが、どこに着目するかを明示的にプログラムされることなくデータ内で知見を見つけることを可能にする、分析モデルおよびアルゴリズムを使用することを伴う。機械学習は、教師ありであっても教師なしであってもよい。教師あり機械学習は、機械が所与のタスクをどのように行うかをそこから学習することができる訓練例の使用を伴う。対して、教師なし機械学習は、ラベル付けされていないデータ・オブジェクトを提供することを伴い、それを機械が処理してデータの編成を判定する。教師なし機械学習の1つのよく知られているタイプはクラスタリングであり、これは、観察結果のセットをサブセットに割り当てる概念を指し、サブセットは「クラスタ」と呼ばれ、一つのクラスタ内の観察結果はある程度の類似性を有する。クラスタリングの一般的なアプローチはk平均クラスタリングであり、これは、通例、データと、対応するクラスタの重心との間の距離の平方和を最小にすることにより、オブジェクトを属性または特徴に基づいてk個のグループに分類またはグループ化するアルゴリズムである。クラスタリングを介した教師なし機械学習は、データを分類する手法を提供する。他のクラスタリング・アルゴリズムがよく知られている。
【0030】
インシデント・フォレンジック(forensics)を伴うセキュリティ・インテリジェンス・プラットフォーム
本開示の技術が実施され得る代表的なセキュリティ・インテリジェンス・プラットフォームが
図3に示される。
【0031】
一般に、このプラットフォームは、検索駆動型のデータ探索と、セッション再構成と、セキュリティ・インシデントの調査を支援するフォレンジック・インテリジェンスとを提供する。関連する部分において、プラットフォーム300は、パケット・キャプチャ機器のセット302、インシデント・フォレンジック・モジュール機器304、分散データベース306、およびセキュリティ・インテリジェンス・コンソール308を含む。パケット・キャプチャ機器およびモジュール機器は、ネットワーク機器として構成され、またはそれらは仮想機器として構成されてもよい。パケット・キャプチャ機器302は、ネットワークからパケットを取り込み(知られているパケット・キャプチャ(pcap)アプリケーション・プログラミング・インターフェース(API)またはその他の知られている技術を使用して)、そのようなデータ(例えば、リアルタイムのログ・イベントやネットワーク・フロー)を分散データベース306に提供するように動作し、そこでデータは記憶されて、フォレンジック・モジュール304およびセキュリティ・インテリジェンス・コンソール308による分析のために利用可能となる。パケット・キャプチャ機器は、セッション指向方式で動作してフロー中のすべてのパケットを取り込み、メタデータおよびペイロードにインデックスを付けて、高速な検索駆動型データ探索を可能にする。データベース306はフォレンジック・リポジトリを提供し、この分散した異種混成のデータ・セットは、パケット・キャプチャ機器によって収集された情報を含んでいる。コンソール308は、調査者によるインシデント調査ワークフローを容易にする「フォレンジック」ダッシュボード・タブを公開する、ウェブまたはクラウドによりアクセス可能なユーザ・インターフェース(UI)を提供する。ダッシュボードを使用して、調査者はセキュリティ・インシデントを選択する。インシデント・フォレンジック・モジュール304は、選択されたセキュリティ・インシデントに関係するすべてのパケット(メタデータ、ペイロード等を含む)を取得し、分析のためにセッションを再構成する。このタイプのインシデント調査ワークフローを実装する代表的な商業製品は、IBM(R)Security QRadar(R)Incident Forensics V7.2.3(またはそれ以降)である。このプラットフォームを使用して、調査者は、データベースに記憶されている分散した異種混成のデータ・セットにわたって検索し、統一された検索結果のリストを受け取る。検索結果はグリッドにマージされてよく、それらは、ユーザがアイデンティティ間の関係を探索することができるように「デジタル・インプレッション」ツールで視覚化され得る。
【0032】
通例、上記で説明したシステムで使用するための機器は、ネットワークに接続された非ディスプレイ装置として実装される。例えば、従来のミドルウェア・サービス指向アーキテクチャ(SOA:service oriented architecture)機能を行う目的のために構築された機器は、あるコンピュータ環境において普及している。SOAミドルウェア機器は、企業全体に及ぶ既存SOAインフラストラクチャを拡張しながら、XMLおよびウェブサービスの展開を簡略化し、セキュアにするまたは高速化するのを助け得る。ミドルウェアを目的としたハードウェアおよび軽量なミドルウェア・スタックの利用は、従来のソフトウェア・ソリューションで経験される性能負荷に対処することができる。加えて、機器のフォームファクタは、ミドルウェアのSOA機能を実装するための安全で消耗可能なパッケージングを提供する。これらのタイプのデバイスがもたらす1つの特定の利点は、バックエンド・システムから処理を軽減することである。このタイプのネットワーク機器は、通例、ラック搭載デバイスである。デバイスは、機器が機密情報に対する安全な金庫室(secure vault)の役割を果たすことを可能にする物理的セキュリティを含む。通例、機器は、製造され、ソフトウェアが予めロードされ、次いで企業または他のネットワーク動作環境の中にまたはそれとの関係で展開され、代替として、ボックスは、ローカルに配置され、次いで、例えば私設のまたは自社内のクラウド・コンピューティング環境内にセキュアに展開・管理されることが可能な、標準的なまたはカスタマイズされたミドルウェアの仮想イメージをプロビジョンされてよい。機器は、場合によってはハードディスク上のデータを暗号化するための、ハードウェアおよびファームウェアの暗号サポートを含んでよい。
【0033】
このタイプの機器は、セキュリティ情報イベント管理(SIEM:Security Information Event Management)を容易にすることができる。例えば、上記で指摘したように、IBM(R)Security QRadar(R)SIEMは、このタイプの機器として構成されることが可能なパケット・データ・キャプチャ機器を含む企業ソリューションである。そのようなデバイスは、例えば、リアルタイムのレイヤ4ネットワーク・フロー・データを取り込むように動作し、そこから、例えばディープ・パケット検査および他の技術を使用して、レイヤ7のアプリケーション・ペイロードが分析されてよい。それは、フローに基づくネットワーク知識、セキュリティ・イベント相関、およびアセットに基づく脆弱性査定の組合せを使用して、状況認識とコンプライアンス支援を提供する。基本的なQRadar SIEMのインストールでは、
図4に示すようなシステムは、イベントおよびフロー・データを収集し、リポートを生成するように構成される。そして、ユーザ(例えば、SOC分析者)が、妨害を調査して、ネットワーク問題の根本原因を判断する。
【0034】
一般化すると、セキュリティ情報およびイベント管理(SIEM)ツールは、ITセキュリティ・イベントおよび脆弱性を分析し、管理し、監視し、報告するための各種サービスを提供する。そのようなサービスは通例、データ・ネットワーク内の監視されるアクセスおよび予期されない発生に関するイベントの収集を含み、それらを相関的コンテクストで分析して、プロファイリングされたより上位のセキュリティ・イベントへのそれらの寄与を判定する。それらは、ファイアウォール構成、現在のおよび潜在的なネットワーク・トラフィック・パターンを見るためのネットワーク・トポロジおよび接続の視覚化ツールの分析、アクティブな攻撃パスおよび高リスクのアセットを特定するためのアセット脆弱性とネットワーク構成およびトラフィックとの相関付け、ならびに、ネットワーク・トラフィック、トポロジおよび脆弱性露出のポリシー・コンプライアンス監視のサポートも含んでよい。一部のSIEMツールは、一般的なネットワーク情報モデルを通じて処理されるデバイス構成の変形分析に基づいて、ルータ、ファイアウォール、およびスイッチなどの管理されるネットワーク・デバイスのトポロジを構築する能力を有する。その結果は位置的編成であり、それは、セキュリティ脅威のシミュレーション、ファイアウォール・フィルタの動作分析、およびその他の用途に使用することができる。しかし、主要なデバイス基準は、完全にネットワークおよびネットワーク構成に基づく。管理されているアセット/システムのための発見能力を始動するいくつかの方式があり、またユーザ・インターフェースへの包含は半自動的に管理されるが(すなわち、半自動化された人間の入力に基づく配置を可能にし、トポロジならびにその表示とフォーマッティングは、初期構成と、基礎となるネットワークの変化/削除との両方の発見に基づいてデータ駆動される、ユーザ・インターフェースを通じたアプローチ)、完全に自動化された配置分析および提案を生成する配置分析に関しては何も提供されない。
【0035】
高度持続的脅威(APT)の防止
APTの緩和防止技術はよく知られている。例えば、IBM(R)Trusteer Apex(R)は、エクスプロイトおよびマルウェアが企業エンドポイントを危殆化し、情報を抽出するのを防止する、自動化されたソリューションである。このタイプのソリューションは通例、数層のセキュリティ、すなわち、エクスプロイト防止、データ抜き取り防止、および資格情報保護、を提供する。
【0036】
図4は典型的な実施形態を示しており、ここでは、APTソリューションが、概して、企業エンドポイント402で実行されるエージェント・コード400として構築され、それと共に、ITセキュリティが中央の制御位置から(管理下にあるエンドポイントと管理下にないエンドポイント両方の)展開を管理することを可能にするウェブベース・コンソール404がある。エージェント・コード400は、アプリケーション406が例えばファイルをファイル・システムに書き込むなどの機密動作を行う時のアプリケーション状態を監視することにより、動作する。一般に、エージェント400は、正当なアプリケーション状態のホワイトリストを使用して、機密動作が、既知の正当な状態の下で実行される(または実行されない)ことを検証する。エクスプロイトは、未知の(ホワイトリストにない)状態の下で機密動作を実行することを試み、よってそれは阻止される。このアプローチは、APTエージェントが、脅威や利用された脆弱性について何も知ることなく、既知のエクスプロイトとゼロデイ・エクスプロイトの両方を正確に検出してブロックすることを可能にする。「エージェント」は、コードに基づく任意のモジュール、プログラム、プロセス、コンポーネント、スレッド等であってよい。
【0037】
図4は、APT攻撃が典型的にどのように展開するかと、APTソリューションが進入を阻止するために動作するポイントを示す。例えば、ここでは、攻撃者408は、スピアー(spear)・フィッシング電子メール410を使用して、従業員に武器化された(weaponized)文書を送り、これは隠されたエクスプロイト・コード412を含むものである。ユーザがAdobe Acrobat(R)やWordなどのビューワで文書を開くと、エクスプロイト・コードが実行され、アプリケーションの脆弱性に付随して、秘かに従業員コンピュータ402にマルウェアをダウンロードする。従業員がこのダウンロードに気付くことは決してない。別の選択肢は、悪意あるサイトへのリンク414をユーザに送るものである。それは、エクスプロイト・コードを含んでいる悪意あるウェブサイト416である場合も、または(例えばウォーター・ホール(watering hole)攻撃を通じて)危殆化された正当なウェブサイトである場合もある。従業員がリンクをクリックし、ブラウザがHTMLの内容を描画すると、エクスプロイト・コードが実行され、ブラウザ(またはブラウザ・プラグイン)の脆弱性を利用して、秘かに従業員コンピュータにマルウェアをダウンロードする。リンクはまた、ユーザをフィッシング・サイト(偽のウェブ・アプリ・ログイン・ページのような)418に誘導して、ユーザに会社の資格情報を提出させることもある。コンピュータ402を高度なマルウェアに感染させる、または会社の資格情報を危殆化させると、攻撃者408は、会社ネットワーク内に足掛かりを確立したことになり、次いで攻撃を進めることができる。
【0038】
示されるように、エージェント400は、以下のいくつかの接続点で、そのような攻撃から企業を保護する:(1)エクスプロイトの試みがユーザ・コンピュータを危殆化させるのを防止するエクスプロイト防止420、(2)マシンがすでにマルウェアに感染している場合に、マルウェアが攻撃者と通信し、情報を送出するのを防止する抜き取り防止422、および、(3)ユーザが承認されていない会社サイト(例えば、フィッシングまたはソーシャル・ネットワークや電子商取引のような公衆サイトあるいはその両方を含む)で会社の資格情報を使用するのを防止する資格情報保護424。1つの知られているアプローチでは、エージェントは、正当なアプリケーション状態のホワイトリストを使用してアプリケーションおよびその動作を監視することにより、これらの動作および関連する動作を行う。
【0039】
追加的な背景として、情報を盗み出すマルウェアが、エクスプロイトを必要とすることなく、ユーザによってエンドポイントに直接インストールされることもある。データを抜き取るには、通例、マルウェアは、直接、または危殆化されたアプリケーション・プロセスを通じて、インターネットと通信しなければならない。高度なマルウェアは、検出を迂回するためにいくつかの回避技術を使用する。例えば、それは、別の正当なアプリケーション・プロセスを危殆化させ、正当なウェブサイト(ForumsやGoogle(R) Docsのような)を通じて攻撃者と通信する場合がある。エージェント400はまた、データ抜き取り状態を呈する信頼できないコードの実行を阻止するように動作する。このために、それは好ましくは、信頼できるプログラムだけがデータ抜き取り技術を使用して外部ネットワークと通信することを許されることを確認する。エージェントは好ましくは、いくつかの技術を使用して不正な抜き取り状態および悪意ある通信チャネルを識別し、それらをブロックする。エージェントはホスト自体における活動を監視するので、それは良好な視野を有し、そのような抜き取り状態を正確に検出し、ブロックすることができる。
【0040】
本明細書のアプローチは、任意のAPTソリューションまたは機能(他のシステムに組み込まれていても)と共に実装されてよいため、本明細書における特定される商業製品の言及は制限的である意図はない。
【0041】
認知サイバーセキュリティ分析
図5は、認知サイバーセキュリティ・インテリジェンス・センター500およびエンドポイント502を含む基本的な動作環境を示す。エンドポイント502は、インテリジェンス・センター500によるエンドポイントの管理および監視を可能にするシステム管理コード(ソフトウェア)を実行する、ネットワーク化されたデバイスである。
【0042】
エンドポイントは、通例、上記で
図2に説明されたようなデータ処理システムである。インテリジェンス・センター500は、
図4に示されるようなAPTソリューションまたは他の管理ソリューションとの関連で、
図3に示されるようなセキュリティ管理プラットフォームとして実装されてよい。よって、例えば、エンドポイント管理を提供する知られている商業製品およびシステムには、IBM(R)BigFix(R)があり、これは、遠隔制御、パッチ管理、ソフトウェア配布、オペレーティング・システム展開、ネットワーク・アクセス保護、ならびにハードウェアおよびソフトウェア・インベントリ機能をシステム管理者に提供する。このタイプの商業的システムが、本開示のエンドポイントのプロセス間活動抽出およびパターン・マッチング技術を含むように増強されてよく、またはそのような技術が、この目的専用の製品もしくはシステム内で実装されてもよい。
【0043】
典型的な実装では、エンドポイントは、Windows(R)、Mac OS(R)X、Vmware(R) ESX、Linux(R)、Unix(R)などのオペレーティング・システム、ならびにWindows(R) Phone、Symbian、iOS、およびAndroid(R)などの様々なモバイル・オペレーティング・システムを実行する、物理的なまたは仮想のマシンまたはデバイスである。サイバーセキュリティ・インテリジェンス・センターは通例、複数のマシンおよびアプリケーション・ソフトウェアを備えた、ネットワーク・アクセス可能なセキュリティ管理プラットフォームとして動作する。通例、インテリジェンス・センターは、例えば機械学習等を使用した、サイバーセキュリティ分析をサポートする。インテリジェンス・センターは、複数のエンドポイントをサポートするための専用方式で、または各々が各自のエンドポイントを有する複数の企業に代わる「as-aサービス」として、動作してよい。通例、エンドポイント・マシンは、
図1に示され、上記で説明されたようなクライアント-サーバの枠組みで、インテリジェンス・センターと通信する。インテリジェンス・センターは、クラウドベースの動作環境内に位置し、その中でアクセスされてよい。
【0044】
このアプローチでは、プロセス間イベントなどのイベントが、エンドポイント502などのエンドポイントから、インテリジェンス・センター500で実行される検出サーバに送られ、そこでそのようなイベントが分析される。好ましくは、攻撃検出は検出サーバで行われる。このアプローチは、例えばプロセス間イベントを介してエンドポイント活動を記録し、関心対象の悪意あるまたは疑わしい挙動を抽象化して記述し(ネットワーク・グラフ)、具体的な活動(記録されたイベントに表された)を抽象パターンとマッチングするための、効率的で体系的な(単にアドホックであるのと対照的に)機構を可能にする。このマッチングは、システムが、悪意ある/疑わしい挙動に働きかけることを可能にする(例えば、関与するプロセスを停止させる、警告する、進行中のネットワーク・セッションを破棄する、進行中のディスク操作を停止させることなどにより)と共に、セキュリティ分析者が、関心を引く活動を見つける(例えば脅威ハンティング)、または疑わしいもしくは悪意ある活動に対処するためにワークフロー内で実施され得る次のステップを決定するのを支援する。
【0045】
このアプローチでは、通例、直接のプロセス間活動と間接的なプロセス間活動の両方が、エンドポイントにおいて抽出され、予め定められた検出すべき悪意ある挙動パターンと比較される。直接のプロセス間活動と間接的なプロセス間活動は通例、process spawnなどの制御フローと、ファイル、ソケット、メッセージ、共有メモリ等のチャネルを介した情報交換とを含む。プロセス間活動は、プロセスの目的およびそれらの特定の実行経路を明らかにする。このアプローチでは、それらは、攻撃インスタンスを検出するために、悪意あるプロセス間挙動と照合されてよい。好ましくは、悪意ある挙動パターンは、サイバー攻撃における主要なステップを特徴付けるように、抽象化して予め定められる。これらの悪意ある挙動パターンは、通例エンドポイントに保存され、それらは必要に応じて更新することができる。
【0046】
図6は、上記技術に従ってどのようにグラフを使用して挙動に基づく検出/推測を容易にするかを示す。このアプローチでは、通例、個人(例えばソフトウェア開発者、セキュリティ分析者等)が、悪意あるまたは関心を引く挙動を抽象グラフ・パターン600として記述する。このインジェクションでは、DLLインジェクション攻撃が、プロセス602によってモデル化され、プロセス602はイベント(Type-スレッド作成)604を実行し、それが別のプロセス606を生じさせる。一般化すると、グラフ・パターン600は、ノード(この例ではプロセス602および606)と、エッジ(この例ではその2つのノードをつなぐイベント604)とを含む。動作中に、パターン・マッチング・アルゴリズムが、パターンと一致するホスト・エンドポイントにおける具体的な活動を返してよい。エンドポイントにおける具体的な活動も、好ましくは、パターン・マッチングを容易にするためにグラフによってモデル化される。エンドポイントのプロセス間活動から導出された、抽象グラフ挙動600と一致する2つのそのような例示的活動グラフ608および610が示されている。第1の例示的活動グラフ608では、プロセスrundll.exe実行イベントSyscall 10がプロセスIsass.exeを生じさせ、第2の例示的活動グラフ610では、プロセスFirefox.exe実行イベントSyscall 11が、プロセスexplorer.exeを生じさせる。これは、トポロジ・マッチングの一例である。
【0047】
図7は、プロセス間活動監視の結果としてグラフ700が生成される、より複雑な例を示している。凡例702に示されるように、通例、グラフは、エンティティのセット、すなわち、プロセス704、ファイル706、ネットワーク・リソース708、およびイベント710、を含む。好ましくは、エンドポイント・システム内の各エンティティが、そのエンティティのカテゴリおよび性質を記述するラベル(または「タグ」)に関連付けられ、例えばインストールされたFirefox(R)(プロセス・エンティティ)は「ブラウザ」であり、インストールされたFirefox(R)は「64ビット」である等である。ラベルは、例えば「ブラウザ」など、手動で割り当てられてよく、または例えばそれが64ビットの実行ファイルであれば自動的に生成されてよく、または、プロセスが一定の要件を満たせばラベル「信頼済み」が割り当てられるなど、関数を介して算出されてもよい。ラベルは、あるカテゴリのプロセスに関する挙動パターンを作成するためにエンティティ名を置き換えてもよい。
図7のグラフ700は、エンティティのセットを示すと共に含んでおり、各エンティティは通例、オフライン式に定められる関連付けられたラベル(タグ)を有する。プロセス間活動がエンドポイントで監視され、例えばシステム・コールの監視、カーネル・フッキング、システム監視サービス等を介して、エンティティ間の活動が記録される。通例、グラフを構築するために必要な情報を得るには、比較的制約されたシステム・コールまたはイベントのセットを監視する必要がある。1つの例(オペレーティング・システムとしてLinux(R)を仮定する)は、あるエンティティを別のエンティティに関連付けるシステム・コール、例えばsys_openおよびstub_execveである。グラフは通例、エンティティおよび監視される活動を接続することによって構築され(そして必要に応じて更新され)、一例がグラフ700である。好ましくは、グラフは、ディスクに記憶され、メモリにキャッシュされる。
【0048】
一般化すると、活動グラフは、エンドポイントで発生するリアルタイムのプロセス間活動抽出を表す。同じく
図7に示されるように、この抽出はその後、1つまたは複数のマッチング技術を使用する挙動マッチング(通例はインテリジェンス・センターで実行される検出サーバ内で行われる)を容易にする。これらのマッチング技術は通例、1つまたは複数のトポロジ・マッチング712、ラベル・マッチング714、および任意で具体的シグニチャのマッチング716を含む。上記で指摘したように、グラフに示されたプロセス間活動(およびそれらの関連付けられたラベル付け)は、1つまたは複数のプロセスの目的ならびにそれらの特定の実行経路を明らかにする。生成されたグラフを悪意あるプロセス間挙動(これもグラフの形態で定められる)とマッチングすることは、システムが攻撃インスタンスを検出して、それに対処することを可能にする。指摘したように、好ましくは、悪意ある挙動パターンは、サイバー攻撃における主要なステップを特徴付けるようにある程度抽象化して予め定められる。
【0049】
より正式には、監視されるプロセス間活動が比較される抽象パターン・グラフ(
図6のグラフ600など)は、パターン・グラフ(PG)と呼ばれることがある。PGは1つまたは複数の制約を含んでよく、制約は通例、グラフの要素または要素の関係に対するブール関数である。通例は、2つのタイプの制約があり、すなわち、単一要素制約(例えば、パターン・グラフPG中の頂点/エッジの性質/クラス/概念)と、1つまたは複数の要素関係制約(すなわち、ある要素がどのように別の要素と関係しているか、例えば直接の接続、よりも後者、「n」ステップでの接続等)である。ホスト(エンドポイント)の監視される活動は、本明細書において活動グラフ(AG)と呼ぶこともあるグラフとしてインスタンス化される。
図6では、グラフ608および610がAGを表している。すると、パターン・パッチングの目標は、PGを満たすAGのすべての部分グラフを検索することになる。
【0050】
図8は、上記で説明されたエンドポイントのプロセス間活動抽出およびパターン・マッチング技術が実装され得る、検出システムの代表的実施形態を示す。示されるように、ある機能はインテリジェンス・センター800に位置し(例えば、セキュリティ管理プラットフォーム、APTソリューション、エンドポイント管理ソリューション等)、ある機能はエンドポイント802に位置する。この機能の配置は好ましいが、制限される意図はない。上記で指摘したように、インテリジェンス・センター800は、エンドポイントのネットワークに専用であっても(例えば企業内部に位置する)、または、各々が各自のエンドポイントを有する複数の企業に代わるサービス提供者(もしくはより一般的には「サービス」)として動作してもよい。典型的な実装では、サイバー・セキュリティ・インテリジェンス・センターは、ネットワークによりアクセス可能であり、クラウドベースの動作環境内で展開されるが、これは限定ではない。さらに、通例は、
図8に識別される各機能ブロックは、ソフトウェアで、すなわち、プロセッサで実行されるコンピュータ・プログラム命令のセットとして、実行される。
図8に識別される機能は、説明の目的のみのために提供されるものであり、これら機能のうちあるものは、必要に応じて組み合わされるかまたはその他の方法で再構成されてよい。
【0051】
示されるように、インテリジェンス・センター800は、いくつかの機能、すなわち、ラベル生成804(ステップ1)、および悪意ある挙動の発見および符号化806(ステップ(4))を行う。示されるように、通例、これらの活動は、インテリジェンス・センターで入手可能な既存の攻撃情報、例えば、脅威リポート808、専門家知識810、ならびに脅威のサンドボックスおよび評価812から導出される情報、によって通知され、またそれらに基づく。この情報のセットは通例、セキュリティ分析者に入手可能であるか、またはその他の方法でセキュリティ分析者によって入手される。
図7に関して上記で説明したように、ラベル生成804では、エンドポイント・システムの各エンティティが、そのエンティティのカテゴリおよび性質を記述する1つまたは複数のラベルに関連付けられる。ラベルは、手動で、もしくは自動的に、もしくはプログラム等により、または何らかの組合せにより適用される。ラベル生成804は、周期的に実施されても、または所定の発生があったときに実施されてもよい。悪意ある挙動の発見および符号化806は、既存の攻撃から悪意ある(またはその他の点で疑わしい)グラフ・パターンを導出する。指摘したように、通例、これらのパターンは、人間の分析者、他のセキュリティ検出機構、機械学習システム、またはそれらの組合せによって決定される。これも示されるように、攻撃源の知識ベースから生成された悪意あるパターンのセット(808、810、812)が、悪意あるパターンのデータベース814に記憶される。
【0052】
機能ブロック816(ステップ2)は、プロセス間活動抽出を表し、これは通例、監視818(ステップ2.1)およびラベル付け820(ステップ2.2)を伴う。監視機能は、例えば、システム・コールの監視、カーネル・フッキング、システム監視サービス等を介して、エンティティ間の活動を記録する。よって、監視機能818は、既存のエンドポイント・サービス機能を活用してよい。指摘したように、監視818がすべてのシステム・コールまたはイベントを監視することは必要とされず、監視するコールおよびイベントは必要に応じて構成可能である。ステップ2.2のラベル付け機能は、ラベル付け機能(ステップ1)によって作成された挙動シグニチャを取り出し、抽象的な/ラベル付けされた挙動シグニチャを構築する。この抽象化は望ましい。何故ならば、抽象的な/ラベル付けされた挙動シグニチャは、攻撃ロジックをより一般的な形で表し、それにより特定の攻撃に関して1つまたは複数の攻撃の変形をカバーし、またその後のマッチング動作の際にラベルまたは具体的な頂点/エッジの効率的なマッチングを可能にするからである(下記で説明される)。
【0053】
機能ブロック822(ステップ3)は、活動グラフの構築を提供する。この処理は通例、新しい活動が発生し、監視されるのに伴ってグラフを拡張するインジェスト824(ステップ3.1)と、エージング826(ステップ3.2)とを伴い、エージングでは、グラフの頂点/エッジが、構成可能な閾値よりも古い場合、または新たに拡張されたグラフまでのその距離が構成可能な閾値よりも大きい場合に、破棄される(間引かれる)。この活動グラフ構築機能822によって生成されたプロセス間活動グラフは、データベース828に記憶される。通例、プロセス間活動グラフは、監視機能、インジェスト機能、およびエージング機能が動作するのに伴って、好ましくは継続的に、進展する。
【0054】
これも示されるように、エンドポイントは、攻撃部分グラフ・マッチング機能830(ステップ5)をサポートする。この機能を使用して、エンドポイント保護システムは、進展するプロセス間活動グラフと悪意ある挙動グラフ・パターンとの間のグラフ・パターン・マッチングを継続的に行う。これらのパターンは、インテリジェンス・センター800の悪意あるパターン・データベース814によって提供され、ローカルの悪意あるパターン・キャッシュ832に記憶される。上記で説明したように、攻撃部分グラフ・マッチング機能は、ローカル・キャッシュ832に記憶されている悪意ある挙動グラフ・パターンと一致するグラフ部分構造を検索する。よって、このアプローチでは、エンドポイント検出システム機能が、進展する活動グラフを悪意あるプロセス間グラフ・パターンと比較する。このマッチングに基づいて、次いで緩和およびレジリエンス機能834(ステップ6)が呼び出されてよい。機能834は、リポート機能836(ステップ6.1)および反応機能838(ステップ6.2)を含む。よって、機能834は検出後動作を提供し、これは通例、関与するプロセスを停止すること、警告すること、関与するプロセスをさらなる評価のためにサンドボックスに移動すること、進行中のネットワーク・セッションを破棄すること、進行中のディスク操作を停止させること、次のステップを決定するために一致した部分グラフをユーザに渡すこと、一致した部分グラフをさらなる調査のためにセキュリティ分析者に回すこと、機械学習分類器を訓練すること等を含む。これらは、代表的な検出後動作に過ぎない。
【0055】
これも
図8に示されるように、緩和およびレジリエンス機能834は通例、オンデマンド式でインテリジェンス・センター800と対話するのに対し、エンドポイント機能の中の情報フローは通例、継続的である。エンドポイントにおける1つまたは複数の機能は、周期的に、または発生に応答して、またはオンデマンドで実施されてよい。
【0056】
上記で説明された技術は、プロセス間イベントを記録し、記録されたプロセス間イベントに基づいてプロセス間活動グラフを作成し、(活動グラフに表された)プロセス間活動を既知の悪意あるまたは疑わしい挙動(パターン・グラフのセットとして具現化された)とマッチングし、プロセス間活動と既知の悪意あるまたは疑わしい挙動パターンとの一致に応答して検出後動作を行うことにより、エンドポイントを監視・保護するためのロバストな方法を可能にする。好ましくは、マッチングは、活動グラフ内の部分グラフを、パターン・グラフに表された既知の悪意あるまたは疑わしい挙動パターンと照合することを伴う。この処理中に、好ましくは、一つのエンドポイントにおける(またはエンドポイントのセットにまたがる)直接のプロセス間活動と間接的なプロセス間活動の両方が、既知の挙動パターンと比較される。
【0057】
パターン・グラフ(PG)(
図6のグラフ600など)は、視覚的に指定されてよい(すなわちグラフを描くことにより)が、これは必要条件ではない。パターン・グラフ(またはグラフ・パターン)は、他の方式で、例えばプログラム言語により、指定されてもよい。
【0058】
以下に、上記で説明された活動グラフ(AG)の構築に関する追加的な詳細を提供する。活動グラフは通例、1つまたは複数のコンピューティング・デバイス(エンドポイントを含んでよい)における計算を時間グラフとして表す。そのため、活動グラフは、計算の抽象化を表すことから、本明細書において計算グラフ(CG)と呼ばれることもある。「活動グラフ」と「接続グラフ」の概念は同義で使用される。先に説明したように、AG/CGの基本要素は、エンティティ(例えば、プロセス、ファイル、ネットワーク・ソケット、レジストリ・キー、GPSセンサ、加速度計等)と、イベント(例えば、ファイル読出し、プロセス・フォーク等)である。エンティティは、情報の送信または受信のいずれかが可能な任意のシステム要素である。イベントは、2つ以上のエンティティを接続する任意の情報/制御フローである。イベントは通例、特定の時間におけるエンティティのペア間の情報フローである。イベントは、システム・コール等の形態で取り込まれ得る。イベントは、一意のタイムスタンプ(それがいつ起きたか)、および情報フローの方向(方向性、双方向、非方向性)を有する。イベントの入次数(indegree)エンティティは、その方向に基づく当該イベントの1つまたは2つのエンティティであり得る。イベントの出次数(outdegree)エンティティは、その方向に基づく当該イベントの1つまたは2つのエンティティであり得る。タイムスタンプは、イベントの時刻を記録する整数または実数であり、ジョインポイント(またはチェックポイント)は、<エンティティ,タイムスタンプ>のタプルである。よって、AG/CGは、攻撃または脅威に関連する任意のエンティティまたはイベントを含む計算の履歴を参照する。アラート、IOC、および中間脅威分析結果などのセキュリティに関するデータは部分グラフであり、それはAG/CGの要素に対するラベルとして表すことができ、通例、要素はエンティティまたはイベントを参照するエイリアスである。結果として、脅威検出は、AG/CG内の脅威を誘発する部分グラフを反復的に推論することを解とするグラフ計算問題になる。
【0059】
より一般的には、活動グラフは、コンピューティング・デバイス上での侵入的な計算と非侵入的な計算の両方を、その計算に関連する任意のセキュリティ知識と共に客観的に記録する、ラベル付けされた半有向時間グラフである。グラフ上の特定のラベルは通例、いくつかのカテゴリ、例えば以下のラベル、要素属性、要素関係、およびセキュリティ知識、の1つを表す。要素属性ラベルは、計算の記録から導出される客観的情報であり(上記で説明された)、このタイプのラベルは、特定の属性、例えばイベント・タイプREAD、を持つ要素のセットを識別する。要素関係ラベルは、計算の記録から導出される客観的情報であり、このタイプのラベルは、要素のセット間の何らかの関係、例えば、多数のREAD/WRITEイベントを接続するプロセスのREADイベントとWRITEイベントとの間の起源連関、を表す。このラベルは、細粒度の起源情報を、プロセス間レベルのPGに埋め込む。セキュリティ知識ラベル(使用される場合)は、セキュリティおよびプライバシーの目標および推測手順に関する主観的情報であり、このタイプのラベルは、要素のグループに何らかのセキュリティ知識をマークする。セキュリティ知識ラベルは、脅威推論の中間/最終結果、または組織ポリシー、IOC、もしくは外部検出システムからインポートされた異常スコア、例えば資格情報ファイルのセット、またはコマンド・サーバもしくは制御サーバとしてマークされたIPアドレス、のいずれかとして生成され得る。
【0060】
企業および組織は通例、脅威発見のために複数のレベルで計算を検査する。AG/CGは通例、ネットワーク、ホスト、またはプロセス・レベルなどの選択された監視レベルにおける計算を記述する。ある監視レベル、例えばネットワーク、を与えられると、エンティティ内部の活動、例えばホスト内のプロセス通信は、通常、監視範囲の外側にあり、CGに表されない。細粒度の計算情報は通例、低レベルのCG、例えばホスト・レベルのCGに表されるか、またはラベル、例えば起源ラベル、としてCGに埋め込まれる。
【0061】
図9は、代表的なホスト・レベルのAG/CG、例えばプロセスおよびファイルを示す。このグラフは計算履歴を時間グリッドとして提供し、横線はエンティティを表し、縦線はイベントを表す。
図9では、システム活動が、例えばsyscall監視およびプログラム計測を介してログされる。このCGの中のエンティティ(en)は、サブジェクト(例えばプロセスおよびスレッド)、およびオブジェクト(例えばファイル、パイプ、およびネットワーク・ソケット)から構成される。この例では、セキュリティ・データはラベルに埋め込まれ、lb
1:機密性は、en
f2が機密情報を含んでいることを意味し、lb
2:信頼できないは、en
p3が会社によって認定されていないことを意味する。この例では、
図9に示すように、en
p3がen
f2からトラバースされることが可能なときにデータ漏洩が発生する。
【0062】
図10は、ネットワーク・レベルの代表的なAG/CGを示す。この例では、小さいネットワークのリンク層通信のメタデータが、脅威インテリジェンス計算のためにログされる。示されるように、lb
1は、エンティティen
σ2、en
σ3、en
σ4間の4つのイベントを関係付ける起源ラベルである。リンクlb
1は、en
σ3とen
σ4との間の因果チェーンを特定するのを助け、ありえない経路を回避する。ポート・スキャンおよびホストを横断する横方向移動などの攻撃ステップを、この接続グラフ上で特定し、推測することができる。
【0063】
図11は、プロセス・レベルのAG/CGを示し、ここでは、例えば動的なプログラム分析により、プロセスを伴う活動が監視される。このグラフでは、エンティティは、コードおよびデータのメモリ・アドレスであり、イベントは命令(例えば呼び出し)またはsyscall(nmap)である。Θ(監視または追跡されることが可能なエンティティの空間)の無限大は、再帰呼び出しの表現をサポートし、例えば、foo( )のインスタンスは、en
foo、en’
foo、...と記述される。return-to-libcやreturn-orientedプログラミング(ROP)などのソフトウェア・エクスプロイト活動が捉えられて、この接続グラフ上で検査され得る。これらは、代表的な例に過ぎない。
【0064】
侵入的なデータと非侵入的なデータの両方に関する客観的な計算履歴を記録する活動/接続グラフを仮定すると、脅威の発見は、AG/CG内のセキュリティに関係する部分グラフのサブセットに対する閉包を反復的に計算し、最終的に脅威または侵入を記述する部分グラフを得る、グラフ・クエリ問題になる。グラフ・クエリは、IDSまたは挙動異常検出システムにプログラムされることが可能であり、またはオンデマンドの機敏な推測開発を通じて達成され得る。脅威ハンティングは、脅威仮説を反復的かつ対話式に構想、検証、改定、および確定するためのグラフ・クエリのシーケンスを作成する。
【0065】
グラフ・クエリを作成して活動/接続グラフ内で実行するプロセスが、グラフ計算である。この計算中に、部分グラフを参照する変数も、その部分グラフのエンティティおよびイベントのセットに対するラベルであり、変数は、AG/CGにラベルとして記憶され得る。反復される各グラフ計算ステップの結果は部分グラフまたはラベルであるので、各ステップは、グラフ計算言語でネイティブに、または外部モジュールにブラックボックスとして実装することができ、それは、部分グラフとしてのイベントおよびエンティティのセットを出力する。したがって、脅威が発見されたときに脅威インテリジェンスがグラフ・クエリ中で生成される。クエリ、特にグラフ・パターンは、脅威を記述し、その特定の脅威を他の活動/接続グラフで検索するために実行されることが可能である。
【0066】
グラフ・パターン・マッチングは、グラフ・クエリのコアにある。一般化すると、グラフ・パターンは本質的に、マッチングされる部分グラフを記述する制約のセットであり、グラフ要素に対する制約は、(1)単一のグラフ要素(例えば、エンティティのラベル/性質)、または(2)要素関係(例えば、あるエンティティがあるイベントに接続している)を記述する。パターンの作成は、人間領域の知識を推論手順に埋め込むことを可能にする。大半のグラフ言語によって表すことが可能な単純なパターン例には、典型的なDLLインジェクションの挙動(例えば、PROCESSラベルを持つ2つのエンティティが、ラベルCREATE_THREADを有するイベントによって接続される)、信頼できない実行の挙動(例えば、FILEラベルを持つがTRUSTED_EXEラベルを持たないエンティティが、EXECUTEとラベル付けされたイベントに接続し、次いでPROCESSとラベル付けされたエンティティに接続する)、およびデータ漏洩の挙動(例えば、SENSITIVEとラベル付けされたエンティティが、NETFLOWとラベル付けされたエンティティに所定数のホップ以内で接続する)、が含まれる。これらは、代表的であるが、非制限的な例である。
【0067】
要約すると、上記で説明したアプローチでは、脅威の発見がグラフ計算問題に変形される。そのアプローチでは、セキュリティ・ログ、トレース、およびアラートが、時間グラフまたは計算グラフ(CG)に記憶される。CGは、無害な活動と悪意ある活動を含む監視されるシステムの履歴を、相互接続されたエンティティおよびイベントとして記録する。すると、脅威の発見は、脅威の発見は、好ましくは、要素ラベルとして記憶されているアラートおよびセキュリティ領域の知識の助けを借りて、脅威または攻撃を表すCGの部分グラフを特定するグラフ計算問題になる。
【0068】
意図学習を使用したユーザ挙動の自動的理解
さらなる背景として、通例はアラートが報告されたときに挙動の意図を自動的に特定することを目的とする、機械学習に基づく方法を提供することも知られている。アラート・システムの性質と動作は、必ずしもこのアプローチの構成要素ではないが、このアプローチは、そのようなシステムでネイティブに実装されてもよい。
【0069】
この技術は、ラベル付けされた半有向時間(イベント)グラフから開始し、グラフは、上記で説明したように、通例はシステムまたはホストによって生成されるイベントから導出され、コンピューティング・デバイスにおける侵入的な計算と非侵入的な計算の両方を客観的に記録する。このタイプの時間グラフは、脅威発見のための有用な知見を提供するが、必然的にセマンティクス(コンテクスト)を欠く未処理のプロセス活動しか記述しない。時間(イベント)グラフは、この意味的知識(意図)を明かすためにさらにマイニングされてよい。このために、1つまたは複数のプロセス中心部分グラフのセットが、時間グラフから導出され、各プロセス中心部分グラフは、その部分グラフによって表される所与のプロセスに関係するすべてのイベントから構成される。次いで部分グラフを処理して、すべてのプロセスによって共有される1つまたは複数のアトミック動作を特定し、一つのアトミック動作は、関心対象の客観的コンテクストを提供するシステムによって生成されたイベントのセットを含む。アトミック動作は、通例、2つ以上のプロセッサによって使用される共通のアクションの小さいセットである。アトミック動作は、システムによって生成された一続きのイベントを記述してよいが、これは必要条件ではない。アトミック動作は、すべての計算を記録するより大きい半有向時間グラフの一部として、グラフとして記述されることが可能である。例示的なアトミック動作は、ユーザがウェブサイトを訪れることであり、この挙動は、異なるブラウザによって共有される共通のアクションのセット(共通のアクションの同じセットを使用する異なるプロセス)、すなわち、(i)DNSルックアップ、(ii)ウェブサイトのIPアドレスへのTCP接続、(iii)サイトとの間に確立されるHTTP(S)セッション、(iv)メインのHTMLフェッチ、(v)追加的なデータ・フェッチ(画像、CSS、JS等の)、(vii)(異なるIPアドレスにある)関連するウェブサイトからの追加的なデータ・フェッチ、等を含む。別の例として、(例えばMicrosoft(R)Wordにおける)単純なファイル保存動作のアトミック動作は、(i)ファイルを開く、(ii)ファイル書込み(複数のイベントであるが、各書込みsyscallは限られた量のデータのみをディスクに書き込むため、同じタイプを持つ)、および(iii)ファイルを閉じる、という多くのイベントまたはシステム・コールからなる。無論、これらはアトミック動作の代表例に過ぎない。
【0070】
アトミック動作を求めてマイニングした後、時間グラフは次いで再構成され、好ましくは、プロセス中心部分グラフから導出された、特定されたアトミック動作を、元の部分グラフ中のエッジの代わりに使用して、それにより再構成された時間(イベント)グラフを生成することにより、再構成される。グラフ埋め込みを使用して、再構成されたグラフ・データは次いで、さらなる機械学習に適するベクトルに基づく表現に変換される。グラフ埋め込み機能(グラフをベクトル表現に変換する)は知られている。そして、ディープ・ニューラル・ネットワーク(DNN)を使用して機械学習を実装してよい。DNNを訓練することにより、システムは、次いで時間(イベント)グラフの下にある意図を学習し、それにより、コンピュータ・システム・プロセス自体の意図をモデル化する。このアプローチは、プログラム(および特に下にあるプロセス)の実行挙動を理解するように動作し、それらを分類し、それにより潜在的な悪意ある挙動の検出を可能にする。
【0071】
上記で説明したアプローチは、時間グラフから目的アトミック動作(システムによって生成されたイベントのセット)のセットを抽出し、それらの動作を時間グラフに埋め込み、次いでそれにより得られた再構成された時間グラフの表現を使用して、その時間グラフの意図をラベル付けするように機械学習モデルを訓練する。
【0072】
図12は、上記で説明した技術の基本的動作を示す。1つの実施形態では、この技術は、
図8に示されるようなインテリジェンス・センターで、通例は、適切な物理的機械または仮想機械内で実行されるソフトウェアとして実装される。上記で指摘したように、この技術は、何らかの他のセキュリティ・システムまたはデバイス、例えばアラート・システム、と関連してよいが、これは必要条件ではない。また、この技術は、別のセキュリティ・デバイスまたはシステムへのフロントエンドの役割を果たすコンピュータ・システムで実装されてもよい。
【0073】
ステップ1200において、システムは、1つまたは複数のシステムによって生成されたイベント・レコードを、例えばシステム・ログから、入力として受け取る。ステップ1202において、タイムスタンプ、プロセス識別子(id)、オブジェクト(ファイル、ソケット、ソース、シンク)id、およびプロセス(スレッド)とオブジェクトとの間のシステム・コールに基づいて、半方向性の時間(イベント)グラフが構築される。よって、このグラフは、関心対象のコンピュータ・システムもしくはネットワークの中のまたはそれらに関連する、任意の同時に存在するシステム、デバイス、プログラム、プロセス等を表すことができる。時間グラフは、通例、ノード・セット、各自のタイムスタンプによって順序付けられた有向エッジのセット、ノードに割り当てられたラベルのセット、およびエッジにおける整数値であるタイムスタンプのセットを含む。ステップ1204において、時間グラフに表されている各所与のプロセスに対して、プロセス中心部分グラフが構築される。プロセス中心部分グラフは、通例、当該所与のプロセスに関係するイベントを含む。当該所与のプロセスに関係するすべてのイベントが使用されることは必要とされない。このステップは、共通のパターンを見つけ、アトミック動作を抽出するために実施される。ステップ1206において、各プロセス中心部分グラフから、イベント(2つまたは3つ以上のあるいはその両方の任意のプロセスおよびオブジェクト間の)の1つまたは複数のセットが抽出される。上記の数例で指摘したように、通例、アトミック動作は、2つ以上のプロセスによって使用される共通のアクションの何らかの小さいセットである。これらシーケンスに基づいて、次いで1つまたは複数の統計法を適用して、プロセスのすべて(またはその所与のサブセット)によって共有され、シーケンスを表す、アトミック動作のセットを見つける。代表的な統計法には、限定することなく、度数分析および共起分析が含まれる。ステップ1208において、システムは、好ましくは、ノードは変更しないまま、しかしそのグラフからのエッジまたは他のエンティティをアトミック動作に置き換えて、ステップ1202で構築された半方向性の時間グラフを再構成する。この動作は、本明細書において、元の時間グラフの「修正」と呼ばれることがある。ステップ1210において、次いでグラフ埋め込み動作を実施して、修正後の時間グラフ(ステップ1210で導出された)を1つまたは複数のベクトルに投影し、これは本明細書でベクトル表現と呼ばれることがある。ステップ1212において、次いで機械学習がベクトル表現に適用される。代表的な実施形態では、ディープ・ニューラル・ネットワーク(DNN)を適用して、ステップ1210で生成されたベクトルを入力として、ラベル付けされたデータから意図を学習する。
【0074】
説明されたように、
図12に示され、上記で説明された技術は、目的アトミック動作を抽出し、アトミック動作は通例、一つのプロセスに共通のシステム・イベントのセットからなる。この目的アトミック動作は、基本的なセマンティクスを提供し、次いで統計的学習が訓練データ・セットに実施され、このデータ・セットは、その企業内でかなり頻繁に使用されるプログラムおよびプロセスに関連するシステム・イベントを含むため、通例かなり大きい。時間グラフ埋め込みおよび意図学習は、アトミック動作を用いて時間グラフを再構成し(ステップ1208)、グラフ埋め込みを利用して修正後の時間グラフをベクトル表現に投影する(ステップ1210)ことにより、容易にされる。
【0075】
上記で説明したアプローチは、挙動を表す共通のパターンの階層的構築を可能にする。詳細には、
図12に説明される処理の際に、複数のアトミック動作を一つの共通パターンにマージすることができ、このパターンはその後、基礎となる時間グラフに繰り返し出現してよい。その後、通例はグラフ埋め込みがこの共通パターンに対して行われ、それにより、低/高レベルの挙動(アトミック動作またはより大きな共通パターン)をベクトルに埋め込む。ベクトルは次いで、例えば侵入検出の(または他のセキュリティに関係する)目的で、教師ありの機械学習に提供される。
【0076】
メタパス近傍を使用する、異種グラフでのグラフ・ニューラル・ネットワーク(GNN)の訓練
上記で説明した技術は利点を提供するが、それらは通例、グラフが同種であり、グラフがラベル付けされる、教師あり学習を伴う。しかし、ラベルが多数のデータ・サンプルに対して入手できないタスク(サイバー脅威ハンティングなど)には、ニューラル・ネットワークの教師なしの訓練を行うことが望ましい。本開示の技術はこの問題に対処し、次いでこの技術が説明される。
【0077】
本開示によれば、グラフ・ニューラル・ネットワーク(GNN)がラベルを用いずに異種グラフの数式表現を効率的に学習することを可能にするために、教師なし学習が提供される。グラフ・ニューラル・ネットワーク(GNN)は、グラフ・データ構造によって表されるデーを処理するためのニューラル・ネットワークの一部類である。本明細書のアプローチでは、GNNが、対照学習を使用して、教師なし方式で、異種グラフで訓練される。そのような学習は、類似するサンプル・ペアは互いと近いままであり(埋め込み距離に対して)、類似しないサンプル・ペアは離れている埋め込み空間(通例はベクトル空間)を学習するように設計される。互いと近いサンプルは、本明細書において正のサンプルと呼ばれ、離れているサンプルは本明細書において負のサンプルと呼ばれる。本開示によれば、および異種グラフ(または部分グラフ)に関して、本明細書で「メタパス近傍」サンプリングと呼ばれる特定タイプのサンプリングを使用して、正のサンプルのセットと負のサンプルのセットが、ノードごとに生成される。メタパス近傍は、以下のように定義される特定のグラフ構成である。詳細には、メタパスは、指定されたソース・ノード・タイプとターゲット・ノード・タイプとを接続するパス(すなわち、一続きのエッジ)のパターンである。ソース・ノード・タイプがターゲット・ノード・タイプと同じであるとき、ソース・ノードとターゲット・ノードは、メタパス近傍であると言われる。
図13の例示的グラフ1300に示されるように、いくつかのノード(h
0、h
2、およびh
4)が、同じノード・タイプである(円によって表されている)。よって、ここでは、メタパスは、丸のノード・タイプから丸のノード・タイプへのパスと定義される。この例では、2つのメタパスがあり、第1のメタパスはエッジ1302および1304に対応し、第2のメタパスはエッジ1302および1306に対応している。別の言い方をすると、ノードh
0について、そのメタパス近傍はノードh
2およびh
4である。見て分かるように、メタパス近傍は必ずしも直接接続されていない。
【0078】
本明細書の教師なし学習アプローチでは、メタパス・サンプリングは、正および負のサンプルのセットを提供する。次いで、正のサンプル間の埋め込み距離を最小にし、負のサンプル間の埋め込み距離を最大にする目的関数が算出される。後に説明するように、この学習アプローチは次いで、メタパス近傍間の類似する表現(例えばベクトル空間内の)と、非メタパス表現間の類似しない表現とを促進する。
【0079】
目的関数は、以下のようにしてグラフを基に算出される対照学習損失関数である。あるノードを与えられたとき、この指定されたノードと類似する埋め込みを有することが予想される正のサンプルのセットと、類似しない埋め込みを有することが予想される負のサンプルのセットとが生成される。この動作は、本明細書において正/負のサンプリングと呼ばれることがある。正のサンプルを生成するために、グラフは、指定されたノードから、同じノード・タイプを有する別のノードに到達するまでトラバースされる(例えば、幅優先検索(BFS:breadth-first-search)アルゴリズムを使用して)。BFS検索は、より近い距離を有するノード同士がより類似する埋め込みを有するので、正のサンプルと指定されたノードとの間の最小距離を保証する。負のサンプルを生成するには、指定されたノードと異なるノード・タイプを有するノードが無作為に選定される。異なるエポックをまたいで、負のサンプルは異なるノードであり得、これは単一の負のサンプルにオーバーフィットすることを回避する。
【0080】
次いで、対照学習損失計算は、以下のように進む。グラフを与えられたとき、グラフ中の各エッジ(タプル(srcnode、dstnode)として定義される)をループする。次いで、メタパスのソース・ノードのセットをsrcnodeと設定し、メタパスのターゲット・ノードのセットを、ノード・タイプがsrcnodeと同じであるメタパス近傍として設定する。一方、メタパスの最初のエッジが、選択されたエッジ(srcnode,dstnode)である。ノードごとではなくエッジごとに学習損失アルゴリズムをループすることにより、一つのノードが複数の隣接ノードを有することができ、各隣接ノードを通じてメタパス近傍が見つけられ得るので、グラフ中のノードの局所的構造が完全に探索される。正/負のサンプリングに基づき、次いで当該グラフの対照学習損失に基づくメタパス近傍が、次のように定義される:L=-log(Spos)-log(1-Sneg)。この対照学習損失は、指定されたノードと正のサンプルとの間の代表距離を最小にし、一方、指定されたノードと負のサンプルとの間の代表距離を最大にする。別の言い方をすると、メタパス近傍に対する対照表現学習は、正のサンプルに対する類似表現(メタパス近傍)と、負のサンプルに対する対照表現(非メタパス近傍)とをもたらす。目的関数は1つまたは複数の他のパラメータおよび重み付けを含んでもよいため、上記で説明した損失関数は、好ましいが、制限的であることは意図されない。
【0081】
上記で指摘したように、グラフ埋め込みを使用して、グラフが、ベクトルに基づく表現に変換される。ベクトルに基づかない表現が使用されてもよい。
図14は、このプロセスを示している。詳細には、グラフ1400は、先に説明されたようにメタパス近傍に対する対照学習損失を使用して訓練されたGNN1402への入力として適用される。グラフ埋め込み機能は、グラフ1400をベクトル表現1404に変換する。同様のグラフ埋め込みが、それぞれが一つの攻撃パターンを表す攻撃パターン・グラフのセットにも行われる。よって、攻撃パターン・グラフのセットに対して、GNNによって生成される(ベクトル空間内の)ベクトル表現のセットがある。これらのベクトル表現を用意して、次いで、ベクトル表現のファジー・パターン・マッチを使用して、特定の異種グラフに関するサイバー脅威ハンティングが実施される。
図15はこの動作を示している。詳細には、GNN1500は、上記で説明されたようにして訓練されたものである。グラフ埋め込みを使用して、1つまたは複数の攻撃パターン・グラフ(そのうち1つが1502に示される)が、GNN1500への入力として適用されて、1つまたは複数の対応するベクトル表現(そのうち1つが1504に示される)を生成する。攻撃パターン・グラフへのグラフ埋め込みは予め行うことができる。問題の(評価対象の)異種グラフ・パターンは、部分グラフ1506a~cのセットに分解される。各部分グラフ1506は、GNN1500により、それ自身の対応するベクトル表現1508a~cに埋め込まれる。次いでファジー・パターン・マッチ1510が、ベクトル表現1502などの各攻撃パターン・ベクトル表現と、部分グラフの各々に対応するベクトル表現との間で実施される。示されるように、ファジー・パターン・マッチは、ベクトル{1703}および{1702}について示され、部分グラフ1 1506aが、示される攻撃パターン1502との候補一致であることを示している。ベクトルに基づく以外の表現がGNN埋め込みから出力される場合、他のパターン・マッチング技術が使用されてよい。
【0082】
部分グラフは、入ってくる時間グラフから様々なやり方で生成されてよい。本明細書における時間グラフ、例えばAG/CGは、時間と共にグラフの新しい部分が追加されていく、動的に増大する時間グラフであることを思い出されたい。
図16は、そのような動的に増大する時間グラフを示す例の図であり、ここでも、横線はAG/CGの中のエンティティを表し、縦の矢印またはエッジはイベントを表している。
図16に示すように、第1の時間点t0の間、時間グラフ、例えばAG/CGは、要素1610に示されているようなものである。後の時間t1に、時間グラフは、要素1620に示されるようなものになり、時間t0から時間t1の間に発生したエンティティ間の追加的な活動のために追加的なノードおよびイベント1621~1625が存在している。
図16の要素1630および1640に示されるように、同じことがさらなる時間点t2およびt3にも当てはまる。各時間点に、点線の枠によって示される時間グラフの部分は、時間グラフの新しい部分を表し、この新しい部分は、それが単独でまたは前に処理されたグラフ部分との組合せで、侵入、攻撃、または脅威を示すパターン・グラフと一致する部分グラフを構成するかどうかを判定するために処理されることになる。
【0083】
図17は、時間グラフから部分グラフを生成する1つの方法を示している。制限的であることは意図されないこの実施形態では、スライディング・ウィンドウが、時間グラフの時間軸に沿って進み、そのウィンドウ内の時間グラフの部分を部分グラフとして出力する。詳細には、
図17は、移動する畳み込みフィルタを使用して、時間グラフ、例えばAG/CG、の部分グラフから情報を抽出するプロセスを図式的に示した例の図である。
図17に示すプロセスは、所定の時間点、例えばt0、t1、t2等に行われてよく、これらの時間点に、このプロセスが実行された前回の時間点以降に発生したノードおよびイベントを評価して、時間点と時間点の間に、例えば
図16に点線の枠として表される期間中に、発生したノードおよびイベントのベクトル表現を生成する。このプロセスは、ウィンドウ内にあるベクトル表現を収集して、ベクトル表現が、侵入、攻撃、もしくは脅威、または単に分析者、開発者、もしくは自動化されたコンピューティング・コンポーネントが時間グラフ内で検索したい活動を示すパターン・グラフのベクトル表現と比較され得るようにする。
【0084】
図17に示すように、移動するフィルタ・ウィンドウ1710として示される畳み込みフィルタ1710が定義され、時間グラフの一エンティティ(横線)を中心にして置かれる。移動するフィルタ・ウィンドウ内の部分グラフは、ベクトル、すなわちグラフ埋め込み、として計算される。
図17に示す例では、フィルタ1710は、選択されたエンティティ1712をその中心として移動しており、フィルタ・ウィンドウの部分グラフが、この中心エンティティ1712の前後で要約されている。フィルタ1710が、時間グラフ内で選択されたエンティティ1712に沿って、埋め込みが行われた前の時間点から、現在の埋め込みが行われている第2の時間点に移動されるのに伴って、フィルタ1712に対応するフィルタ・ウィンドウのベクトル表現が生成され、フィルタ・ウィンドウの時間点の範囲に対して記憶される。この実施形態では、グラフ埋め込みは、畳み込みフィルタ1710として実装され、それと共に、例えばいくつの時間点(横軸)がフィルタ・ウィンドウに含まれるかという時間的境界、および、例えば選択されたエンティティ1712への/からのいくつの直接の/間接的なイベントがフィルタ・ウィンドウ(縦軸)にあるかという到達可能性の制限がある。様々なサイズの様々なフィルタ、例えば中心となる選択されたエンティティの前後1ホップ、2ホップ、3ホップ、より小さい/大きい時間間隔等のサイズのフィルタが、時間グラフの埋め込みを行うために定義されてよい。よって、フィルタ・ウィンドウ1710の横方向の限界は、その実装に望まれる時間点の範囲によって定義され、フィルタ・ウィンドウ1710の縦方向の限界は、イベントが埋め込みの目的のために考慮されるべき、到達可能性の制限、例えば、中心となるエンティティ、例えば
図17の1712または1714、からのホップ数によって定義される。
【0085】
問題を、時間的境界および到達可能性の制限のあるノード埋め込みに制限することにより、非時間グラフのノード埋め込み機構を使用して、フィルタ・ウィンドウ内への情報の埋め込みを行うことができる。例えば、node2vec埋め込み(距離埋め込み)、グラフ畳み込みネットワーク(GCN)埋め込み(グラフは正規化されたグラフ・ラプラシアン行列として表される)、グラフ・ニューラル・ネットワーク(ある頂点の近傍はそれに接続されている頂点(複数の層にある)の要約に基づいて要約される)等を使用して、フィルタ・ウィンドウに含まれている情報の実際の埋め込みを行ってよい。
図17に示すように、中心となる選択されたエンティティ1712は、フィルタのサイズ、例えばフィルタの「ホップ」数、に従って、時間グラフ内で所定のエンティティ数だけ反復されてよい。例えば、時間点(1)~(3)における移動するフィルタ・ウィンドウの図示は、選択されたエンティティ1712を基準として、第1の時間点((1)として示される)から、第2の時間点((2)として示される)へ、そして第3の時間点((3)として示される)までのものである。フィルタ・ウィンドウの移動が時間的境界に達すると、フィルタ・ウィンドウは、選択されたエンティティ2714などの新しい選択されたエンティティを中心として置き直され、プロセスは、
図17の時間点(4)~(6)に関して示されるように繰り返される。上記で指摘したように、このプロセスの結果として、node2vecなどの距離埋め込み技術、または例えばGNNや多層CNNなどの訓練されたニューラル・ネットワーク機構によって行われる埋め込みに基づく、時間グラフのベクトル表現が得られる。
【0086】
各選択されたエンティティ(例えばプロセス)へのすべての接続されているエンティティを部分グラフとして抽出するなど、部分グラフをセグメント化する他の方式が存在するため、
図17のスライディング・ウィンドウ技術は、制限的であることは意図されない。
【0087】
要約すると、本発明によれば、メタパス近傍サンプリングを通じてグラフ内の各ノードに対して正のサンプルのセットおよび負のサンプルのセットを生成し、次いで対照表現学習を行うことにより、GNNモデルが訓練される。この訓練は、ラベルを一切用いずに、教師なし方式で実施される。訓練後、モデルを使用してグラフをベクトル表現に埋め込み、それが、サイバー脅威ハンティングなどの1つまたは複数のセキュリティ関係タスクを容易にする。例えば、サイバー脅威ハンティング・システムの入力は、
図16に示されるような大きい異種時間グラフの形態のストリーミング・システム/ネットワーク活動である。時間グラフは、複数の部分グラフに分割される。この部分グラフは次いで、ベクトル表現を生成するように上記で説明されたように訓練されたGNNに供給される。同様の埋め込みが、攻撃パターンについても行われる。グラフ埋め込みの後、ベクトル空間におけるそれらグラフ埋め込みの類似度が比較される。ファジー・マッチするベクトルが特定された場合、潜在的な攻撃が見つかる。次いで、セキュリティまたは他のポリシーに応じて、1つまたは複数の緩和措置または他の改善措置が取られてよい。
【0088】
本明細書におけるアプローチは、様々なタイプの使用事例に活用され得る。それらには、制限なく、セキュリティ分析者が、グラフ・パターンに記述されている既知の攻撃と類似する攻撃のインスタンスを見つけるのを可能にすること、セキュリティ分析者が、グラフ・パターンに記述されているものと類似する挙動を共有する、疑わしいプロセスを見つけるのを可能にすること、および、セキュリティ分析者が、必ずしも具体的にではなく、攻撃の様々な実装を求めて疑わしい挙動を検索できるような方式で、疑わしい挙動を記述するのを可能にすること、が含まれる。
【0089】
上記で説明した技術は、大きな利点を提供し、すなわち、従来の方法では通例訓練できない、異種ノードを持つGNNを、教師なし方式で訓練するための新規な方式を提供する。
【0090】
代表的であるが非制限的な実施形態において、この技術は、監視されるコンピューティング・システムまたはネットワークとの関連で動作する、挙動に基づくマルウェア検出システムで実装されてよい。監視対象のコンピューティング・システムは、
図2に関して上記で説明したように実装されてよく、(実行時)プロセスのセットを実行することを含むと仮定される。ホストベースの、またはシステム・イベント、例えば各プロセスのシステム・コールおよびAPI呼び出し、が継続的に監視・記録される。ホストまたはシステム・イベントが監視され、特定され、記憶される具体的な方式は、本開示の態様ではない。典型的な実装では、このタイプのシステム活動が、例えばオペレーティング・システムにより、またはsyscall監視およびプログラム計測により、ログされる。マルウェア検出システムは、例えば
図3、
図4、
図5、または
図8の上記で説明したオペレーティング・システム環境のいずれでも実行されるように構成される。マルウェア検出システムの1つまたは複数の構成要素は、クラウドベースのアーキテクチャで実装されてよい。変形実装では、マルウェア検出システムは、そのシステム・イベントが監視されているコンピューティング・システムでネイティブに実行される。
【0091】
通例、そのような各モジュールは、1つまたは複数のハードウェア・プロセッサで実行されるソフトウェアで、すなわち、コンピュータ・プログラム命令のセットとして、実装される。これらのモジュールは、互いと統合される、同じ場所に置かれるもしくは分散される、またはその他の形で1つまたは複数のコンピューティング・エンティティとして実装されてよい。これら機能の1つまたは複数は、クラウドで実装されてよい。
【0092】
本明細書における技術は、システム・イベントが記録されてモデルの構築を容易にするために使用されたコンピューティング・システム以外のコンピューティング・システムのためのマルウェア検出を容易にするために使用されてよい。
【0093】
本明細書におけるアプローチは、
図3のSEIMデバイスもしくはシステム、
図4に示されるAPTプラットフォーム、
図5のクラウドベースのサイバーセキュリティ分析システムなどのセキュリティ・システム、またはシステム・イベントが取り込まれ、マイニングおよび調査のために利用可能である何らかの他の実行環境の中でまたはそれとの関係で、自動化された方式で実装されるように設計される。しかし、イベント・モデラ技術が実装される特定の動作プラットフォームまたはコンピューティング環境は制限ではない。機械学習自体は、機械学習プラットフォームまたはサービスを使用して「as-aサービス」として提供され得る。
【0094】
代替として、上記で説明した機能は、スタンドアロンのアプローチ、例えばプロセッサによって実行されるソフトウェアに基づく機能として実装されてよく、または、管理されるサービス(SOAP/XMLインターフェースを介したウェブサービスとしてを含む)として利用可能であってもよい。本明細書に記載される特定のハードウェアおよびソフトウェア実装の詳細は、単に説明を目的とするものであり、記載される主題の範囲を制限する意図はない。
【0095】
本明細書に記載されるグラフに基づく技術は、ディープ・ニューラル・ネットワーク(DNN)モデルと併せた使用に限定されない。このアプローチは拡張されて、内部処理状態を有する、サポート・ベクター・マシン(SVM)、ロジスティック回帰(LR)モデル等を制限することなく含む任意の機械学習モデルへのフロントエンドとして使用されてよく、またこのアプローチは、決定木に基づくモデルと共に使用するために拡張されてもよい。
【0096】
より一般的には、開示される主題の文脈におけるコンピューティング・デバイスは各々、ハードウェアおよびソフトウェアを備えたデータ処理システム(
図2に示されるものなど)であり、これらのエンティティは、インターネット、イントラネット、エクストラネット、プライベート・ネットワークなどのネットワーク、または任意の他の通信媒体もしくはリンクを介して互いと通信する。データ処理システム上のアプリケーションは、とりわけ、HTTP、FTP、SMTP、SOAP、XML、WSDL、UDDI、およびWSFLのサポートを制限することなく含む、ウェブおよびその他の既知のサービスおよびプロトコルのネイティブなサポートを提供する。SOAP、WSDL、UDDI、およびWSFLに関する情報は、これら規格の開発および維持を担うWorld Wide Web Consortium(W3C)から入手可能であり、HTTP、FTP、SMTPおよびXMLに関するさらなる情報は、Internet Engineering Task Force(IETF)から入手可能である。これらの周知の規格およびプロトコルに精通していることが想定される。
【0097】
本明細書に記載される手法は、単純なn層アーキテクチャ、ウェブ・ポータル、フェデレーテッド・システム等を含む様々なサーバ側アーキテクチャにおいてまたはそれとの関連で実装されてよい。本明細書の技術は、疎結合サーバ(「クラウド」ベースを含む)環境で実施されてよい。
【0098】
さらにより一般的には、本明細書に記載される主題は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェア要素とソフトウェア要素の両方を含む実施形態の形態を取ることができる。好ましい実施形態では、機能は、これらに限定されないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含むソフトウェアとして実装される。さらに、上記で指摘したように、身元識別コンテクストに基づくアクセス制御機能は、コンピュータまたは任意の命令実行システムによる使用またはそれと関係した使用のためのプログラム・コードを提供する、コンピュータ使用可能またはコンピュータ可読媒体からアクセス可能なコンピュータ・プログラム製品の形態を取ることができる。この説明の目的のためには、コンピュータ使用可能またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによる使用またはそれと関係した使用のためにプログラムを保持または記憶することができる任意の装置であり得る。媒体は、電子、磁気、光学、電磁気、赤外線、または半導体システム(または装置もしくはデバイス)であり得る。コンピュータ可読媒体の例には、半導体またはソリッド・ステート・メモリ、磁気テープ、取外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、剛体磁気ディスク、および光ディスクが含まれる。光ディスクの現在の例には、コンパクト・ディスク読出し専用メモリ(CD-ROM)、コンパクト・ディスク読出し/書込み(CD-R/W)およびDVD(R)が含まれる。コンピュータ可読媒体は有形の物品である。
【0099】
コンピュータ・プログラム製品は、記載された機能の1つまたは複数を実装するためのプログラム命令(またはプログラム・コード)を有する製品であってよい。これらの命令またはコードは、リモートのデータ処理システムからネットワークを通じてダウンロードされた後に、データ処理システムのコンピュータ可読記憶媒体に記憶されてよい。または、これらの命令またはコードは、サーバ・データ処理システムのコンピュータ可読記憶媒体に記憶され、リモートのデータ処理システム内のコンピュータ可読記憶媒体で使用するために、ネットワークを通じてリモート・システムにダウンロードされるように適合されてよい。
【0100】
代表的な実施形態では、機械学習に基づく技術は、特殊目的コンピュータで、好ましくは1つまたは複数のプロセッサによって実行されるソフトウェアで、実装される。ソフトウェアは、1つまたは複数のプロセッサに関連付けられた1つまたは複数のデータ・ストアまたはメモリに維持され、ソフトウェアは、1つまたは複数のコンピュータ・プログラムとして実装されてよい。集合的に、この特殊目的ハードウェアとソフトウェアが、上記で説明した機能を構成する。
【0101】
上記では、本発明の特定の実施形態によって行われる動作の特定の順序を記載したが、そのような順序は例示的なものであり、代替の実施形態は、動作を異なる順序で行う、特定の動作を組み合わせる、特定の動作を重ね合わせる等してよいことが理解されるべきである。本明細書における所与の実施形態の参照は、記載されるその実施形態が、特定の特徴、構造、特性を含んでよいことを意味するが、あらゆる実施形態が、その特定の特徴、構造、特性を必ずしも含まなくてよい。
【0102】
最後に、システムの所与の構成要素は個別に説明されたが、当業者は、機能の一部は、所与の命令、プログラム・シーケンス、コード部分等において組み合わされるまたは共有されてよいことを認識するであろう。
【0103】
本明細書の技術は、別の技術または技術分野に対する改良を提供し、それらはとりわけ、脅威インテリジェンス・システム、マルウェア検出器、エンドポイント管理システム、APTソリューション、セキュリティ・インシデントおよびイベント管理(SIEM)システム、ならびにサイバーセキュリティ分析ソリューションである。
【0104】
制限的であることは意図せず、GNNを訓練するために使用される異種グラフは、時間グラフ自体と同じであってよい。具体例として、機械/ホストが所与の期間(例えば6か月)にわたって監視されると仮定する。その場合、最初の3か月のログ(時間グラフ)は、訓練に使用される異種グラフに相当してよい。システムを展開する際、モデルは、時間と共に基礎となるデータ中で分布が変化すると仮定して、最良の埋め込みを学習するようにニューラル・ネットワークに対して継続的に訓練され得る。一般化すると、本明細書において使用される訓練とは、時間グラフに対して好適な埋め込み空間を確立することを言う。埋め込みが確立されれば、グラフ・パターンを与えられたときに、例えばファジーまたは他のタイプのマッチングを使用して、類似する部分グラフを見つけるのは簡単明瞭である。
【0105】
上記で主題を説明したが、特許請求される内容は以下の通りである。
【手続補正書】
【提出日】2024-07-30
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピューティング・システム内の異常な挙動を検出する方法であって、
メタパス・サンプリングを使用して1つまたは複数の異種グラフから導出された正のサンプルのセットおよび負のサンプルのセットに対照表現学習を適用することにより、教師なし方式でグラフ・ニューラル・ネットワーク(GNN)を訓練することと、
訓練に続いて、システムによって生成されたイベントから導出された時間グラフを受け取ることと、
前記訓練されたGNNを使用して、前記時間グラフを表現に埋め込むことと、
前記表現を、前記訓練されたGNNによって生成され、1つまたは複数のパターン・グラフに対応する、1つまたは複数の表現のセットと比較することと、
前記比較に基づいて、前記時間グラフが前記コンピューティング・システム内の潜在的な異常な挙動に関連するという報知を出力することと、を含む方法。
【請求項2】
メタパス・サンプリングが、前記異種グラフのうち1つの中のメタパスを特定し、メタパスは、ソース・ノード・タイプをターゲット・ノード・タイプに接続する一続きのエッジである、請求項1に記載の方法。
【請求項3】
前記メタパス・サンプリングが、正のサンプルのペア間の表現空間における埋め込み距離を最小にし、負のサンプルのペア間の前記表現空間における埋め込み距離を最大にする、請求項1に記載の方法。
【請求項4】
メタパス・サンプリングは、指定されたノードを基準として前記異種グラフの1つをトラバースして、前記指定されたノードと共通のノード・タイプを有する1つまたは複数のノードに到達することによって前記正のサンプルを生成し、前記指定されたノードと異なるノード・タイプを有するノードを無作為に選定することによって前記負のサンプルを生成する、請求項1に記載の方法。
【請求項5】
前記対照表現学習が、損失関数L=-log(S
pos)-log(1-S
neg)を実装し、S
posは前記正のサンプルのセットであり、S
negは前記負のサンプルのセットである、請求項1に記載の方法。
【請求項6】
前記表現がベクトルであり、表現を比較することがファジー・パターン・マッチを使用する、請求項1に記載の方法。
【請求項7】
前記時間グラフから部分グラフのセットを導出することと、
前記部分グラフのセットの各部分グラフをベクトル表現に埋め込むことと、
をさらに含み、
前記比較することが、ある部分グラフに対応する各ベクトル表現を、パターン・グラフに対応するベクトル表現と比較する、請求項1に記載の方法。
【請求項8】
装置であって、
プロセッサと、
前記プロセッサによって実行されるコンピュータ・プログラム命令を保持しているコンピュータ・メモリと、を備え、前記コンピュータ・プログラム命令は、コンピュータ・システム内の異常な挙動を検出するように構成され、前記コンピュータ・プログラム命令は、
メタパス・サンプリングを使用して1つまたは複数の異種グラフから導出された正のサンプルのセットおよび負のサンプルのセットに対照表現学習を適用することにより、教師なし方式でグラフ・ニューラル・ネットワーク(GNN)を訓練し、
訓練に続いて、システムによって生成されたイベントから導出された時間グラフを受け取り、
前記訓練されたGNNを使用して、前記時間グラフを表現に埋め込み、
前記表現を、前記訓練されたGNNによって生成され、1つまたは複数のパターン・グラフに対応する、1つまたは複数の表現のセットと比較し、
前記比較に基づいて、前記時間グラフが前記コンピューティング・システム内の潜在的な異常な挙動に関連するという報知を出力する
ように構成されたプログラム・コードを含む、装置。
【請求項9】
メタパス・サンプリングが、前記異種グラフのうち1つの中のメタパスを特定するように構成されたコンピュータ・プログラム・コードを含み、メタパスは、ソース・ノード・タイプをターゲット・ノード・タイプに接続する一続きのエッジである、請求項8に記載の装置。
【請求項10】
前記メタパス・サンプリングが、正のサンプルのペア間の表現空間における埋め込み距離を最小にし、負のサンプルのペア間の前記表現空間における埋め込み距離を最大にする、請求項8に記載の装置。
【請求項11】
メタパス・サンプリングは、指定されたノードを基準として前記異種グラフの1つをトラバースして、前記指定されたノードと共通のノード・タイプを有する1つまたは複数のノードに到達することによって前記正のサンプルを生成し、前記指定されたノードと異なるノード・タイプを有するノードを無作為に選定することによって前記負のサンプルを生成するコンピュータ・プログラム・コードを含む、請求項8に記載の装置。
【請求項12】
前記対照表現学習が、損失関数L=-log(S
pos)-log(1-S
neg)を実装し、S
posは前記正のサンプルのセットであり、S
negは前記負のサンプルのセットである、請求項8に記載の装置。
【請求項13】
前記表現がベクトルであり、表現を比較するように構成された前記コンピュータ・プログラム・コードが、ファジー・パターン・マッチング・アルゴリズムを実装するコンピュータ・プログラム・コードを含む、請求項8に記載の装置。
【請求項14】
前記コンピュータ・プログラム・コードが、
前記時間グラフから部分グラフのセットを導出し、
前記部分グラフのセットの各部分グラフをベクトル表現に埋め込む
ようにさらに構成され、
前記コンピュータ・プログラム・コードは、ある部分グラフに対応する各ベクトル表現を、パターン・グラフに対応するベクトル表現と比較するようにさらに構成される、請求項8に記載の装置。
【請求項15】
データ処理システムで使用するための非一過性コンピュータ可読媒体内のコンピュータ・プログラムであって、前記データ処理システムによって実行されたときに、コンピュータ・システム内の異常な挙動を検出し、
コンピュータに、
メタパス・サンプリングを使用して1つまたは複数の異種グラフから導出された正のサンプルのセットおよび負のサンプルのセットに対照表現学習を適用することにより、教師なし方式でグラフ・ニューラル・ネットワーク(GNN)を訓練し、
訓練に続いて、システムによって生成されたイベントから導出された時間グラフを受け取り、
前記訓練されたGNNを使用して、前記時間グラフを表現に埋め込み、
前記表現を、前記訓練されたGNNによって生成され、1つまたは複数のパターン・グラフに対応する、1つまたは複数の表現のセットと比較し、
前記比較に基づいて、前記時間グラフが前記コンピューティング・システム内の潜在的な異常な挙動に関連するという報知を出力する
処理を実行させる、コンピュータ・プログラム。
【請求項16】
メタパス・サンプリングが、前記異種グラフのうち1つの中のメタパスを特定するように構成されたコンピュータ・プログラム・コードを含み、メタパスは、ソース・ノード・タイプをターゲット・ノード・タイプに接続する一続きのエッジである、請求項15に記載のコンピュータ・プログラム。
【請求項17】
前記メタパス・サンプリングが、正のサンプルのペア間の表現空間における埋め込み距離を最小にし、負のサンプルのペア間の前記表現空間における埋め込み距離を最大にする、請求項15に記載のコンピュータ・プログラム。
【請求項18】
メタパス・サンプリングは、指定されたノードを基準として前記異種グラフの1つをトラバースして、前記指定されたノードと共通のノード・タイプを有する1つまたは複数のノードに到達することによって前記正のサンプルを生成し、前記指定されたノードと異なるノード・タイプを有するノードを無作為に選定することによって前記負のサンプルを生成するコンピュータ・プログラム・コードを含む、請求項15に記載のコンピュータ・プログラム。
【請求項19】
前記対照表現学習が、損失関数L=-log(S
pos)-log(1-S
neg)を実装し、S
posは前記正のサンプルのセットであり、S
negは前記負のサンプルのセットである、請求項15に記載のコンピュータ・プログラム。
【請求項20】
前記表現がベクトルであり、表現を比較するように構成された前記コンピュータ・プログラム・コードが、ファジー・パターン・マッチング・アルゴリズムを実装するコンピュータ・プログラム・コードを含む、請求項15に記載のコンピュータ・プログラム。
【請求項21】
前記コンピュータ・プログラム・コードが、
前記時間グラフから部分グラフのセットを導出し、
前記部分グラフのセットの各部分グラフをベクトル表現に埋め込む
ようにさらに構成され、
前記コンピュータ・プログラム・コードは、ある部分グラフに対応する各ベクトル表現を、パターン・グラフに対応するベクトル表現と比較するようにさらに構成される、請求項15に記載のコンピュータ・プログラム。
【国際調査報告】