Recoger registros de Secure Web Proxy

Disponible en:

En este documento se explica cómo exportar e ingerir Secure Web Proxy en Google Security Operations mediante Cloud Storage. El analizador extrae campos de los registros JSON y los transforma en el modelo de datos unificado (UDM). Inicializa los campos de UDM, analiza la carga útil de JSON, extrae información de la red, detalles de seguridad y atributos de recursos, y define el tipo de evento en función de la presencia de información principal y de destino.

Antes de empezar

Asegúrate de que cumples los siguientes requisitos previos:

  • Instancia de Google SecOps.
  • El proxy web seguro está activo y configurado en tu Google Cloud entorno.
  • Acceso privilegiado a Google Cloud y permisos adecuados para acceder a los registros del proxy web seguro.

Crea un segmento de Cloud Storage

  1. Inicia sesión en la consolaGoogle Cloud .
  2. Ve a la página Segmentos de Cloud Storage.

    Ir a Contenedores

  3. Haz clic en Crear.

  4. En la página Crear un segmento, introduce la información del segmento. Después de cada uno de los pasos siguientes, haga clic en Continuar para pasar al siguiente:

    1. En la sección Empezar, haz lo siguiente:

      1. Introduce un nombre único que cumpla los requisitos de nombres de segmentos. Por ejemplo, gcp-swp-logs.
      2. Para habilitar el espacio de nombres jerárquico, haz clic en la flecha para desplegar la sección Optimizar para cargas de trabajo orientadas a archivos y con gran cantidad de datos y, a continuación, selecciona Habilitar espacio de nombres jerárquico en este bucket.

      3. Para añadir una etiqueta de contenedor, haz clic en la flecha para desplegar la sección Etiquetas.

      4. Haga clic en Añadir etiqueta y especifique una clave y un valor para la etiqueta.

    2. En la sección Elige dónde quieres almacenar los datos, haz lo siguiente:

      1. Selecciona un Tipo de ubicación.
      2. Usa el menú de tipo de ubicación para seleccionar una Ubicación donde se almacenarán de forma permanente los datos de los objetos de tu segmento.

      3. Para configurar la replicación entre contenedores, despliega la sección Configurar la replicación entre contenedores.

    3. En la sección Elige una clase de almacenamiento para tus datos, selecciona una clase de almacenamiento predeterminada para el segmento o Autoclass para gestionar automáticamente la clase de almacenamiento de los datos del segmento.

    4. En la sección Elige cómo quieres controlar el acceso a los objetos, selecciona no para aplicar la prevención del acceso público y elige un modelo de control de acceso para los objetos del segmento.

    5. En la sección Elige cómo proteger los datos de los objetos, haz lo siguiente:

      1. Selecciona cualquiera de las opciones de Protección de datos que quieras configurar para tu contenedor.
      2. Para elegir cómo se cifrarán los datos de los objetos, haga clic en la flecha del desplegable Cifrado de datos y seleccione un Método de cifrado de datos.
  5. Haz clic en Crear.

Configurar la exportación de registros de proxy web seguro

  1. Inicia sesión en la consolaGoogle Cloud .
  2. Ve a Logging > Log Router.
  3. Haz clic en Crear sumidero.
  4. Proporcione los siguientes parámetros de configuración:

    • Nombre del sumidero: introduce un nombre descriptivo; por ejemplo, SWP-Export-Sink.
    • Destino del receptor: selecciona Cloud Storage e introduce el URI de tu segmento. Por ejemplo, gs://gcp-swp-logs/.
    • Filtro de registro:
    logName="projects/<your-project-id>/logs/networkservices.googleapis.com/gateway_requests"
    
  5. Haz clic en Crear.

Configurar permisos de Cloud Storage

  1. Ve a IAM y administración > IAM.
  2. Busca la cuenta de servicio Cloud Logging.
  3. Concede el rol roles/storage.admin en el segmento.

Configurar feeds

Para configurar un feed, sigue estos pasos:

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en Añadir feed.
  3. En la página siguiente, haga clic en Configurar un solo feed.
  4. En el campo Nombre del feed, introduce un nombre para el feed (por ejemplo, Google Cloud Registros de SWP).
  5. Selecciona Google Cloud Storage V2 como Tipo de origen.
  6. Selecciona Proxy web seguro de GCP como Tipo de registro.
  7. Haz clic en Obtener cuenta de servicio junto al campo Cuenta de servicio de Chronicle.
  8. Haz clic en Siguiente.
  9. Especifique los valores de los siguientes parámetros de entrada:

    • URI de segmento de almacenamiento: URL del segmento de Cloud Storage. Por ejemplo, gs://gcp-swp-logs/. Esta URL debe terminar con una barra inclinada (/).
    • Opciones de eliminación de la fuente: selecciona la opción de eliminación que prefieras.

    • Antigüedad máxima del archivo: incluye los archivos modificados en los últimos días. El valor predeterminado es 180 días.

  10. Haz clic en Siguiente.

  11. Revise la configuración de la nueva fuente en la pantalla Finalizar y, a continuación, haga clic en Enviar.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
