Recoger registros de Tanium Stream
En este documento se explica cómo ingerir registros de Tanium Stream en Google Security Operations mediante la función de exportación nativa de AWS S3 de Tanium Connect. Tanium Stream proporciona telemetría de endpoints en tiempo real, datos de búsqueda de amenazas y analíticas de comportamiento en formato JSON, que se pueden exportar directamente a S3 mediante Tanium Connect sin necesidad de funciones Lambda personalizadas. El analizador transforma los registros JSON sin procesar de Tanium Stream en un modelo de datos unificado (UDM). Primero, normaliza los campos comunes y, después, aplica una lógica específica basada en "logType" o "eventType" para asignar la información pertinente a los campos de UDM adecuados, gestionando varios tipos de eventos, como conexiones de red, inicios de sesión de usuarios, lanzamientos de procesos y modificaciones de archivos.
Antes de empezar
Asegúrate de que cumples los siguientes requisitos previos:
- Una instancia de Google SecOps
- Tanium Core Platform 7.0 o una versión posterior
- Módulo Tanium Stream instalado y configurado
- Módulo Tanium Connect instalado con una licencia válida
- Tanium Threat Response 3.4.346 o una versión posterior (si se usa la integración de TR)
- Acceso privilegiado a la consola de Tanium con derechos de administrador
- Acceso privilegiado a AWS (S3, IAM)
Configurar la cuenta de servicio de Tanium Stream
- Inicia sesión en la consola de Tanium.
- Ve a Módulos > Stream.
- En la parte superior derecha, haz clic en Configuración.
- En la sección Cuenta de servicio, configure lo siguiente:
- Usuario de cuenta de servicio: selecciona un usuario con los permisos de Stream adecuados.
- Verifica que la cuenta tenga el privilegio del rol Usuario de conexión.
- Confirma el acceso a las fuentes de datos y los endpoints de Stream.
- Haga clic en Guardar para aplicar la configuración de la cuenta de servicio.
Recopilar los requisitos previos de Tanium Stream
- Inicia sesión en la consola de Tanium como administrador.
- Vaya a Administración > Permisos > Usuarios.
- Crea o identifica un usuario de cuenta de servicio con los siguientes roles:
- Administrador de Stream o Usuario de solo lectura de Stream.
- Privilegio del rol Conectar usuario.
- Acceso a grupos de ordenadores monitorizados (recomendación: grupo Todos los ordenadores).
- Permiso Leer pregunta guardada para conjuntos de contenido de streaming.
Configurar un segmento de AWS S3 y IAM para Google SecOps
- Crea un segmento de Amazon S3 siguiendo esta guía de usuario: Crear un segmento.
- Guarda el nombre y la región del segmento para consultarlos más adelante (por ejemplo,
tanium-stream-logs
). - 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 usarlas más adelante.
- Haz clic en Listo.
- Selecciona la pestaña Permisos.
- En la sección Políticas de permisos, haz clic en Añadir permisos.
- Selecciona Añadir permisos.
- Seleccione Adjuntar políticas directamente.
- Busca y selecciona la política AmazonS3FullAccess.
- Haz clic en Siguiente.
- Haz clic en Añadir permisos.
Configurar el destino de AWS S3 de Tanium Connect
- Inicia sesión en la consola de Tanium.
- Ve a Módulos > Conectar.
- Haga clic en Crear conexión.
- Proporcione los siguientes detalles de configuración:
- Nombre: introduce un nombre descriptivo (por ejemplo,
Stream Telemetry to S3 for SecOps
). - Descripción: descripción opcional (por ejemplo,
Export endpoint telemetry and threat hunting data to AWS S3 for Google SecOps ingestion
). - Habilitar: selecciona esta opción para que la conexión se ejecute según la programación.
- Nombre: introduce un nombre descriptivo (por ejemplo,
- Haz clic en Siguiente.
Configurar la fuente de la conexión
- En la sección Fuente, proporcione los siguientes detalles de configuración:
- Tipo de fuente: selecciona Pregunta guardada.
- Pregunta guardada: selecciona una de las siguientes preguntas guardadas relacionadas con la emisión:
- Stream - Endpoint Events (Stream - Eventos de endpoint) para obtener telemetría de endpoints en tiempo real.
- Stream - Network Events (Flujo - Eventos de red) para monitorizar la actividad de red.
- Stream - Process Events para hacer un seguimiento de la ejecución de procesos.
- Stream - File Events para la actividad del sistema de archivos.
- Streaming - Datos de búsqueda de amenazas para analíticas de comportamiento.
- Grupo de ordenadores: selecciona Todos los ordenadores o grupos de ordenadores específicos para monitorizar.
- Intervalo de actualización: defina el intervalo adecuado para la recogida de datos (por ejemplo, 5 minutos para la telemetría en tiempo real).
- Haz clic en Siguiente.
Configurar un destino de AWS S3
- En la sección Destino, proporcione los siguientes detalles de configuración:
- Tipo de destino: selecciona AWS S3.
- Nombre del destino: escriba un nombre único (por ejemplo,
Google SecOps Stream S3 Destination
). - Clave de acceso de AWS: introduce la clave de acceso de AWS del archivo CSV descargado en el paso de configuración de AWS S3.
- Clave de acceso secreta de AWS: introduce la clave de acceso secreta de AWS del archivo CSV que has descargado en el paso de configuración de AWS S3.
- Nombre del segmento: introduce el nombre del segmento de S3 (por ejemplo,
tanium-stream-logs
). - Región: selecciona la región de AWS en la que se encuentra tu contenedor de S3.
- Prefijo de clave: introduce un prefijo para los objetos de S3 (por ejemplo,
tanium/stream/
).
- Haz clic en Siguiente.
Configurar filtros
- En la sección Filtros, configure las opciones de filtrado de datos:
- Enviar solo elementos nuevos: selecciona esta opción para enviar solo los datos de telemetría nuevos desde la última exportación.
- Filtros de columnas: añade filtros basados en atributos de eventos específicos si es necesario (por ejemplo, filtra por tipo de evento, nombre de proceso o indicadores de amenazas).
- Haz clic en Siguiente.
Formatear datos para AWS S3
- En la sección Formato, configure el formato de los datos:
- Formato: selecciona JSON.
- Opciones:
- Incluir encabezados: desmarca esta opción para que no se incluyan encabezados en la salida JSON.
- Incluir celdas vacías: selecciona esta opción según tus preferencias.
- Opciones avanzadas:
- Nombres de archivo: usa la nomenclatura predeterminada basada en marcas de tiempo.
- Compresión: selecciona Gzip para reducir los costes de almacenamiento y el tiempo de transferencia.
- Haz clic en Siguiente.
Programar la conexión
- En la sección Programación, configure la programación de la exportación:
- Habilitar programación: selecciona esta opción para habilitar las exportaciones programadas automáticas.
- Tipo de programación: selecciona Recurrente.
- Frecuencia: selecciona Cada 5 minutos para obtener datos de telemetría casi en tiempo real.
- Hora de inicio: define la hora de inicio adecuada para la primera exportación.
- Haz clic en Siguiente.
Guardar y verificar conexión
- Revisa la configuración de la conexión en la pantalla de resumen.
- Haz clic en Guardar para crear la conexión.
- Haz clic en Probar conexión para verificar la configuración.
- Si la prueba se realiza correctamente, haga clic en Ejecutar ahora para realizar una exportación inicial.
- Supervisa el estado de la conexión en la página Vista general de Connect.
Configurar un feed en Google SecOps para ingerir registros de Tanium Stream
- Ve a Configuración de SIEM > Feeds.
- Haz clic en + Añadir nuevo feed.
- En el campo Nombre del feed, introduce un nombre para el feed (por ejemplo,
Tanium Stream logs
). - Selecciona Amazon S3 V2 como Tipo de fuente.
- Seleccione Tanium Stream como Tipo de registro.
- Haz clic en Siguiente.
- Especifique los valores de los siguientes parámetros de entrada:
- URI de S3:
s3://tanium-stream-logs/tanium/stream/
- 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.
- ID de clave de acceso: clave de acceso de usuario con acceso al bucket de S3.
- Clave de acceso secreta: clave secreta del usuario con acceso al bucket de S3.
- Espacio de nombres de recursos: el espacio de nombres de recursos.
- Etiquetas de ingestión: la etiqueta aplicada a los eventos de este feed.
- URI de S3:
- 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 |
---|---|---|
additional.event__AlgorithmName | additional.fields.key: eventAlgorithmName additional.fields.value.string_value: %{additional.eventAlgorithmName} |
Valor tomado directamente del campo de registro sin procesar additional.event__AlgorithmName . |
additional.event__AuthenticationPackageName | target.resource.name: %{additional.event__AuthenticationPackageName} | Valor tomado directamente del campo de registro sin procesar additional.event__AuthenticationPackageName . |
additional.event__CallerProcessId | principal.process.pid: %{additional.event__CallerProcessId} | Valor tomado directamente del campo de registro sin procesar additional.event__CallerProcessId . |
additional.event__CallerProcessName | principal.process.file.fullpath: %{additional.event_CallerProcessName} | Valor tomado directamente del campo de registro sin procesar additional.event__CallerProcessName . |
additional.event__ClientProcessId | principal.process.pid: %{additional.event__ClientProcessId} | Valor tomado directamente del campo de registro sin procesar additional.event__ClientProcessId . |
additional.event__ClientProcessStartKey | additional.fields.key: eventClientProcessStartKey additional.fields.value.string_value: %{additional.eventClientProcessStartKey} |
Valor tomado directamente del campo de registro sin procesar additional.event__ClientProcessStartKey . |
additional.event__CommandLine | target.process.commandline: %{additional.event_CommandLine} | Valor tomado directamente del campo de registro sin procesar additional.event__CommandLine . |
additional.event__ElevatedToken | additional.fields.key: event__ElevatedToken additional.fields.value.string_value: Yes/No |
Valor tomado directamente del campo de registro sin procesar additional.event__ElevatedToken .Si el valor es "%%1842", se sustituye por "Yes". Si el valor es "%%1843", se sustituye por "No". |
additional.event__FQDN | principal.hostname: %{additional.event__FQDN} | Valor tomado directamente del campo de registro sin procesar additional.event__FQDN . |
additional.event__FailureReason | additional.fields.key: eventFailureReason additional.fields.value.string_value: %{additional.eventFailureReason} |
Valor tomado directamente del campo de registro sin procesar additional.event__FailureReason . |
additional.event__ImpersonationLevel | additional.fields.key: eventImpersonationLevel additional.fields.value.string_value: %{additional.eventImpersonationLevel} |
Valor tomado directamente del campo de registro sin procesar additional.event__ImpersonationLevel . |
additional.event__IpAddress | target.ip: %{additional.event__IpAddress} | Valor tomado directamente del campo de registro sin procesar additional.event__IpAddress . |
additional.event__IpPort | target.port: %{additional.event__IpPort} | Valor tomado directamente del campo de registro sin procesar additional.event__IpPort y convertido en un número entero. |
additional.event__KeyLength | additional.fields.key: eventKeyLength additional.fields.value.string_value: %{additional.eventKeyLength} |
Valor tomado directamente del campo de registro sin procesar additional.event__KeyLength . |
additional.event__KeyName | additional.fields.key: eventKeyName additional.fields.value.string_value: %{additional.eventKeyName} |
Valor tomado directamente del campo de registro sin procesar additional.event__KeyName . |
additional.event__KeyType | additional.fields.key: eventKeyType additional.fields.value.string_value: %{additional.eventKeyType} |
Valor tomado directamente del campo de registro sin procesar additional.event__KeyType . |
additional.event__LmPackageName | additional.fields.key: eventLmPackageName additional.fields.value.string_value: %{additional.eventLmPackageName} |
Valor tomado directamente del campo de registro sin procesar additional.event__LmPackageName . |
additional.event__LogonGuid | target.resource.product_objectid: %{additional.event_LogonGuid} | Valor tomado directamente del campo de registro sin procesar additional.event__LogonGuid , sin llaves. |
additional.event__LogonProcessName | target.process.file.fullpath: %{additional.event_LogonProcessName} | Valor tomado directamente del campo de registro sin procesar additional.event__LogonProcessName . |
additional.event__LogonType | extensions.auth.authdetails: Logon Type: %{additional.event_LogonType} | Valor tomado directamente del campo de registro sin procesar additional.event__LogonType . |
additional.event__MandatoryLabel | additional.fields.key: eventMandatoryLabel additional.fields.value.string_value: %{additional.eventMandatoryLabel} |
Valor tomado directamente del campo de registro sin procesar additional.event__MandatoryLabel . |
additional.event__NewProcessId | target.process.pid: %{additional.event__NewProcessId} | Valor tomado directamente del campo de registro sin procesar additional.event__NewProcessId . |
additional.event__NewProcessName | target.process.file.fullpath: %{additional.event_NewProcessName} | Valor tomado directamente del campo de registro sin procesar additional.event__NewProcessName . |
additional.event__ObjectServer | security_result.categorydetails: %{additional.event_ObjectServer} | Valor tomado directamente del campo de registro sin procesar additional.event__ObjectServer . |
additional.event__Operation | additional.fields.key: eventOperation additional.fields.value.string_value: %{additional.eventOperation} |
Valor tomado directamente del campo de registro sin procesar additional.event__Operation . |
additional.event__ParentProcessId | principal.process.parentprocess.pid: %{additional.event_ParentProcessId} | Valor tomado directamente del campo de registro sin procesar additional.event__ParentProcessId . |
additional.event__ParentProcessName | principal.process.parent_process.file.fullpath: %{additional.event_ParentProcessName} | Valor tomado directamente del campo de registro sin procesar additional.event__ParentProcessName . |
additional.event__ProcessId | principal.process.pid: %{additional.event__ProcessId} | Valor tomado directamente del campo de registro sin procesar additional.event__ProcessId . |
additional.event__ProcessName | principal.process.file.fullpath: %{additional.event_ProcessName} | Valor tomado directamente del campo de registro sin procesar additional.event__ProcessName . |
additional.event__PrivilegeList | principal.user.attribute.permissions.name: %{additional.event__PrivilegeList} | Valor tomado directamente del campo de registro sin procesar additional.event__PrivilegeList . |
additional.event__ProviderName | additional.fields.key: eventProviderName additional.fields.value.string_value: %{additional.eventProviderName} |
Valor tomado directamente del campo de registro sin procesar additional.event__ProviderName . |
additional.event__RestrictedAdminMode | additional.fields.key: eventRestrictedAdminMode additional.fields.value.string_value: %{additional.eventRestrictedAdminMode} |
Valor tomado directamente del campo de registro sin procesar additional.event__RestrictedAdminMode . |
additional.event__ReturnCode | additional.fields.key: eventReturnCode additional.fields.value.string_value: %{additional.eventReturnCode} |
Valor tomado directamente del campo de registro sin procesar additional.event__ReturnCode . |
additional.event__RpcCallClientLocality | additional.fields.key: eventRpcCallClientLocality additional.fields.value.string_value: %{additional.eventRpcCallClientLocality} |
Valor tomado directamente del campo de registro sin procesar additional.event__RpcCallClientLocality . |
additional.event__Service | securityresult.description: %{additional.event_Service} | Valor tomado directamente del campo de registro sin procesar additional.event__Service . |
additional.event__Status | additional.fields.key: eventStatus additional.fields.value.string_value: %{additional.eventStatus} |
Valor tomado directamente del campo de registro sin procesar additional.event__Status . |
additional.event__SubStatus | additional.fields.key: eventSubStatus additional.fields.value.string_value: %{additional.eventSubStatus} |
Valor tomado directamente del campo de registro sin procesar additional.event__SubStatus . |
additional.event__SubjectDomainName | principal.administrativedomain: %{additional.event_SubjectDomainName} | Valor tomado directamente del campo de registro sin procesar additional.event__SubjectDomainName . |
additional.event__SubjectLogonId | additional.fields.key: eventSubjectLogonId additional.fields.value.string_value: %{additional.eventSubjectLogonId} |
Valor tomado directamente del campo de registro sin procesar additional.event__SubjectLogonId . |
additional.event__SubjectUserName | principal.user.user_displayname: %{additional.event_SubjectUserName} | Valor tomado directamente del campo de registro sin procesar additional.event__SubjectUserName . |
additional.event__SubjectUserSid | principal.user.windowssid: %{additional.event_SubjectUserSid} | Valor tomado directamente del campo de registro sin procesar additional.event__SubjectUserSid . |
additional.event__TaskContentNew | additional.fields.key: eventTaskContentNew additional.fields.value.string_value: %{additional.eventTaskContentNew} |
Valor tomado directamente del campo de registro sin procesar additional.event__TaskContentNew . |
additional.event__TaskName | additional.fields.key: eventTaskName additional.fields.value.string_value: %{additional.eventTaskName} |
Valor tomado directamente del campo de registro sin procesar additional.event__TaskName . |
additional.event__TargetDomainName | target.administrativedomain: %{additional.event_TargetDomainName} | Valor tomado directamente del campo de registro sin procesar additional.event__TargetDomainName . |
additional.event__TargetLinkedLogonId | additional.fields.key: eventTargetLinkedLogonId additional.fields.value.string_value: %{additional.eventTargetLinkedLogonId} |
Valor tomado directamente del campo de registro sin procesar additional.event__TargetLinkedLogonId . |
additional.event__TargetLogonId | additional.fields.key: eventTargetLogonId additional.fields.value.string_value: %{additional.eventTargetLogonId} |
Valor tomado directamente del campo de registro sin procesar additional.event__TargetLogonId . |
additional.event__TargetOutboundDomainName | additional.fields.key: eventTargetOutboundDomainName additional.fields.value.string_value: %{additional.eventTargetOutboundDomainName} |
Valor tomado directamente del campo de registro sin procesar additional.event__TargetOutboundDomainName . |
additional.event__TargetOutboundUserName | additional.fields.key: eventTargetOutboundUserName additional.fields.value.string_value: %{additional.eventTargetOutboundUserName} |
Valor tomado directamente del campo de registro sin procesar additional.event__TargetOutboundUserName . |
additional.event__TargetSid | target.user.windowssid: %{additional.event_TargetSid} | Valor tomado directamente del campo de registro sin procesar additional.event__TargetSid . |
additional.event__TargetUserName | target.user.userid: %{additional.event__TargetUserName} | Valor tomado directamente del campo de registro sin procesar additional.event__TargetUserName . |
additional.event__TargetUserSid | target.user.windowssid: %{additional.event_TargetUserSid} | Valor tomado directamente del campo de registro sin procesar additional.event__TargetUserSid . |
additional.event__TokenElevationType | additional.fields.key: eventTokenElevationType additional.fields.value.string_value: %{additional.eventTokenElevationType} |
Valor tomado directamente del campo de registro sin procesar additional.event__TokenElevationType . |
additional.event__TransmittedServices | additional.fields.key: eventTransmittedServices additional.fields.value.string_value: %{additional.eventTransmittedServices} |
Valor tomado directamente del campo de registro sin procesar additional.event__TransmittedServices . |
additional.event__VirtualAccount | additional.fields.key: eventVirtualAccount additional.fields.value.string_value: %{additional.eventVirtualAccount} |
Valor tomado directamente del campo de registro sin procesar additional.event__VirtualAccount . |
additional.event__WorkstationName | target.hostname: %{additional.event__WorkstationName} | Valor tomado directamente del campo de registro sin procesar additional.event__WorkstationName . |
additional.event_id | security_result.rule_name: EventID: %{additional.event_id} | Valor tomado directamente del campo de registro sin procesar additional.event_id y convertido en una cadena. |
additional.query | network.dns.questions.name: %{additional.query} | Valor tomado directamente del campo de registro sin procesar additional.query . |
additional.response | network.dns.answers.name: %{additional.response} | Valor tomado directamente del campo de registro sin procesar additional.response . |
metadata.description | metadata.description: %{metadata.description} | Valor tomado directamente del campo de registro sin procesar metadata.description . |
metadata.eventTimestamp | metadata.event_timestamp.seconds: Extracted from %{metadata.eventTimestamp} metadata.event_timestamp.nanos: Extracted from %{metadata.eventTimestamp} |
Los segundos y los nanosegundos se extraen del campo de registro sin procesar metadata.eventTimestamp mediante el análisis de fechas. |
metadata.eventType | metadata.product_event_type: %{metadata.eventType} metadata.event_type: %{metadata.eventType} |
Valor tomado directamente del campo de registro sin procesar metadata.eventType . |
metadata.logType | metadata.product_event_type: %{metadata.logType} metadata.event_type: %{metadata.logType} |
Valor tomado directamente del campo de registro sin procesar metadata.logType . |
network.applicationProtocol | network.application_protocol: %{network.applicationProtocol} | Valor tomado directamente del campo de registro sin procesar network.applicationProtocol . |
network.direction | network.direction: %{network.direction} | Valor tomado directamente del campo de registro sin procesar network.direction . |
network.ipProtocol | network.ip_protocol: %{network.ipProtocol} | Valor tomado directamente del campo de registro sin procesar network.ipProtocol . |
principal.assetId | principal.asset_id: TANIUM:%{principal.assetId} | Valor tomado directamente del campo de registro sin procesar principal.assetId y con el prefijo "TANIUM:". |
principal.hostname | principal.hostname: %{principal.hostname} | Valor tomado directamente del campo de registro sin procesar principal.hostname . |
principal.process.companySpecificParentProcessId | principal.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.companySpecificParentProcessId} | Valor tomado directamente del campo de registro sin procesar principal.process.companySpecificParentProcessId y con el formato "TANIUM:%{principal.assetId}:%{principal.process.companySpecificParentProcessId}". |
principal.process.companySpecificProcessId | principal.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.companySpecificProcessId} | Valor tomado directamente del campo de registro sin procesar principal.process.companySpecificProcessId y con el formato "TANIUM:%{principal.assetId}:%{principal.process.companySpecificProcessId}". |
principal.process.commandLine | target.process.command_line: %{principal.process.commandLine} | Valor tomado directamente del campo de registro sin procesar principal.process.commandLine , con las comillas dobles eliminadas y los guiones sustituidos por signos &. |
principal.process.file.fullPath | target.process.file.full_path: %{principal.process.file.fullPath} | Valor tomado directamente del campo de registro sin procesar principal.process.file.fullPath . |
principal.process.file.md5 | target.process.file.md5: %{principal.process.file.md5} | Valor tomado directamente del campo de registro sin procesar principal.process.file.md5 y convertido a minúsculas. |
principal.process.parentPid | principal.process.pid: %{principal.process.parentPid} | Valor tomado directamente del campo de registro sin procesar principal.process.parentPid solo para eventos PROCESS_LAUNCH . |
principal.process.pid | target.process.pid: %{principal.process.pid} | Valor tomado directamente del campo de registro sin procesar principal.process.pid solo para eventos PROCESS_LAUNCH . |
principal.process.productSpecificProcessId | principal.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId} | Valor tomado directamente del campo de registro sin procesar principal.process.productSpecificProcessId y con el formato "TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId}". |
principal.user.groupid | principal.user.group_identifiers: %{principal.user.groupid} | Valor tomado directamente del campo de registro sin procesar principal.user.groupid . |
principal.user.userid | principal.user.userid: %{principal.user.userid} | Valor tomado directamente del campo de registro sin procesar principal.user.userid . |
src.ip | principal.ip: %{src.ip} | Valor tomado directamente del campo de registro sin procesar src.ip . |
src.port | principal.port: %{src.port} | Valor tomado directamente del campo de registro sin procesar src.port y convertido en un número entero. |
target.file.fullPath | target.file.full_path: %{target.file.fullPath} | Valor tomado directamente del campo de registro sin procesar target.file.fullPath . |
target.file.md5 | target.file.md5: %{target.file.md5} | Valor tomado directamente del campo de registro sin procesar target.file.md5 . |
target.port | target.port: %{target.port} | Valor tomado directamente del campo de registro sin procesar target.port y convertido en un número entero. |
target.registry.registryKey | target.registry.registry_key: %{target.registry.registryKey} | Valor tomado directamente del campo de registro sin procesar target.registry.registryKey . |
target.registry.registryValue | target.registry.registry_value_data: %{target.registry.registryValue} | Valor tomado directamente del campo de registro sin procesar target.registry.registryValue . |
target.user.userDisplayName | target.user.user_display_name: %{target.user.userDisplayName} | Valor tomado directamente del campo de registro sin procesar target.user.userDisplayName . |
target.user.windowsSid | target.user.windows_sid: %{target.user.windowsSid} | Valor tomado directamente del campo de registro sin procesar target.user.windowsSid . |
user-agent | network.http.user_agent: %{user-agent} | Valor tomado directamente del campo de registro sin procesar user-agent , con las comillas dobles quitadas. |
N/A | extensions.auth.auth_mechanism: LOCAL/NETWORK/BATCH/SERVICE/UNLOCK/NETWORK_CLEAR_TEXT/NEW_CREDENTIALS/REMOTE_INTERACTIVE/CACHED_INTERACTIVE/MECHANISM_UNSPECIFIED | Determinado por el código del analizador en función del valor de additional.event__LogonType . |
N/A | extensions.auth.type: MACHINE | Añadido por el código del analizador para los eventos USER_LOGIN y USER_LOGOUT . |
N/A | metadata.event_type: PROCESS_LAUNCH/NETWORK_CONNECTION/FILE_OPEN/FILE_DELETION/REGISTRY_MODIFICATION/USER_LOGIN/STATUS_UPDATE/USER_LOGOUT/PROCESS_MODULE_LOAD/PROCESS_TERMINATION/USER_CHANGE_PERMISSIONS/SCHEDULED_TASK_MODIFICATION/SCHEDULED_TASK_DISABLE/SCHEDULED_TASK_ENABLE/SCHEDULED_TASK_DELETION/SCHEDULED_TASK_CREATION/PROCESS_UNCATEGORIZED | Determinado por el código del analizador en función del valor de metadata.logType y additional.event_id . |
N/A | metadata.log_type: TANIUM_TH | Valor codificado añadido por el código del analizador. |
N/A | metadata.product_name: Stream | Valor codificado añadido por el código del analizador. |
N/A | metadata.vendor_name: Tanium | Valor codificado añadido por el código del analizador. |
N/A | principal.hostname: %{principal_hostname} | Valor tomado de principal.hostname o additional.event__FQDN . |
N/A | principal.ip: %{srcIp} | Se extrae del mensaje de registro sin procesar mediante grok si src.ip está presente. |
N/A | securityresult.about.resource.name: %{additional.event_AuthenticationPackageName} | Valor tomado directamente del campo de registro sin procesar additional.event__AuthenticationPackageName para valores de additional.event_id específicos. |
N/A | security_result.category: AUTH_VIOLATION | Añadido por el código del analizador para valores additional.event_id específicos. |
N/A | security_result.rule_name: EventID: %{additional.event_id} | Valor tomado directamente del campo de registro sin procesar additional.event_id y convertido en una cadena. |
N/A | target.hostname: %{query_host} | Se extrae del campo de registro sin procesar additional.query si contiene un nombre de host. |
N/A | target.ip: %{dstIp} | Se extrae del mensaje de registro sin procesar mediante grok si src.ip está presente. |
N/A | target.ip: %{query_ip} | Se extrae del campo de registro sin procesar additional.query si contiene una dirección IP. |
N/A | target.process.command_line: %{principal_process_commandLine} | Valor tomado de principal.process.commandLine si no está vacío. |
N/A | target.process.file.full_path: %{principal_process_file_fullPath} | Valor tomado de principal.process.file.fullPath si no está vacío. |
N/A | target.process.file.md5: %{principal_process_file_md5} | Valor tomado de principal.process.file.md5 si no está vacío. |
N/A | target.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId} | Valor tomado de principal.process.productSpecificProcessId y con el formato "TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId}". |
N/A | target.resource.resource_type: TASK | Añadido por el código del analizador para valores additional.event_id específicos. |
N/A | timestamp.seconds: Extracted from %{metadata.eventTimestamp} timestamp.nanos: Extracted from %{metadata.eventTimestamp} |
Los segundos y los nanosegundos se extraen del campo de registro sin procesar metadata.eventTimestamp mediante el análisis de fechas. |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.