이 문서에서는 Security Command Center의 위협 발견 사항 유형에 대해 설명합니다. 위협 발견 사항은 위협 감지기가 클라우드 리소스에서 잠재적인 위협을 감지할 때 생성됩니다. 사용 가능한 위협 발견 사항의 전체 목록은 위협 발견 사항 색인을 확인하세요.
개요
AI 에이전트가 시작한 Cloud SQL의 데이터 유출은 조직에서 소유하고 공개적으로 액세스할 수 있는 Cloud Storage 버킷으로 내보낸 실시간 인스턴스 데이터의 감사 로그를 검사하여 감지됩니다.
모든 Cloud SQL 인스턴스 유형이 지원됩니다.
Security Command Center 프리미엄 등급의 프로젝트 수준 활성화의 경우 스탠더드-레거시 등급이 상위 조직에서 사용 설정된 경우에만 이 발견 항목을 사용할 수 있습니다.
Event Threat Detection이 이 발견 사항의 소스입니다.
대응 방법
이 발견 사항에 대응하려면 다음을 수행하세요.
1단계: 발견 항목 세부정보 검토하기
- 발견 항목 검토의 지시에 따라
Exfiltration: AI Agent Initiated CloudSQL Exfiltration to Public Bucket발견 항목을 엽니다. 발견 항목의 세부정보 패널의 요약 탭이 열립니다. 요약 탭에서 다음 섹션의 정보를 검토합니다.
- 특히 다음 필드를 포함하는 감지된 항목:
- 주 구성원 이메일: 데이터를 유출하는 데 사용된 계정
- 유출 소스: 데이터가 유출된 Cloud SQL 인스턴스에 대한 세부정보
- 유출 대상: 데이터를 내보낸 Cloud Storage 버킷에 대한 세부정보
- 특히 다음 필드를 포함하는 영향을 받는 리소스:
- 리소스 전체 이름: 데이터가 유출된 Cloud SQL의 리소스 이름
- 프로젝트 전체 이름: 소스 Cloud SQL 데이터가 포함된 Google Cloud 프로젝트입니다.
- 관련 링크, 다음을 포함:
- Cloud Logging URI: Logging 항목의 링크
- MITRE ATT&CK 메서드: MITRE ATT&CK 문서의 링크
- 관련 발견 사항: 모든 관련 발견 사항의 링크
- 특히 다음 필드를 포함하는 감지된 항목:
JSON 탭을 클릭합니다.
발견 항목의 JSON에서 다음 필드를 확인합니다.
sourceProperties:evidence:sourceLogId:projectId: 소스 Cloud SQL 인스턴스가 포함된 프로젝트입니다. Google Cloud
propertiesexportScope: 내보낸 데이터 양(예: 전체 인스턴스, 데이터베이스 한 개 이상, 테이블 한 개 이상, 쿼리에서 지정한 하위 집합)
2단계: 권한 및 설정 검토하기
Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
필요한 경우 발견 항목 JSON의
projectId필드에 나열된 인스턴스의 프로젝트를 선택합니다(1단계).표시되는 페이지의 필터 상자에서 발견 항목 세부정보의 요약 탭에서 주 구성원 이메일 행에 나열된 이메일 주소를 입력합니다(1단계). 계정에 할당된 권한을 확인합니다.
3단계: 로그 확인하기
- Google Cloud 콘솔에서 Cloud Logging URI 링크(1단계)를 클릭하여 로그 탐색기로 이동합니다. 로그 탐색기 페이지에는 관련 Cloud SQL 인스턴스와 관련된 모든 로그가 포함되어 있습니다.
4단계: 공격 및 대응 방법 조사하기
- 이 발견 사항 유형의 MITRE ATT&CK 프레임워크 항목을 검토합니다. Cloud Storage로 유출.
- 1단계에서 설명된 **관련 발견 사항** 행의 링크를 클릭하여 관련 발견 사항을 검토합니다. 관련 발견 항목에는 동일한 Cloud SQL 인스턴스에서 같은 발견 항목 유형이 있습니다.
- 대응 계획을 개발하려면 조사 결과를 MITRE 연구와 결합합니다.
5단계: 대응 구현하기
다음의 응답 계획이 이 발견 사항에 적합할 수 있지만 작업에도 영향을 줄 수 있습니다. 조사에서 수집한 정보를 신중하게 평가하여 발견 사항을 해결할 최선의 방법을 결정해야 합니다.
- 유출된 데이터가 있는 프로젝트의 소유자에게 문의하세요.
- 조사가 완료될 때까지
access.principalEmail에 대한 권한을 취소하는 것이 좋습니다. - 추가 유출을 방지하려면 영향을 받는 Cloud SQL 인스턴스에 제한된 IAM 정책을 추가하세요.
- Cloud SQL Admin API에 액세스와 내보내기를 제한하려면 VPC 서비스 제어를 사용합니다.
- 과도한 권한이 부여된 역할을 식별하고 수정하려면 IAM 추천자를 사용합니다.
발견 항목 JSON 예
다음은 기본값이 생략된 발견 항목 JSON의 예입니다.
{ "finding": { "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/locations/global/findings/FINDING_ID", "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/locations/global", "resourceName": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME", "state": "ACTIVE", "category": "Exfiltration: AI Agent Initiated CloudSQL Exfiltration to Public Bucket", "securityMarks": { "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/locations/global/findings/FINDING_ID/securityMarks" }, "eventTime": "TIMESTAMP", "createTime": "TIMESTAMP", "severity": "HIGH", "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/locations/global/findings/FINDING_ID", "findingClass": "THREAT", "access": { "callerIp": "IP_ADDRESS", "callerIpGeo": { "regionCode": "COUNTRY_CODE" }, "serviceName": "cloudsql.googleapis.com", "methodName": "cloudsql.instances.export", "principalSubject": "principal://agents.global.org-ORGANIZATION_ID.system.id.goog/resources/aiplatform/projects/PROJECT_NUMBER/locations/LOCATION/reasoningEngines/REASONING_ENGINE_ID" }, "mitreAttack": { "primaryTactic": "EXFILTRATION", "primaryTechniques": [ "EXFILTRATION_OVER_WEB_SERVICE", "EXFILTRATION_TO_CLOUD_STORAGE" ] }, "exfiltration": { "sources": [ { "name": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME", "components": [ "Databases: DATABASE_NAME" ] } ], "targets": [ { "name": "//storage.googleapis.com/TARGET_STORAGE_BUCKET_NAME", "components": [ "TARGET_FILE_NAME" ] } ] }, "parentDisplayName": "Event Threat Detection", "domains": [ { "category": "AI" }, { "category": "IDENTITY_AND_ACCESS" } ], "logEntries": [ { "cloudLoggingEntry": { "insertId": "INSERT_ID", "logId": "cloudaudit.googleapis.com/data_access", "resourceContainer": "projects/PROJECT_ID", "timestamp": "TIMESTAMP" } } ] }, "resource": { "name": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME", "displayName": "INSTANCE_NAME", "type": "google.cloud.sql.Instance", "cloudProvider": "GOOGLE_CLOUD_PLATFORM", "service": "sqladmin.googleapis.com", "location": "LOCATION", "gcpMetadata": { "project": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER", "projectDisplayName": "PROJECT_ID", "parent": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER", "parentDisplayName": "PROJECT_ID", "organization": "organizations/ORGANIZATION_ID" }, "resourcePath": { "nodes": [ { "nodeType": "GCP_PROJECT", "id": "projects/PROJECT_NUMBER", "displayName": "PROJECT_ID" }, { "nodeType": "GCP_ORGANIZATION", "id": "organizations/ORGANIZATION_ID" } ] }, "resourcePathString": "organizations/ORGANIZATION_ID/projects/PROJECT_NUMBER" }, "sourceProperties": { "sourceId": { "projectNumber": "PROJECT_NUMBER", "customerOrganizationNumber": "ORGANIZATION_ID" }, "detectionCategory": { "ruleName": "agent_engine_cloudsql_exfil", "subRuleName": "agent_engine_export_to_public_gcs" }, "detectionPriority": "HIGH", "affectedResources": [ { "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER" }, { "gcpResourceName": "//storage.googleapis.com/TARGET_STORAGE_BUCKET_NAME" }, { "gcpResourceName": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME" } ], "evidence": [ { "sourceLogId": { "projectId": "PROJECT_ID", "resourceContainer": "projects/PROJECT_ID", "timestamp": { "seconds": "TIMESTAMP_SECONDS", "nanos": TIMESTAMP_NANOS }, "insertId": "INSERT_ID", "logId": "cloudaudit.googleapis.com/data_access" } } ], "properties": { "exportToGcs": { "cloudsqlInstanceResource": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME", "gcsUri": "gs://TARGET_STORAGE_BUCKET_NAME/TARGET_FILE_NAME", "bucketAccess": "PUBLICLY_ACCESSIBLE", "bucketResource": "//storage.googleapis.com/TARGET_STORAGE_BUCKET_NAME", "exportScope": "ONE_OR_MORE_DATABASES" } }, "findingId": "FINDING_ID", "contextUris": { "mitreUri": { "displayName": "MITRE Link", "url": "https://attack.mitre.org/techniques/T1567/002/" }, "cloudLoggingQueryUri": [ { "displayName": "Cloud Logging Query Link", "url": "https://console.cloud.google.com/logs/query;query=timestamp%3D%22TIMESTAMP%22%0AinsertId%3D%22INSERT_ID%22?project=PROJECT_ID" } ] }, "domains": [ { "category": "AI" }, { "category": "IDENTITY_AND_ACCESS" } ] } }
다음 단계
- Security Command Center에서 위협 발견 사항 작업 방법 알아보기
- 위협 발견 사항 색인 참고
- Google Cloud 콘솔을 통해 발견 사항을 검토하는 방법 알아보기
- 위협 발견 사항을 생성하는 서비스 알아보기