Recopila registros de Tanium Stream
En este documento, se explica cómo transferir registros de Tanium Stream a Google Security Operations con la funcionalidad nativa de exportación de AWS S3 de Tanium Connect. Tanium Stream proporciona telemetría de extremos en tiempo real, datos de búsqueda de amenazas y análisis de comportamiento en formato JSON, que se pueden exportar directamente a S3 con Tanium Connect sin necesidad de funciones de 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, luego, aplica una lógica específica basada en el "logType" o "eventType" para asignar la información relevante a los campos de UDM adecuados, lo que controla varios tipos de eventos, como conexiones de red, accesos de usuarios, inicios de procesos y modificaciones de archivos.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Una instancia de Google SecOps
- Tanium Core Platform 7.0 o 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 posterior (si se usa la integración de TR)
- Acceso con privilegios a la consola de Tanium con derechos administrativos
- Acceso con privilegios a AWS (S3, IAM)
Configura la cuenta de servicio de Tanium Stream
- Accede a la consola de Tanium.
- Ve a Módulos > Transmisión.
- Haz clic en Configuración en la esquina superior derecha.
- En la sección Cuenta de servicio, configura lo siguiente:
- Usuario de la cuenta de servicio: Selecciona un usuario con los permisos de Stream adecuados.
- Verifica que la cuenta tenga el privilegio del rol de usuario de Connect.
- Confirma el acceso a las fuentes de datos y los extremos de Stream.
- Haz clic en Guardar para aplicar la configuración de la cuenta de servicio.
Requisitos previos para recopilar datos de Tanium Stream
- Accede a la consola de Tanium como administrador.
- Ve a Administración > Permisos > Usuarios.
- Crea o identifica un usuario de cuenta de servicio con los siguientes roles:
- Rol de administrador de transmisiones o usuario con acceso de solo lectura a transmisiones
- Privilegio de rol Conectar usuario.
- Acceso a los grupos de computadoras supervisados (se recomienda el grupo Todas las computadoras).
- Permiso Leer pregunta guardada para los conjuntos de contenido de transmisión
Configura el bucket de AWS S3 y la IAM para Google SecOps
- Crea un bucket de Amazon S3 siguiendo esta guía del usuario: Cómo crear un bucket
- Guarda el Nombre y la Región del bucket para consultarlos en el futuro (por ejemplo,
tanium-stream-logs). - Crea un usuario siguiendo esta guía del usuario: Crea un usuario de IAM.
- Selecciona el usuario creado.
- Selecciona la pestaña Credenciales de seguridad.
- Haz clic en Crear clave de acceso en la sección Claves de acceso.
- Selecciona Servicio de terceros como el Caso de uso.
- Haz clic en Siguiente.
- Opcional: Agrega una etiqueta de descripción.
- Haz clic en Crear clave de acceso.
- Haz clic en Download CSV file para guardar la Access Key y la Secret Access Key para usarlas más adelante.
- Haz clic en Listo.
- Selecciona la pestaña Permisos.
- Haz clic en Agregar permisos en la sección Políticas de permisos.
- Selecciona Agregar permisos.
- Selecciona Adjuntar políticas directamente.
- Busca y selecciona la política AmazonS3FullAccess.
- Haz clic en Siguiente.
- Haz clic en Agregar permisos.
Configura el destino de AWS S3 de Tanium Connect
- Accede a la consola de Tanium.
- Ve a Módulos > Conectar.
- Haz clic en Create Connection.
- Proporciona los siguientes detalles de configuración:
- Nombre: Ingresa un nombre descriptivo (por ejemplo,
Stream Telemetry to S3 for SecOps). - Descripción: Es una 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 habilitar la conexión y que se ejecute según lo programado.
- Nombre: Ingresa un nombre descriptivo (por ejemplo,
- Haz clic en Siguiente.
Configura la fuente de conexión
- En la sección Fuente, proporciona los siguientes detalles de configuración:
- Tipo de fuente: Selecciona Pregunta guardada.
- Pregunta guardada: Selecciona una de las siguientes preguntas guardadas relacionadas con la transmisión:
- Stream - Endpoint Events para la telemetría de extremos en tiempo real.
- Transmisión: Eventos de red para la supervisión de la actividad de red.
- Transmisión: Eventos de proceso para el seguimiento de la ejecución de procesos.
- Stream - File Events para la actividad del sistema de archivos.
- Transmisión: Datos de búsqueda de amenazas para estadísticas de comportamiento.
- Grupo de computadoras: Selecciona Todas las computadoras o grupos de computadoras específicos para supervisar.
- Intervalo de actualización: Establece un intervalo adecuado para la recopilación de datos (por ejemplo, 5 minutos para la telemetría en tiempo real).
- Haz clic en Siguiente.
Configura el destino de AWS S3
- En la sección Destino, proporciona los siguientes detalles de configuración:
- Tipo de destino: Selecciona AWS S3.
- Nombre del destino: Ingresa un nombre único (por ejemplo,
Google SecOps Stream S3 Destination). - Clave de acceso de AWS: Ingresa 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: Ingresa la clave de acceso secreta de AWS del archivo CSV descargado en el paso de configuración de AWS S3.
- Nombre del bucket: Ingresa el nombre de tu bucket de S3 (por ejemplo,
tanium-stream-logs). - Región: Selecciona la región de AWS en la que se encuentra tu bucket de S3.
- Prefijo de clave: Ingresa un prefijo para los objetos de S3 (por ejemplo,
tanium/stream/).
- Haz clic en Siguiente.
Configura filtros
- En la sección Filtros, configura 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: Agrega filtros basados en atributos de eventos específicos si es necesario (por ejemplo, filtra por tipo de evento, nombre del proceso o indicadores de amenazas).
- Haz clic en Siguiente.
Asigna un formato a los datos para AWS S3
- En la sección Formato, configura el formato de los datos:
- Formato: Selecciona JSON.
- Opciones:
- Incluir encabezados: Desmarca esta opción para evitar encabezados en el resultado JSON.
- Incluir celdas vacías: Selecciona esta opción según tus preferencias.
- Opciones avanzadas:
- Nombres de archivos: Usa los nombres predeterminados basados en marcas de tiempo.
- Compresión: Selecciona Gzip para reducir los costos de almacenamiento y el tiempo de transferencia.
- Haz clic en Siguiente.
Programa la conexión
- En la sección Programa, configura el programa de exportación:
- Habilitar programa: Selecciona esta opción para habilitar las exportaciones programadas automáticas.
- Tipo de programa: Selecciona Recurrente.
- Frecuencia: Selecciona Cada 5 minutos para obtener datos de telemetría casi en tiempo real.
- Hora de inicio: Establece la hora de inicio adecuada para la primera exportación.
- Haz clic en Siguiente.
Guardar y verificar la 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, haz clic en Ejecutar ahora para realizar una exportación inicial.
- Supervisa el estado de la conexión en la página Descripción general de Connect.
Configura un feed en Google SecOps para transferir registros de Tanium Stream
- Ve a Configuración > Administración de datos > Feeds. Si estás en una plataforma solo de SIEM, ve a Configuración > Feeds.
- Haz clic en + Agregar feed nuevo.
- En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo,
Tanium Stream logs). - Selecciona Amazon S3 V2 como el Tipo de fuente.
- Selecciona Tanium Stream como el Tipo de registro.
- Haz clic en Siguiente.
- Especifica valores para 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 según tu preferencia.
- Antigüedad máxima del archivo: Incluye los archivos modificados en la última cantidad de días. El valor predeterminado es 180 días.
- ID de clave de acceso: Es la clave de acceso del usuario con acceso al bucket de S3.
- Clave de acceso secreta: Es la clave secreta del usuario con acceso al bucket de S3.
- Espacio de nombres del recurso: Es el espacio de nombres del recurso.
- Etiquetas de transferencia: Es la etiqueta que se aplica a los eventos de este feed.
- URI de S3:
- Haz clic en Siguiente.
- Revisa la configuración de tu feed de noticias nuevo en la pantalla Finalizar y, luego, haz 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 |
Es el valor que se toma directamente del campo de registro sin procesar additional.event__ElevatedToken.Si el valor es "%%1842", se reemplaza por "Sí". Si el valor es "%%1843", se reemplaza 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} | Es el 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} | Es el valor tomado directamente del campo de registro sin procesar additional.event__LogonGuid sin las 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} | Es el valor que se toma directamente del campo de registro sin procesar additional.event_id y se convierte 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 nanosegundos se extraen del campo de registro sin procesar metadata.eventTimestamp con 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} | Es el 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} | Es el valor que se toma directamente del campo de registro sin procesar principal.process.companySpecificParentProcessId y se formatea como "TANIUM:%{principal.assetId}:%{principal.process.companySpecificParentProcessId}". |
| principal.process.companySpecificProcessId | principal.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.companySpecificProcessId} | Es el 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} | Es el valor tomado directamente del campo de registro sin procesar principal.process.commandLine sin las comillas dobles y con los guiones reemplazados por símbolos de unión. |
| 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} | Es el valor que se toma directamente del campo de registro sin procesar principal.process.file.md5 y se convierte en minúsculas. |
| principal.process.parentPid | principal.process.pid: %{principal.process.parentPid} | Es el valor que se toma directamente del campo de registro sin procesar principal.process.parentPid solo para los eventos PROCESS_LAUNCH. |
| principal.process.pid | target.process.pid: %{principal.process.pid} | Es el valor que se toma directamente del campo de registro sin procesar principal.process.pid solo para los eventos PROCESS_LAUNCH. |
| principal.process.productSpecificProcessId | principal.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId} | Es el 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} | Es el 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} | Es el 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} | Es el valor tomado directamente del campo de registro sin procesar user-agent sin las comillas dobles. |
| N/A | extensions.auth.auth_mechanism: LOCAL/NETWORK/BATCH/SERVICE/UNLOCK/NETWORK_CLEAR_TEXT/NEW_CREDENTIALS/REMOTE_INTERACTIVE/CACHED_INTERACTIVE/MECHANISM_UNSPECIFIED | Lo determina el código del analizador según el valor de additional.event__LogonType. |
| N/A | extensions.auth.type: MACHINE | Se agrega mediante 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 | Se determina por el código del analizador según el valor de metadata.logType y additional.event_id. |
| N/A | metadata.log_type: TANIUM_TH | Es el valor codificado que agrega el código del analizador. |
| N/A | metadata.product_name: Stream | Es el valor codificado que agrega el código del analizador. |
| N/A | metadata.vendor_name: Tanium | Es el valor codificado que agrega el código del analizador. |
| N/A | principal.hostname: %{principal_hostname} | El valor se toma de principal.hostname o additional.event__FQDN. |
| N/A | principal.ip: %{srcIp} | Se extrae del mensaje de registro sin procesar con grok si src.ip está presente. |
| N/A | securityresult.about.resource.name: %{additional.event_AuthenticationPackageName} | Es el valor que se toma directamente del campo de registro sin procesar additional.event__AuthenticationPackageName para valores additional.event_id específicos. |
| N/A | security_result.category: AUTH_VIOLATION | Se agrega mediante el código del analizador para valores específicos de additional.event_id. |
| N/A | security_result.rule_name: EventID: %{additional.event_id} | Es el valor que se toma directamente del campo de registro sin procesar additional.event_id y se convierte 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 con 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} | El valor se toma de principal.process.commandLine si no está vacío. |
| N/A | target.process.file.full_path: %{principal_process_file_fullPath} | El valor se toma de principal.process.file.fullPath si no está vacío. |
| N/A | target.process.file.md5: %{principal_process_file_md5} | El valor se toma 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 | Se agrega mediante el código del analizador para valores específicos de additional.event_id. |
| N/A | timestamp.seconds: Extracted from %{metadata.eventTimestamp} timestamp.nanos: Extracted from %{metadata.eventTimestamp} |
Los segundos y nanosegundos se extraen del campo de registro sin procesar metadata.eventTimestamp con el análisis de fechas. |
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.