Security Command Center を Google SecOps と統合する

このドキュメントでは、Security Command Center を Google Security Operations(Google SecOps)と統合する方法について説明します。

統合バージョン: 13.0

始める前に

この統合を使用するには、カスタムの Identity and Access Management(IAM)ロールと Google Cloud サービス アカウントが必要です。既存のサービス アカウントを使用することも、新しいサービス アカウントを作成することもできます。

IAM ロールを作成して構成する

インテグレーション用のカスタム IAM ロールを作成して構成するには、次の操作を行います。

  1. Google Cloud コンソールで、IAM [ロール] ページに移動します。

    [ロール] に移動

  2. [ロールを作成] をクリックして、統合に必要な権限を持つカスタムロールを作成します。

  3. 新しいカスタムロールの場合は、[タイトル]、[説明]、一意の [ID] を入力します。

  4. [ロールのリリース段階] を [一般提供] に設定します。

  5. 作成したロールに次の権限を付与します。

    • securitycenter.assets.list
    • securitycenter.findings.list
    • securitycenter.findings.setMute
    • securitycenter.findings.setState

API キーを作成して構成する

API キーを作成する手順は次のとおりです。

  1. Google Cloud コンソールで、[API とサービス] > [認証情報] > [認証情報を作成] に移動します。

  2. [API キー] を選択します。生成された API キーを含むダイアログが表示されます。API キーをコピーして安全に保管します。

API キーの API 制限を構成する手順は次のとおりです。

  1. [キーを制限] > [API 制限] > [キーを制限] をクリックします。

  2. API リストから [Security Command Center API] を選択し、該当する制限を構成して [保存] をクリックします。

API キーへのアクセス権を付与する

Security Command Center に API キーへのアクセス権を付与する手順は次のとおりです。

  1. Google Cloud コンソールで、[IAM と管理>サービス アカウント] に移動します。

  2. Security Command Center の統合で使用するサービス アカウントを選択します。

  3. サービス アカウントのメールアドレスをクリックします。

  4. [アクセス権を付与] を選択します。

  5. [新しいメンバー] フィールドに、サービス アカウントのメールアドレスを入力します。

  6. [セキュリティ センター] で Security Center Findings Editor ロールを選択し、[保存] をクリックします。

統合のパラメータ

Security Command Center の統合には、次のパラメータが必要です。

パラメータ 説明
API Root

必須。

Security Command Center インスタンスの API ルート。

Organization ID

省略可。

Security Command Center 統合で使用する組織 ID。

Project ID

省略可。

Security Command Center インスタンスのプロジェクト ID。

Quota Project ID

省略可。

Google Cloud API と課金に使用する Google Cloud プロジェクト ID。このパラメータを使用するには、サービス アカウントに Service Usage Consumer ロールを付与する必要があります。

このパラメータの値を設定しない場合、統合は Google Cloud サービス アカウントからプロジェクト ID を取得します。

User's Service Account

必須。

サービス アカウント キーの JSON ファイルの内容。

このパラメータまたは Workload Identity Email パラメータを構成できます。

このパラメータを構成するには、サービス アカウントの作成時にダウンロードしたサービス アカウント キーの JSON ファイルの内容全体を指定します。

Workload Identity Email

省略可。

サービス アカウントのクライアント メールアドレス。

このパラメータまたは User's Service Account パラメータを構成できます。

このパラメータを設定する場合は、Quota Project ID パラメータを構成します。

Workload Identity 連携を使用してサービス アカウントの権限を借用するには、サービス アカウントに Service Account Token Creator ロールを付与します。ワークロード ID とその操作方法の詳細については、ワークロードの ID をご覧ください。

Verify SSL

必須。

選択すると、Security Command Center サーバーに接続するときに SSL 証明書が検証されます。

デフォルトで選択されています。

Google SecOps で統合を構成する手順については、統合を構成するをご覧ください。

必要に応じて、後の段階で変更できます。統合インスタンスを構成すると、ハンドブックで使用できるようになります。複数のインスタンスの構成とサポートの方法については、複数のインスタンスのサポートをご覧ください。

