Recopila registros de Skyhigh Secure Web Gateway (local)
En este documento, se explica cómo puedes transferir registros de Skyhigh Secure Web Gateway (local) a Google SecOps con Google Cloud Storage.
Skyhigh Secure Web Gateway (anteriormente McAfee Web Gateway) es una solución de seguridad web local que proporciona detección de software malicioso, filtrado de URLs, control de aplicaciones, prevención de pérdida de datos y la inspección de HTTPS para proteger a las organizaciones de las amenazas basadas en la Web y aplicar políticas de uso aceptable.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Una instancia de Google SecOps
- Acceso con privilegios a la consola de administración de Skyhigh Secure Web Gateway
- Un proyecto de GCP con la API de Cloud Storage habilitada
- Un servidor de recopilación basado en Linux con acceso a la red del dispositivo de puerta de enlace web segura de Skyhigh y acceso saliente a Google Cloud Storage
- Versión 7.x o posterior de Skyhigh Secure Web Gateway
Configura el formato de registro de acceso de Skyhigh Secure Web Gateway
Configura el conjunto de reglas del controlador de registros para generar entradas de registro de acceso en formato JSON.
- Accede a la consola de administración de Skyhigh Secure Web Gateway.
- Ve a Política > Conjuntos de reglas.
- Haz clic en Log Handler en el menú de navegación izquierdo.
- Expande el conjunto de reglas Predeterminado.
- Selecciona el conjunto de reglas anidado Access Log.
- Haz clic en Agregar > Regla para crear una regla nueva.
- Configura la regla con los siguientes parámetros:
- Nombre: Ingresa
Write access log data for collection. - Criterios: Selecciona Siempre.
- Acción: Selecciona Continuar.
- Evento: Haz clic en Agregar > Evento.
- Nombre: Ingresa
- En el diálogo Agregar evento, haz lo siguiente:
- Selecciona Set User-Defined.logLine.
- Haz clic en Parámetros.
- Crea el valor de la línea de registro combinando las propiedades requeridas. Usa la propiedad User-Defined.logLine para concatenar los campos en el formato deseado.
- Haz clic en Aceptar.
- Agrega un segundo evento para escribir la línea de registro en el archivo de registro de acceso:
- Haz clic en Agregar > Evento.
- Selecciona Registro del sistema de archivos.
- Haz clic en Parámetros.
- Para el parámetro message, selecciona User-Defined.logLine.
- Haz clic en Aceptar.
- Haz clic en Finalizar para guardar la regla.
Haz clic en Guardar cambios en la parte superior de la página.
Configura el envío automático de registros del sistema de archivos
Configura Skyhigh Secure Web Gateway para enviar automáticamente los archivos de registro de acceso al servidor de recopilación.
- En la consola de Skyhigh Secure Web Gateway, ve a Policy > Settings > Engines > File System Logging.
- Selecciona la configuración de Registro de acceso.
- Expande Configuración para rotación, envío y eliminación.
- En la sección Envío automático, haz lo siguiente:
- Selecciona la casilla de verificación Habilitar la transferencia automática.
- En el campo Destino, ingresa la URL de FTP o HTTP del servidor de recopilación:
- Ejemplo de FTP:
ftp://COLLECTION_SERVER_IP:21/swg-logs/ - Ejemplo de HTTP:
http://COLLECTION_SERVER_IP:9111/logloader/
- Ejemplo de FTP:
- En el campo Nombre de usuario, ingresa el nombre de usuario del servidor de recopilación.
- En el campo Contraseña, ingresa la contraseña del servidor de recopilación.
- En la sección Rotation, configura el intervalo de rotación según el volumen de registros:
- En entornos de gran volumen, establece la rotación cada 5 a 15 minutos.
- Para los entornos estándar, establece la rotación cada 30 a 60 minutos.
Haz clic en Guardar cambios.
Verifica el prefijo del registro
- En la consola de Skyhigh Secure Web Gateway, ve a Configuration > Appliances > Syslog > Log Prefix.
- Verifica que el prefijo esté establecido en mwg.
Si el prefijo es diferente, cámbialo a mwg y haz clic en Guardar cambios.
Crea un bucket de Google Cloud Storage
- Ve a Google Cloud Console.
- Selecciona tu proyecto o crea uno nuevo.
- En el menú de navegación, ve a Cloud Storage > Buckets.
- Haz clic en Crear bucket.
Proporciona los siguientes detalles de configuración:
Parámetro de configuración Valor Asigna un nombre a tu bucket Ingresa un nombre global único (por ejemplo, skyhigh-swg-logs).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 Haz clic en Crear.
Configura el servidor de recopilación para subir registros a GCS
Configura un servidor de recopilación para recibir los archivos de registro enviados por Skyhigh Secure Web Gateway y súbelos al bucket de GCS.
Instala gcloud CLI
En el servidor de recopilación, instala gcloud CLI:
curl https://sdk.cloud.google.com | bash exec -l $SHELLInicializa la CLI de gcloud:
gcloud initAutentica con una cuenta de servicio o una cuenta de usuario:
gcloud auth loginConfigura el proyecto predeterminado:
gcloud config set project PROJECT_ID
Configura un servidor FTP para recibir registros enviados
Instala un servidor FTP en el servidor de recopilación (por ejemplo, vsftpd):
sudo apt-get install vsftpd -yCrea un directorio dedicado para los archivos de registro enviados:
sudo mkdir -p /var/log/swg-logs sudo chown ftp:ftp /var/log/swg-logsConfigura el servidor FTP para permitir el acceso de escritura al directorio de registros.
Inicia el servicio FTP:
sudo systemctl enable vsftpd sudo systemctl start vsftpd
Crea la secuencia de comandos de carga de GCS
Crea la secuencia de comandos de carga:
sudo mkdir -p /opt/swg-gcs-uploaderCrea el archivo
/opt/swg-gcs-uploader/upload_to_gcs.shcon el siguiente contenido:#!/bin/bash LOG_DIR="/var/log/swg-logs" GCS_BUCKET="gs://skyhigh-swg-logs/swg-access-logs/" ARCHIVE_DIR="/var/log/swg-logs/archived" mkdir -p "$ARCHIVE_DIR" # Upload new log files to GCS for log_file in "$LOG_DIR"/*.log; do if [ -f "$log_file" ]; then gsutil cp "$log_file" "$GCS_BUCKET" if [ $? -eq 0 ]; then mv "$log_file" "$ARCHIVE_DIR/" echo "$(date): Uploaded and archived $(basename "$log_file")" else echo "$(date): Failed to upload $(basename "$log_file")" fi fi done # Clean up archived files older than 7 days find "$ARCHIVE_DIR" -type f -mtime +7 -deleteHaz que la secuencia de comandos sea ejecutable:
sudo chmod +x /opt/swg-gcs-uploader/upload_to_gcs.shReemplaza
skyhigh-swg-logspor el nombre real del bucket de GCS.
Programa la secuencia de comandos de carga
Abre el editor de crontab:
sudo crontab -eAgrega la siguiente entrada para ejecutar la carga cada 10 minutos:
*/10 * * * * /opt/swg-gcs-uploader/upload_to_gcs.sh >> /var/log/swg-gcs-uploader.log 2>&1Guarda y cierra.
Verifica la carga
- Espera a que la puerta de enlace web segura de Skyhigh envíe un archivo de registro al servidor de recopilación.
Verifica que el archivo de registro esté presente en el directorio de registros:
ls -la /var/log/swg-logs/Ejecuta la secuencia de comandos de carga de forma manual para realizar la prueba:
sudo /opt/swg-gcs-uploader/upload_to_gcs.shVerifica que el archivo se haya subido a GCS:
gsutil ls gs://skyhigh-swg-logs/swg-access-logs/
Aplica la configuración al clúster de administración central
Si ejecutas varios dispositivos de Skyhigh Secure Web Gateway en un clúster de administración central:
- Repite la configuración de envío automático del registro del sistema de archivos en cada dispositivo del clúster.
La configuración del conjunto de reglas del controlador de registros se sincroniza automáticamente en todo el clúster.
Recupera la cuenta de servicio de Google SecOps
- Ve a Configuración de SIEM > Feeds.
- Haz clic en Agregar feed nuevo.
- Haz clic en Configura un feed único.
- En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo,
Skyhigh SWG Logs). - Selecciona Google Cloud Storage V2 como el Tipo de fuente.
- Selecciona Protección web de McAfee como el Tipo de registro.
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.comCopia esta dirección de correo electrónico para usarla en el siguiente paso.
Haz clic en Siguiente.
Especifica valores para los siguientes parámetros de entrada:
URL del bucket de almacenamiento: Ingresa el URI del bucket de GCS con la ruta de acceso del prefijo:
gs://skyhigh-swg-logs/swg-access-logs/Opción de eliminación del código fuente: Selecciona la opción de eliminación 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 que se transfirieron correctamente.
Borrar los archivos transferidos y los directorios vacíos: Borra los archivos y los directorios vacíos después de que se transfirieron correctamente.
Antigüedad máxima del archivo: Incluye los archivos modificados en la cantidad de días más reciente (el valor predeterminado es de 180 días).
Espacio de nombres del recurso: Es el espacio de nombres del recurso.
Etiquetas de transferencia: Es la etiqueta que se aplicará a los eventos de este feed.
Haz clic en Siguiente.
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
- Ve a Cloud Storage > Buckets.
- Haz clic en
skyhigh-swg-logs: - Ve a la pestaña Permisos.
- Haz clic en Otorgar acceso.
- Proporciona los siguientes detalles de configuración:
- Agregar entidades: Pega el correo electrónico de la cuenta de servicio de Google SecOps.
- Asignar roles: Selecciona Visualizador de objetos de Storage.
- Haz clic en Guardar.
Tabla de asignación de UDM
| Campo de registro | Asignación de UDM | Lógica |
|---|---|---|
| mediaType | additional.fields | Se combinó con etiquetas de mediaType, reputation, Ssl_scanned, av_scanned_up, av_scanned_down, rbi, dlp |
| reputación | additional.fields | |
| Ssl_scanned | additional.fields | |
| av_scanned_up | additional.fields | |
| av_scanned_down | additional.fields | |
| rbi | additional.fields | |
| ppd | additional.fields | |
| intermediary_ip1 | intermediary.ip | Se combinó de intermediary_ip1, intermediary_ip2, client_ip |
| intermediary_ip2 | intermediary.ip | |
| client_ip | intermediary.ip | |
| intermediary_port | intermediary.port | Se convirtió a número entero |
| uriScheme | metadata.event_type | Se establece en "GENERIC_EVENT" y se anula como "NETWORK_HTTP" si uriScheme está en ["http", "https"] |
| uriScheme | network.application_protocol | Se establece en "HTTPS" si uriScheme coincide con "https" y en "HTTP" si coincide con "http". |
| http_action | network.http.method | Valor copiado directamente |
| user_agent_comment | network.http.parsed_user_agent | Se convirtió en un usuario-agente analizado. |
| httpStatusCode | network.http.response_code | Se convirtió a número entero |
| user_agent_comment | network.http.user_agent | Valor copiado directamente |
| serverToClientBytes | network.received_bytes | Se convirtió en uinteger |
| clientToServerBytes | network.sent_bytes | Se convirtió en uinteger |
| Nombre del archivo | principal.file.full_path | Valor copiado directamente |
| source_ip | principal.ip | Valor copiado directamente |
| País | principal.location.country_or_region | Valor copiado directamente |
| process_name | principal.process.command_line | Valor copiado directamente |
| Ssl_client_prot | principal.resource.attribute.labels | Se combinó con etiquetas de Ssl_client_prot y Ssl_server_prot. |
| Ssl_server_prot | principal.resource.attribute.labels | |
| url | principal.url | Valor copiado directamente |
| nombre de usuario | principal.user.userid | Valor copiado directamente |
| blockReason | security_result.action | Se establece en "ALLOW" y se anula a "BLOCK" si blockReason no está vacío. |
| result | security_result.action_details | Valor copiado directamente |
| categoría | security_result.category_details | Valor copiado directamente |
| virus | security_result.detection_fields | Se combinó con etiquetas de virus, ubicación, lastRule, applicationType, Mw_probablility, Discarded_host y domain_fronting_url. |
| Ubicación | security_result.detection_fields | |
| lastRule | security_result.detection_fields | |
| applicationType | security_result.detection_fields | |
| Mw_probablility | security_result.detection_fields | |
| Discarded_host | security_result.detection_fields | |
| domain_fronting_url | security_result.detection_fields | |
| blockReason | security_result.summary | Valor copiado directamente |
| requested_path | target.file.full_path | Valor copiado directamente |
| requested_host | target.hostname | Valor copiado directamente |
| destination_ip | target.ip | Valor copiado directamente |
| userID | target.user.userid | Valor copiado directamente |
Registro de cambios
Consulta el registro de cambios de este analizador
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.