Container Threat Detection の概要

このページでは、Container Threat Detection のコンセプトと機能の概要を説明します。

Container Threat Detection とは

Container Threat Detection は、Container-Optimized OS ノードイメージの状態を継続的にモニタリングする Security Command Center の組み込みサービスです。このサービスは、リモート アクセスを試みてすべての変更を評価し、ほぼリアルタイムにランタイム攻撃を検出します。

Container Threat Detection は最も一般的なコンテナ ランタイム攻撃を検出し、Security Command Center にアラートを表示します。必要であれば、Cloud Logging にアラートを表示することもできます。Container Threat Detection は不審なバイナリやライブラリなどの検出機能を備えており、自然言語処理(NLP)を使用して悪意のある Bash コードと Python コードを検出します。

Container Threat Detection は、Security Command Center のプレミアム ティアまたは Enterprise ティアでのみ使用できます。

Container Threat Detection の仕組み

Container Threat Detection 検出計測は、ゲストカーネルと実行されたスクリプトの低レベルの動作を収集します。イベントが検出された場合の実行パスは次のとおりです。

  1. Container Threat Detection は、イベント情報とコンテナを識別する情報を、ユーザーモードの DaemonSet を介して検出サービスに受け渡し、分析にまわします。Container Threat Detection を有効にすると、イベント エクスポートが自動的に構成されます。

    監視用の DaemonSet は、コンテナ情報の受け渡しをベスト エフォート方式で行います。Kubernetes とコンテナ ランタイムが対応するコンテナ情報を時間内に提供できない場合は、報告された情報からコンテナ情報を削除できます。

  2. 検出サービスは、イベントを分析して、イベントがインシデントかどうかを判断します。Bash と Python は NLP で分析され、実行されたコードが悪意があるかどうかを判断されます。

  3. 検出サービスがインシデントを識別する場合、インシデントは Security Command Center に検出として書き込まれ、必要に応じて Cloud Logging に書き込まれます。

    • 検出サービスがインシデントを識別しない場合、検出情報は保存されません。
    • カーネルと検出サービスのデータはすべて一時的なものであり、永続的には保存されません。

検出結果の詳細は、Security Command Center コンソールで確認できます。ここでは、検出結果の情報を調べることができます。検出結果を表示または編集できるかどうかは、付与されているロールによって決まります。Security Command Center ロールの詳細については、アクセス制御をご覧ください。

Container Threat Detection 検出器

Container Threat Detection には、次の検出器が含まれています。

検出項目 説明 検出のための入力
追加されたバイナリの実行

元のコンテナ イメージに含まれていないバイナリが実行されました。

追加されたバイナリが攻撃者によって実行された場合は、攻撃者がワークロードを制御し、任意のコマンドを実行している可能性があります。

この検出機能では、元のコンテナ イメージの一部ではなかった、または元のコンテナ イメージから変更された実行中のバイナリを検索します。
追加されたライブラリの読み込み

元のコンテナ イメージに含まれていないライブラリが読み込まれました。

追加されたライブラリが読み込まれた場合は、攻撃者がワークロードを制御し、任意のコードを実行している可能性があります。

この検出機能では、元のコンテナ イメージの一部ではなかった、または元のコンテナ イメージから変更された読み込み中のライブラリを検索します。
実行: 追加された悪意のあるバイナリが実行された

次の条件を満たすバイナリが実行されました。

  • 脅威インテリジェンスに基づいて悪意があると識別されました
  • 元のコンテナ イメージの一部ではありません

追加された悪意のあるバイナリが実行された場合、それは攻撃者がワークロードを制御し、悪意のあるソフトウェアを実行していることを示す強力なサインです。

この検出機能では、元のコンテナ イメージの一部ではなく、脅威インテリジェンスに基づいて悪意があると特定されたバイナリが実行されていないかどうかを調べます。
実行: 追加された悪意のあるライブラリが読み込まれた

次の条件を満たすライブラリが読み込まれました。

  • 脅威インテリジェンスに基づいて悪意があると識別されました
  • 元のコンテナ イメージの一部ではありません

追加された悪意のあるライブラリが読み込まれた場合、それは攻撃者がワークロードを制御し、悪意のあるソフトウェアを実行していることを示す強力なサインです。