操作

アクションの詳細については、 デスクから保留中のアクションに対応する手動アクションを実行するをご覧ください。

検出結果の詳細を取得する

検出結果の詳細を取得アクションを使用して、Security Command Center の検出結果の詳細を取得します。

このアクションは Google SecOps エンティティに対して実行されません。

アクション入力

[Get Finding Details] アクションには、次のパラメータが必要です。

パラメータ 説明
Finding Name

必須。

詳細を返す名前を検索します。このパラメータは、カンマ区切りのリストとして複数の値を受け入れます。

名前を検索する例は次のとおりです。

organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID

アクションの出力

[検出の詳細を取得] アクションは、次の出力を提供します。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用可能
拡充テーブル 利用不可
JSON の結果 利用可能
出力メッセージ 利用可能
スクリプトの結果 利用可能
ケースウォール テーブル

検出結果の詳細を取得アクションは、次のテーブルを返すことができます。

テーブルのタイトル: 検出結果の詳細

テーブルの列:

  • カテゴリ
  • 都道府県
  • 重大度
JSON の結果

次の例は、Get Finding Details アクションを使用した場合に受信する JSON 結果の出力を示しています。

{
   {
      "finding_name": "organizations/ORGANIZATION_ID/sources/2678067631293752869/findings/hvX6WwbvFyBGqPbEs9WH9m",
      "finding": {
        "name": "organizations/ORGANIZATION_ID/sources/2678067631293752869/findings/hvX6WwbvFyBGqPbEs9WH9m",
        "parent": "organizations/ORGANIZATION_ID/sources/2678067631293752869",
        "resourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "state": "ACTIVE",
        "category": "Discovery: Service Account Self-Investigation",
        "sourceProperties": {
          "sourceId": {
            "projectNumber": "PROJECT_ID",
            "customerOrganizationNumber": "ORGANIZATION_ID"
          },
          "detectionCategory": {
            "technique": "discovery",
            "indicator": "audit_log",
            "ruleName": "iam_anomalous_behavior",
            "subRuleName": "service_account_gets_own_iam_policy"
          },
          "detectionPriority": "LOW",
          "affectedResources": [
            {
              "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID"
            }
          ],
          "evidence": [
            {
              "sourceLogId": {
                "projectId": "PROJECT_ID",
                "resourceContainer": "projects/PROJECT_ID",
                "timestamp": {
                  "seconds": "1622678907",
                  "nanos": 448368000
                },
                "insertId": "ID"
              }
            }
          ],
          "properties": {
            "serviceAccountGetsOwnIamPolicy": {
              "principalEmail": "prisma-cloud-serv@PROJECT_ID.iam.gserviceaccount.com",
              "projectId": "PROJECT_ID",
              "callerIp": "192.0.2.41",
              "callerUserAgent": "Redlock/GC-MDC/resource-manager/PROJECT_ID Google-API-Java-Client HTTP-Java-Client/1.34.0 (gzip),gzip(gfe)",
              "rawUserAgent": "Redlock/GC-MDC/resource-manager/PROJECT_ID Google-API-Java-Client HTTP-Java-Client/1.34.0 (gzip),gzip(gfe)"
            }
          },
          "contextUris": {
            "mitreUri": {
              "displayName": "Permission Groups Discovery: Cloud Groups",
              "url": "https://attack.mitre.org/techniques/ID/003/"
            },
            "cloudLoggingQueryUri": [
              {
                "displayName": "Cloud Logging Query Link",
                "url": "https://console.cloud.google.com/logs/query;query=timestamp%3D%222021-06-03T00:08:27.448368Z%22%0AinsertId%3D%22ID%22%0Aresource.labels.project_id%3D%22PROJECT_ID%22?project=PROJECT_ID"
              }
            ]
          }
        },
        "securityMarks": {
          "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks"
        },
        "eventTime": "2021-06-03T00:08:27.448Z",
        "createTime": "2021-06-03T00:08:31.074Z",
        "severity": "LOW",
        "canonicalName": "projects/PROJECT_ID/sources/SOURCE_ID/findings/FINDING_ID",
        "mute": "UNDEFINED",
        "findingClass": "THREAT",
        "mitreAttack": {
          "primaryTactic": "DISCOVERY",
          "primaryTechniques": [
            "PERMISSION_GROUPS_DISCOVERY",
            "CLOUD_GROUPS"
          ]
        }
      },
      "resource": {
        "name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "projectName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "projectDisplayName": "PROJECT_ID",
        "parentName": "//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID",
        "parentDisplayName": "example.net",
        "type": "google.cloud.resourcemanager.Project",
        "displayName": "PROJECT_ID"
      }
    }
}
出力メッセージ

