JP2022549590A - インテグリティ監視のためのミューテーション・イベント検出 - Google Patents

インテグリティ監視のためのミューテーション・イベント検出 Download PDF

Info

Publication number
JP2022549590A
JP2022549590A JP2022516087A JP2022516087A JP2022549590A JP 2022549590 A JP2022549590 A JP 2022549590A JP 2022516087 A JP2022516087 A JP 2022516087A JP 2022516087 A JP2022516087 A JP 2022516087A JP 2022549590 A JP2022549590 A JP 2022549590A
Authority
JP
Japan
Prior art keywords
mutation event
external commands
change events
event report
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2022516087A
Other languages
English (en)
Other versions
JPWO2021059116A5 (ja
JP7455197B2 (ja
Inventor
啓州 北原
裕治 渡邊
史子 秋山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2022549590A publication Critical patent/JP2022549590A/ja
Publication of JPWO2021059116A5 publication Critical patent/JPWO2021059116A5/ja
Application granted granted Critical
Publication of JP7455197B2 publication Critical patent/JP7455197B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

コンピュータ実装方法が、クラスタ・コンピューティング・システム内の1つまたは複数の変更イベントに関連付けられた1つまたは複数のプロセスに基づいて1つまたは複数のプロセス・ツリーを生成することと、1つまたは複数のプロセス・ツリーのそれぞれのプロセス・ツリーのルートを1つまたは複数の外部コマンドと比較することによってミューテーション・イベント検出を行うことと、その比較に基づいてミューテーション・イベント報告を生成することとを含む。

Description

本発明は、一般にはコンピュータ・システムに関し、より詳細には、インテグリティ監視のためのミューテーション・イベント検出に関する。
コンプライアンスおよび監査標準の一部としてシステムおよび情報のインテグリティ監視が必要な場合がある。そのような標準には、ペイメント・カード業界データ・セキュリティ基準(Payment Card Industry Data Security Standards(PCI/DSS))(たとえばPCI要件11.5)、米国立標準技術研究所(National Institute of Standards and Technology(NIST))標準(たとえばNIST特別刊行物800-53(SI-7))などが含まれ得るが、これらには限らない。
本発明の一態様によると、システムが提供される。このシステムは、プログラム・コードを記憶するためのメモリ・デバイスと、メモリ・デバイスに動作可能に結合された少なくとも1つのハードウェア・プロセッサとを含む。少なくとも1つのハードウェア・プロセッサは、クラスタ・コンピューティング・システム内の1つまたは複数の変更イベントに関連付けられた1つまたは複数のプロセスに基づいて1つまたは複数のプロセス・ツリーを生成し、1つまたは複数のプロセス・ツリーのそれぞれのプロセス・ツリーのルートを1つまたは複数の外部コマンドと比較することによってミューテーション・イベント検出を行い、比較に基づいてミューテーション・イベント報告を生成するように、メモリ・デバイスに記憶されているプログラム・コードを実行するように構成される。
本発明の別の態様によると、コンピュータ実装方法が提供される。この方法は、クラスタ・コンピューティング・システム内の1つまたは複数の変更イベントに関連付けられた1つまたは複数のプロセスに基づいて1つまたは複数のプロセス・ツリーを生成することと、1つまたは複数のプロセス・ツリーのそれぞれのプロセス・ツリーのルートを1つまたは複数の外部コマンドと比較することによってミューテーション・イベント検出を行うことと、比較に基づいてミューテーション・イベント報告を生成することとを含む。
上記およびその他の特徴および利点は、添付図面とともに読むべき以下の例示の実施形態の詳細な説明から明らかになるであろう。
以下の説明では、以下の図面を参照しながら好ましい実施形態の詳細を示す。
本発明の一実施形態による、クラスタ・コンピューティング・システムの概要を示すブロック/流れ図である。 本発明の一実施形態による、図1のシステムにおいて実装可能な変更イベントの検出と記憶を示すブロック図である。 本発明の一実施形態による、クラスタ・コンピューティング・システムにおけるミューテーション・イベントを検出するためのシステム/方法を示すブロック/流れ図である。 本発明の一実施形態による処理システムを示すブロック図である。 本発明の一実施形態による、クラウド消費者によって使用されるローカル・コンピューティング・デバイスが通信する1つまたは複数のクラウド・コンピューティング・ノードを有する例示のクラウド・コンピューティング環境を示すブロック図である。 本発明の一実施形態による、クラウド・コンピューティング環境によって提供される1組の機能抽象層を示すブロック図である。 本発明の一実施形態による例示の変更イベントを示す図である。
本明細書に記載の実施形態は、クラスタ・コンピューティング・システムのためのミューテーション・イベントの検出を提供する。クラスタ・コンピューティング・システムは、タスクを実行するために共働する接続コンピュータ・デバイスの1つまたは複数のグループ、またはクラスタを含むことができる。クラスタは、ソフトウェアによって制御およびスケジュール可能な、同じタスクを実行するそれぞれのノード・セットを有することができる。
本明細書で使用するように、ミューテーション・イベントとは、クラスタ内で発生する意図されていない変更に対応する変更イベントを指す。より詳細には、本明細書に記載の実施形態は、変更イベントを収集し、変更イベントからミューテーション・イベントを抽出することができる。変更イベントは、たとえば、ファイル作成、更新、削除、およびプロセス開始などの低レベル・イベントを含み得る。ミューテーション・イベントは、(1)プログラム解析またはイメージ解析なしに、(2)低頻度またはまれな非ミューテーション(たとえば意図された)イベントをフィルタ除去する機能により、抽出可能である。
たとえば、本明細書に記載の実施形態は、アプリケーション・デプロイメント、スケーリング、および管理を自動化するためのコンテナ・オーケストレーション・システムを含むクラスタ・コンピューティング・システムとともに実装可能である。コンテナは、ソフトウェアを配信するためにオペレーティング・システム(OS)レベルの仮想化を使用するパッケージである。コンテナは、互いに分離され、それ自体のソフトウェアとライブラリと構成ファイルとをバンドルすることができる。コンテナは単一のOSカーネルによって実行されるため、たとえば仮想マシンよりも軽い。たとえば、クラスタは、Kubernetes(「k8s」)コンテナ・オーケストレーション・システムを含むことができる。Kubernetesは、様々なコンテナ・ツールとともに使用可能なオープンソースのコンテナ・オーケストレーション・システムである。
本明細書に記載の実施形態は、PCI/DSS(たとえばPCI要件11.5)、NIST標準(たとえばNIST特別刊行物800-53(SI-7))などを含むがこれらには限定されないシステムおよび情報インテグリティ標準のコンプライアンスを満たすために使用することができる。たとえば、挙動が特に明確であるコンテナにPCI要件11.5が適用される場合、コンテナにおけるミューテーションはコンテナの挙動の異常な変化を予測することができる。そのような挙動の異常な変化は、(ホワイトリストに登録されたプロファイルに基づいてコンテナにおいて予測される既知の変化を考慮した後で)さらなる調査のためにシステム管理者によって評価可能である。この調査により、悪意のある活動(新たな悪意ファイルまたはプロセス)、ビットコイン・マイナー、または不健全な状態のコンテナがわかる場合がある。
本明細書において、「1つの実施形態」または「一実施形態」と言う場合、およびこれらのその他の変形に言及する場合、その実施形態に関連して記載されている特定の機構、構造体、特徴などが、本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体の様々な箇所に現れる「1つの実施形態では」または「一実施形態では」という語句およびその他の変形の記載は、必ずしもすべてが同じ実施形態を指しているとは限らない。
また、たとえば、「A/B」、「AまたはBあるいはその両方」、および「AとBとのうちの少なくとも1つ」という場合の「/」、「または...あるいはその両方」、および「...のうちの少なくとも1つ」のいずれかの使用は、最初に記載されている選択肢(A)のみの選択、または2番目に記載されている選択肢(B)のみの選択、または両方の選択肢(AとB)の選択を包含することが意図されていることを理解されたい。他の一例として、「A、B、またはC、あるいはこれらの組合せ」および「AとBとCとのうちの少なくとも1つ」という場合、このような語句は、最初に記載されている選択肢(A)のみの選択、または2番目に記載されている選択肢(B)のみの選択、または3番目に記載されている選択肢(C)のみの選択、または最初に記載されている選択肢と2番目に記載されている選択肢(AとB)のみの選択、または最初に記載されている選択肢と3番目に記載されている選択肢(AとC)のみの選択、または2番目に記載されている選択肢と3番目に記載されている選択肢(BとC)のみの選択、または3つの選択肢(AとBとC)すべての選択を包含することが意図されている。当業者には明らかなように、このことは記載されている数の項目に拡大適用可能である。
本明細書で使用されている用語は、特定の実施形態について説明することを目的としているに過ぎず、例示の実施形態の限定であることは意図されていない。本明細書で使用されているように、単数形の「a」、「an」、および「the」は、文脈が明確に別の解釈を示していない限り、複数形も含むことが意図されている。用語「備える(comprises)」、「備えている(comprising)」、「含む(includes)」、または「含んでいる(including)」、あるいはこれらの組合せは、本明細書で使用されている場合、記載されている特徴、整数、ステップ、動作、要素、またはコンポーネント、あるいはこれらの組合せの存在を規定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、またはコンポーネント、またはこれらのグループ、あるいはこれらの組合せの存在または追加を排除しない。
本明細書では、様々な要素について説明するために第1、第2などの用語を使用する場合があるが、これらの要素はこれらの用語によって限定されるべきではないことを理解されたい。これらの用語は、1つの要素を別の要素と区別するためにのみ使用されている。したがって、以下で説明されている第1の要素は、本概念の範囲から逸脱することなく第2の要素と称することも可能である。
次に、同様の番号が同一または類似の要素を表す図面を参照し、まず図1を参照すると、クラスタ・コンピューティング・システム100の概要が示されている。1つの実施形態では、システム100はコンテナ・オーケストレーション・システムを含む。たとえば、システム100は、たとえばKubernetesコンテナ・オーケストレーション・システムを含むことができる。
システムは、1つまたは複数のクラスタを含むことができる。この例示の実施形態に示すように、システム100は、クラスタ110-1およびクラスタ101-2を含む複数のクラスタを含むことができる。クラスタ110-1および110-2に関する詳細は、図2を参照しながら後述する。
さらに図示されているように、システム100は、データベース(DB)120をさらに含むことができる。DB120は、クラスタ110-1および110-2から受信した1つまたは複数の変更イベントを記憶することができる。以下で詳述するように、1つまたは複数の変更イベントは、ミューテーション・イベントを検出するために収集可能である。
さらに図示されているように、システム100は、アプリケーション・プログラミング・インターフェース(API)サーバ130をさらに含むことができる。1つまたは複数の外部コマンドは、コンテナ・オーケストレーション・システム内のコンテナ・プラットフォームによって実行可能である。たとえば、1つの実施形態では、APIサーバ130はKubernetes APIサーバとすることができる。以下で詳述するように、APIサーバ130は、変更イベントに関連してミューテーション・イベントを検出するために1つまたは複数の外部コマンド(たとえば1つまたは複数のプローブ・コマンド)を与えることができる。
さらに図示されているように、システム100は、少なくとも1つの処理デバイス140をさらに含む。少なくとも1つの処理デバイス140は、1つまたは複数の変更イベントと1つまたは複数の外部コマンドとに基づいてミューテーション・イベント検出を行うように構成される。
たとえば、少なくとも1つの処理デバイス140は、APIサーバ130から1つまたは複数の外部コマンド(たとえば1つまたは複数のプローブ・コマンド)を取得するように構成された外部コマンド取得コンポーネント142を含むことができる。たとえば、1つまたは複数の外部コマンドは、APIサーバ130におけるコンテナ定義から抽出可能である。外部コマンド(たとえばプローブ・コマンド)の例には、liveness_probe(コンテナの活性を調べるために定期的に実行される)、readiness_probe(コンテナの準備状態を調べるために定期的に実行される)、lifecycle_post_start(コンテナの開始直後に1回だけ実行される)、lifecycle_pre_stop(コンテナの停止直前に1回だけ実行される)などが含まれるが、これらには限定されない。
少なくとも1つの処理デバイス140は、データベース120から1つまたは複数の変更イベントを収集するように構成された変更イベント収集コンポーネント144をさらに含むことができる。変更イベントの一例については、図7を参照しながら以下で詳述する。
少なくとも1つの処理デバイス140は、1つまたは複数の変更イベントに関連付けられた1つまたは複数のプロセスに基づいて1つまたは複数のプロセス・ツリー(または「ミューテーション・ツリー」)を生成するように構成されたプロセス・ツリー生成コンポーネント146をさらに含むことができる。たとえば、ある特定のプロセス・ツリーにおいて、親プロセスはすべての子プロセスをその枝として有することができる。その場合、ファイル変更イベントは、枝の葉としての対応するプロセスの子とすることができる。より詳細には、1つまたは複数のプロセス・ツリーは、各イベントにおけるプロセス識別子(PID)を使用して生成可能である。PIDは、オペレーティング・システム(OS)カーネルによってアクティブ・プロセスを識別するために使用可能な識別子(たとえば番号)である。1つまたは複数のプロセス・ツリーを生成するために使用可能なPIDの例には、PID、PPID(親プロセスのPID)、PGID(プロセス・グループのプロセス・グループ・リーダーのPID)などが含まれるが、これらには限定されない。
少なくとも1つの処理デバイス140は、ミューテーション検出コンポーネント148をさらに含むことができる。ミューテーション検出コンポーネント148は、1つまたは複数のプロセス・ツリーのそれぞれのプロセス・ツリーのルートを1つまたは複数の外部コマンドと比較することによって、ミューテーション検出を行うように構成可能である。ある特定のプロセス・ツリーのルートは、イベントの元のプロセスに対応するプロセスである。その特定のプロセス・ツリーのルートが外部コマンドのうちの少なくとも1つと一致する場合、その特定のプロセス・ツリーのルートは、外部コマンドの結果としてのプロセスであると判定される。したがって、その特定のプロセス・ツリー内のすべてのイベントが外部コマンドによって生成され、ミューテーションは検出されない。しかし、その特定のプロセス・ツリーのルートが外部コマンドのうちの少なくとも1つと一致しない場合、その特定のプロセス・ツリーのルートは外部コマンドの結果としてのプロセスではないと判定される。したがって、その特定のプロセス・ツリー内のすべてのイベントが外部コマンドによって生成され、ミューテーションが検出される。
ミューテーション検出コンポーネント148は、比較に基づいてミューテーション・イベント報告(「報告」)150を生成するようにさらに構成され得る。たとえば、比較の結果、その特定のプロセス・ツリーのルートが外部コマンドの結果としてのプロセスであり、したがってミューテーションには相当しないと判定された場合、その特定のプロセス・ツリーは報告150から省くかまたは除外することができる。しかし、比較の結果、その特定のプロセス・ツリーのルートが外部コマンドの結果としてのプロセスではなく、したがって、ミューテーションに相当すると判定された場合、その特定のプロセス・ツリーを報告150に加えることができる。
たとえば、コンテナ・オーケストレーション・システムでは、少なくとも1つの処理デバイス140が、ある特定のサンプリングにおいてコンテナのファイルとプロセスの状態を連続的に監視することができ、プロファイル・ホワイトリストにコンテナの正常変更として加えられた状態のモジュロ変化をユーザ・インターフェース上で報告することができる。報告は、コンテナごとに、および各コンテナの時系列で、ミューテーションの通知として見ることができる。したがって、少なくとも1つの処理デバイス140は、コンテナ・インテグリティ監視標準を満たすことができる。
例示の一実施形態では、DB120は、1時間当たり約32,835の変更イベントを収集するように構成可能であり、プロセス・ツリー生成コンポーネント146は、1時間当たり約4,011のプロセス・ツリーを生成するように構成可能であり、非外部コマンド(たとえば非プローブ)イベントに対応する1時間当たり4つのプロセス・ツリーが検出可能である(たとえば1時間当たり2つのコンテナのみ)。
図7を参照すると、例示の変更イベント700を示す図が示されている。この例示の実施形態では、変更イベント700はKubernetes(「k8s」)コンテナ・オーケストレーション・システムに関連付けられている。図のように、変更イベント700は、「Time」、「k8s.ns.name」、「k8s.pod.name」、「container.name」、「proc.cmdline」、「entry_proc」、「proc.vpgid」、および「proc.vpid」を含む複数のフィールドを含むことができる。
「Time」フィールドは、変更イベントに対応するタイムスタンプを示す。
「k8s.ns.name」フィールドは、ネーム空間(ns)の名前を示し、この実施例では「cognitive-data」である。
「k8s.pod.name」フィールドは、ポッドの名前を示し、この実施例では「conv-a-s04-csfdev-data-exhaust-healthcheck-5c8cd97fd5-dllhf」である。ポッドは、共有ストレージ/ネットワークとコンテナの実行方法の仕様とを有する1つまたは複数のコンテナのグループである。
「countainer.name」フィールドは、コンテナの名前を示し、この実施例では「data-exhaust-producer」である。
「proc.cmdline」フィールドは、プロセスを起動するときのフル・コマンド・ラインを示す。
「entry_proc」フィールドは、プロセスがコンテナ・エントリ・ポイントから始まるルート・プロセスとは別のルート・プロセスであるか否かを示す。
「proc.vpgid」フィールドは、現在のPIDネーム空間から見たときの、イベントを発生させるプロセスのプロセス・グループIDを示す。
「proc.vpid」フィールドは、現在のPIDネーム空間から見たときの、イベントを発生させるプロセスのIDを示す。
図2を参照すると、クラスタ202-1およびクラスタ202-2を含むシステム200が示されている。図のように、クラスタ202-1は、ノード210-1と、ノード210-1上で稼働する複数のコンテナ220-1とを含むことができ、クラスタ202-2は、ノード210-2と、ノード210-2上で稼働する複数のコンテナ220-2とを含むことができる。システム200は、データベース(DB)230をさらに含むことができる。
複数のコンテナ220-1は、クローラ・コンテナ222-1を含むことができ、複数のコンテナ220-2はクローラ・コンテナ222-2を含むことができる。クローラ・コンテナ222-1は、ノード210-1上で稼働しているコンテナ220-1を監視するように構成可能であり、クローラ・コンテナ222-2は、ノード210-2上で稼働しているコンテナ220-2を監視するように構成可能である。クローラ・コンテナ222-1および222-2によって観察または検出されたデータは、次に、DB230に送ることができる。DB230は、図1を参照しながら上述したもののようなミューテーション・イベント検出を行うためのデータを記憶することができる。本明細書に記載の実施形態によるクローラ・コンテナ222-1および222-2を実装するために、任意の適切なクローラ・コンテナを使用することができる。適切なクローラ・コンテナの例にはSysdigが含まれるが、これには限定されない。
この例示の実施形態では、システム200は、コンテナ・オーケストレーション・システムを含むクラスタ・コンピューティング・システムである。しかし、このような一実施形態は限定的であるものと見なされるべきではなく、クラスタ・コンピューティング・システムは、本明細書に記載の実施形態による任意の適切なオーケストレーション・システムを含むことができる。
図3を参照すると、クラスタ・コンピューティング・システムにおけるミューテーション・イベントを検出するためのシステム/方法300を示すブロック図/流れ図が示されている。
ブロック310で、クラスタ・コンピューティング・システム内で1つまたは複数の変更イベントが収集される。クラスタ・コンピューティング・システムは、それぞれのクラスタがそれぞれのノードを含む1つまたは複数のクラスタを含むことができ、1つまたは複数の変更イベントの収集は、1つまたは複数のクラスタ内の1つまたは複数の変更イベントを検出することと、1つまたは複数の検出された変更イベントをデータベースに記憶することとを含むことができる。
1つの実施形態では、クラスタ・コンピューティング・システムは、各クラスタが、対応するクラスタ・ノード上で稼働する複数のコンテナを含む、コンテナ・オーケストレーション・システム(たとえば、Kubernetesコンテナ・オーケストレーション・システム)を含むことができる。より詳細には、1つまたは複数のクラスタのうちのある特定の1つのクラスタ内の複数のコンテナのうちのある特定の1つのコンテナが、その特定のクラスタ上で稼働しているコンテナを監視するように構成されたクローラ・コンテナであり得る。本明細書に記載の実施形態により、1つまたは複数の変更イベントを収集するために、任意の適切なプロセスを使用することができる。
ブロック320で、その1つまたは複数の変更イベントに関連付けられた1つまたは複数のプロセスに基づいて、1つまたは複数のプロセス・ツリーが生成される。たとえば、ある特定のプロセス・ツリーにおいて、親プロセスはすべての子プロセスをその枝として有することができる。その場合、ファイル変更イベントは、その枝の葉としての対応するプロセスの子とすることができる。より詳細には、1つまたは複数のプロセス・ツリーは、各イベントにおけるプロセス識別子(PID)を使用して生成可能である。1つまたは複数のプロセス・ツリーを生成するために使用可能なPIDの例には、PID、PPID(親プロセスのPID)、PGID(プロセス・グループのプロセス・グループ・リーダーのPID)などが含まれるが、これらには限定されない。本明細書に記載の実施形態により1つまたは複数のプロセス・ツリーを生成するために、任意の適切なプロセスを使用することができる。
ブロック330で、1つまたは複数の外部コマンドを取得することができる。1つまたは複数の外部コマンドは、意図されたアクセス・パターンに対応し得る。たとえば、1つまたは複数の外部コマンドは、コンテナ・オーケストレーション・システム内のコンテナ・プラットフォームによって実行可能である。1つの実施形態では、1つまたは複数の外部コマンドは、APIサーバ(たとえばKubernetes APIサーバ)から取得することができる。1つまたは複数の外部コマンドの取得は、APIサーバにおけるコンテナ定義から1つまたは複数の外部コマンドを抽出することを含み得る。外部コマンド(たとえばプローブ・コマンド)の例には、liveness_probe(コンテナの活性を調べるために定期的に実行される)、readiness_probe(コンテナの準備状態を調べるために定期的に実行される)、lifecycle_post_start(コンテナの開始直後に1回だけ実行される)、lifecycle_pre_stop(コンテナの停止直前に1回だけ実行される)などが含まれるが、これらには限定されない。本明細書に記載の実施形態により1つまたは複数の外部コマンドを取得するために任意の適切なプロセスを使用することができる。
ブロック340で、各プロセス・ツリーのルートを1つまたは複数の外部コマンドと比較することによって、ミューテーション・イベント検出が行われる。より詳細には、ある特定のプロセス・ツリーのルートが外部コマンドのうちの少なくとも1つと一致する場合、その特定のプロセス・ツリーのルートは外部コマンドの結果としてのプロセスであると判定される。したがって、その特定のプロセス・ツリー内のすべてのイベントが外部コマンドによって生成され、ミューテーションは検出されない。しかし、その特定のプロセス・ツリーのルートが外部コマンドのうちの少なくとも1つと一致しない場合、その特定のプロセス・ツリーのルートは外部コマンドの結果としてのプロセスではないと判定される。したがって、その特定のプロセス・ツリー内のすべてのイベントが外部コマンドによって生成され、ミューテーションが検出される。
ブロック310からブロック340で行われるステップは、プログラム解析またはイメージ解析なしで1つまたは複数の変更イベントから「意図されていない」イベントを抽出することができ、1つまたは複数の変更イベントから、めったに発生しないかまたは低頻度で発生する「意図された」イベントまたはアクセス・パターンをフィルタ除去することができる。
ブロック350で、比較に基づいてミューテーション・イベント報告を自動的に生成することができる。ミューテーション・イベント報告は、(意図されたアクセスに相対するものとしての)意図されていないアクセスによって生じる、プロセス・ツリーとして構造化された変更イベントを含むことができる。たとえば、比較の結果、その特定のプロセス・ツリーのルートが外部コマンドの結果としてプロセスであり、したがってミューテーションに相当しないという判定であった場合、その特定のプロセス・ツリーはミューテーション・イベント報告から省くかまたは除外することができる。しかし、比較の結果、その特定のプロセス・ツリーのルートが外部コマンドの結果としてのプロセスではなく、したがってミューテーションに相当するとの判定であった場合、その特定のプロセス・ツリーはミューテーション・イベント報告に加えることができる。
ブロック360で、ミューテーション・イベント報告を1つまたは複数のコンピューティング・デバイスに送信することができる。1つまたは複数のコンピューティング・デバイスには、1つまたは複数のシステム管理者が関連付けられ得る。ミューテーション・イベント報告は、意図されていない変更(たとえば、コンテナに加えられた意図されていない変更)があればそれをシステム管理者(複数可)に通知することができるユーザ・インターフェース上で示すことができる。次に、システム管理者(複数可)は、ミューテーション・イベント報告に示されている任意の意図されていない変更に対処するために是正措置を行うことができる。
たとえば、コンテナ・オーケストレーション・システムにおいて、システム/方法300はある特定のサンプリングにおいてコンテナのファイルおよびプロセスの状態を連続的に監視することができ、プロファイル・ホワイトリストにコンテナの正常変更として加えられた状態のモジュロ変更をユーザ・インターフェース上で報告することができる。報告は、コンテナごとに、および各コンテナの時系列で、ミューテーションの通知として見ることができる。したがって、システム/方法300は、コンテナ・インテグリティ監視標準を満たすことができる。
図4を参照すると、1つの実施形態による、本発明を適用可能な例示の処理システム400が示されている。処理システム400は、システム・バス402を介して他のコンポーネントと動作可能に結合された少なくとも1つのプロセッサ(CPU)404を含む。キャッシュ406、読取り専用メモリ(ROM)408、ランダム・アクセス・メモリ(RAM)410、入力/出力(I/O)アダプタ420、サウンド・アダプタ430、ネットワーク・アダプタ440、ユーザ・インターフェース・アダプタ450、およびディスプレイ・アダプタ460が、システム・バス402に動作可能に結合されている。
第1のストレージ・デバイス422と第2のストレージ・デバイス424とが、I/Oアダプタ420によってシステム・バス402に動作可能に結合されている。ストレージ・デバイス422および424は、ディスク・ストレージ・デバイス(たとえば磁気または光ディスク・ストレージ・デバイス)、ソリッド・ステート磁気デバイスなどのうちのいずれかとすることができる。ストレージ・デバイス422および424は、同じ種類のストレージ・デバイスまたは異なる種類のストレージ・デバイスとすることができる。
スピーカ432が、サウンド・アダプタ430によってシステム・バス402に動作可能に結合されている。送受信器442が、ネットワーク・アダプタ440によってシステム・バス402に動作可能に結合されている。ディスプレイ・デバイス462が、ディスプレイ・アダプタ460によってシステム・バス402に動作可能に結合されている。
第1のユーザ入力デバイス452と第2のユーザ入力デバイス454と第3のユーザ入力デバイス456とが、ユーザ・インターフェース・アダプタ450によってシステム・バス402に動作可能に結合されている。ユーザ入力デバイス452、454、および456は、キーボード、マウス、キーパッド、撮像デバイス、モーション・センシング・デバイス、マイクロフォン、これらのデバイスのうちの少なくとも2つのデバイスの機能を組み込んだデバイスなどのうちのいずれかとすることができる。当然ながら、他の種類の入力デバイスも使用可能である。ユーザ入力デバイス452、454、および456は、同じ種類のユーザ入力デバイスまたは異なる種類のユーザ入力デバイスとすることができる。ユーザ入力デバイス452、454、および456は、システム400との間で情報を入出力するために使用される。
ミューテーション・イベント検出(MED)コンポーネント470が、システム・バス402に動作可能に結合されてもよい。MEDコンポーネント470は、上述のように調合物生成システム内の調合物をサンプリングするように構成される。MEDコンポーネント470は、スタンドアロン型専用ハードウェア・デバイスとして実装可能であるか、またはストレージ・デバイスに記憶されたソフトウェアとして実装されてもよい。MEDコンポーネント470がソフトウェア実装される実施形態では、コンピュータ・システム400の別個のコンポーネントとして図示されているが、MEDコンポーネント470はたとえば第1のストレージ・デバイス422または第2のストレージ・デバイス424あるいはその両方に記憶可能である。あるいは、MEDコンポーネント470は別個のストレージ・デバイス(図示せず)に記憶することができる。
当然ながら、当業者によって容易に企図されるように、処理システム400は他の要素(図示せず)も含んでもよく、特定の要素を省いてもよい。たとえば、当業者には容易にわかるように、処理システム400の特定の実装形態に応じて、様々な他の入力デバイスまたは出力デバイスあるいはその両方を処理システム400に含めることができる。たとえば、様々な種類の無線または有線あるいはその両方の入力デバイスまたは出力デバイスあるいはその両方が使用可能である。また、当業者には容易にわかるように、様々な構成において追加のプロセッサ、コントローラ、メモリなども使用可能である。本明細書に記載の本発明の教示が与えられれば、処理システム400の上記およびその他の変形形態が、当業者によって容易に企図される。
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載の教示の実装はクラウド・コンピューティング環境には限定されないことを理解されたい。逆に、本発明の実施形態は、現在知られているかまたは今後開発される任意の他の種類のコンピューティング環境とともに実装可能である。
クラウド・コンピューティングは、最小限の管理労力またはサービス・プロバイダとの相互連絡で迅速にプロビジョニングすることができ、解放することができる、構成可能コンピューティング資源(たとえば、ネットワーク、ネットワーク回線容量、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配布のモデルである。このクラウド・モデルは、少なくとも5つの特徴と、少なくとも3つのサービス・モデルと、少なくとも4つのデプロイメント・モデルとを含み得る。
特徴は以下の通りである。
オンデマンド・セルフサービス:クラウド消費者は、サービス・プロバイダとの間で人間の介在を必要とせずに一方的に、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能をプロビジョニングすることができる。
広いネットワーク・アクセス:機能は、ネットワークを介して利用可能であり、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(たとえば携帯電話、ラップトップ、およびPDA)による使用を促進する標準機構を介してアクセスすることができる。
資源プール:マルチテナント・モデルを使用して複数の消費者に対応するために、プロバイダのコンピューティング資源がプールされ、需要に応じて、異なる物理資源および仮想資源が動的に割り当てられ、再割当てされる。消費者は一般に、提供される資源の厳密な場所について管理することができないかまたは知らないが、より高い抽象レベルの場所(たとえば、国、州、またはデータセンタ)を指定することが可能な場合があるという点で、位置独立感がある。
迅速な伸縮性:迅速かつ伸縮性をもって、場合によっては自動的に機能をプロビジョニングして、迅速にスケール・アウトすることができ、また、迅速に機能を解放して迅速にスケール・インすることができる。消費者にとっては、プロビジョニングのために利用可能な機能はしばしば無限であるように見え、いつでも好きなだけ購入することができる。
従量制サービス:クラウド・システムが、サービスの種類(たとえば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に応じて適切な何らかの抽象化レベルの計量機能を利用することによって、資源利用を自動的に制御し、最適化する。資源使用量を監視、制御、および報告することができ、利用されたサービスの透明性をプロバイダと消費者との両方に与えることができる。
サービス・モデルは以下の通りである。
ソフトウェア・アズ・ア・サービス(Software as a Service(SaaS)):消費者に提供される機能は、クラウド・インフラストラクチャ上で稼働するプロバイダのアプリケーションを使用することである。アプリケーションには、ウェブ・ブラウザなどのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である(たとえばウェブ・ベースのEメール)。消費者は、限られたユーザ固有アプリケーション構成設定の考えられる例外を除き、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個別のアプリケーション機能まで含めて、基礎にあるクラウド・インフラストラクチャを管理も制御もしない。
プラットフォーム・アズ・ア・サービス(Platform as a Service(PaaS)):消費者に提供される機能は、クラウド・インフラストラクチャ上に、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者作成または取得アプリケーションをデプロイすることである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎にあるクラウド・インフラストラクチャを管理も制御もしないが、デプロイされたアプリケーションと、場合によってはアプリケーション・ホスティング環境構成とを制御することができる。
インフラストラクチャ・アズ・ア・サービス(Infrastructure as a Service(IaaS)):消費者に提供される機能は、処理、ストレージ、ネットワーク、およびその他の基本的コンピューティング資源をプロビジョニングすることであり、その際、消費者は、オペレーティング・システムとアプリケーションとを含み得る任意のソフトウェアをデプロイし、実行することができる。消費者は、基礎にあるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システムと、ストレージと、デプロイされたアプリケーションとを制御することができ、場合によっては選択されたネットワーキング・コンポーネント(たとえばホスト・ファイアウォール)の限定的な制御を行うことができる。
デプロイメント・モデルは以下の通りである。
プライベート・クラウド:このクラウド・インフラストラクチャは、組織のためにのみ運用される。組織または第三者によって管理可能であり、オンプレミスまたはオフプレミスに存在可能である。
コミュニティ・クラウド:このクラウド・インフラストラクチャは、いくつかの組織によって共用され、共通の関心事(たとえば、任務、セキュリティ要件、ポリシー、およびコンプライアンス考慮事項)を有する特定のコミュニティをサポートする。組織または第三者が管理することができ、オンプレミスまたはオフプレミスに存在可能である。
パブリック・クラウド:このクラウド・インフラストラクチャは、公衆または大規模業界団体が利用することができ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、独自の実体のままであるが、データおよびアプリケーション可搬性を可能にする標準化技術または専有技術(たとえば、クラウド間のロード・バランシングのためのクラウド・バースティング)によって結合された、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合体である。
クラウド・コンピューティング環境は、ステートレス性、疎結合性、モジュール性、および意味的相互運用性に焦点を合わせたサービス指向型である。クラウド・コンピューティングの核心にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
次に図5を参照すると、例示のクラウド・コンピューティング環境550が図示されている。図のように、クラウド・コンピューティング環境550は、たとえばパーソナル・デジタル・アシスタント(PDA)もしくは携帯電話554A、デスクトップ・コンピュータ554B、ラップトップ・コンピュータ554C、または自動車コンピュータ・システム554N、あるいはこれらの組合せなど、クラウド消費者によって使用されるローカル・コンピューティング・デバイスが通信することができる、1つまたは複数のクラウド・コンピューティング・ノード510を含む。ノード510は互いに通信することができる。ノードは、上述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組合せなどの1つまたは複数のネットワークにおいて物理的または仮想的にグループ化(図示せず)されてもよい。これによって、クラウド・コンピューティング環境550は、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはこれらの組合せを、クラウド消費者がそのためにローカル・コンピューティング・デバイス上で資源を維持する必要がないサービスとして提供することができる。なお、図5に示すコンピューティング・デバイス554Aないし554Nの種類は、例示を意図したものに過ぎず、コンピューティング・ノード510およびクラウド・コンピューティング環境550は、(たとえばウェブ・ブラウザを使用して)任意の種類のネットワーク接続またはネットワーク・アドレス指定可能接続あるいはその両方を介して、任意の種類のコンピュータ化デバイスと通信することができるものと理解される。
次に、図6を参照すると、クラウド・コンピューティング環境550(図5)によって提供される1組の機能抽象化層が示されている。図6に示すコンポーネント、層、および機能は、例示のみを意図したものであり、本発明の実施形態はこれらには限定されないことを前もって理解されたい。図のように、以下の層および対応する機能が提供される。
ハードウェアおよびソフトウェア層660は、ハードウェア・コンポーネントとソフトウェア・コンポーネントとを含む。ハードウェア・コンポーネントの例としては、メインフレーム661、RISC(縮小命令セット・コンピュータ(Reduced Instruction Set Computer))アーキテクチャ・ベースのサーバ662、サーバ663、ブレード・サーバ664、ストレージ・デバイス665、ならびにネットワークおよびネットワーキング・コンポーネント666がある。実施形態によっては、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア667およびデータベース・ソフトウェア668を含む。
仮想化層670は、以下のような仮想実体の例を与えることができる抽象化層を提供する。すなわち、仮想サーバ671と、仮想ストレージ672と、仮想プライベート・ネットワークを含む仮想ネットワーク673と、仮想アプリケーションおよびオペレーティング・システム674と、仮想クライアント675である。
1つの実装例では、管理層680は、以下に記載の機能を提供することができる。資源プロビジョニング681は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング資源およびその他の資源の動的調達を行う。メータリングおよびプライシング682は、クラウド・コンピューティング環境内で資源が利用されるときのコスト追跡と、これらの資源の消費に対する対価の請求またはインボイス処理を行う。1つの実施例ではこれらの資源にはアプリケーション・ソフトウェア・ライセンスが含まれてもよい。セキュリティは、クラウド消費者およびタスクのための本人検証と、データおよびその他の資源の保護とを行う。ユーザ・ポータル683は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理684は、必要なサービス・レベルが満たされるようにクラウド・コンピューティング資源割当ておよび管理を行う。サービス・レベル・アグリーメント(Service Level Agreement(SLA))計画および履行685は、SLAに従って将来の要求が予想されるクラウド・コンピューティング資源のための事前取決めおよびクラウド・コンピューティング資源の調達を行う。
ワークロード層690は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロードおよび機能の例には、マッピングおよびナビゲーション691、ソフトウェア開発およびライフサイクル管理692、仮想教室教育配信693、データ分析処理694、トランザクション処理695、およびミューテーション検出696が含まれる。
本発明は、任意の可能な統合の技術詳細度のシステム、方法、またはコンピュータ・プログラム製品、あるいはこれらの組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令が記憶されたコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるための命令を保持し、記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学式ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであってよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、可搬フロッピィ・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、可搬コンパクト・ディスク読取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピィ・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適切な組合せが含まれる。本明細書で使用されるように、コンピュータ可読記憶媒体とは、電波またはその他の自由に伝播する電磁波、導波路またはその他の伝送媒体を介して伝播する電磁波(たとえば光ファイバ・ケーブルを通る光パルス)、またはワイヤを介して伝送される電気信号などの、一過性の信号自体であると解釈すべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、たとえばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワーク、あるいはこれらの組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、交換機、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはこれらの組合せを含み得る。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への記憶のために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk(R)、もしくはC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語、もしくは同様のプログラム言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードのいずれかとすることができる。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上でもしくは一部がユーザのコンピュータ上で、または一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータもしくはリモート・サーバ上で実行されてもよい。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む、任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行ってもよい。実施形態によっては、本発明の態様を実行するために、たとえばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を使用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行してもよい
本明細書で採用されているように、「ハードウェア・プロセッサ・サブシステム」または「ハードウェア・プロセッサ」という用語は、1つまたは複数の特定のタスクを行うように動作する、プロセッサ、メモリ、ソフトウェア、またはこれらの組合せを指す場合がある。有用な実施形態では、ハードウェア・プロセッサ・サブシステムは、1つまたは複数のデータ処理要素(たとえばロジック回路、処理回路、命令実行デバイスなど)を含むことができる。1つまたは複数のデータ処理要素は、中央演算処理装置、グラフィックス処理装置、または、別個のプロセッサもしくはコンピューティング要素ベースのコントローラ(たとえばロジック・ゲートなど)に含めることができる。ハードウェア・プロセッサ・サブシステムは、1つまたは複数のオンボード・メモリ(たとえば、キャッシュ、専用メモリ・アレイ、読取り専用メモリなど)を含むことができる。実施形態によっては、ハードウェア・プロセッサ・サブシステムは、オンボードまたはオフボードとすることができるか、またはハードウェア・プロセッサ・サブシステムによる使用専用とすることができる、1つまたは複数のメモリ(たとえば、ROM、RAM、基本入出力システム(BIOS)など)を含むことができる。
実施形態によっては、ハードウェア・プロセッサ・サブシステムは、1つまたは複数のソフトウェア要素を含み、実行することができる。1つまたは複数のソフトウェア要素は、オペレーティング・システムならびに/あるいは指定された結果を達成するための1つもしくは複数のアプリケーションおよび/または特定のコードを含むことができる。
他の実施形態では、ハードウェア・プロセッサ・サブシステムは、指定された結果を達成するための1つまたは複数の電子処理機能を実行する専用の特殊回路を含むことができる。そのような回路は、1つまたは複数の特定用途向け集積回路(ASIC)、FPGA、またはPLA、あるいはこれらの組合せを含むことができる。
本発明の実施形態により、ハードウェア・プロセッサ・サブシステムの上記およびその他の変形形態も企図される。
本発明の態様について、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品を示すフローチャート図またはブロック図あるいはその両方を参照しながら本明細書において説明している。フローチャート図またはブロック図あるいはその両方の図の各ブロックおよび、フローチャート図またはブロック図あるいはその両方の図のブロックの組合せは、コンピュータ可読プログラム命令によって実装可能であることはわかるであろう。
これらのコンピュータ可読プログラム命令は、コンピュータ、またはその他のプログラマブル・データ処理装置のプロセッサにより実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで規定されている機能/動作を実装するための手段を形成するように、汎用コンピュータ、専用コンピュータ、またはその他のプログラマブル・データ処理装置のプロセッサに供給されて、マシンを実現するものであってよい。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで規定されている機能/動作の態様を実装する命令を含む製造品を含むように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、またはその他の装置、あるいはこれらの組合せに対して特定の方式で機能するように指示することができるものであってもよい。
コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で実行される命令がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで規定されている機能/動作を実装するように、コンピュータ実装プロセスを実現するべく、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイスにロードされ、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で一連の動作ステップを実行させるものであってもよい。
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図の各ブロックは、規定されている論理機能(複数可)を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表すことがある。一部の別の実装形態では、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよい。たとえば、連続して示されている2つのブロックは、関与する機能に応じて、実際には、実質的に並行して実行されてもよく、またはそれらのブロックは場合によっては逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の図の各ブロック、およびブロック図またはフローチャート図あるいはその両方の図のブロックの組合せは、規定されている機能または動作を実行する特殊目的ハードウェア・ベースのシステムによって実装可能であるか、または特殊目的ハードウェアとコンピュータ命令との組合せを実施することができることもわかるであろう。
ミューテーション・イベント検出システムおよび方法の好ましい実施形態(これらは例示を意図しており、限定的であることを意図していない)について説明したが、上述の教示に照らして当業者によって修正形態および変形形態が可能であることに留意されたい。したがって、本開示の特定の実施形態に、添付の特許請求の範囲によって概説されているように本発明の範囲内に含まれる変更が加えられてもよいことを理解されたい。以上のように本発明の態様について、詳細とともに特許法によって特に要求されているように説明したが、特許請求され、特許証により保護されることが求められる対象は、添付の特許請求の範囲に記載されている。

Claims (20)

  1. プログラム・コードを記憶するためのメモリ・デバイスと、
    前記メモリ・デバイスに動作可能に結合された少なくとも1つのハードウェア・プロセッサと
    を含むシステムであって、
    前記ハードウェア・プロセッサは、
    クラスタ・コンピューティング・システム内の1つまたは複数の変更イベントに関連付けられた1つまたは複数のプロセスに基づいて1つまたは複数のプロセス・ツリーを生成し、
    前記1つまたは複数のプロセス・ツリーのそれぞれのプロセス・ツリーのルートを1つまたは複数の外部コマンドと比較することによってミューテーション・イベント検出を行い、
    前記比較に基づいてミューテーション・イベント報告を生成する
    ように、前記メモリ・デバイスに記憶されているプログラム・コードを実行するように構成される、
    システム。
  2. 前記少なくとも1つのハードウェア・プロセッサと通信しており、前記1つまたは複数の変更イベントを記憶するように構成されたデータベースと、
    前記少なくとも1つのハードウェア・プロセッサと通信しているアプリケーション・プログラミング・インターフェース(API)サーバと
    をさらに含む、
    請求項1に記載のシステム。
  3. 前記少なくとも1つのハードウェア・プロセッサは、
    データベースから前記1つまたは複数の変更イベントを収集し、
    アプリケーション・プログラミング・インターフェース(API)サーバを使用して前記1つまたは複数の外部コマンドを取得する
    ように、前記メモリ・デバイスに記憶されているプログラム・コードを実行するようにさらに構成される、
    請求項2に記載のシステム。
  4. 前記クラスタ・コンピューティング・システムは1つまたは複数のコンテナを含み、
    前記少なくとも1つのハードウェア・プロセッサは、前記1つまたは複数のコンテナから前記1つまたは複数の変更イベントを収集するようにさらに構成され、
    前記1つまたは複数の外部コマンドはコンテナ・プラットフォームによって実行される、
    請求項1に記載のシステム。
  5. 前記1つまたは複数の外部コマンドは1つまたは複数のプローブ・コマンドを含む、
    請求項1に記載のシステム。
  6. 前記少なくとも1つのハードウェア・プロセッサは、
    前記プロセス・ツリーのうちのある特定の1つのプロセス・ツリーのルートが前記外部コマンドのうちの1つの外部コマンドの結果としてのプロセスであると判定することと、
    前記ミューテーション・イベント報告から前記プロセス・ツリーのうちの前記特定の1つのプロセス・ツリーを除外することと
    によって、前記比較に基づいて前記ミューテーション・イベント報告を生成するようにさらに構成される、
    請求項1に記載のシステム。
  7. 前記少なくとも1つのハードウェア・プロセッサは、前記ミューテーション・イベント報告を1つまたは複数のコンピューティング・デバイスに送信するようにさらに構成される、
    請求項1に記載のシステム。
  8. 前記クラスタ・コンピューティング・システムは、Kubernetesクラスタ・コンピューティング・システムを含む、
    請求項1に記載のシステム。
  9. コンピュータ実装方法であって、
    クラスタ・コンピューティング・システム内の1つまたは複数の変更イベントに関連付けられた1つまたは複数のプロセスに基づいて1つまたは複数のプロセス・ツリーを生成することと、
    前記1つまたは複数のプロセス・ツリーのそれぞれのプロセス・ツリーのルートを1つまたは複数の外部コマンドと比較することによってミューテーション・イベント検出を行うことと、
    前記比較に基づいてミューテーション・イベント報告を生成することと
    を含む、
    方法。
  10. 前記1つまたは複数の変更イベントを収集することと、
    前記1つまたは複数の外部コマンドを取得することと
    をさらに含む、
    請求項9に記載の方法。
  11. 前記クラスタ・コンピューティング・システムは1つまたは複数のコンテナを含み、
    前記1つまたは複数の変更イベントを収集することは、前記1つまたは複数のコンテナから前記1つまたは複数の変更イベントを収集することをさらに含み、
    前記1つまたは複数の外部コマンドはコンテナ・プラットフォームによって実行される、
    請求項10に記載の方法。
  12. 前記1つまたは複数の外部コマンドは1つまたは複数のプローブ・コマンドを含む、
    請求項9に記載の方法。
  13. 前記比較に基づいて前記ミューテーション・イベント報告を生成することは、
    前記プロセス・ツリーのうちのある特定の1つのプロセス・ツリーのルートが前記外部コマンドのうちの1つの外部コマンドの結果としてのプロセスであると判定することと、
    前記ミューテーション・イベント報告から前記プロセス・ツリーのうちの前記特定の1つのプロセス・ツリーを除外することと
    をさらに含む、
    請求項9に記載の方法。
  14. 前記ミューテーション・イベント報告を1つまたは複数のコンピューティング・デバイスに送信すること
    をさらに含む、
    請求項9に記載の方法。
  15. プログラム命令が具現化されたコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品であって、前記プログラム命令はコンピュータに方法を行わせるように前記コンピュータによって実行可能であり、
    前記方法は、
    クラスタ・コンピューティング・システム内の1つまたは複数の変更イベントに関連付けられた1つまたは複数のプロセスに基づいて1つまたは複数のプロセス・ツリーを生成することと、
    前記1つまたは複数のプロセス・ツリーのそれぞれのプロセス・ツリーのルートを1つまたは複数の外部コマンドと比較することによってミューテーション・イベント検出を行うことと、
    前記比較に基づいてミューテーション・イベント報告を生成することと
    を含む、
    コンピュータ・プログラム製品。
  16. 前記方法は、
    前記1つまたは複数の変更イベントを収集することと、
    前記1つまたは複数の外部コマンドを取得することと
    をさらに含む、
    請求項15に記載のコンピュータ・プログラム製品。
  17. 前記クラスタ・コンピューティング・システムは1つまたは複数のコンテナを含み、
    前記1つまたは複数の変更イベントを収集することは、前記1つまたは複数のコンテナから前記1つまたは複数の変更イベントを収集することをさらに含み、
    前記1つまたは複数の外部コマンドはコンテナ・プラットフォームによって実行される、
    請求項16に記載のコンピュータ・プログラム製品。
  18. 前記1つまたは複数の外部コマンドは1つまたは複数のプローブ・コマンドを含む、
    請求項15に記載のコンピュータ・プログラム製品。
  19. 前記比較に基づいて前記ミューテーション・イベント報告を生成することは、
    前記プロセス・ツリーのうちのある特定の1つのプロセス・ツリーのルートが前記外部コマンドのうちの1つの外部コマンドの結果としてのプロセスであると判定することと、
    前記ミューテーション・イベント報告から前記プロセス・ツリーのうちの前記特定の1つのプロセス・ツリーを除外することと
    をさらに含む、
    請求項15に記載のコンピュータ・プログラム製品。
  20. 前記方法は、前記ミューテーション・イベント報告を1つまたは複数のコンピューティング・デバイスに送信することをさらに含む、
    請求項15に記載のコンピュータ・プログラム製品。
JP2022516087A 2019-09-23 2020-09-22 インテグリティ監視のためのミューテーション・イベント検出 Active JP7455197B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/578,868 US11144418B2 (en) 2019-09-23 2019-09-23 Mutation event detection for integrity monitoring
US16/578,868 2019-09-23
PCT/IB2020/058815 WO2021059116A1 (en) 2019-09-23 2020-09-22 Mutation event detection for integrity monitoring

Publications (3)

Publication Number Publication Date
JP2022549590A true JP2022549590A (ja) 2022-11-28
JPWO2021059116A5 JPWO2021059116A5 (ja) 2022-12-16
JP7455197B2 JP7455197B2 (ja) 2024-03-25

Family

ID=74880929

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022516087A Active JP7455197B2 (ja) 2019-09-23 2020-09-22 インテグリティ監視のためのミューテーション・イベント検出

Country Status (6)

Country Link
US (1) US11144418B2 (ja)
JP (1) JP7455197B2 (ja)
CN (1) CN114430824B (ja)
DE (1) DE112020004487T5 (ja)
GB (1) GB2602436B (ja)
WO (1) WO2021059116A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210406368A1 (en) * 2020-06-30 2021-12-30 Microsoft Technology Licensing, Llc Deep learning-based analysis of signals for threat detection
US12081570B2 (en) * 2021-07-20 2024-09-03 CyCarrier Technology Co., Ltd. Classification device with adaptive clustering function and related computer program product
US20240211178A1 (en) * 2022-12-21 2024-06-27 Pure Storage, Inc. Container Storage Interface Filter Driver-Based Determination of Optimal Storage System to Provide Storage for a Containerized Application Deployment

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6986076B1 (en) 2002-05-28 2006-01-10 Unisys Corporation Proactive method for ensuring availability in a clustered system
US8589447B1 (en) * 2009-07-07 2013-11-19 Netapp, Inc. Efficient file system scan for shared data blocks
US9336061B2 (en) * 2012-01-14 2016-05-10 International Business Machines Corporation Integrated metering of service usage for hybrid clouds
US9817804B2 (en) * 2013-09-12 2017-11-14 Wix.Com Ltd. System for comparison and merging of versions in edited websites and interactive applications
US9852232B2 (en) * 2013-11-08 2017-12-26 International Business Machines Corporation Automating event trees using analytics
EP3079059A1 (en) 2015-04-07 2016-10-12 Huawei Technologies Co., Ltd. Method and apparatus for a mobile device based cluster computing infrastructure
JP5933797B1 (ja) 2015-10-07 2016-06-15 株式会社ソリトンシステムズ ログ情報生成装置及びプログラム並びにログ情報抽出装置及びプログラム
US10140170B2 (en) * 2015-10-26 2018-11-27 International Business Machines Corporation Reporting errors to a data storage device
JP6680028B2 (ja) 2016-03-24 2020-04-15 日本電気株式会社 監視システム、監視方法および監視プログラム
US10503895B2 (en) 2017-04-11 2019-12-10 Red Hat, Inc. Runtime non-intrusive container security introspection and remediation
US10922205B2 (en) 2017-05-16 2021-02-16 Vmware, Inc. Monitoring applications running on containers
JP2020530624A (ja) 2017-08-10 2020-10-22 アーガス サイバー セキュリティ リミテッド 車載ネットワークに接続された構成要素の悪用を検出するシステムおよび方法
US10546120B2 (en) 2017-09-25 2020-01-28 AO Kaspersky Lab System and method of forming a log in a virtual machine for conducting an antivirus scan of a file
US10445163B2 (en) 2017-09-28 2019-10-15 Paypal, Inc. Advanced computer system drift detection
US10810044B2 (en) 2018-01-04 2020-10-20 Hewlett Packard Enterprise Development Lp Enhanced cache memory allocation based on virtual node resources
CN108737215A (zh) 2018-05-29 2018-11-02 郑州云海信息技术有限公司 一种云数据中心Kubernetes集群容器健康检查的方法和装置
CN108848157A (zh) * 2018-06-12 2018-11-20 郑州云海信息技术有限公司 一种Kubernetes集群容器监控的方法和装置
CN108878157A (zh) 2018-06-22 2018-11-23 湖南耐普恩科技有限公司 一种超级电容器高温防爆装置
CN110262941B (zh) 2019-05-28 2023-06-16 深圳市汇川技术股份有限公司 应用程序容器集群报警实现方法、系统、设备及存储介质

Also Published As

Publication number Publication date
CN114430824A (zh) 2022-05-03
GB2602436A (en) 2022-06-29
JP7455197B2 (ja) 2024-03-25
DE112020004487T5 (de) 2022-06-23
GB2602436B (en) 2022-12-14
CN114430824B (zh) 2023-06-16
US11144418B2 (en) 2021-10-12
GB202204965D0 (en) 2022-05-18
US20210089420A1 (en) 2021-03-25
WO2021059116A1 (en) 2021-04-01

Similar Documents

Publication Publication Date Title
US10263879B2 (en) I/O stack modeling for problem diagnosis and optimization
US10581970B2 (en) Providing information on published configuration patterns of storage resources to client systems in a network computing environment
US10972540B2 (en) Requesting storage performance models for a configuration pattern of storage resources to deploy at a client computing environment
JP7455197B2 (ja) インテグリティ監視のためのミューテーション・イベント検出
US10025671B2 (en) Smart virtual machine snapshotting
US10944827B2 (en) Publishing configuration patterns for storage resources and storage performance models from client systems to share with client systems in a network computing environment
US10169086B2 (en) Configuration management for a shared pool of configurable computing resources
US20200278975A1 (en) Searching data on a synchronization data stream
US11379290B2 (en) Prioritizing and parallelizing the capture of data for debugging computer programs
US11954564B2 (en) Implementing dynamically and automatically altering user profile for enhanced performance
US10970727B2 (en) Voice activated inventory management
US10171341B2 (en) Software defined storage stack problem diagnosis and optimization
US11012462B2 (en) Security management for data systems
US10067849B2 (en) Determining dynamic statistics based on key value patterns
US11520616B2 (en) Virtual server creation monitoring and resource allocation system
JP2023538941A (ja) コンテナ化された環境のインテリジェントバックアップ及び復元
US20210342290A1 (en) Technique selection for file system utilization prediction
US20230014344A1 (en) Determining optimal data access for deep learning applications on a cluster

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221208

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240227

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240312

R150 Certificate of patent or registration of utility model

Ref document number: 7455197

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150