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 の脅威検出は、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 名 | 説明 |
|---|---|---|
| コマンド&コントロール: Steganography ツールの検出 | CLOUD_RUN_STEGANOGRAPHY_TOOL_DETECTED |
Unix 系の環境でよく見られる steganography ツールとして識別されたプログラムが実行されました。これは、通信やデータ転送を隠蔽しようとしている可能性があることを示しています。 攻撃者は、steganography の手法を利用して、悪意のあるコマンド&コントロール(C2)の指示や引き出したデータを無害に見えるデジタル ファイルに埋め込み、標準のセキュリティ モニタリングと検出を回避しようとした可能性があります。このようなツールの使用を特定することは、隠れた悪意のあるアクティビティを検出するうえで重要です。 |
| 認証情報アクセス: Google Cloud 認証情報の検出 | CLOUD_RUN_FIND_GCP_CREDENTIALS |
コンテナ環境内で Google Cloud 秘密鍵、パスワード、その他の機密性の高い認証情報を検索するコマンドが実行されました。 攻撃者は、盗んだ Google Cloud 認証情報を使用して、標的となった Google Cloud 環境内の機密データやリソースに不正にアクセスする可能性があります。 |
| 認証情報アクセス: GPG キーの偵察 | CLOUD_RUN_GPG_KEY_RECONNAISSANCE |
GPG セキュリティ キーを検索するコマンドが実行されました。 攻撃者は、盗んだ GPG セキュリティ キーを使用して、暗号化された通信やファイルに不正にアクセスする可能性があります。 |
| 認証情報アクセス: 秘密鍵またはパスワードの検索 | CLOUD_RUN_SEARCH_PRIVATE_KEYS_OR_PASSWORDS |
コンテナ環境内で秘密鍵、パスワード、その他の機密性の高い認証情報を検索するコマンドが実行されました。これは、認証データを収集しようとしている可能性があることを示しています。 攻撃者は、システムへの不正アクセス、権限の昇格、環境内でのラテラル ムーブメントを行うために、認証情報ファイルを検索することがよくあります。このようなアクティビティを検出することは、セキュリティ侵害を防ぐために不可欠です。 |
| 防御回避: Base64 ELF ファイルのコマンドライン | CLOUD_RUN_BASE64_ELF_FILE_CMDLINE |
ELF(Executable and Linkable Format)ファイルである引数を含むプロセスが実行されました。 エンコードされた ELF ファイルの実行が検出された場合、それは攻撃者が ASCII 専用のコマンドラインに転送するためにバイナリデータをエンコードしようとしていることを示すシグナルです。攻撃者はこの手法を使用して、検出を回避し、ELF ファイルに埋め込まれた悪意のあるコードを実行する可能性があります。 |
| 防御回避: Base64 でエンコードされた Python スクリプトの実行 | CLOUD_RUN_BASE64_ENCODED_PYTHON_SCRIPT_EXECUTED |
Base64 でエンコードされた Python スクリプトである引数を含むプロセスが実行されました。 エンコードされた Python スクリプトの実行が検出された場合、それは攻撃者が ASCII 専用のコマンドラインに転送するためにバイナリデータをエンコードしようとしていることを示すシグナルです。攻撃者はこの手法を使用して、検出を回避し、Python スクリプトに埋め込まれた悪意のあるコードを実行する可能性があります。 |
| 防御回避: Base64 でエンコードされたシェル スクリプトの実行 | CLOUD_RUN_BASE64_ENCODED_SHELL_SCRIPT_EXECUTED |
Base64 でエンコードされたシェル スクリプトである引数を含むプロセスが実行されました。 エンコードされたシェル スクリプトの実行が検出された場合、それは攻撃者が ASCII 専用のコマンドラインに転送するためにバイナリデータをエンコードしようとしていることを示すシグナルです。攻撃者はこの手法を使用して、検出を回避し、シェル スクリプトに埋め込まれた悪意のあるコードを実行する可能性があります。 |
| 防御回避: コンテナでのコード コンパイラ ツールの起動 | CLOUD_RUN_LAUNCH_CODE_COMPILER_TOOL_IN_CONTAINER |
コンテナ環境内でコード コンパイラ ツールを起動するプロセスが開始されました。これは、分離されたコンテキストで実行可能コードをビルドまたは変更しようとしている可能性があることを示しています。 攻撃者は、コンテナ内でコード コンパイラを使用して、悪意のあるペイロードの開発、既存のバイナリへのコード挿入、セキュリティ管理をバイパスするツールの作成を行うことがあります。いずれの場合も、監視の緩い環境で活動することで、ホストシステムでの検出を回避します。 |
| 実行: 追加された悪意のあるバイナリの実行 | CLOUD_RUN_ADDED_MALICIOUS_BINARY_EXECUTED |
次の条件を満たすバイナリが実行されました。
追加された悪意のあるバイナリが実行された場合、それは攻撃者がワークロードを制御し、悪意のあるソフトウェアを実行していることを示す強力なサインです。 |
| 実行: 追加された悪意のあるライブラリの読み込み | CLOUD_RUN_ADDED_MALICIOUS_LIBRARY_LOADED |
次の条件を満たすライブラリが読み込まれました。
追加された悪意のあるライブラリが読み込まれた場合、それは攻撃者がワークロードを制御し、悪意のあるソフトウェアを実行していることを示す強力なサインです。 |
| 実行: 組み込まれた悪意のあるバイナリの実行 | CLOUD_RUN_BUILT_IN_MALICIOUS_BINARY_EXECUTED |
次の条件を満たすバイナリが実行されました。
組み込みの悪意のあるバイナリが実行された場合、それは攻撃者が悪意のあるコンテナをデプロイしていることを示します。正規のイメージ リポジトリやコンテナビルド パイプラインを制御し、悪意のあるバイナリをコンテナ イメージに注入している可能性があります。 |
| 実行: コンテナ エスケープ | CLOUD_RUN_CONTAINER_ESCAPE |
既知のエスケープ手法またはバイナリを使用して、コンテナの分離を破ろうとするプロセスがコンテナ内で実行されました。このタイプの攻撃では、攻撃者がホストシステムにアクセスできるようになります。これらのプロセスは、インテリジェンス データに基づいて潜在的な脅威として識別されます。 コンテナ エスケープの試行が検出された場合は、攻撃者が脆弱性を悪用してコンテナを破ろうとしている可能性があります。その結果、攻撃者はホストシステムやより広範なインフラストラクチャに不正にアクセスし、環境全体を侵害する可能性があります。 |
| 実行: /memfd: でのファイルレス実行 | CLOUD_RUN_FILELESS_EXECUTION_DETECTION_MEMFD |
インメモリ ファイル記述子を使用したプロセスが実行されました。 プロセスがインメモリ ファイルから開始された場合、攻撃者が悪意のあるコードを実行するために他の検出方法をバイパスしようとしていることを示している可能性があります。 |
| 実行: 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 |
次の条件を満たすライブラリが読み込まれました。
変更された悪意のあるライブラリが読み込まれた場合、それは攻撃者がワークロードを制御し、悪意のあるソフトウェアを実行していることを示す強力なサインです。 |
| 実行: コンテナでの Netcat リモートコード実行 | CLOUD_RUN_NETCAT_REMOTE_CODE_EXECUTION_IN_CONTAINER |
コンテナ環境内で汎用性の高いネットワーク ユーティリティである Netcat が実行されました。これは、不正なリモート アクセスの確立またはデータの引き出しを行おうとしていることを示している可能性があります。 コンテナ化された環境での Netcat の使用は、攻撃者がリバースシェルの作成、ラテラル ムーブメントの実現、任意のコマンドの実行を行っていることを示している可能性があります。これにより、システムの完全性が損なわれる可能性があります。 |
| 実行: CUPS を介した任意のコマンド実行の可能性(CVE-2024-47177) | CLOUD_RUN_POSSIBLE_ARBITRARY_COMMAND_EXECUTION_THROUGH_CUPS |
このルールは、一般的なシェル プログラムを実行している |
| 実行: リモート コマンド実行の可能性の検出 | CLOUD_RUN_POSSIBLE_REMOTE_COMMAND_EXECUTION_DETECTED |
ネットワーク ソケット接続を介して一般的な UNIX コマンドを生成するプロセスが検出されました。これは、不正なリモート コマンド実行機能を確立しようとしている可能性があることを示しています。 攻撃者は、侵害したシステムをインタラクティブに制御し、任意のコマンドをリモートで実行して、ファイアウォール制限などの標準的なネットワーク セキュリティ対策をバイパスするために、リバースシェルを模倣した手法を利用することがよくあります。ソケット経由のコマンド実行の検出は、悪意のあるリモート アクセスを示す強力なサインです。 |
| 実行: 許可されていない HTTP プロキシ環境でのプログラム実行 | CLOUD_RUN_PROGRAM_RUN_WITH_DISALLOWED_HTTP_PROXY_ENV |
許可されていない HTTP プロキシ環境変数を使用したプログラムが実行されました。これは、セキュリティ管理のバイパス、悪意のある目的でのトラフィックのリダイレクト、不正なチャネルを介したデータの引き出しを行おうとしていることを示している可能性があります。 攻撃者は、許可されていない HTTP プロキシを構成して、機密情報の傍受、悪意のあるサーバーを介したトラフィックの転送、秘密の通信チャネルの確立を行う可能性があります。これらの環境変数を使用したプログラムの実行を検出することは、ネットワーク セキュリティを維持し、データ侵害を防ぐために不可欠です。 |
| 実行: Socat リバースシェルの検出 | CLOUD_RUN_SOCAT_REVERSE_SHELL_DETECTED |
リバースシェルを作成する
このルールは、stdin、stdout、stderr ファイル記述子をリダイレクトしてリバースシェルを作成する |
| 実行: 不審な OpenSSL 共有オブジェクトの読み込み | CLOUD_RUN_SUSPICIOUS_OPENSSL_SHARED_OBJECT_LOADED |
カスタム共有オブジェクトを読み込む OpenSSL が実行されました。 攻撃者は、悪意のあるコードを実行するために、カスタム ライブラリを読み込み、OpenSSL が使用する既存のライブラリを置き換える可能性があります。本番環境での使用は一般的ではないため、直ちに調査する必要があります。 |
| データの引き出し: コンテナでのリモート ファイル コピー ツールの起動 | CLOUD_RUN_LAUNCH_REMOTE_FILE_COPY_TOOLS_IN_CONTAINER |
コンテナ内でリモート ファイルコピー ツールの実行が検出されました。これは、データの引き出し、ラテラル ムーブメント、悪意のあるペイロードのデプロイの可能性があることを示しています。 攻撃者は、コンテナ外への機密データの転送、他のシステムを侵害するためのネットワーク内でのラテラル ムーブメント、さらなる悪意のあるアクティビティを実行するマルウェアの導入を行うために、これらのツールを使用することがよくあります。 リモート ファイルコピー ツールの使用を検出することは、データ侵害、不正アクセス、コンテナとホストシステムのさらなる侵害を防ぐために不可欠です。 |
| 影響: 悪意のあるコマンドラインの検出 | CLOUD_RUN_DETECT_MALICIOUS_CMDLINES |
重要なシステム ファイルの削除やパスワード関連の構成の変更など、破壊的な影響の可能性があることがわかっている引数を使用したコマンドが実行されました。 攻撃者は、システムを不安定な状態にする、重要なファイルを削除して復元を妨害する、ユーザー認証情報を操作して不正アクセスを可能にするといった目的で、悪意のあるコマンドラインを発行する可能性があります。これらの特定のコマンド パターンを検出することは、システムへの重大な影響を防ぐために不可欠です。 |
| 影響: ディスクからの大量のデータの削除 | CLOUD_RUN_REMOVE_BULK_DATA_FROM_DISK |
一括データ削除オペレーションを実行しているプロセスが検出されました。これは、コンテナ環境内で証拠の消去、サービスの妨害、データ消去攻撃の実行を行おうとしていることを示している可能性があります。 攻撃者は、痕跡の隠蔽、オペレーションの妨害、ランサムウェアをデプロイする準備を行うために、大量のデータを削除する可能性があります。このようなアクティビティを検出することで、重要なデータ損失が発生する前に潜在的な脅威を特定できます。 |
| 影響: Stratum プロトコルを使用した不審な暗号通貨マイニング アクティビティ | CLOUD_RUN_SUSPICIOUS_CRYPTO_MINING_ACTIVITY_USING_STRATUM_PROTOCOL |
暗号通貨マイニング ソフトウェアで一般的に使用される Stratum プロトコルを介して通信するプロセスが検出されました。このアクティビティは、コンテナ環境内で不正なマイニング オペレーションが行われている可能性があることを示しています。 攻撃者は、金銭的な利益を得るためにシステム リソースを悪用する暗号通貨マイナーをデプロイすることがよくあります。これにより、パフォーマンスの低下、運用コストの増加、セキュリティ リスクの可能性が生じます。このようなアクティビティを検出することで、リソースの不正使用や不正アクセスを軽減できます。 |
| 悪意のあるスクリプトの実行 | CLOUD_RUN_MALICIOUS_SCRIPT_EXECUTED |
ML モデルが、指定された Bash コードを悪意があるものとして識別しました。攻撃者は、Bash を使用して、外部システムから侵害した環境にツールなどのファイルを転送し、バイナリなしでコマンドを実行できます。 検出機能は NLP 手法を使用して、実行された Bash コードの内容を評価します。この方法は、署名に基づくものではないため、検出機能は既知および新規の悪意のある Bash コードを識別できます。 |
| 悪意のある URL の観測 | CLOUD_RUN_MALICIOUS_URL_OBSERVED |
Cloud Run の脅威検出が、実行中のプロセスの引数リストに悪意のある URL を検出しました。 この検出機能では、Google のセーフ ブラウジング サービスによって管理されている、安全でないウェブリソースのリストと、実行中のプロセスの引数リストで観測された URL が照合されます。URL が誤ってフィッシング サイトまたはマルウェアに分類されている場合は、不正確なデータの報告で報告します。 |
| 権限昇格: 権限昇格のための Sudo の不正使用(CVE-2019-14287) | CLOUD_RUN_ABUSE_SUDO_FOR_PRIVILEGE_ESCALATION |
権限の昇格を試みる引数を使用して
この検出は、 |
| 権限昇格: /dev/shm でのファイルレス実行 | CLOUD_RUN_FILELESS_EXECUTION_DETECTION_SHM |
|
| 権限昇格: Polkit のローカル権限昇格の脆弱性(CVE-2021-4034) | CLOUD_RUN_POLKIT_LOCAL_PRIVILEGE_ESCALATION_VULNERABILITY |
root 以外のユーザーが、権限昇格を試みる環境変数を使用して
このルールは、Polkit の |
| 権限昇格: Sudo による権限昇格の可能性(CVE-2021-3156) | CLOUD_RUN_SUDO_POTENTIAL_PRIVILEGE_ESCALATION |
root 以外のユーザーが、権限昇格を試みる引数のパターンを使用して
|
| リバースシェル | 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 を使用する方法を学習する。
- Cloud Run の脅威の検出結果に対応する方法を学習する。
- 脅威の検出結果のインデックスを参照する。