Recopila Google Cloud registros de actividad de alertas de supervisión

Se admite en los siguientes sistemas operativos:

En este documento, se explica cómo transferir registros de Cloud Logging relacionados con la actividad de alertas de Cloud Monitoring a Google Security Operations con Google Cloud Storage V2.

Cloud Monitoring proporciona capacidades de alertas para los recursos de Google Cloud. Las políticas de alertas basadas en registros te notifican cuando aparece un mensaje en particular en tus registros. Cuando una entrada de registro cumple con la condición de la política de alertas, se abre un incidente en Cloud Monitoring y recibes una notificación sobre el incidente. Esta integración te permite exportar entradas de Cloud Logging a Google Security Operations para realizar análisis y correlaciones de seguridad.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Una instancia de Google SecOps
  • Google Cloud Proyecto con la API de Cloud Storage habilitada
  • Permisos para crear y administrar buckets de GCS
  • Permisos para administrar políticas de IAM en buckets de GCS
  • Permisos para configurar receptores de Cloud Logging

Crea un bucket de Google Cloud Storage

Usa la consola de Google Cloud

  1. Ve a Google Cloud Console.
  2. Selecciona tu proyecto o crea uno nuevo.
  3. En el menú de navegación, ve a Cloud Storage > Buckets.
  4. Haz clic en Crear bucket.
  5. Proporciona los siguientes detalles de configuración:

    Configuración Valor
    Asigna un nombre a tu bucket Ingresa un nombre global único (por ejemplo, monitoring-logs-export).
    Tipo de ubicación Elige según tus necesidades (región, birregional, multirregional)
    Ubicación Selecciona la ubicación (por ejemplo, us-central1).
    Clase de almacenamiento Estándar (recomendado para los registros a los que se accede con frecuencia)
    Control de acceso Uniforme (recomendado)
    Herramientas de protección Opcional: Habilita el control de versiones de objetos o la política de retención
  6. Haz clic en Crear.

Usa la herramienta de línea de comandos de gcloud

  • Como alternativa, crea un bucket con el comando gcloud:

    gcloud storage buckets create gs://monitoring-logs-export \
        --location=us-central1 \
        --default-storage-class=STANDARD
    
    • Reemplaza:
      • monitoring-logs-export: Es el nombre del bucket que necesitas (único a nivel global).
      • us-central1: La región que prefieras.

Configura Cloud Logging para exportar registros a GCS

Las entradas de registro se almacenan como archivos JSON cuando se enrutan a Cloud Storage. Puedes exportar registros relacionados con la actividad de alertas de Cloud Monitoring, como los registros de auditoría para la administración de políticas de alertas.

Crear un receptor de registros

  1. En la consola de Google Cloud, ve a Logging > Enrutador de registros.
  2. Haz clic en Crear un receptor.
  3. Proporciona los siguientes detalles de configuración:
    • Nombre del receptor: Ingresa un nombre descriptivo (por ejemplo, monitoring-alerts-to-gcs).
    • Descripción del receptor: Es una descripción opcional.
  4. Haz clic en Siguiente.
  5. En la sección Selecciona el servicio de receptor, haz lo siguiente:
    • Servicio de receptor: Selecciona Bucket de Cloud Storage.
    • Selecciona el bucket de Cloud Storage: Selecciona el bucket (por ejemplo, monitoring-logs-export) de la lista.
  6. Haz clic en Siguiente.
  7. En la sección Elige registros para incluirlos en el receptor, ingresa una consulta de filtro para seleccionar los registros que deseas exportar.

    • Ejemplo de filtro para los registros de auditoría de Cloud Monitoring:

      protoPayload.serviceName="monitoring.googleapis.com"
      logName:"cloudaudit.googleapis.com/activity"
      
    • Ejemplo de filtro para activadores de políticas de alertas basadas en registros:

      Si deseas exportar los registros subyacentes que activan tus políticas de alertas basadas en registros, usa un filtro que coincida con esos registros específicos. Por ejemplo:

      severity >= ERROR
      resource.type="gce_instance"
      
  8. Haz clic en Siguiente.

  9. Opcional: Configura filtros de exclusión si es necesario.

  10. Haz clic en Crear un receptor.

Es posible que los nuevos receptores que enrutan datos de registros a buckets de Cloud Storage tarden varias horas en comenzar a enrutar entradas de registro. Las entradas de registro se guardan en buckets de Cloud Storage en lotes por hora. Es posible que se necesiten entre 2 y 3 horas para que aparezcan las primeras entradas.

Recupera la cuenta de servicio de Google SecOps

Las Operaciones de seguridad de Google usan una cuenta de servicio única para leer datos de tu bucket de GCS. Debes otorgar acceso a tu bucket a esta cuenta de servicio.

