Security Command Center を Google SecOps と統合する

統合バージョン: 14.0

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

始める前に

Security Command Center を統合するには、次の手順を完了する必要があります。

  1. 必要な権限を持つカスタム Identity and Access Management(IAM)ロールを作成します。

  2. 次のいずれかのオプションを使用して認証を構成します。

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

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

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

    [ロール] に移動

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

  3. [タイトル]、[説明]、一意の [ID] を入力します。

  4. [ロールのリリース段階] を General Availability に設定します。

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

    • securitycenter.assets.list

    • securitycenter.findings.list

    • securitycenter.findings.setMute

    • securitycenter.findings.setState

  6. [作成] をクリックします。

認証を構成する

統合を認証するには、JSON キーまたは Workload Identity を使用するサービス アカウントを使用します。

JSON キーを使用した認証

この方法では、静的 JSON キーファイルを使用してサービス アカウントを認証します。

サービス アカウントを作成する

JSON キーを使用して認証するには、まずサービス アカウントを作成する必要があります。

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

  2. サービス アカウントを作成するプロジェクトを選択します。

  3. [サービス アカウントを作成] をクリックします。

    既存のサービス アカウントを使用する場合は、使用するサービス アカウントを選択して JSON キーを生成します。

  4. 名前と説明を入力し、[作成して続行] をクリックします。

  5. [このサービス アカウントにプロジェクトへのアクセスを許可する] 手順で、作成したカスタムロールを追加します。

  6. [完了] をクリックして、アカウントの作成を完了します。

JSON キーを生成する

必要な JSON キーファイルを生成するには、次の手順を行います。

  1. サービス アカウントのリストで、作成(または選択)したサービス アカウントのメールアドレスを選択して、詳細を開きます。

  2. [キー] タブをクリックします。

  3. [鍵を追加] > [新しい鍵を作成] の順にクリックします。

  4. 鍵のタイプとして [JSON] を選択し、[作成] をクリックします。

  5. JSON キーファイルがパソコンにダウンロードされます。このファイルは安全に保管し、統合パラメータを構成するときに、このファイルの内容全体を User's Service Account に貼り付けます。

Workload Identity による認証(推奨)

この方法では、統合で有効期間の長いシークレットを処理する必要なく、サービス アカウントの権限を借用できます。

Workload Identity を構成するには、次の操作を行います。

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

  2. 既存のサービス アカウントを選択するか、新しいサービス アカウントを作成します。

  3. 作成したカスタムロールをサービス アカウントに付与します。

  4. サービス アカウントに Service Usage ユーザーロールを付与します。この権限は、API の使用状況を Quota Project ID で定義されたプロジェクトに関連付けるために必要です。

  5. サービス アカウントにサービス アカウント トークン作成者のロールを付与します。

    この権限により、統合は認証に必要な有効期間の短い認証情報を生成できます。

  6. サービス アカウントのクライアント メールをメモし、統合パラメータを構成するときに Workload Identity Email でこの値を使用します。

統合のパラメータ

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

パラメータ 説明
API Root

必須。

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

Organization ID

省略可。

Security Command Center 統合クエリのスコープ設定に使用する Google Cloud 組織の ID。

Project ID

省略可。

Security Command Center インスタンスのクエリのスコープ設定に使用される Google Cloud プロジェクト ID。

Quota Project ID

省略可。

API の使用量と請求額に使用される Google Cloud プロジェクト ID。

User's Service Account

省略可。

サービス アカウント キーの JSON ファイルの完全なコンテンツ。

このパラメータは、JSON キーを使用して認証する場合にのみ使用します。

Workload Identity Email

省略可。

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

このパラメータは、Workload Identity を使用して認証する場合にのみ使用します。

このパラメータを構成する場合は、Quota Project 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"
      }
    }
}
出力メッセージ

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

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

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 の結果

次の例は、アセットの脆弱性を一覧表示アクションを使用したときに受信した 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 エンティティに対して実行されません。

アクション入力

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

パラメータ 説明
Finding Name

必須。

詳細を返す検出結果の完全なリソース名(organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID 形式)。

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

Mute Status

省略可。

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

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

  • Mute
  • Unmute
State Status

省略可。

検出の状態。

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

  • Active
  • Inactive

アクションの出力

[Update Finding] アクションは次の出力を提供します。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用不可
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 でコネクタを構成する方法については、データを取り込む(コネクタ)をご覧ください。

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

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

このコネクタは、動的リストを使用してカテゴリ別に検出結果をフィルタリングすることをサポートしています。

コネクタの入力

Security Command Center - Findings Connector には、次のパラメータが必要です。

パラメータ 説明
Product Field Name

必須。

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

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

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

Event Field Name

必須。

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

Environment Field Name

省略可。

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

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

デフォルト値は "" です。

Environment Regex Pattern

省略可。

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

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

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

PythonProcessTime

必須。

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

デフォルト値は 180 です。

API Root

必須。

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

Organization ID

省略可。

使用する Google Cloud 組織の ID

Project ID

省略可。

使用する Google Cloud プロジェクト ID。

Quota Project ID

省略可。

使用する Google Cloud プロジェクト ID。

User's Service Account

必須。

サービス アカウント キーの JSON ファイルの完全なコンテンツ。

このパラメータは、JSON キーを使用して認証する場合にのみ使用します。

Workload Identity Email

省略可。

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

このパラメータは、Workload Identity を使用して認証する場合にのみ使用します。

このパラメータを構成する場合は、Quota Project ID も構成する必要があります。

Finding Class Filter

省略可。

ソースからデータを取り込むときに含めるセキュリティ検出結果の種類のカンマ区切りリスト。

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

  • Threat
  • Vulnerability
  • Misconfiguration
  • SCC_Error
  • Observation
  • Toxic Combination
  • Chokepoint

値が指定されていない場合、すべてのクラスの検出結果が取り込まれます。

Lowest Severity To Fetch

省略可。

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

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

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

  • Low
  • Medium
  • High
  • Critical

重大度が未定義の検出結果に Fallback Severity レベルが割り当てられている場合、その検出結果はこのパラメータによるフィルタリングから除外されます。

値を指定しない場合は、すべての重大度タイプが取り込まれます。

Fallback Severity

省略可。

ソースから定義された重大度評価または認識可能な重大度評価のない取り込まれたセキュリティ検出結果に割り当てる重大度レベル。

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

  • Low
  • Medium
  • High
  • Critical

デフォルト値は Medium です。

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 SecOps のプロフェッショナルから回答を得ることができます。