Recopila registros del WAF de Cloudflare

Compatible con:

Este analizador extrae campos de los registros JSON del firewall de aplicaciones web (WAF) de Cloudflare, los transforma y los asigna al modelo de datos unificado (UDM). Maneja varias acciones de Cloudflare y enriquece los datos con metadatos e información de la red antes de estructurar el resultado en el formato del UDM.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Instancia de Google SecOps.
  • Acceso con privilegios a Google Cloud.
  • Plan Enterprise de Cloudflare.
  • Acceso privilegiado a Cloudflare

Crea un Google Cloud bucket de Storage

  1. Accede a la consola de Google Cloud .
  2. Ve a la página Buckets de Cloud Storage.

    Ir a Buckets

  3. Haz clic en Crear.

  4. Configura el bucket:

    • Nombre: Ingresa un nombre único que cumpla con los requisitos de nombres de bucket (por ejemplo, cloudflare-waf).
    • Elige dónde almacenar tus datos: Selecciona una ubicación.
    • Elige una clase de almacenamiento para tus datos: Selecciona una clase de almacenamiento predeterminada para el bucket o selecciona Autoclass para la administración automática de clases de almacenamiento.
    • Elige cómo controlar el acceso a los objetos: Selecciona no para aplicar la prevención del acceso público y selecciona un modelo de control de acceso para los objetos del bucket.
    • Clase de almacenamiento: Elige según tus necesidades (por ejemplo, Estándar).
  5. Haz clic en Crear.

Otorga permisos de bucket al usuario de IAM de Cloudflare

  1. En Google Cloud, ve a Storage > Browser > Bucket > Permissions.
  2. Agrega la cuenta logpush@cloudflare-data.iam.gserviceaccount.com con permiso de administrador de objetos de almacenamiento.

Crea un trabajo de Logpush para los registros del WAF con la IU de Cloudflare

  1. Accede a Cloudflare.
  2. Ve a Analytics & Logs > Logpush.
  3. Selecciona Crear un trabajo de Logpush.
  4. En Selecciona un destino, elige Google Cloud Storage.
  5. Ingresa los siguientes detalles del destino:
    • Bucket: Google Cloud Nombre del bucket de almacenamiento
    • Ruta de acceso: Es la ubicación del bucket dentro del contenedor de almacenamiento.
    • Selecciona Organize logs into daily subfolders.
  6. Haz clic en Continuar.
  1. Selecciona el conjunto de datos Security (WAF) para enviarlo al almacenamiento.
  2. Configura el trabajo de envío de registros:
    • Ingresa el Nombre del trabajo.
    • En Si coinciden los registros, puedes seleccionar los eventos que deseas incluir o quitar de tus registros. Consulta Filtros para obtener más información. No todos los conjuntos de datos tienen esta opción disponible.
    • En los campos de Enviar lo siguiente, puedes enviar todos los registros a tu destino de almacenamiento o elegir de forma selectiva los registros que deseas enviar.
  3. Haz clic en Enviar.

Configura feeds

Existen dos puntos de entrada diferentes para configurar feeds en la plataforma de Google SecOps:

  • Configuración de SIEM > Feeds
  • Centro de contenido > Paquetes de contenido

Configura feeds en Configuración del SIEM > Feeds

Para configurar un feed, sigue estos pasos:

  1. Ve a Configuración del SIEM > Feeds.
  2. Haz clic en Agregar feed nuevo.
  3. En la siguiente página, haz clic en Configurar un solo feed.
  4. En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, Registros del WAF de Cloudflare).
  5. Selecciona Google Cloud Storage como el Tipo de fuente.
  6. Selecciona Cloudflare WAF como el Tipo de registro.
  7. Haz clic en Obtener cuenta de servicio.
  8. Haz clic en Siguiente.
  9. Especifica valores para los siguientes parámetros de entrada:

    • URI de GCS: Es la URL de Cloud Storage.
    • URI is a: Selecciona Directory which includes subdirectories.
    • Opciones de borrado de la fuente: Selecciona la opción de borrado según tu preferencia.
  10. Haz clic en Siguiente.

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

Configura feeds desde el Centro de contenido

Especifica valores para los siguientes campos:

  • URI de GCS: Es la URL de Cloud Storage.
  • URI is a: Selecciona Directory which includes subdirectories.
  • Opciones de borrado de la fuente: Selecciona la opción de borrado según tus preferencias.