Configura un feed en Google SecOps para transferir registros de Cloud Monitoring

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en Agregar feed nuevo.
  3. Haz clic en Configura un feed único.
  4. En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, Google Cloud Monitoring Alerts Logs).
  5. Selecciona Google Cloud Storage V2 como el Tipo de fuente.
  6. Selecciona GCP_MONITORING_ALERTS como el Tipo de registro.

  7. Haz clic en Obtener cuenta de servicio. Se mostrará un correo electrónico único de la cuenta de servicio, por ejemplo:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. Copia esta dirección de correo electrónico para usarla en el siguiente paso.

  9. Haz clic en Siguiente.

  10. Especifica valores para los siguientes parámetros de entrada:

    • URL del bucket de almacenamiento: Ingresa el URI del bucket de GCS:

      gs://monitoring-logs-export/
      
      • Reemplaza monitoring-logs-export por el nombre de tu bucket de GCS.
    • Opción de borrado de la fuente: Selecciona la opción de borrado según tu preferencia:

      • Nunca: Nunca borra ningún archivo después de las transferencias (se recomienda para las pruebas).
      • Borrar archivos transferidos: Borra los archivos después de la transferencia exitosa.
      • Borrar los archivos transferidos y los directorios vacíos: Borra los archivos y los directorios vacíos después de la transferencia exitosa.

    • Antigüedad máxima del archivo: Incluye los archivos modificados en la cantidad de días especificada. El valor predeterminado es de 180 días.

    • Espacio de nombres del recurso: Es el espacio de nombres del recurso.

    • Etiquetas de transmisión: Es la etiqueta que se aplicará a los eventos de este feed.

  11. Haz clic en Siguiente.

  12. Revisa la nueva configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.

Otorga permisos de IAM a la cuenta de servicio de Google SecOps

La cuenta de servicio de Google SecOps necesita el rol de visualizador de objetos de almacenamiento en tu bucket de GCS.

Usa la consola de Google Cloud

  1. Ve a Cloud Storage > Buckets.
  2. Haz clic en el nombre del bucket (por ejemplo, monitoring-logs-export).
  3. Ve a la pestaña Permisos.
  4. Haz clic en Otorgar acceso.
  5. Proporciona los siguientes detalles de configuración:
    • Agregar principales: Pega el correo electrónico de la cuenta de servicio de Google SecOps.
    • Asignar roles: Selecciona Visualizador de objetos de Storage.
  6. Haz clic en Guardar.

Usa la herramienta de línea de comandos de gcloud

  • Como alternativa, otorga permisos con el comando gcloud:

    gcloud storage buckets add-iam-policy-binding gs://monitoring-logs-export \
        --member="serviceAccount:SECOPS_SERVICE_ACCOUNT_EMAIL" \
        --role="roles/storage.objectViewer"
    
    • Reemplaza:
      • monitoring-logs-export: Es el nombre de tu bucket.
      • SECOPS_SERVICE_ACCOUNT_EMAIL: Es el correo electrónico de la cuenta de servicio de Google SecOps.

Usa la herramienta de línea de comandos de gsutil (heredada)

  • Otorga a la cuenta de servicio de SecOps los permisos necesarios para leer objetos en tu bucket de destino:

    gsutil iam ch serviceAccount:SECOPS_SERVICE_ACCOUNT_EMAIL:objectViewer \
        gs://monitoring-logs-export
    

Verifica los permisos

  • Para verificar que los permisos se hayan otorgado correctamente, haz lo siguiente:

    gcloud storage buckets get-iam-policy gs://monitoring-logs-export \
        --flatten="bindings[].members" \
        --filter="bindings.role:roles/storage.objectViewer"
    

    Deberías ver el correo electrónico de la cuenta de servicio de Google SecOps en el resultado.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
jsonPayload.type_1 additional.fields.jsonPayload_type_1 Valor copiado directamente
jsonPayload.debugInfo additional.fields.number Se extrae de jsonPayload.debugInfo con un patrón de Grok.
jsonPayload.scheduledTime, receiveTimestamp, timestamp metadata.event_timestamp Valor de jsonPayload.scheduledTime si no está vacío; de lo contrario, receiveTimestamp si no está vacío; de lo contrario, timestamp si no está vacío, convertido con la coincidencia de fecha
event_type metadata.event_type Valor de event_type si no está vacío; de lo contrario, se establece en "GENERIC_EVENT".
insertId metadata.product_log_id Valor copiado directamente
jsonPayload.targetType network.application_protocol Valor copiado directamente
httpRequest.status network.http.response_code Se convirtió a número entero
resource.labels.location principal.location.name Valor copiado directamente
jsonPayload.jobName principal.url Valor copiado directamente
jsonPayload.status security_result.action Se establece en "BLOCK" si jsonPayload.status == "PERMISSION_DENIED"
gravedad, security_result.severity Se establece en INFORMATIONAL si severity =~ (?i)INFO; LOW si severity == "LOW"; MEDIUM si severity == "MEDIUM"; HIGH si severity == "HIGH"; CRITICAL si severity == "VERY-HIGH".
jsonPayload.debugInfo security_result.summary Se extrae de jsonPayload.debugInfo con un patrón de Grok.
logName src.url Valor copiado directamente
resource.labels.project_id target.resource.attribute.labels.project_id Valor copiado directamente
resource.labels.job_id target.resource.attribute.labels.resource_labels_job_id Valor copiado directamente
resource.type target.resource.resource_subtype Valor copiado directamente
jsonPayload.url target.url Valor copiado directamente
metadata.product_name Se establece en "Gcp_monitoring_alerts".
metadata.vendor_name Se establece en "GCP_MONITORING_ALERTS".

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.