この検出機能では、元のコンテナ イメージの一部ではなく、脅威インテリジェンスに基づいて悪意があると特定されたライブラリが読み込まれていないかどうかを調べます。
実行: 組み込まれた悪意のあるバイナリが実行された

次の条件を満たすバイナリが実行されました。

  • 脅威インテリジェンスに基づいて悪意があると識別されました
  • 元のコンテナ イメージに含まれています

組み込みの悪意のあるバイナリが実行された場合、それは攻撃者が悪意のあるコンテナをデプロイしていることを示します。正規のイメージ リポジトリやコンテナビルド パイプラインを制御し、悪意のあるバイナリをコンテナ イメージに注入している可能性があります。

この検出機能では、元のコンテナ イメージに含まれており、脅威インテリジェンスに基づいて悪意があるものと特定されたバイナリが実行されていないかどうかを調べます。
実行: 悪意のある Python が実行されました(プレビュー

ML モデルが、指定された Python コードを悪意があるものとして識別しました。攻撃者は、Python を使用して、外部システムから不正使用の環境にツールなどのファイルを転送し、バイナリなしでコマンドを実行できます。

検出機能は NLP のテクノロジーを使用して、実行された Python コードの内容を評価します。このアプローチは、署名に基づいていないため、検出機能によって既知の新しい Python を識別できます。
実行: 変更された悪意のあるバイナリが実行された

次の条件を満たすバイナリが実行されました。

  • 脅威インテリジェンスに基づいて悪意があると識別されました
  • 元のコンテナ イメージに含まれています
  • 実行時に元のコンテナ イメージから変更される

変更された悪意のあるバイナリが実行された場合、それは攻撃者がワークロードを制御し、悪意のあるソフトウェアを実行していることを示す強力なサインです。

この検出機能では、コンテナ イメージに元々含まれていたバイナリが実行時に変更され、脅威インテリジェンスに基づいて悪意があるものとして特定されたバイナリが実行されていないかどうかを調べます。
実行: 変更された悪意のあるライブラリが読み込まれた

次の条件を満たすライブラリが読み込まれました。

  • 脅威インテリジェンスに基づいて悪意があると識別されました
  • 元のコンテナ イメージに含まれています
  • 実行時に元のコンテナ イメージから変更される

変更された悪意のあるライブラリが読み込まれた場合、それは攻撃者がワークロードを制御し、悪意のあるソフトウェアを実行していることを示す強力なサインです。

この検出機能では、コンテナ イメージに元々含まれていたライブラリが実行時に変更され、脅威インテリジェンスに基づいて悪意があるものとして特定されたライブラリが読み込まれていないかどうかを調べます。
悪意のあるスクリプトの実行

ML モデルが、指定された Bash コードを悪意があるものとして識別しました。攻撃者は、Bash を使用して、外部システムから不正使用の環境にツールなどのファイルを転送し、バイナリなしでコマンドを実行できます。

検出機能は NLP のテクノロジーを使用して、実行された Bash コードの内容を評価します。この方法は、署名に基づいていないため、検出機能によって既知の悪意のある bash を識別できます。
悪意のある URL の観測 Container Threat Detection が、実行中のプロセスの引数リストに悪意のある URL を検出しました。 この検出では、Google の セーフ ブラウジング サービスによって管理されている、安全でないウェブリソースのリストと、実行中のプロセスの引数リストで観測された URL が照合されます。URL が誤ってフィッシングまたはマルウェアに分類されている場合は、 間違ったデータの報告で報告します。
リバースシェル

リモート接続ソケットへのストリーム リダイレクトで始まるプロセス。

リバースシェルを使用すると、攻撃者は不正使用されたワークロードから攻撃者制御マシンに通信できます。攻撃者は、たとえばボットネットの一部として、ワークロードのコマンドと制御を行うことができます。

この検出機能は、リモート ソケットにバインドされている stdin のように機能します。
予期しない子シェル 通常はシェルを起動しないプロセスが、シェルプロセスを生成します。 検出機能はすべてのプロセスの実行をモニタリングします。シェルが呼び出されたときに、親プロセスが通常はシェルを呼び出さないことが判明している場合、検出機能によって検出結果が生成されます。

次のステップ