Crea extensiones del analizador con Gemini
En esta guía, se explica cómo los analistas de seguridad y los ingenieros de detección pueden usar instrucciones en lenguaje natural para aumentar los analizadores de registros predeterminados. Con la función AI Parser Extension, puedes extraer rápidamente campos adicionales, aplicar lógica condicional y asignar registros sin procesar al modelo de datos unificado (UDM) sin escribir una sintaxis de analizador compleja ni expresiones regulares.
Cuando un analizador de registros predeterminado en Google SecOps analiza tu fuente de registros, es posible que omita atributos personalizados específicos del cliente, campos opcionales o telemetría especializada. Con la función AI Parser Extension, puedes hacer lo siguiente:
- Extraer campos adicionales de registros sin procesar y asignarlos a campos UDM estándar o
additional.fieldspersonalizados - Aplicar lógica condicional y transformaciones de valores, como asignar acciones de cadena a tipos enumerados de UDM
- Refinar las extensiones generadas de forma interactiva en sesiones de chat de varios turnos sin comenzar desde cero
Terminología clave
- Modelo de datos unificado (UDM): Es la estructura de datos estándar que se usa en Google SecOps para almacenar y analizar datos de registro.
Antes de comenzar
Antes de comenzar, confirma que se cumplan los siguientes requisitos:
- Cuotas de uso: Puedes ejecutar un máximo de 10 sesiones de generación de AI Parser Extension por período de las 24 horas, con hasta 5 mensajes por sesión.
Prácticas recomendadas para crear instrucciones
Para obtener extensiones del analizador precisas en el primer intento, sigue estos lineamientos para crear instrucciones:
- Especifica el origen y el destino de forma explícita: Indica claramente qué parte del registro sin procesar se debe extraer y qué ruta de campo UDM exacta se debe propagar, por ejemplo,
principal.ip,target.user.email_addressesosecurity_result.action. - Usa comillas para literales de concordancia exacta: Cuando hagas referencia a cadenas literales, delimitadores o valores de muestra en registros no estructurados, inclúyelos entre comillas, por ejemplo,
"198.51.100.0"o"allow". - Controla los campos personalizados con additional.fields: Para los atributos propietarios o específicos del proveedor que no tienen un campo UDM dedicado, indica a la IA que los asigne a
additional.fieldscon un nombre de clave claro, por ejemplo,additional.fields["application"].
Genera una extensión del analizador
Puedes iniciar el flujo de trabajo de la extensión del analizador desde cualquiera de las siguientes ubicaciones en Google SecOps:
- Página de configuración de analizadores: Navega a la página Analyzers para seleccionar y extender cualquier analizador de registros existente.
- Página de búsqueda: Cuando investigues registros en la página Search, abre el flujo de creación de extensiones directamente desde un evento con campos sin analizar.
Para generar una extensión del analizador desde la página de configuración de Analyzers, sigue estos pasos:
- En Google SecOps, navega a la página de configuración de Analyzers.
- Busca el tipo de registro que deseas extender.
- Haz clic en el menú junto al analizador y selecciona la opción para extenderlo.
- En el campo RAW LOG, pega una muestra del registro que deseas analizar.
- En la sección Extension Method, selecciona la pestaña Generate with AI.
- En el campo de instrucción, ingresa una descripción en inglés simple de la extracción.
Haz clic en Confirmar.
El sistema genera el código de extensión y actualiza el UDM Output.
Refina la extensión del analizador
Puedes compilar y refinar tu extensión del analizador de forma iterativa en sesiones de chat de varios turnos. Cuando envías una instrucción de seguimiento, la IA aplica tus nuevas instrucciones sobre la extensión generada anteriormente. Las asignaciones existentes y la lógica condicional de turnos anteriores se conservan automáticamente, a menos que pidas explícitamente que se anulen o quiten.
- En el campo de instrucción, ingresa una instrucción de seguimiento para ajustar el código generado.
- Haz clic en Confirmar.
- Después de cada instrucción, obtén una vista previa del código de extensión generado, inspecciona los resultados de muestra de UDM y confirma o ajusta la lógica.
En el siguiente flujo de trabajo de ejemplo, se muestra cómo el refinamiento iterativo compila una extensión del analizador en varios turnos:
- Turno 1 (extracción inicial):
- Instrucción del usuario:
"Extract source IP '198.51.100.0' to principal.ip and destination IP '198.51.100.1' to target.ip." - Resultado: La IA genera una extensión que asigna
principal.ipytarget.ip.
- Instrucción del usuario:
- Turno 2 (asignación aditiva):
- Instrucción del usuario:
"Also map virtual system string 'vsys1' to observer.administrative_domain." - Resultado: La IA actualiza la extensión para asignar
observer.administrative_domainy, al mismo tiempo, mantener las asignaciones de IP del turno 1.
- Instrucción del usuario:
- Turno 3 (refinamiento condicional):
- Instrucción del usuario:
"In addition, map action string 'allow' to security_result[0].action as ALLOW." - Resultado: La IA incorpora la asignación de enumeración de acciones condicionales sobre todas las extracciones anteriores.
- Instrucción del usuario:
Valida la extensión del analizador
- Haz clic en Validar.
- Revisa las métricas de validación después de que se complete el proceso.
Accede a la información de referencia
Usa los siguientes ejemplos para crear instrucciones precisas.
Instrucciones de registros estructurados
Para los registros estructurados en los que los datos se organizan en claves, atributos o etiquetas XML con nombre, especifica los nombres o las rutas de los campos en tu instrucción.
Registro estructurado de muestra: Formato JSON
{
"insertId": "u0mlpdesys",
"logName": "projects/sample-project-id/logs/cloudaudit.googleapis.com%2Fdata_access",
"protoPayload": {
"authenticationInfo": {
"principalEmail": "analyst@example-domain.com"
},
"methodName": "GenerateAccessToken",
"requestMetadata": {
"callerIp": "203.0.113.195",
"callerSuppliedUserAgent": "google-cloud-sdk gcloud/392.0.0"
},
"resourceName": "projects/-/serviceAccounts/110649196922301550006",
"serviceName": "iamcredentials.googleapis.com"
}
}
Ejemplos de instrucciones para registros estructurados
| Instrucción de la instrucción | Campo o clave de origen | Campo UDM de destino |
|---|---|---|
"Map principalEmail to principal.user.email_addresses." |
principalEmail |
principal.user.email_addresses |
"Extract callerIp to principal.ip and methodName to metadata.product_event_type." |
callerIp, methodName |
principal.ip, metadata.product_event_type |
"Map resourceName to target.resource.name and serviceName to target.application." |
resourceName, serviceName |
target.resource.name, target.application |
"From XML tags, map /Event/System/Hostname to principal.hostname." |
/Event/System/Hostname |
principal.hostname |
Instrucciones de registros no estructurados
Para los registros no estructurados, especifica valores literales directamente desde el registro de muestra, referencias posicionales o etiquetas descriptivas.
Mensaje syslog no estructurado de muestra
<14>Nov 9 18:52:45 198.51.100.1 1,2021/11/09 18:52:45,007051000184334,TRAFFIC,start,2561,2021/11/09 18:52:45,198.51.100.0,198.51.100.1,0.0.0.0,0.0.0.0,any allow,,,ping,vsys1,LAN,LAN,ethernet1/2,ethernet1/2,LFPpan,2021/11/09 18:52:45,9729,6,0,0,2048,0,0x100000,icmp,allow,444,444,0,6
Ejemplos de instrucciones para registros no estructurados
| Instrucción de la instrucción | Valor literal o descripción de muestra | Campo UDM de destino |
|---|---|---|
"Extract source IP '198.51.100.0' to principal.ip and destination IP '198.51.100.1' to target.ip." |
'198.51.100.0', '198.51.100.1' |
principal.ip, target.ip |
"Extract the application string 'ping' from the log and map it to additional.fields['application']." |
'ping' |
additional.fields["application"] |
"Map rule name 'any allow' to security_result.rule_id." |
'any allow' |
security_result[0].rule_id |
"Extract sent bytes and received bytes into network.sent_bytes and network.received_bytes." |
Contadores de bytes numéricos en el registro | network.sent_bytes, network.received_bytes |
Instrucciones de lógica condicional
Describe la lógica condicional para normalizar los valores de registro sin procesar en enumeraciones UDM específicas.
- Normalización de enumeración:
"If the firewall action in the log is 'allow', set security_result.action to ALLOW; otherwise set security_result.action to BLOCK." - Asignación de campos condicional:
"If the protocol is 'icmp', map the ICMP type and code into network.icmp.type and network.icmp.code." - Asignación de estado:
"When the log status contains 'success' or '0', set security_result.severity to INFO; if it contains 'error', set it to ERROR."
Límites de uso
Para mantener un rendimiento óptimo y la disponibilidad de recursos, la función AI Parser Extension aplica las siguientes cuotas de uso:
- 10 sesiones por las 24 horas: Cada cliente tiene asignado un máximo de 10 sesiones de generación de AI Parser Extension por período de las 24 horas.
- 5 mensajes por sesión: En una sola sesión, puedes enviar hasta 5 mensajes, incluida la instrucción inicial y los turnos de refinamiento posteriores, para crear y refinar la extensión del analizador.
Si alcanzas el límite de mensajes de la sesión, puedes guardar la extensión actual o iniciar una sesión nueva.
¿Qué sigue?
- Para obtener más detalles sobre otros métodos de extensión del analizador, consulta Desarrolla extensiones del analizador.
- Para obtener fragmentos y situaciones de ejemplo de extensiones, consulta Ejemplos de extensiones del analizador.
- Para obtener una descripción general de cómo se analizan los registros sin procesar en UDM, consulta Descripción general del análisis de registros.
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.