[検出の詳細を取得] アクションは、次の出力メッセージを返すことができます。

出力メッセージ メッセージの説明

Successfully returned details about the following findings in Security Command Center: FINDING_NAMES.

Action wasn't able to find the following findings in Security Command Center: FINDING_NAMES.

None of the provided findings were found in Security Command Center.

アクションが成功しました。
Error executing action "Get Finding Details". Reason: ERROR_REASON

操作に失敗しました。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、検出の詳細を取得アクションを使用する場合のスクリプト結果出力の値を示します。

スクリプトの結果名
is_success True または False

アセットの脆弱性を一覧表示する

アセットの脆弱性を一覧表示アクションを使用して、Security Command Center のエンティティに関連する脆弱性を一覧表示します。

このアクションは Google SecOps エンティティに対して実行されません。

アクション入力

アセットの脆弱性を一覧表示するアクションには、次のパラメータが必要です。

パラメータ 説明
Asset Resource Names

必須。

データを返すアセットのリソース名。このパラメータは、カンマ区切りのリストとして複数の値を受け入れます。

Timeframe

省略可。

脆弱性または構成ミスを検索する期間。

値は次のいずれかになります。

  • Last Week
  • Last Month
  • Last Year
  • All Time

デフォルト値は All Time です。

Record Types

省略可。

返すレコードのタイプ。

値は次のいずれかになります。

  • Vulnerabilities Misconfigurations
  • Vulnerabilities + Misconfigurations

デフォルト値は Vulnerabilities + Misconfigurations です。

Output Type

省略可。

各アセットの JSON 結果で返される出力のタイプ。

値は次のいずれかになります。

  • Statistics
  • Data
  • Statistics + Data

デフォルト値は Statistics です。

Max Records To Return

省略可。

レコード タイプごとに返されるレコードの最大数。

デフォルト値は 100 です。

アクションの出力

アセットの脆弱性を一覧表示するアクションは、次の出力を提供します。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用可能
拡充テーブル 利用不可
JSON の結果 利用可能
出力メッセージ 利用可能
スクリプトの結果 利用可能
ケースウォール テーブル

アセットの脆弱性を一覧表示アクションは、次の表を返すことができます。

テーブルのタイトル: ASSET_ID 脆弱性

テーブルの列:

  • カテゴリ
  • 説明
  • 重大度
  • イベント時間
  • CVE

テーブルのタイトル: ASSET_ID 構成ミス

テーブルの列:

  • カテゴリ
  • 説明
  • 重大度
  • イベント時間
  • 推奨事項
JSON の結果

次の例は、[List Asset Vulnerabilities] アクションを使用した場合に受信される JSON 結果の出力です。

{
   ."siemplify_asset_display_name":[1] [2]  ""
"vulnerabilities": {
        "statistics": {
            "critical": 1,
            "high": 1,
            "medium": 1,
            "low": 1,
            "undefined": 1
        },
        "data": [
            {
                "category": "CATEGORY"
                "description": "DESCRIPTION"
                "cve_id": "CVE_ID"
                "event_time": "EVENT_TIME"
                "related_references": "RELATED_REFERENCES"
                "severity": "SEVERITY"
            }
        ]
    },
    "misconfigurations": {
        "statistics": {
            "critical": 1,
            "high": 1,
            "medium": 1,
            "low": 1,
            "undefined": 1
        },
        "data": [
            {
                "category": "CATEGORY"
                "description": "DESCRIPTION"
                "recommendation": "RECOMMENDATION"
                "event_time": "EVENT_TIME"
                "severity": "SEVERITY"
            }
        ]
    },
}
出力メッセージ

