Cloud Run の脅威検出は Security Command Center の組み込みサービスです。サポートされている Cloud Run リソースの状態を継続的にモニタリングし、最も一般的なランタイム攻撃を検出します。Cloud Run の脅威検出が攻撃を検出すると、Security Command Center で検出結果がニア リアルタイムで生成されます。
Cloud Run の脅威検出のランタイム検出機能は、Cloud Run リソースで不審なバイナリとライブラリをモニタリングし、自然言語処理(NLP)を使用して悪意のある Bash コードと Python コードを検出します。
また、コントロール プレーン検出機能は Event Threat Detection で使用できます。このような検出機能は、組織またはプロジェクトの Cloud Logging ストリームをモニタリングして、Cloud Run リソースのコントロール プレーンに対する潜在的な攻撃を検出します。
サポートされているリソース
Cloud Run の脅威検出は、次のリソースをモニタリングします。
サポートされている実行環境
ランタイム検出機能とコントロール プレーン検出機能では、サポートされている実行環境が異なります。
ランタイム検出機能でサポートされている実行環境
Cloud Run の脅威検出のランタイム検出機能は、第 2 世代の実行環境で実行される Cloud Run リソースのみをサポートします。Cloud Run の脅威検出を有効にする前に、次の点を考慮してください。
Cloud Run の脅威検出を有効にすると、第 1 世代の実行環境で実行される Cloud Run サービスまたはサービスのリビジョンを作成できなくなります。Cloud Run サービスは第 2 世代の実行環境を使用する必要があります。Cloud Run の脅威検出を有効にする前に、第 2 世代の実行環境でワークロードをテストすることをおすすめします。
サービスでランタイム脅威検出を有効にするには、サービスの実行環境を第 2 世代またはデフォルトの実行環境に設定するリビジョンをデプロイします。
コントロール プレーン検出機能でサポートされている実行環境
コントロール プレーン検出機能は、第 1 世代と第 2 世代の両方の実行環境をサポートしています。
Cloud Run の脅威検出によるランタイム脅威検出の仕組み
Cloud Run の脅威検出を有効にすると、サポートされている Cloud Run リソースからテレメトリーが収集され、ランタイム攻撃を示している可能性のあるプロセス、スクリプト、ライブラリが分析されます。イベントが検出された場合の実行パスは次のとおりです。
- Cloud Run の脅威検出は Watcher プロセスを使用して、Cloud Run ワークロードの全期間にわたってコンテナとイベントの情報を収集します。
Cloud Run の脅威検出は収集されたイベント情報を分析して、イベントがインシデントを示しているかどうかを判断します。NLP を使用して、Bash スクリプトと Python スクリプトを分析し、悪意のあるコードを検出します。
Cloud Run の脅威検出がインシデントであると判断すると、そのインシデントは Security Command Center に検出結果として報告されます。
Cloud Run の脅威検出がインシデントであると判断しなかった場合、情報は保存されません。
収集されたデータはすべてエフェメラルであり、永続的には保存されません。
Google Cloud コンソールで Cloud Run の脅威検出の検出結果を確認する方法については、検出結果を確認するをご覧ください。
既知の問題
- Cloud Run サービスまたはジョブの実行中のインスタンスで Watcher プロセスが途中で停止した場合、Watcher プロセスは再開されません。インスタンスは Cloud Run の脅威検出へのテレメトリー情報の送信を停止します。Cloud Run の脅威検出ログはインスタンスのログに含まれません。Watcher プロセスが停止したことを示すインジケーターはありません。
検出機能
このセクションでは、使用可能なランタイム検出機能とコントロール プレーン検出機能をまとめています。新たなクラウドの脅威が発生すると、新しい検出機能が定期的に追加されます。
ランタイム検出機能
Cloud Run の脅威検出には、次のランタイム検出機能が含まれています。
表示名 | API 名 | 説明 |
---|---|---|
実行: 追加された悪意のあるバイナリの実行 | CLOUD_RUN_ADDED_MALICIOUS_BINARY_EXECUTED |
次の条件を満たすバイナリが実行されました。
追加された悪意のあるバイナリが実行された場合、それは攻撃者がワークロードを制御し、悪意のあるソフトウェアを実行していることを示す強力なサインです。 |
実行: 追加された悪意のあるライブラリの読み込み | CLOUD_RUN_ADDED_MALICIOUS_LIBRARY_LOADED |
次の条件を満たすライブラリが読み込まれました。
追加された悪意のあるライブラリが読み込まれた場合、それは攻撃者がワークロードを制御し、悪意のあるソフトウェアを実行していることを示す強力なサインです。 |
実行: 組み込まれた悪意のあるバイナリの実行 | CLOUD_RUN_BUILT_IN_MALICIOUS_BINARY_EXECUTED |
次の条件を満たすバイナリが実行されました。
組み込まれた悪意のあるバイナリが実行された場合、それは攻撃者が悪意のあるコンテナをデプロイしていることを示すサインです。正規のイメージ リポジトリまたはコンテナビルド パイプラインを制御し、悪意のあるバイナリをコンテナ イメージに注入している可能性があります。 |
実行: コンテナ エスケープ | CLOUD_RUN_CONTAINER_ESCAPE |
既知のエスケープ手法またはバイナリを使用して、コンテナの分離を破ろうとするプロセスがコンテナ内で実行されました。このタイプの攻撃では、攻撃者がホストシステムにアクセスできるようになります。このようなプロセスはインテリジェンス データに基づいて潜在的な脅威として特定されます。 コンテナ エスケープの試行が検出された場合は、攻撃者が脆弱性を悪用してコンテナを破ろうとしている可能性があります。その結果、攻撃者がホストシステムやより広範なインフラストラクチャに不正にアクセスし、環境全体が侵害される可能性があります。 |
実行: Kubernetes 攻撃ツールの実行 | CLOUD_RUN_KUBERNETES_ATTACK_TOOL_EXECUTION |
Kubernetes 固有の攻撃ツールが環境内で実行されました。これは攻撃者が Kubernetes クラスタ コンポーネントを標的にしていることを示している可能性があります。このような攻撃ツールはインテリジェンス データに基づいて潜在的な脅威として特定されます。 攻撃ツールが Kubernetes 環境内で実行された場合、攻撃者はクラスタにアクセスし、そのツールを使用して Kubernetes 固有の脆弱性または構成を悪用している可能性があります。 |
実行: ローカル偵察ツールの実行 | CLOUD_RUN_LOCAL_RECONNAISSANCE_TOOL_EXECUTION |
通常はコンテナまたは環境に関連付けられていないローカル偵察ツールが実行された場合、内部システム情報を収集しようとしている可能性があります。このような偵察ツールはインテリジェンス データに基づいて潜在的な脅威として特定されます。 偵察ツールが実行された場合、攻撃者はインフラストラクチャのマッピング、脆弱性の特定、システム構成に関するデータの収集を通じて、次の攻撃の計画を立てている可能性があります。 |
実行: 悪意のある Python の実行 | CLOUD_RUN_MALICIOUS_PYTHON_EXECUTED |
ML モデルが特定の Python コードを悪意があるものとして特定しました。攻撃者は Python を使用して、外部システムから不正アクセスした環境にツールなどのファイルを転送し、バイナリなしでコマンドを実行できます。 検出機能は NLP のテクノロジーを使用して、実行された Python コードの内容を評価します。このアプローチは署名に基づいていないため、検出機能は既知と新規の Python コードを特定できます。 |
実行: 変更された悪意のあるバイナリの実行 | CLOUD_RUN_MODIFIED_MALICIOUS_BINARY_EXECUTED |
次の条件を満たすバイナリが実行されました。
変更された悪意のあるバイナリが実行された場合、それは攻撃者がワークロードを制御し、悪意のあるソフトウェアを実行していることを示す強力なサインです。 |
実行: 変更された悪意のあるライブラリの読み込み | CLOUD_RUN_MODIFIED_MALICIOUS_LIBRARY_LOADED |
次の条件を満たすライブラリが読み込まれました。
変更された悪意のあるライブラリが読み込まれた場合、それは攻撃者がワークロードを制御し、悪意のあるソフトウェアを実行していることを示す強力なサインです。 |
悪意のあるスクリプトの実行 | CLOUD_RUN_MALICIOUS_SCRIPT_EXECUTED |
ML モデルが特定の Bash コードを悪意があるものとして特定しました。攻撃者は Bash を使用して、外部システムから不正アクセスしている環境にツールなどのファイルを転送し、バイナリなしでコマンドを実行できます。 検出機能は NLP のテクノロジーを使用して、実行された Bash コードの内容を評価します。このアプローチは署名に基づいていないため、検出機能は既知と新規の悪意のある Bash コードを特定できます。 |
悪意のある URL の観測 | CLOUD_RUN_MALICIOUS_URL_OBSERVED |
Cloud Run の脅威検出が実行中のプロセスの引数リスト内に悪意のある URL を検出しました。 この検出機能では、Google のセーフ ブラウジング サービスによって管理されている、安全でないウェブリソースのリストと、実行中のプロセスの引数リストで観測された URL が照合されます。URL が誤ってフィッシング サイトまたはマルウェアに分類されている場合は、間違ったデータの報告で報告してください。 |
リバースシェル | CLOUD_RUN_REVERSE_SHELL |
リモート接続ソケットへのストリーム リダイレクトから始まるプロセス。この検出機能はリモート ソケットにバインドされている リバースシェルでは、攻撃者は不正アクセスしたワークロードから攻撃者が制御するマシンに通信できるようになります。たとえばボットネットの一部として、ワークロードのコマンドと制御ができるようになります。 |
予期しない子シェル | CLOUD_RUN_UNEXPECTED_CHILD_SHELL |
通常はシェルを起動しないプロセスがシェルプロセスを生成します。 この検出機能はすべてのプロセスの実行をモニタリングします。シェルが呼び出されたときに、親プロセスが通常はシェルを呼び出さないことがわかっている場合、検出機能は検出結果を生成します。 |
コントロール プレーン検出機能
次のコントロール プレーン検出機能は、Event Threat Detection で使用できます。これらの検出機能はデフォルトで有効になっており、他の Event Threat Detection 検出機能と同じ方法で管理できます。詳細については、Event Threat Detection を使用するをご覧ください。
表示名 | API 名 | ログソースのタイプ | 説明 |
---|---|---|---|
影響: クリプトマイニング コマンド | CLOUD_RUN_JOBS_CRYPTOMINING_COMMANDS |
Cloud Audit Logs: IAM システム イベント監査ログ |
特定のクリプトマイニング コマンドが実行中の Cloud Run ジョブにアタッチされました。検出結果はデフォルトで重大度が「高」に分類されます。 |
実行: クリプトマイニング Docker イメージ | CLOUD_RUN_CRYPTOMINING_DOCKER_IMAGES |
Cloud Audit Logs: IAM システム イベント監査ログ |
特定の既知の不正な Docker イメージが、新規または既存の Cloud Run サービスまたはジョブにアタッチされました。検出結果はデフォルトで重大度が「高」に分類されます。 |
権限昇格: デフォルトの Compute Engine サービス アカウントの SetIAMPolicy | CLOUD_RUN_SERVICES_SET_IAM_POLICY |
Cloud Audit Logs: 管理アクティビティ ログ |
デフォルトの Compute Engine サービス アカウントを使用して、Cloud Run サービスの IAM ポリシーが設定されました。これはサーバーレス サービスから Compute Engine トークンが漏洩した場合に発生する可能性がある、脆弱性を悪用して侵入した後のアクションです。検出結果はデフォルトで重大度が「低」に分類されます。 |
次のステップ
- Cloud Run の脅威検出を使用する方法を確認する。
- Event Threat Detection を使用する方法を確認する。