Opciones avanzadas

  • Nombre del feed: Es un valor completado previamente que identifica el feed.
  • Tipo de fuente: Es el método que se usa para recopilar registros en Google SecOps.
  • Espacio de nombres del activo: Es el espacio de nombres asociado con el feed.
  • Etiquetas de transferencia: Son las etiquetas que se aplican a todos los eventos de este feed.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
Action security_result.action_details El valor de Action del registro sin procesar se asigna directamente a este campo de UDM.
Action security_result.action El valor de este campo se deriva del campo Action en el registro sin procesar. Si Action es "allow", el campo UDM se establece en ALLOW. Si Action es "challengeSolved", "jschallengeSolved", "managedchallengenoninteractivesolved" o "managedchallengeinteractivesolved", el campo UDM se establece en ALLOW_WITH_MODIFICATION. Si Action es "drop", "block" o "connectionclose", el campo UDM se establece en BLOCK. Si Action es "challengefailed" o "jschallengefailed", el campo de UDM se establece en FAIL. De lo contrario, se establece como UNKNOWN_ACTION.
ClientASN network.asn El valor de ClientASN del registro sin procesar se asigna directamente a este campo de UDM después de convertirlo en una cadena.
ClientASNDescription additional.fields.key La clave se establece de forma estática en "ClientASNDescription".
ClientASNDescription additional.fields.value.string_value El valor de ClientASNDescription del registro sin procesar se asigna directamente a este campo de UDM.
ClientCountry principal.location.country_or_region El valor de ClientCountry del registro sin procesar se asigna directamente a este campo de UDM.
ClientIP principal.ip El valor de ClientIP del registro sin procesar se asigna directamente a este campo de UDM.
ClientRefererHost intermediary.hostname El valor de ClientRefererHost del registro sin procesar se asigna directamente a este campo de UDM.
ClientRefererPath network.http.referral_url El valor de ClientRefererPath del registro sin procesar se asigna directamente a este campo de UDM.
ClientRequestHost target.hostname El valor de ClientRequestHost del registro sin procesar se asigna directamente a este campo de UDM.
ClientRequestMethod network.http.method El valor de ClientRequestMethod del registro sin procesar se asigna directamente a este campo de UDM.
ClientRequestPath target.file.full_path El valor de ClientRequestPath del registro sin procesar se asigna directamente a este campo de UDM.
ClientRequestProtocol network.application_protocol La parte del protocolo de ClientRequestProtocol (p.ej., "HTTP" de "HTTP/1.1") se extrae con grok, se convierte a mayúsculas y se asigna a este campo del UDM.
ClientRequestUserAgent network.http.user_agent El valor de ClientRequestUserAgent del registro sin procesar se asigna directamente a este campo de UDM.
Datetime metadata.event_timestamp El valor de Datetime del registro sin procesar se analiza como una marca de tiempo RFC 3339 y se asigna a este campo del UDM.
EdgeColoCode additional.fields.key La clave se establece de forma estática en "EdgeColoCode".
EdgeColoCode additional.fields.value.string_value El valor de EdgeColoCode del registro sin procesar se asigna directamente a este campo de UDM.
EdgeResponseStatus network.http.response_code El valor de EdgeResponseStatus del registro sin procesar se asigna directamente a este campo de UDM y se convierte en un número entero.
Kind metadata.product_event_type El valor de Kind del registro sin procesar se asigna directamente a este campo de UDM.
Metadata.filter target.resource.attribute.labels.value El valor de Metadata.filter del registro sin procesar se asigna al campo value de una etiqueta dentro de target.resource.attribute.labels. El key de esta etiqueta se establece de forma estática en "Filtro de metadatos".
Metadata.type target.resource.attribute.labels.value El valor de Metadata.type del registro sin procesar se asigna al campo value de una etiqueta dentro de target.resource.attribute.labels. El key de esta etiqueta se establece de forma estática en "Tipo de metadatos". El valor de este campo se deriva en función de la presencia y los valores de ClientIP, ClientRequestHost y app_protocol. Consulta el código del analizador para ver la lógica específica. Se establece de forma estática en "Cloudflare". Se establece de forma estática como "Agregador de registros de Cloudflare". Se establece de forma estática en "CLOUDFLARE_WAF".
RayID metadata.product_log_id El valor de RayID del registro sin procesar se asigna directamente a este campo de UDM.
RuleID security_result.rule_id El valor de RuleID del registro sin procesar se asigna directamente a este campo de UDM.
Source security_result.rule_name El valor de Source del registro sin procesar se asigna directamente a este campo de UDM.
timestamp metadata.event_timestamp, events.timestamp El valor de timestamp del registro sin procesar se asigna directamente a estos campos de UDM.

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