[アセットの脆弱性を一覧表示] アクションは、次の出力メッセージを返すことがあります。

出力メッセージ メッセージの説明

Successfully returned related vulnerabilities and misconfigurations to the following entities in Security Command Center: ASSET_IDS.

No vulnerabilities and misconfigurations were found to the following entities in Security Command Center: ASSET_IDS.

No vulnerabilities and misconfigurations were found for the provided assets in Security Command Center.

アクションが成功しました。
Error executing action "List Asset Vulnerabilities". Reason: ERROR_REASON

操作に失敗しました。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、アセットの脆弱性を一覧表示アクションを使用する場合のスクリプト結果出力の値を示します。

スクリプトの結果名
is_success True または False

Ping

Ping アクションを使用して、Security Command Center への接続をテストします。

このアクションは Google SecOps エンティティに対して実行されません。

アクション入力

なし

アクションの出力

[Ping] アクションでは、次の出力が提供されます。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用不可
JSON の結果 利用不可
出力メッセージ 利用可能
スクリプトの結果 利用可能
出力メッセージ

Ping アクションは、次の出力メッセージを返すことができます。

出力メッセージ メッセージの説明
Successfully connected to the Security Command Center server with the provided connection parameters! アクションが成功しました。
Failed to connect to the Security Command Center server! Error is ERROR_REASON

操作に失敗しました。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、Ping アクションを使用した場合のスクリプト結果出力の値を示します。

スクリプトの結果名
is_success True または False

検出結果を更新する

検出結果の更新アクションを使用して、Security Command Center の検出結果を更新します。

このアクションは Google SecOps エンティティに対して実行されません。

アクション入力

検出結果の更新アクションには、次のパラメータが必要です。

パラメータ 説明
Finding Name

必須。

更新する名前を検索しています。このパラメータは、カンマ区切りのリストとして複数の値を受け入れます。

名前を検索する例は次のとおりです。organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID

Mute Status

省略可。

検出結果のミュート ステータス。

使用できる値は次のとおりです。

  • Select One
  • Mute
  • Unmute
State Status

省略可。

検出結果の状態。

使用できる値は次のとおりです。

  • Select One
  • Active
  • Inactive

アクションの出力

[検出結果を更新] アクションは、次の出力を提供します。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用不可
JSON の結果 利用不可
出力メッセージ 利用可能
スクリプトの結果 利用可能
出力メッセージ

[検出結果を更新] アクションは、次の出力メッセージを返すことがあります。

出力メッセージ メッセージの説明

Successfully updated the following findings in Security Command Center: FINDING_NAMES

Action wasn't able to find the following findings in Security Command Center: FINDING_NAMES

None of the provided findings were found in Security Command Center.

アクションが成功しました。
Error executing action "Update finding". Reason: ERROR_REASON

操作に失敗しました。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、検出結果を更新アクションを使用する場合のスクリプト結果出力の値を示します。

スクリプトの結果名
is_success True または False

コネクタ

Google SecOps でコネクタを構成する方法について詳しくは、データを取り込む(コネクタ)をご覧ください。

Google Security Command Center - 検出結果コネクタ

Google Security Command Center - Findings Connector を使用して、Security Command Center から検出結果に関する情報を取得します。

動的リストフィルタはカテゴリと連動して機能します。

コネクタの入力

Google Security Command Center - 検出結果コネクタには、次のパラメータが必要です。

パラメータ 説明
Product Field Name

必須。

商品名が保存されるフィールドの名前。

商品名は主にマッピングに影響します。コネクタのマッピング プロセスを合理化して改善するため、デフォルト値はコードから参照されるフォールバック値に解決されます。このパラメータの無効な入力は、デフォルトでフォールバック値に解決されます。

デフォルト値は Product Name です。

Event Field Name

必須。

