Persistencia: Nueva ubicación geográfica para el servicio 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

Este hallazgo no está disponible para las activaciones a nivel del proyecto.

Un usuario o una cuenta de servicio de IAM accede a Google Cloudservicios de IA desde una ubicación anómala, según la ubicación geográfica de la dirección IP solicitante.

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 un hallazgo de Persistence: New Geography for AI Service, como se indica en Revisa los detalles de hallazgos antes en esta página. Se abre el panel de detalles del hallazgo en la pestaña Resumen.

  2. En la pestaña Resumen, revisa la información de las secciones siguientes:

  • Qué se detectó, en especial, los campos siguientes:
    • Correo electrónico principal: Es la cuenta de usuario potencialmente comprometida.
    • Recursos de IA: Son los recursos de IA que podrían verse afectados, como los recursos de Agent Platform y el modelo de IA.
  • Recurso afectado, en especial, los campos siguientes:
    • Nombre completo del proyecto: Es el proyecto que contiene la cuenta de usuario que puede estar comprometida.
  • Vínculos relacionados, en especial los siguientes campos:
    • URI de Cloud Logging: Es el vínculo a las entradas de Logging.
    • Método MITRE ATT&CK: Es el vínculo a la documentación de MITRE ATT&CK.
    • Hallazgos relacionados: Son los vínculos a los hallazgos relacionados.
  1. En la vista de detalles del hallazgo, haz clic en la pestaña JSON.
  2. En el archivo JSON, observa los siguientes campos sourceProperties:

    • affectedResources:
      • gcpResourceName: el recurso afectado
    • evidence:
      • sourceLogId:
      • projectId: Es el ID del proyecto que contiene el hallazgo.
    • properties:
      • anomalousLocation:
      • anomalousLocation: Es la ubicación actual estimada del usuario.
      • callerIp: Es la dirección IP externa.
      • notSeenInLast: Es el período que se usa para establecer un modelo de referencia para el comportamiento normal.
      • typicalGeolocations: Son las ubicaciones en las que el usuario suele acceder a los recursos deGoogle Cloud .
    • aiModel:
      • name: La IA afectada Model
    • vertexAi:
      • datasets: Son los conjuntos de datos de Agent Platform afectados.
      • pipelines: Las canalizaciones de entrenamiento de Agent Platform afectadas

Paso 2: revise los permisos del proyecto y de la cuenta

  1. En la consola de Google Cloud , dirígete a la página IAM.

    Ir a IAM

  2. Si es necesario, elige el proyecto que aparece en el campo projectID del JSON del hallazgo.

  3. En la página que aparece, en el cuadro Filtro, ingresa el nombre de la cuenta que aparece en Correo electrónico principal y verifica los roles otorgados.

Paso 3: Comprueba los registros

  1. En la pestaña Resumen del panel de detalles del hallazgo, haz clic en el vínculo URI de Cloud Logging para abrir el Explorador de registros.
  2. Si es necesario, elige tu proyecto.
  3. En la página que se carga, usa los siguientes filtros para verificar los registros en busca de actividad de los recursos de IAM nuevos o actualizados:
    • protoPayload.methodName="SetIamPolicy"
    • protoPayload.methodName="google.iam.admin.v1.UpdateRole"
    • protoPayload.methodName="google.iam.admin.v1.CreateRole"
    • protoPayload.authenticationInfo.principalEmail="principalEmail"

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

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

Paso 5: Implementa la 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 del proyecto en el que se encuentra la cuenta vulnerada.
  • Revisa los campos anomalousLocation, typicalGeolocations y notSeenInLast para verificar si el acceso es anormal y si la cuenta se vio comprometida.
  • Borra los recursos del proyecto creados por cuentas no autorizadas, como instancias desconocidas de Compute Engine, instantáneas, cuentas de servicio y usuarios de IAM.
  • Para restringir la creación de recursos nuevos a regiones específicas, consulta Restringe las ubicaciones de recursos.
  • Para identificar y corregir los roles demasiado permisivos, usa el recomendador de IAM.

Ejemplo de JSON de hallazgo

A continuación, se muestra un ejemplo del JSON del hallazgo.

{
  "finding": {
    "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
    "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
    "resourceName": "//aiplatform.googleapis.com/projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_NAME",
    "state": "ACTIVE",
    "category": "Persistence: New Geography for AI Service",
    "serviceName": "aiplatform.googleapis.com",
    "methodName": "METHOD_NAME",
    "mitreAttack": {
      "primaryTactic": "PERSISTENCE",
      "primaryTechniques": [
        "CLOUD_ACCOUNTS"
      ]
    },
    "domains": [
      {
        "category": "AI"
      },
      {
        "category": "IDENTITY_AND_ACCESS"
      }
    ],
    "aiModel": {
      "name": "//aiplatform.googleapis.com/projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_NAME",
      "deploymentPlatform": "VERTEX_AI"
    },
    "securityMarks": {
      "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks"
    },
    "eventTime": "2021-04-09T18:59:43.860Z",
    "createTime": "2021-04-09T18:59:44.440Z",
    "severity": "LOW",
    "workflowState": "NEW",
    "canonicalName": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID"
  },
  "resource": {
    "name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "displayName": "projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_NAME",
    "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"
    },
    "type": "google.aiplatform.Model",
    "folders": []
  },
  "sourceProperties": {
    "sourceId": {
      "projectNumber": "PROJECT_NUMBER",
      "customerOrganizationNumber": "ORGANIZATION_ID"
    },
    "detectionCategory": {
      "ruleName": "ai_iam_anomalous_behavior_ip_geolocation"
    },
    "detectionPriority": "MEDIUM",
    "affectedResources": [
      {
        "gcpResourceName": "//aiplatform.googleapis.com/projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_NAME"
      },
      {
        "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER"
      }
    ],
    "evidence": [
      {
        "sourceLogId": {
          "projectId": "PROJECT_ID",
          "resourceContainer": "projects/PROJECT_ID",
          "timestamp": {
            "seconds": "1675913160",
            "nanos": 929341814
          },
          "insertId": "o5ii7hddddd"
        }
      }
    ],
    "properties": {},
    "findingId": "FINDING_ID",
    "contextUris": {
      "mitreUri": {
        "displayName": "MITRE Link",
        "url": "https://attack.mitre.org/techniques/T1078/004/"
      }
    }
  }
}

¿Qué sigue?