Security Command Center を Google SecOps と統合する
統合バージョン: 14.0
このドキュメントでは、Security Command Center を Google Security Operations と統合する方法について説明します。
始める前に
Security Command Center を統合するには、次の手順を完了する必要があります。
必要な権限を持つカスタム Identity and Access Management(IAM)ロールを作成します。
次のいずれかのオプションを使用して認証を構成します。
IAM ロールを作成して構成する
インテグレーション用のカスタム IAM ロールを作成して構成するには、次の操作を行います。
Google Cloud コンソールで、IAM [ロール] ページに移動します。
[ロールを作成] をクリックして、統合に必要な権限を持つカスタムロールを作成します。
[タイトル]、[説明]、一意の [ID] を入力します。
[ロールのリリース段階] を
General Availabilityに設定します。作成したロールに次の権限を付与します。
securitycenter.assets.listsecuritycenter.findings.listsecuritycenter.findings.setMutesecuritycenter.findings.setState
[作成] をクリックします。
認証を構成する
統合を認証するには、JSON キーまたは Workload Identity を使用するサービス アカウントを使用します。
JSON キーを使用した認証
この方法では、静的 JSON キーファイルを使用してサービス アカウントを認証します。
サービス アカウントを作成する
JSON キーを使用して認証するには、まずサービス アカウントを作成する必要があります。
Google Cloud コンソールで、[IAM と管理] > [サービス アカウント] に移動します。
サービス アカウントを作成するプロジェクトを選択します。
[サービス アカウントを作成] をクリックします。
既存のサービス アカウントを使用する場合は、使用するサービス アカウントを選択して JSON キーを生成します。
名前と説明を入力し、[作成して続行] をクリックします。
[このサービス アカウントにプロジェクトへのアクセスを許可する] 手順で、作成したカスタムロールを追加します。
[完了] をクリックして、アカウントの作成を完了します。
JSON キーを生成する
必要な JSON キーファイルを生成するには、次の手順を行います。
サービス アカウントのリストで、作成(または選択)したサービス アカウントのメールアドレスを選択して、詳細を開きます。
[キー] タブをクリックします。
[鍵を追加] > [新しい鍵を作成] の順にクリックします。
鍵のタイプとして [JSON] を選択し、[作成] をクリックします。
JSON キーファイルがパソコンにダウンロードされます。このファイルは安全に保管し、統合パラメータを構成するときに、このファイルの内容全体を
User's Service Accountに貼り付けます。
Workload Identity による認証(推奨)
この方法では、統合で有効期間の長いシークレットを処理する必要なく、サービス アカウントの権限を借用できます。
Workload Identity を構成するには、次の操作を行います。
Google Cloud コンソールで、[IAM と管理] > [サービス アカウント] に移動します。
既存のサービス アカウントを選択するか、新しいサービス アカウントを作成します。
作成したカスタムロールをサービス アカウントに付与します。
サービス アカウントに Service Usage ユーザーロールを付与します。この権限は、API の使用状況を
Quota Project IDで定義されたプロジェクトに関連付けるために必要です。サービス アカウントにサービス アカウント トークン作成者のロールを付与します。
この権限により、統合は認証に必要な有効期間の短い認証情報を生成できます。
サービス アカウントのクライアント メールをメモし、統合パラメータを構成するときに 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 を使用して認証する場合にのみ使用します。 このパラメータを構成する場合は、 |
Verify SSL |
必須。 選択すると、Security Command Center サーバーに接続するときに SSL 証明書が検証されます。 デフォルトで有効になっています。 |
Google SecOps で統合を構成する手順については、統合を構成するをご覧ください。
必要に応じて、後の段階で変更できます。統合インスタンスを構成すると、ハンドブックで使用できるようになります。複数のインスタンスの構成とサポートの方法については、複数のインスタンスのサポートをご覧ください。
操作
アクションの詳細については、 デスクから保留中のアクションに対応すると手動アクションを実行するをご覧ください。
検出結果の詳細を取得する
検出結果の詳細を取得アクションを使用して、Security Command Center の検出結果の詳細を取得します。
このアクションは Google SecOps エンティティに対して実行されません。
アクション入力
Get Finding Details アクションには、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Finding Name |
必須。 詳細を返す検出結果の完全なリソース名( このパラメータは、カンマ区切りのリストとして複数の値を受け入れます。 |
アクションの出力
[検出の詳細を取得] アクションは、次の出力を提供します。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用可能 |
| 拡充テーブル | 利用不可 |
| 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] アクションは、次の出力メッセージを返すことができます。
| 出力メッセージ | メッセージの説明 |
|---|---|
|
アクションが成功しました。 |
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 の結果
次の例は、アセットの脆弱性を一覧表示アクションを使用したときに受信した 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 エンティティに対して実行されません。
アクション入力
Update Finding アクションには、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Finding Name |
必須。 詳細を返す検出結果の完全なリソース名( このパラメータは、カンマ区切りのリストとして複数の値を受け入れます。 |
Mute Status |
省略可。 検出結果のミュート ステータス。 値は次のいずれかになります。
|
State Status |
省略可。 検出の状態。 値は次のいずれかになります。
|
アクションの出力
[Update Finding] アクションは次の出力を提供します。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用不可 |
| 拡充テーブル | 利用不可 |
| JSON の結果 | 利用不可 |
| 出力メッセージ | 利用可能 |
| スクリプトの結果 | 利用可能 |
出力メッセージ
[検出結果を更新] アクションは、次の出力メッセージを返すことができます。
| 出力メッセージ | メッセージの説明 |
|---|---|
|
アクションが成功しました。 |
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 |
必須。 商品名が保存されるフィールドの名前。 商品名は主にマッピングに影響します。コネクタのマッピング プロセスを合理化して改善するため、デフォルト値はコードから参照されるフォールバック値に解決されます。このパラメータの無効な入力は、デフォルトでフォールバック値に解決されます。 デフォルト値は |
Event Field Name |
必須。 イベント名(サブタイプ)を特定するフィールドの名前。 |
Environment Field Name |
省略可。 環境名が保存されるフィールドの名前。 環境フィールドがない場合、コネクタはデフォルト値を使用します。 デフォルト値は |
Environment Regex Pattern |
省略可。
デフォルト値 正規表現パターンが null か空の場合、または環境値が null の場合、最終的な環境の結果はデフォルト環境になります。 |
PythonProcessTime |
必須。 現在のスクリプトを実行する Python プロセスのタイムアウト上限(秒単位)。 デフォルト値は |
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 を使用して認証する場合にのみ使用します。 このパラメータを構成する場合は、 |
Finding Class Filter |
省略可。 ソースからデータを取り込むときに含めるセキュリティ検出結果の種類のカンマ区切りリスト。 値は次のいずれかになります。
値が指定されていない場合、すべてのクラスの検出結果が取り込まれます。 |
Lowest Severity To Fetch |
省略可。 取得するアラートの最も低い重大度。 このパラメータを構成しない場合、コネクタはすべての重大度レベルのアラートを取り込みます。 値は次のいずれかになります。
重大度が未定義の検出結果に 値を指定しない場合は、すべての重大度タイプが取り込まれます。 |
Fallback Severity |
省略可。 ソースから定義された重大度評価または認識可能な重大度評価のない取り込まれたセキュリティ検出結果に割り当てる重大度レベル。 値は次のいずれかになります。
デフォルト値は |
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 SecOps のプロフェッショナルから回答を得ることができます。