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 |
(선택사항) 서비스 계정의 클라이언트 이메일 주소입니다. 이 매개변수 또는 이 매개변수를 설정하는 경우 워크로드 아이덴티티 제휴를 사용하여 서비스 계정을 가장하려면 서비스 계정에 |
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"
}
}
}
출력 메시지
발견 항목 세부정보 가져오기 작업은 다음 출력 메시지를 반환할 수 있습니다.
출력 메시지 | 메시지 설명 |
---|---|
|
작업이 완료되었습니다. |
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 |
작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다. |
스크립트 결과
다음 표에는 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 |
필수 항목입니다. 업데이트할 이름을 찾는 중입니다. 이 매개변수는 여러 값을 쉼표로 구분된 목록으로 허용합니다. 이름을 찾는 예는 다음과 같습니다. |
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 - 발견 항목 커넥터를 사용하여 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 |
(선택사항) 서비스 계정의 클라이언트 이메일 주소입니다. 이 매개변수 또는 이 매개변수를 설정하는 경우 워크로드 아이덴티티 제휴를 사용하여 서비스 계정을 가장하려면 서비스 계정에 |
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 전문가로부터 답변을 받으세요.