Acceso inicial: Acciones denegadas de permisos excesivos de identidad del agente de IA

En este documento, se describe un tipo de hallazgo de amenazas de Security Command Center. Los detectores de amenazas generan hallazgos de amenazas cuando identifican una posible amenaza en tus recursos de Cloud. Para obtener una lista completa de los hallazgos de amenazas disponibles, consulta el Índice de hallazgos de amenazas.

Descripción general

Un agente de IA activó repetidamente errores de permiso denegado en varios métodos y servicios.

Event Threat Detection es la fuente de este hallazgo.

Cómo se debe responder

Para responder a este hallazgo, sigue los pasos que se indican a continuación:

Paso 1: Revisa los detalles del hallazgo

  1. Abre el Initial Access: AI Agent Identity Excessive Permission Denied Actions hallazgo, como se indica en Revisa los hallazgos.
  2. En los detalles del hallazgo, en la pestaña Resumen, anota los valores de los siguientes campos.

    En Qué se detectó, se muestra lo siguiente:

    • Correo electrónico del principal: Es el principal que activó varios errores de permiso denegado.
    • Nombre del servicio: Es el nombre de la API del servicio de Google Cloud en el que ocurrió el último error de permiso denegado.
    • Nombre del método: Es el método al que se llamó cuando ocurrió el último error de permiso denegado.
  3. En los detalles del hallazgo, en la pestaña Propiedades de la fuente, anota los valores de los siguientes campos en el JSON:

    • properties.failedActions: Son los errores de permiso denegado que ocurrieron. Para cada entrada, los detalles incluyen el nombre del servicio, el nombre del método, la cantidad de intentos fallidos y la hora en que ocurrió el error por última vez. Se muestran un máximo de 10 entradas.

Paso 2: Revisa los registros

  1. En la Google Cloud consola, accede al Explorador de registros y haz clic en el vínculo del campo URI de Cloud Logging.
  2. En la Google Cloud barra de herramientas de la consola de, elige el proyecto.
  3. En la página que se carga, busca los registros relacionados con el siguiente filtro:

    • protoPayload.authenticationInfo.principalEmail="PRINCIPAL_EMAIL"
    • protoPayload.status.code=7

    Reemplaza PRINCIPAL_EMAIL por el valor que anotaste en el campo Correo electrónico del principal en los detalles del hallazgo.

Paso 3: Investiga los métodos de ataque y respuesta

  1. Revisa la entrada de framework de MITRE ATT&CK de este tipo de hallazgo: Cuentas válidas: Cuentas de Cloud.
  2. Para elaborar un plan de respuesta, combina los resultados de la investigación con la investigación de MITRE.

Paso 4: Implementa tu respuesta

El siguiente plan de respuesta podría ser adecuado para este hallazgo, pero también podría afectar las operaciones. Evalúa con cuidado la información que recopilas durante la investigación para determinar la mejor manera de resolver los hallazgos.

  • Comunícate con el propietario de la cuenta en el campo Correo electrónico del principal. Confirma si el propietario legítimo realizó la acción.
  • Borra los recursos del proyecto que creó esa cuenta, como instancias desconocidas de Compute Engine, instantáneas, cuentas de servicio y usuarios de IAM, etcétera.
  • Comunícate con el propietario del proyecto con la cuenta y, posiblemente, borra o inhabilita la cuenta.

Ejemplo de JSON del hallazgo

A continuación, se muestra un ejemplo del JSON del hallazgo, con los valores predeterminados omitidos.

{
  "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": "Initial Access: AI Agent Identity Excessive Permission Denied Actions",
    "securityMarks": {
      "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/locations/global/findings/FINDING_ID/securityMarks"
    },
    "eventTime": "TIMESTAMP",
    "createTime": "TIMESTAMP",
    "severity": "MEDIUM",
    "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/locations/global/findings/FINDING_ID",
    "findingClass": "THREAT",
    "contacts": {
      "security": {
        "contacts": [
          {
            "email": "USER_EMAIL"
          }
        ]
      },
      "technical": {
        "contacts": [
          {
            "email": "USER_EMAIL"
          }
        ]
      }
    },
    "access": {
      "callerIp": "IP_ADDRESS",
      "callerIpGeo": {
        "regionCode": "COUNTRY_CODE"
      },
      "userAgent": "USER_AGENT",
      "serviceName": "SERVICE_NAME",
      "methodName": "METHOD_NAME",
      "principalSubject": "principal://agents.global.org-ORGANIZATION_ID.system.id.goog/resources/aiplatform/projects/PROJECT_NUMBER/locations/LOCATION/reasoningEngines/REASONING_ENGINE_ID"
    },
    "mitreAttack": {
      "primaryTactic": "INITIAL_ACCESS",
      "primaryTechniques": [
        "VALID_ACCOUNTS",
        "CLOUD_ACCOUNTS"
      ]
    },
    "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": "agent_engine_excessive_failed_attempt"
    },
    "detectionPriority": "MEDIUM",
    "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"
        }
      }
    ],
    "properties": {
      "failedActions": [
        {
          "methodName": "METHOD_NAME",
          "serviceName": "SERVICE_NAME",
          "attemptTimes": "TIMES",
          "lastOccurredTime": "TIMESTAMP"
        },
        {
          "methodName": "METHOD_NAME",
          "serviceName": "SERVICE_NAME",
          "attemptTimes": "TIMES",
          "lastOccurredTime": "TIMESTAMP"
        }
      ]
    },
    "findingId": "FINDING_ID",
    "contextUris": {
      "mitreUri": {
        "displayName": "MITRE Link",
        "url": "https://attack.mitre.org/techniques/T1078/004/"
      },
      "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"
      }
    ]
  }
}

¿Qué sigue?