イベント名(サブタイプ)を特定するフィールドの名前。

デフォルト値は category です。

Environment Field Name

省略可。

環境名が保存されるフィールドの名前。

環境フィールドがない場合、コネクタはデフォルト値を使用します。

Environment Regex Pattern

省略可。

Environment Field Name フィールドで見つかった値に対して実行する正規表現パターン。このパラメータを使用すると、正規表現ロジックを使用して環境フィールドを操作できます。

デフォルト値 .* を使用して、必要な未加工の Environment Field Name 値を取得します。

正規表現パターンが null か空の場合、または環境値が null の場合、最終的な環境の結果はデフォルト環境になります。

Script Timeout (Seconds)

必須。

現在のスクリプトを実行する Python プロセスのタイムアウト上限(秒単位)。

デフォルト値は 180 です。

API Root

必須。

Security Command Center インスタンスの API ルート。

デフォルト値は https://securitycenter.googleapis.com です。

Organization ID

省略可。

Security Command Center 統合で使用する組織の ID。

Project ID

省略可。

Security Command Center インスタンスのプロジェクト ID。

Quota Project ID

省略可。

Google Cloud API と課金に使用する Google Cloud プロジェクト ID。このパラメータを使用するには、サービス アカウントに Service Usage Consumer ロールを付与する必要があります。

このパラメータの値を設定しない場合、統合は Google Cloud サービス アカウントからプロジェクト ID を取得します。

User's Service Account

必須。

サービス アカウント キーの JSON ファイルの内容。

このパラメータまたは Workload Identity Email パラメータを構成できます。

このパラメータを構成するには、サービス アカウントの作成時にダウンロードしたサービス アカウント キーの JSON ファイルの内容全体を指定します。

Workload Identity Email

省略可。

サービス アカウントのクライアント メールアドレス。

このパラメータまたは User's Service Account パラメータを構成できます。

このパラメータを設定する場合は、Quota Project ID パラメータを構成します。

Workload Identity 連携を使用してサービス アカウントの権限を借用するには、サービス アカウントに Service Account Token Creator ロールを付与します。ワークロード ID とその操作方法の詳細については、ワークロードの ID をご覧ください。

Finding Class Filter

省略可。

取り込むコネクタの検出結果クラス。

値は次のいずれかになります。

  • Threat
  • Vulnerability
  • Misconfiguration
  • SCC_Error
  • Observation

値を設定しない場合、コネクタはすべてのクラスから検出結果を取り込みます。

デフォルト値は Threat,Vulnerability,Misconfiguration,SCC_Error,Observation です。

Lowest Severity To Fetch

省略可。

取得するアラートの最も低い重大度。

このパラメータを構成しない場合、コネクタはすべての重大度レベルのアラートを取り込みます。

コネクタは、重大度が未定義のアラートを重大度が Medium のアラートとして扱います。

値は次のいずれかになります。

  • Low
  • Medium
  • High
  • Critical

デフォルト値は High です。

Max Hours Backwards

省略可。

検出結果を取得する現在までの時間数。

このパラメータは、コネクタを初めて有効にした後の最初のコネクタ イテレーション、または期限切れのコネクタ タイムスタンプのフォールバック値に適用できます。

最大値は 24 です。

デフォルト値は 1 です。

Max Findings To Fetch

省略可。

コネクタのイテレーションごとに処理する検出結果の数。

最大値は 1000 です。

デフォルト値は 100 です。

Use dynamic list as a blacklist

必須。

選択すると、コネクタは動的リストを拒否リストとして使用します。

デフォルトでは選択されていません。

Verify SSL

必須。

選択すると、Security Command Center サーバーに接続するときに SSL 証明書が検証されます。

デフォルトでは選択されていません。

Proxy Server Address

省略可。

使用するプロキシ サーバーのアドレス。

Proxy Username

省略可。

認証に使用するプロキシのユーザー名。

Proxy Password

省略可。

認証に使用するプロキシ パスワード。

コネクタルール

Google Security Command Center - 検出結果コネクタはプロキシをサポートしています。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。