Security Command Center を Google SecOps と統合する
このドキュメントでは、Security Command Center を Google Security Operations(Google SecOps)と統合する方法について説明します。
統合バージョン: 13.0
始める前に
この統合を使用するには、カスタムの Identity and Access Management(IAM)ロールと Google Cloud サービス アカウントが必要です。既存のサービス アカウントを使用することも、新しいサービス アカウントを作成することもできます。
IAM ロールを作成して構成する
インテグレーション用のカスタム IAM ロールを作成して構成するには、次の操作を行います。
Google Cloud コンソールで、IAM [ロール] ページに移動します。
[ロールを作成] をクリックして、統合に必要な権限を持つカスタムロールを作成します。
新しいカスタムロールの場合は、[タイトル]、[説明]、一意の [ID] を入力します。
[ロールのリリース段階] を [一般提供] に設定します。
作成したロールに次の権限を付与します。
securitycenter.assets.list
securitycenter.findings.list
securitycenter.findings.setMute
securitycenter.findings.setState
API キーを作成して構成する
API キーを作成する手順は次のとおりです。
Google Cloud コンソールで、[API とサービス] > [認証情報] > [認証情報を作成] に移動します。
[API キー] を選択します。生成された API キーを含むダイアログが表示されます。API キーをコピーして安全に保管します。
API キーの API 制限を構成する手順は次のとおりです。
[キーを制限] > [API 制限] > [キーを制限] をクリックします。
API リストから [Security Command Center API] を選択し、該当する制限を構成して [保存] をクリックします。
API キーへのアクセス権を付与する
Security Command Center に API キーへのアクセス権を付与する手順は次のとおりです。
Google Cloud コンソールで、[IAM と管理>サービス アカウント] に移動します。
Security Command Center の統合で使用するサービス アカウントを選択します。
サービス アカウントのメールアドレスをクリックします。
[アクセス権を付与] を選択します。
[新しいメンバー] フィールドに、サービス アカウントのメールアドレスを入力します。
[セキュリティ センター] で
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。このパラメータを使用するには、サービス アカウントに
このパラメータの値を設定しない場合、統合は Google Cloud サービス アカウントからプロジェクト ID を取得します。 |
User's Service Account |
必須。 サービス アカウント キーの JSON ファイルの内容。 このパラメータまたは このパラメータを構成するには、サービス アカウントの作成時にダウンロードしたサービス アカウント キーの JSON ファイルの内容全体を指定します。 |
Workload Identity Email |
省略可。 サービス アカウントのクライアント メールアドレス。 このパラメータまたは このパラメータを設定する場合は、 Workload Identity 連携を使用してサービス アカウントの権限を借用するには、サービス アカウントに |
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"
}
}
}
出力メッセージ
[検出の詳細を取得] アクションは、次の出力メッセージを返すことができます。
出力メッセージ | メッセージの説明 |
---|---|
|
アクションが成功しました。 |
Error executing action "Get Finding Details". Reason: ERROR_REASON |
操作に失敗しました。 サーバーへの接続、入力パラメータ、または認証情報を確認してください。 |
スクリプトの結果
次の表に、検出の詳細を取得アクションを使用する場合のスクリプト結果出力の値を示します。
スクリプトの結果名 | 値 |
---|---|
is_success |
True または False |
アセットの脆弱性を一覧表示する
アセットの脆弱性を一覧表示アクションを使用して、Security Command Center のエンティティに関連する脆弱性を一覧表示します。
このアクションは Google SecOps エンティティに対して実行されません。
アクション入力
アセットの脆弱性を一覧表示するアクションには、次のパラメータが必要です。
パラメータ | 説明 |
---|---|
Asset Resource Names |
必須。 データを返すアセットのリソース名。このパラメータは、カンマ区切りのリストとして複数の値を受け入れます。 |
Timeframe |
省略可。 脆弱性または構成ミスを検索する期間。 値は次のいずれかになります。
デフォルト値は |
Record Types |
省略可。 返すレコードのタイプ。 値は次のいずれかになります。
デフォルト値は |
Output Type |
省略可。 各アセットの JSON 結果で返される出力のタイプ。 値は次のいずれかになります。
デフォルト値は |
Max Records To Return |
省略可。 レコード タイプごとに返されるレコードの最大数。 デフォルト値は |
アクションの出力
アセットの脆弱性を一覧表示するアクションは、次の出力を提供します。
アクションの出力タイプ | 対象 |
---|---|
ケースウォールのアタッチメント | 利用不可 |
ケースウォールのリンク | 利用不可 |
ケースウォール テーブル | 利用可能 |
拡充テーブル | 利用不可 |
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"
}
]
},
}
出力メッセージ
[アセットの脆弱性を一覧表示] アクションは、次の出力メッセージを返すことがあります。
出力メッセージ | メッセージの説明 |
---|---|
|
アクションが成功しました。 |
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 |
必須。 更新する名前を検索しています。このパラメータは、カンマ区切りのリストとして複数の値を受け入れます。 名前を検索する例は次のとおりです。 |
Mute Status |
省略可。 検出結果のミュート ステータス。 使用できる値は次のとおりです。
|
State Status |
省略可。 検出結果の状態。 使用できる値は次のとおりです。
|
アクションの出力
[検出結果を更新] アクションは、次の出力を提供します。
アクションの出力タイプ | 対象 |
---|---|
ケースウォールのアタッチメント | 利用不可 |
ケースウォールのリンク | 利用不可 |
ケースウォール テーブル | 利用不可 |
拡充テーブル | 利用不可 |
JSON の結果 | 利用不可 |
出力メッセージ | 利用可能 |
スクリプトの結果 | 利用可能 |
出力メッセージ
[検出結果を更新] アクションは、次の出力メッセージを返すことがあります。
出力メッセージ | メッセージの説明 |
---|---|
|
アクションが成功しました。 |
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 |
必須。 商品名が保存されるフィールドの名前。 商品名は主にマッピングに影響します。コネクタのマッピング プロセスを合理化して改善するため、デフォルト値はコードから参照されるフォールバック値に解決されます。このパラメータの無効な入力は、デフォルトでフォールバック値に解決されます。 デフォルト値は |
Event Field Name |
必須。 イベント名(サブタイプ)を特定するフィールドの名前。 デフォルト値は |
Environment Field Name |
省略可。 環境名が保存されるフィールドの名前。 環境フィールドがない場合、コネクタはデフォルト値を使用します。 |
Environment Regex Pattern |
省略可。
デフォルト値 正規表現パターンが null か空の場合、または環境値が null の場合、最終的な環境の結果はデフォルト環境になります。 |
Script Timeout (Seconds) |
必須。 現在のスクリプトを実行する Python プロセスのタイムアウト上限(秒単位)。 デフォルト値は |
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。このパラメータを使用するには、サービス アカウントに
このパラメータの値を設定しない場合、統合は Google Cloud サービス アカウントからプロジェクト ID を取得します。 |
User's Service Account |
必須。 サービス アカウント キーの JSON ファイルの内容。 このパラメータまたは このパラメータを構成するには、サービス アカウントの作成時にダウンロードしたサービス アカウント キーの JSON ファイルの内容全体を指定します。 |
Workload Identity Email |
省略可。 サービス アカウントのクライアント メールアドレス。 このパラメータまたは このパラメータを設定する場合は、 Workload Identity 連携を使用してサービス アカウントの権限を借用するには、サービス アカウントに |
Finding Class Filter
|
省略可。 取り込むコネクタの検出結果クラス。 値は次のいずれかになります。
値を設定しない場合、コネクタはすべてのクラスから検出結果を取り込みます。 デフォルト値は |
Lowest Severity To Fetch |
省略可。 取得するアラートの最も低い重大度。 このパラメータを構成しない場合、コネクタはすべての重大度レベルのアラートを取り込みます。 コネクタは、重大度が未定義のアラートを重大度が 値は次のいずれかになります。
デフォルト値は |
Max Hours Backwards |
省略可。 検出結果を取得する現在までの時間数。 このパラメータは、コネクタを初めて有効にした後の最初のコネクタ イテレーション、または期限切れのコネクタ タイムスタンプのフォールバック値に適用できます。 最大値は デフォルト値は |
Max Findings To Fetch
|
省略可。 コネクタのイテレーションごとに処理する検出結果の数。 最大値は デフォルト値は |
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 のプロフェッショナルから回答を得ることができます。