지속성: 외부 AI 에이전트에 부여된 민감한 역할

이 문서에서는 Security Command Center의 위협 발견 사항 유형에 대해 설명합니다. 위협 발견 사항은 위협 감지기가 클라우드 리소스에서 잠재적인 위협을 감지할 때 생성됩니다. 사용 가능한 위협 발견 사항의 전체 목록은 위협 발견 사항 색인을 확인하세요.

개요

외부 조직의 AI 에이전트에게 민감한 IAM 역할이 부여되었습니다. 발견 항목은 중간 민감도 역할의 경우 중간 심각도로, 높은 민감도 역할의 경우 높음 심각도로 분류됩니다. 자세한 내용은 AI를 위한 민감한 IAM 역할 및 권한을 참고하세요.

Event Threat Detection이 이 발견 사항의 소스입니다.

대응 방법

이 발견 사항에 대응하려면 다음을 수행하세요.

1단계: 발견 항목 세부정보 검토하기

  1. 발견 사항 검토의 지시에 따라 Persistence: Sensitive Role Granted to External AI Agent 발견 사항을 엽니다. 발견 항목의 세부정보 패널의 요약 탭이 열립니다.

  2. 요약 탭에서 다음 섹션의 정보를 검토합니다.

    • 특히 다음 필드를 포함하는 감지된 항목:
      • 기본 이메일: 역할을 할당한 사용자 또는 서비스 계정의 이메일 주소
      • 잘못된 액세스 권한 부여: 추가된 민감한 역할의 세부정보입니다.
    • 영향을 받는 리소스

    • 특히 다음 필드를 포함하는 관련 링크:

      • Cloud Logging URI: Logging 항목의 링크
      • MITRE ATT&CK 메서드: MITRE ATT&CK 문서의 링크

2단계: 로그 확인하기

  1. 발견 항목 세부정보 패널의 요약 탭에서 Cloud Logging URI 링크를 클릭하여 로그 탐색기를 엽니다.
  2. 로드되는 페이지에서 다음 필터를 사용하여 새 리소스 또는 업데이트된 IAM 리소스를 찾습니다.
    • protoPayload.methodName="SetIamPolicy"

3단계: 공격 및 대응 방법 조사하기

  1. 이 발견 항목 유형의 MITRE ATT&CK 프레임워크 항목을 검토합니다. 유효한 계정: Cloud 계정
  2. 대응 계획을 개발하려면 조사 결과를 MITRE 연구와 결합합니다.

4단계: 대응 구현하기

다음의 응답 계획이 이 발견 사항에 적합할 수 있지만 작업에도 영향을 줄 수 있습니다. 조사에서 수집한 정보를 신중하게 평가하여 발견 항목을 해결할 최선의 방법을 결정해야 합니다.

  • 침해된 계정이 있는 프로젝트의 소유자에게 문의하세요.
  • 침해된 서비스 계정을 삭제하고 침해된 프로젝트의 모든 서비스 계정 액세스 키를 순환 및 삭제합니다. 삭제 후에는 인증을 위해 서비스 계정을 사용하는 리소스에서 액세스 권한을 잃게 됩니다.
  • 익숙하지 않은 Compute Engine 인스턴스, 스냅샷, 서비스 계정, 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": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "state": "ACTIVE",
    "category": "Persistence: Sensitive Role Granted to External AI Agent",
    "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": {
      "principalEmail": "PRINCIPAL_EMAIL",
      "userAgent": "USER_AGENT",
      "serviceName": "cloudresourcemanager.googleapis.com",
      "methodName": "SetIamPolicy",
      "principalSubject": "user:PRINCIPAL_EMAIL"
    },
    "mitreAttack": {
      "primaryTactic": "PERSISTENCE",
      "primaryTechniques": [
        "ACCOUNT_MANIPULATION"
      ],
      "additionalTactics": [
        "PRIVILEGE_ESCALATION"
      ],
      "additionalTechniques": [
        "ADDITIONAL_CLOUD_ROLES"
      ]
    },
    "iamBindings": [
      {
        "action": "ADD",
        "role": "roles/editor",
        "member": "principalSet://agents-nonprod.global.org-PROJECT_NUMBER.system.id.goog/*"
      },
      {
        "action": "ADD",
        "role": "roles/editor",
        "member": "principalSet://agents.global.org-PROJECT_NUMBER.system.id.goog/*"
      }
    ],
    "parentDisplayName": "Event Threat Detection",
    "domains": [
      {
        "category": "AI"
      },
      {
        "category": "IDENTITY_AND_ACCESS"
      }
    ],
    "logEntries": [
      {
        "cloudLoggingEntry": {
          "insertId": "INSERT_ID",
          "logId": "cloudaudit.googleapis.com/activity",
          "resourceContainer": "projects/PROJECT_ID",
          "timestamp": "TIMESTAMP"
        }
      }
    ]
  },
  "resource": {
    "name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "displayName": "PROJECT_ID",
    "type": "google.cloud.resourcemanager.Project",
    "cloudProvider": "GOOGLE_CLOUD_PLATFORM",
    "service": "cloudresourcemanager.googleapis.com",
    "gcpMetadata": {
      "project": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
      "projectDisplayName": "PROJECT_ID",
      "parent": "//cloudresourcemanager.googleapis.com/folders/FOLDER_ID",
      "parentDisplayName": "FOLDER_NAME",
      "folders": [
        {
          "resourceFolder": "//cloudresourcemanager.googleapis.com/folders/FOLDER_ID",
          "resourceFolderDisplayName": "FOLDER_NAME"
        }
      ],
      "organization": "organizations/ORGANIZATION_ID"
    },
    "resourcePath": {
      "nodes": [
        {
          "nodeType": "GCP_PROJECT",
          "id": "projects/PROJECT_NUMBER",
          "displayName": "PROJECT_ID"
        },
        {
          "nodeType": "GCP_FOLDER",
          "id": "folders/FOLDER_ID",
          "displayName": "FOLDER_NAME"
        },
        {
          "nodeType": "GCP_ORGANIZATION",
          "id": "organizations/ORGANIZATION_ID"
        }
      ]
    },
    "resourcePathString": "organizations/ORGANIZATION_ID/folders/FOLDER_ID/projects/PROJECT_NUMBER"
  },
  "sourceProperties": {
    "sourceId": {
      "projectNumber": "PROJECT_NUMBER",
      "customerOrganizationNumber": "ORGANIZATION_ID"
    },
    "detectionCategory": {
      "ruleName": "external_ai_agent_granted_sensitive_role"
    },
    "detectionPriority": "HIGH",
    "affectedResources": [
      {
        "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER"
      }
    ],
    "evidence": [
      {
        "sourceLogId": {
          "projectId": "PROJECT_ID",
          "resourceContainer": "projects/PROJECT_ID",
          "timestamp": {
            "seconds": "TIMESTAMP_SECONDS",
            "nanos": TIMESTAMP_NANOS
          },
          "insertId": "INSERT_ID",
          "logId": "cloudaudit.googleapis.com/activity"
        }
      }
    ],
    "findingId": "FINDING_ID",
    "contextUris": {
      "mitreUri": {
        "displayName": "MITRE Link",
        "url": "https://attack.mitre.org/techniques/T1078/003"
      },
      "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"
      }
    ]
  }
}

다음 단계