httpRequest.latency additional.fields[].key: HTTPRequest Latency
additional.fields[].value.string_value: 0.124462s
Se asigna directamente desde el campo de registro sin procesar.
httpRequest.protocol network.application_protocol: HTTP
network.application_protocol_version: 2
El protocolo y la versión se extraen del campo httpRequest.protocol mediante un patrón grok.
httpRequest.remoteIp target.asset.ip: 1.1.0.1
target.ip: 1.1.0.1
La dirección IP se extrae del campo httpRequest.remoteIp mediante un patrón grok.
httpRequest.requestMethod network.http.method: GET Se asigna directamente desde el campo de registro sin procesar.
httpRequest.requestSize network.sent_bytes: 144 Se asigna directamente desde el campo de registro sin procesar y se convierte en un número entero.
httpRequest.requestUrl target.url: https://github.com/tempuslabs/tempusutils/info/refs?service=git-upload-pack Se asigna directamente desde el campo de registro sin procesar.
httpRequest.responseSize network.received_bytes: 225 Se asigna directamente desde el campo de registro sin procesar y se convierte en un número entero.
httpRequest.serverIp principal.asset.ip: 1.8.1.4
principal.ip: 1.8.1.4
La dirección IP se extrae del campo httpRequest.serverIp mediante un patrón grok.
httpRequest.status network.http.response_code: 401 Se asigna directamente desde el campo de registro sin procesar y se convierte en un número entero.
httpRequest.userAgent network.http.user_agent: git/2.34.1
network.http.parsed_user_agent: {
family: USER_DEFINED,
device: git,
device_version: 2.34.1
}
Se asigna directamente desde el campo de registro sin procesar. El campo parsed_user_agent se obtiene analizando el campo httpRequest.userAgent.
insertId metadata.product_log_id: 1yh8wczer5o8n Se asigna directamente desde el campo de registro sin procesar.
jsonPayload.@type additional.fields[].key: Log Type
additional.fields[].value.string_value: type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry
Se asigna directamente desde el campo de registro sin procesar.
jsonPayload.enforcedGatewaySecurityPolicy.hostname target.asset.hostname: github.com
target.hostname: github.com
Se asigna directamente desde el campo de registro sin procesar.
jsonPayload.enforcedGatewaySecurityPolicy.matchedRules[].action security_result.action: ALLOW
security_result.action_details: ALLOWED
El security_result.action se deriva del valor de jsonPayload.enforcedGatewaySecurityPolicy.matchedRules[].action. Si la acción es ALLOWED, el campo de UDM se asigna a ALLOW. Si la acción es DENIED, el campo de UDM se asigna a BLOCK.
jsonPayload.enforcedGatewaySecurityPolicy.matchedRules[].name security_result.rule_name: projects/671807354785/locations/us-central1/gatewaySecurityPolicies/github-access-gateway-security-policy-5cec30cd/rules/github-access-gateway-security-policy-rule-5cec30cd Se asigna directamente desde el campo de registro sin procesar.
jsonPayload.enforcedGatewaySecurityPolicy.requestWasTlsIntercepted security_result.detection_fields[].key: requestWasTlsIntercepted
security_result.detection_fields[].value: true
Se asigna directamente desde el campo de registro sin procesar.
logName additional.fields[].key: Log Name
additional.fields[].value.string_value: projects/rws-w6uza3pn5jzzh6z3hc3d/logs/networkservices.googleapis.com%2Fgateway_requests
Se asigna directamente desde el campo de registro sin procesar.
receiveTimestamp metadata.collected_timestamp: {
seconds: 1710189647,
nanos: 661101224
}
Se analiza a partir del campo de registro sin procesar mediante el formato de fecha RFC 3339.
resource.labels.gateway_name security_result.detection_fields[].key: gateway-name
security_result.detection_fields[].value: github-access-gateway-5cec30cd
Se asigna directamente desde el campo de registro sin procesar.
resource.labels.gateway_type security_result.detection_fields[].key: gateway-type
security_result.detection_fields[].value: SECURE_WEB_GATEWAY
Se asigna directamente desde el campo de registro sin procesar.
resource.labels.location target.resource.attribute.cloud.availability_zone: us-central1 Se asigna directamente desde el campo de registro sin procesar.
resource.labels.network_name target.resource.attribute.labels[].key: rc_network_name
target.resource.attribute.labels[].value: projects/rws-w6uza3pn5jzzh6z3hc3d/global/networks/rws-tr-pilot-workspace
Se asigna directamente desde el campo de registro sin procesar.
resource.type target.resource.attribute.labels[].key: Resource Type
target.resource.attribute.labels[].value: networkservices.googleapis.com/Gateway
Se asigna directamente desde el campo de registro sin procesar.
severity security_result.severity: MEDIUM Asignado desde el campo de registro sin procesar. El valor se traduce a un nivel de gravedad de UDM. En este caso, WARNING se asigna a MEDIUM.
timestamp metadata.event_timestamp: {
seconds: 1710189639,
nanos: 952848000
}
Se analiza a partir del campo de registro sin procesar mediante el formato de fecha RFC 3339.
(Lógica del analizador) metadata.event_type: NETWORK_HTTP Determinado por la lógica del analizador en función de la presencia de has_principal, has_target y un protocolo que coincida con http.
(Lógica del analizador) metadata.log_type: GCP_SWP Valor codificado en función del producto.

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.