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 매개변수를 구성합니다.

워크로드 아이덴티티 제휴를 사용하여 서비스 계정을 가장하려면 서비스 계정에 Service Account Token Creator 역할을 부여합니다. 워크로드 아이덴티티 및 워크로드 아이덴티티 사용 방법에 관한 자세한 내용은 워크로드용 아이덴티티를 참고하세요.

Verify SSL

필수 항목입니다.

선택하면 Security Command Center 서버에 연결할 때 통합에서 SSL 인증서를 검증합니다.

기본적으로 선택되어 있습니다.

Google SecOps에서 통합을 구성하는 방법에 대한 안내는 통합 구성을 참고하세요.

필요한 경우 이후 단계에서 변경할 수 있습니다. 통합 인스턴스를 구성한 후 플레이북에서 사용할 수 있습니다. 여러 인스턴스를 구성하고 지원하는 방법에 관한 자세한 내용은 여러 인스턴스 지원을 참고하세요.

작업

작업에 대한 자세한 내용은 내 Workdesk에서 대기 중인 작업에 응답수동 작업 실행을 참고하세요.

발견 항목 세부정보 가져오기

발견 항목 세부정보 가져오기 작업을 사용하여 Security Command Center의 발견 항목에 관한 세부정보를 가져옵니다.

이 작업은 Google SecOps 항목에서 실행되지 않습니다.

작업 입력

발견 항목 세부정보 가져오기 작업에는 다음 매개변수가 필요합니다.

매개변수 설명
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 결과

다음 예시에서는 애셋 취약점 목록 작업을 사용할 때 수신되는 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

작업이 실패했습니다.

서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다.

스크립트 결과

다음 표에는 List Asset Vulnerabilities 작업을 사용할 때 스크립트 결과 출력 값이 나와 있습니다.

스크립트 결과 이름
is_success True 또는 False

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 - 발견 항목 커넥터를 사용하여 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 매개변수를 구성합니다.

워크로드 아이덴티티 제휴를 사용하여 서비스 계정을 가장하려면 서비스 계정에 Service Account Token Creator 역할을 부여합니다. 워크로드 아이덴티티 및 워크로드 아이덴티티 사용 방법에 관한 자세한 내용은 워크로드용 아이덴티티를 참고하세요.

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 전문가로부터 답변을 받으세요.