Recoger registros de Cato Networks
En este documento se explica cómo ingerir registros de Cato Networks en Google Security Operations mediante AWS S3. El analizador primero inicializa un conjunto de campos en cadenas vacías y, a continuación, analiza los registros de Cato Networks con formato JSON. A continuación, asigna los campos extraídos a los campos correspondientes del modelo de datos unificado (UDM) de Google SecOps, gestiona los distintos tipos de eventos y enriquece los datos con contexto adicional.
Antes de empezar
Asegúrate de que cumples los siguientes requisitos previos:
- Instancia de Google SecOps
- Acceso privilegiado a AWS S3 y AWS IAM
- Acceso privilegiado a Cato Networks
Configurar AWS IAM y el segmento de S3
- Crea un segmento de Amazon S3 siguiendo esta guía de usuario: Crear un segmento.
- Guarda el nombre y la región del contenedor para consultarlos más adelante.
- Crea un usuario siguiendo esta guía: Crear un usuario de gestión de identidades y accesos.
- Selecciona el usuario creado.
- Selecciona la pestaña Credenciales de seguridad.
- En la sección Claves de acceso, haz clic en Crear clave de acceso.
- Selecciona Servicio de terceros como Caso práctico.
- Haz clic en Siguiente.
- Opcional: añade una etiqueta de descripción.
- Haz clic en Crear clave de acceso.
- Haz clic en Descargar archivo CSV para guardar la clave de acceso y la clave de acceso secreta para futuras consultas.
- Haz clic en Listo.
- Selecciona la pestaña Permisos.
- Haz clic en Añadir permisos en la sección Políticas de permisos.
- Selecciona Añadir permisos.
- Seleccione Adjuntar políticas directamente.
- Busca la política AmazonS3FullAccess y, a continuación, selecciónala.
- Haz clic en Siguiente.
- Haz clic en Añadir permisos.
Configurar una nueva política de gestión de identidades y accesos para un segmento de S3 con el fin de habilitar las subidas de datos
- En Política, haga clic en la pestaña JSON.
Edita el siguiente JSON, sustituye
<bucket name>
por tu segmento de S3 y, a continuación, pégalo en la pestaña.{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::<bucket name>" ] }, { "Sid": "", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::<bucket name>/*" ] } ] }
Haz clic en Crear política.
Configurar un nuevo rol de gestión de identidades y accesos con el ARN de Cato
En la pantalla Select trusted entity (Seleccionar entidad de confianza), selecciona Custom Trust Policy (Política de confianza personalizada) y añade el ARN de Cato al rol: arn:aws:iam::428465470022:role/cato-events-integration.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::428465470022:role/cato-events-integration" }, "Action": "sts:AssumeRole" } ] }
Haz clic en Siguiente.
En la pantalla Añadir permisos, asigne al rol la política que ha creado anteriormente.
Haz clic en Siguiente.
Introduce el Nombre del rol y haz clic en Crear rol.
Configurar la integración de eventos y S3 de Cato Networks
- Inicia sesión en la interfaz de usuario web de Cato Networks.
- Vaya a Recursos > Integraciones de eventos.
- Haz clic en Enable integration with Cato events (Habilitar la integración con eventos de Cato).
- Haz clic en New (Nuevo).
- Proporcione los siguientes detalles de configuración:
- Introduce el nombre de la integración.
- Nombre del segmento: nombre idéntico del segmento de S3.
- Carpeta: nombre idéntico de la ruta de la carpeta en el segmento de S3 (si es necesario).
- Región: región idéntica del segmento de S3.
- ARN del rol: copia y pega el ARN del rol del segmento de S3.
- (Opcional) Defina los ajustes de filtro de los eventos que se suban al bucket de S3. Si define varios filtros, se relacionarán con el operador lógico AND y se subirán los eventos que coincidan con todos los filtros.
- Haz clic en Aplicar.
Configurar feeds
Para configurar un feed, sigue estos pasos:
- Ve a Configuración de SIEM > Feeds.
- Haz clic en Añadir feed.
- En la página siguiente, haga clic en Configurar un solo feed.
- En el campo Nombre del feed, introduce un nombre para el feed (por ejemplo,
Cato Logs
). - Selecciona Amazon S3 V2 como Tipo de fuente.
- Seleccione Cato Networks como Tipo de registro.
- Haz clic en Siguiente.
Especifique los valores de los siguientes parámetros de entrada:
URI de S3: el URI del contenedor (el formato debe ser
s3://<your-log-bucket-name>
). Sustituye lo siguiente:your-log-bucket-name
: el nombre del segmento.
Opciones de eliminación de la fuente: selecciona la opción de eliminación que prefieras.
Haz clic en Siguiente.
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 |
---|---|---|
account_id | target.user.userid | El valor de este campo se toma del campo account_id . |
acción | additional.fields.value.string_value | El valor de este campo se toma del campo action . |
app_stack | additional.fields.value.list_value.values.string_value | El valor de este campo se toma del campo app_stack . |
página | principal.application | El valor de este campo se toma del campo application . |
categorías | additional.fields.value.list_value.values.string_value | El valor de este campo se toma del campo categories . |
clientIP | principal.ip, principal.asset.ip | El valor de este campo se toma del campo clientIP . |
creationTime | Este campo se usa para calcular la marca de tiempo del evento. | |
custom_categories | additional.fields.value.list_value.values.string_value | El valor de este campo se toma del campo custom_categories . |
dest_country | target.location.country_or_region | El valor de este campo se toma del campo dest_country . |
dest_country_code | target.resource.attribute.labels.value | El valor de este campo se toma del campo dest_country_code . |
dest_ip | target.ip, target.asset.ip | El valor de este campo se toma del campo dest_ip . |
dest_port | target.port | El valor de este campo se toma del campo dest_port . |
destinationCountry | target.location.country_or_region | El valor de este campo se toma del campo destinationCountry . |
destinationIp | target.ip, target.asset.ip | El valor de este campo se toma del campo destinationIp . |
destinationName | target.hostname, target.asset.hostname | El valor de este campo se toma del campo destinationName . |
device_name | network.dhcp.client_hostname | El valor de este campo se toma del campo device_name . |
dns_name | additional.fields.value.string_value | El valor de este campo se toma del campo dns_name . |
event_count | additional.fields.value.string_value | El valor de este campo se toma del campo event_count . |
event_sub_type | metadata.description | El valor de este campo se toma del campo event_sub_type . |
fieldsMap.ISP_name | additional.fields.value.string_value | El valor de este campo se toma del campo fieldsMap.ISP_name . |
fieldsMap.action | security_result.action_details | El valor de este campo se toma del campo fieldsMap.action . |
fieldsMap.categories | security_result.category_details | El valor de este campo se toma del campo fieldsMap.categories . |
fieldsMap.dest_country | target.location.country_or_region | El valor de este campo se toma del campo fieldsMap.dest_country . |
fieldsMap.dest_ip | target.ip, target.asset.ip | El valor de este campo se toma del campo fieldsMap.dest_ip . |
fieldsMap.dest_port | principal.port | El valor de este campo se toma del campo fieldsMap.dest_port . |
fieldsMap.domain_name | principal.administrative_domain | El valor de este campo se toma del campo fieldsMap.domain_name . |
fieldsMap.event_sub_type | metadata.description | El valor de este campo se toma del campo fieldsMap.event_sub_type . |
fieldsMap.event_type | metadata.product_event_type | El valor de este campo se toma del campo fieldsMap.event_type . |
fieldsMap.ip_protocol | network.ip_protocol | El valor de este campo se toma del campo fieldsMap.ip_protocol . |
fieldsMap.os_type | Este campo se usa para determinar el sistema operativo de la entidad principal. | |
fieldsMap.pop_name | additional.fields.value.string_value | El valor de este campo se toma del campo fieldsMap.pop_name . |
fieldsMap.rule_id | security_result.rule_id | El valor de este campo se toma del campo fieldsMap.rule_id . |
fieldsMap.rule_name | security_result.rule_name | El valor de este campo se toma del campo fieldsMap.rule_name . |
fieldsMap.src_ip | principal.ip, principal.asset.ip | El valor de este campo se toma del campo fieldsMap.src_ip . |
fieldsMap.src_isp_ip | src.ip, src.asset.ip | El valor de este campo se toma del campo fieldsMap.src_isp_ip . |
fieldsMap.time | Este campo se usa para calcular la marca de tiempo del evento. | |
file_hash | target.file.sha256 | El valor de este campo se toma del campo file_hash . |
file_name | target.file.full_path | El valor de este campo se toma del campo file_name . |
file_size | target.file.size | El valor de este campo se toma del campo file_size . |
http_host_name | principal.hostname, principal.asset.hostname | El valor de este campo se toma del campo http_host_name . |
insertionDate | additional.fields.value.string_value | El valor de este campo se toma del campo insertionDate . |
internalId | additional.fields.value.string_value | El valor de este campo se toma del campo internalId . |
ip_protocol | network.ip_protocol | El valor de este campo se toma del campo ip_protocol . |
is_sanctioned_app | security_result.detection_fields.value | El valor de este campo se toma del campo is_sanctioned_app . |
os_type | principal.platform | El valor de este campo se toma del campo os_type . |
pop_name | Este campo se usa para rellenar el campo fieldsMap.pop_name . |
|
prettyType | metadata.product_event_type | El valor de este campo se toma del campo prettyType . |
regla | additional.fields.value.string_value | El valor de este campo se toma del campo rule . |
rule_id | security_result.rule_id | El valor de este campo se toma del campo rule_id . |
rule_name | security_result.rule_name | El valor de este campo se toma del campo rule_name . |
server_port | target.port | El valor de este campo se toma del campo server_port . |
gravedad | security_result.severity_details | El valor de este campo se toma del campo severity . |
sourceCountry | principal.location.country_or_region | El valor de este campo se toma del campo sourceCountry . |
sourceInternalIp | principal.ip | El valor de este campo se toma del campo sourceInternalIp . |
sourceIp | src.ip, src.asset.ip | El valor de este campo se toma del campo sourceIp . |
sourceName | principal.user.user_display_name | El valor de este campo se toma del campo sourceName . |
deporte | principal.port | El valor de este campo se toma del campo sport . |
src_country | Este campo se usa para rellenar el campo sourceCountry . |
|
src_country_code | principal.resource.attribute.labels.value | El valor de este campo se toma del campo src_country_code . |
src_ip | principal.ip, principal.asset.ip | El valor de este campo se toma del campo src_ip . |
src_is_site_or_vpn | security_result.detection_fields.value | El valor de este campo se toma del campo src_is_site_or_vpn . |
src_isp_ip | src.ip, src.asset.ip | El valor de este campo se toma del campo src_isp_ip . |
src_site | additional.fields.value.string_value | El valor de este campo se toma del campo src_site . |
src_site_name | additional.fields.value.string_value | El valor de este campo se toma del campo src_site_name . |
start | Este campo se usa para calcular la marca de tiempo del evento. | |
subnet_name | additional.fields.value.string_value | El valor de este campo se toma del campo subnet_name . |
Tiempo | Este campo se usa para calcular la marca de tiempo del evento. | |
time_str | Este campo se usa para calcular la marca de tiempo del evento. | |
tunnel_host_logon_names | principal.user.userid | El valor de este campo se toma del campo tunnel_host_logon_names . |
URL | target.url | El valor de este campo se toma del campo url . |
user_id | principal.user.userid | El valor de este campo se toma del campo user_id . |
metadata.event_type | El valor de este campo es GENERIC_EVENT y se puede cambiar a NETWORK_CONNECTION , NETWORK_DHCP o NETWORK_HTTP en función del evento. |
|
metadata.log_type | El valor de este campo es CATO_NETWORKS . |
|
metadata.product_name | El valor de este campo es SASE . |
|
metadata.vendor_name | El valor de este campo es Cato Networks . |
|
network.application_protocol | El valor de este campo es DHCP para los eventos Connected . |
|
network.dhcp.chaddr | El valor de este campo es 01:23:45:ab:cd:ef para los eventos Connected . |
|
network.dhcp.lease_time_seconds | El valor de este campo es 86400 para los eventos Connected . |
|
network.dhcp.opcode | El valor de este campo es BOOTREPLY para los eventos Connected . |
|
network.dhcp.type | El valor de este campo es ACK para los eventos Connected . |
|
network.direction | El valor de este campo es OUTBOUND para los eventos Anti Malware y URL Filtering . |
|
security_result.action | El valor de este campo es ALLOW si el campo action no es BLOCK . De lo contrario, es BLOCK . |
|
event_type | metadata.description | El valor de este campo se toma del campo event_type . |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.