Recoger registros de Tanium Threat Response

Disponible en:

En este documento se explica cómo ingerir registros de Tanium Threat Response en Google Security Operations mediante la función de exportación nativa de AWS S3 de Tanium Connect. Tanium Threat Response genera alertas de detección de amenazas, resultados de investigaciones y datos de respuesta a incidentes en formato JSON, que se pueden exportar directamente a S3 mediante Tanium Connect sin necesidad de usar funciones Lambda personalizadas. El analizador transforma los datos JSON sin procesar de Tanium Threat Response en un modelo de datos unificado (UDM). Primero, intenta analizar el mensaje entrante como JSON, gestiona los posibles errores y, a continuación, extrae y asigna los campos relevantes a la estructura de UDM, incluidos los detalles sobre el host, el usuario, el proceso, la actividad de red y los resultados de seguridad afectados.

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 Threat Response instalado y configurado
  • Módulo Tanium Connect instalado con una licencia válida
  • Tanium Direct Connect 1.9.30 o versiones posteriores para las funciones de investigación
  • Acceso privilegiado a la consola de Tanium con derechos de administrador
  • Acceso privilegiado a AWS (S3, IAM)

Configurar la cuenta de servicio de Tanium Threat Response

  1. Inicia sesión en la consola de Tanium.
  2. Ve a Módulos > Respuesta ante amenazas.
  3. En la parte superior derecha, haz clic en Configuración.
  4. En la sección Cuenta de servicio, configure lo siguiente:
    • Usuario de cuenta de servicio: selecciona un usuario con los permisos de respuesta ante amenazas adecuados.
    • Verifica que la cuenta tenga el privilegio del rol Usuario de conexión.
    • Confirma el acceso a las alertas de respuesta ante amenazas y a los datos de investigación.
  5. Haga clic en Guardar para aplicar la configuración de la cuenta de servicio.

Recopilar los requisitos previos de Tanium Threat Response

  1. Inicia sesión en la consola de Tanium como administrador.
  2. Vaya a Administración > Permisos > Usuarios.
  3. Crea o identifica un usuario de cuenta de servicio con los siguientes roles:
    • Rol Administrador de respuesta ante amenazas o Usuario de solo lectura de respuesta ante amenazas.
    • 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 respuesta ante amenazas.

Configurar un segmento de AWS S3 y IAM para Google SecOps

  1. Crea un segmento de Amazon S3 siguiendo esta guía de usuario: Crear un segmento.
  2. Guarda el nombre y la región del segmento para consultarlos más adelante (por ejemplo, tanium-threat-response-logs).
  3. Crea un usuario siguiendo esta guía: Crear un usuario de gestión de identidades y accesos.
  4. Selecciona el Usuario creado.
  5. Selecciona la pestaña Credenciales de seguridad.
  6. En la sección Claves de acceso, haz clic en Crear clave de acceso.
  7. Selecciona Servicio de terceros como Caso práctico.
  8. Haz clic en Siguiente.
  9. Opcional: añade una etiqueta de descripción.
  10. Haz clic en Crear clave de acceso.
  11. Haz clic en Descargar archivo CSV para guardar la clave de acceso y la clave de acceso secreta para usarlas más adelante.
  12. Haz clic en Listo.
  13. Selecciona la pestaña Permisos.
  14. En la sección Políticas de permisos, haz clic en Añadir permisos.
  15. Selecciona Añadir permisos.
  16. Seleccione Adjuntar políticas directamente.
  17. Busca y selecciona la política AmazonS3FullAccess.
  18. Haz clic en Siguiente.
  19. Haz clic en Añadir permisos.

Configurar el destino de AWS S3 de Tanium Connect

  1. Inicia sesión en la consola de Tanium.
  2. Ve a Módulos > Conectar.
  3. Haga clic en Crear conexión.
  4. Proporcione los siguientes detalles de configuración:
    • Nombre: introduce un nombre descriptivo (por ejemplo, Threat Response Alerts to S3 for SecOps).
    • Descripción: descripción opcional (por ejemplo, Export threat detection alerts and investigation findings to AWS S3 for Google SecOps ingestion).
    • Habilitar: selecciona esta opción para que la conexión se ejecute según la programación.
  5. Haz clic en Siguiente.

Configurar la fuente de la conexión

  1. 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 respuesta a amenazas:
      • Respuesta ante amenazas - Alertas para recibir alertas de detección de amenazas.
      • Respuesta ante amenazas: resultados de la investigación para ver los resultados de la investigación.
      • Respuesta ante amenazas: coincidencias de inteligencia para las coincidencias de inteligencia frente a amenazas.
      • Respuesta a amenazas: actividad de endpoint para detectar actividad sospechosa en los endpoints.
      • Respuesta ante amenazas: conexiones de red para amenazas basadas en redes.
    • Grupo de ordenadores: selecciona Todos los ordenadores o grupos de ordenadores específicos para monitorizar.
    • Intervalo de actualización: define el intervalo adecuado para la recogida de datos (por ejemplo, 10 minutos para las alertas de amenazas).
  2. Haz clic en Siguiente.

Configurar un destino de AWS S3

  1. 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 ThreatResponse 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-threat-response-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/threat-response/).
  2. Haz clic en Siguiente.

Configurar filtros

  1. En la sección Filtros, configure las opciones de filtrado de datos:
    • Enviar solo elementos nuevos: selecciona esta opción para enviar solo las alertas de amenazas nuevas desde la última exportación.
    • Filtros de columna: añade filtros basados en atributos de alerta específicos si es necesario (por ejemplo, filtra por gravedad de la alerta, tipo de amenaza o estado de la investigación).
  2. Haz clic en Siguiente.

Formatear datos para AWS S3

  1. 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.
  2. Haz clic en Siguiente.

Programar la conexión

  1. 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 10 minutos para recibir alertas de respuesta a amenazas oportunas.
    • Hora de inicio: define la hora de inicio adecuada para la primera exportación.
  2. Haz clic en Siguiente.

Guardar y verificar conexión

  1. Revisa la configuración de la conexión en la pantalla de resumen.
  2. Haz clic en Guardar para crear la conexión.
  3. Haz clic en Probar conexión para verificar la configuración.
  4. Si la prueba se realiza correctamente, haga clic en Ejecutar ahora para realizar una exportación inicial.
  5. 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 Threat Response

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en + Añadir nuevo feed.
  3. En el campo Nombre del feed, introduce un nombre para el feed (por ejemplo, Tanium Threat Response logs).
  4. Selecciona Amazon S3 V2 como Tipo de fuente.
  5. Seleccione Tanium Threat Response como Tipo de registro.
  6. Haz clic en Siguiente.
  7. Especifique los valores de los siguientes parámetros de entrada:
    • URI de S3: s3://tanium-threat-response-logs/tanium/threat-response/
    • 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.
  8. Haz clic en Siguiente.
  9. 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
ID de alerta security_result.rule_instance El valor de este campo se toma del campo "Alert Id" del registro sin procesar.
IP del ordenador principal.ip El valor de este campo se toma del campo "IP del ordenador" del registro sin procesar.
IP del ordenador target.ip El valor de este campo se toma del campo "IP del ordenador" del registro sin procesar.
Nombre del ordenador principal.hostname El valor de este campo se toma del campo "Nombre del ordenador" del registro sin procesar.
Nombre del ordenador target.hostname El valor de este campo se toma del campo "Nombre del ordenador" del registro sin procesar.
id target.resource.attribute.labels El valor de este campo se toma del campo "id" del registro sin procesar. La clave se ha codificado como "id".
ID de Intel security_result.rule_id El valor de este campo se toma del campo "Intel Id" del registro sin procesar.
Etiquetas de Intel security_result.description El valor de este campo se toma del campo "Etiquetas de Intel" del registro sin procesar.
Nombre de Intel security_result.summary El valor de este campo se toma del campo "Nombre de Intel" del registro sin procesar.
Nombre de Intel security_result.threat_name El valor de este campo se toma del campo "Nombre de Intel" del registro sin procesar.
Tipo de Intel security_result.rule_type El valor de este campo se toma del campo "Intel Type" del registro sin procesar.
MatchDetails.finding.system_info.bits principal.asset.platform_software.bits El valor de este campo se toma del campo "MatchDetails.finding.system_info.bits" del registro sin procesar.
MatchDetails.finding.system_info.os principal.asset.platform_software.platform_version El valor de este campo se toma del campo "MatchDetails.finding.system_info.os" del registro sin procesar.
MatchDetails.finding.system_info.patch_level principal.asset.platform_software.platform_patch_level El valor de este campo se toma del campo "MatchDetails.finding.system_info.patch_level" del registro sin procesar.
MatchDetails.finding.system_info.platform principal.asset.platform_software.platform El valor de este campo se toma del campo "MatchDetails.finding.system_info.platform" del registro sin procesar.
MatchDetails.match.contexts.0.event.registrySet.keyPath target.registry.registry_key El valor de este campo se toma del campo "MatchDetails.match.contexts.0.event.registrySet.keyPath" del registro sin procesar.
MatchDetails.match.contexts.0.event.registrySet.valueName target.registry.registry_value_name El valor de este campo se toma del campo "MatchDetails.match.contexts.0.event.registrySet.valueName" del registro sin procesar.
MatchDetails.match.properties.args security_result.about.process.command_line El valor de este campo se toma del campo "MatchDetails.match.properties.args" del registro sin procesar.
MatchDetails.match.properties.file.fullpath target.process.file.full_path El valor de este campo se toma del campo "MatchDetails.match.properties.file.fullpath" del registro sin procesar.
MatchDetails.match.properties.file.md5 target.process.file.md5 El valor de este campo se toma del campo "MatchDetails.match.properties.file.md5" del registro sin procesar.
MatchDetails.match.properties.file.sha1 target.process.file.sha1 El valor de este campo se toma del campo "MatchDetails.match.properties.file.sha1" del registro sin procesar.
MatchDetails.match.properties.file.sha256 target.process.file.sha256 El valor de este campo se toma del campo "MatchDetails.match.properties.file.sha256" del registro sin procesar.
MatchDetails.match.properties.fullpath target.process.file.full_path El valor de este campo se toma del campo "MatchDetails.match.properties.fullpath" del registro sin procesar.
MatchDetails.match.properties.local_port principal.port El valor de este campo se toma del campo "MatchDetails.match.properties.local_port" del registro sin procesar.
MatchDetails.match.properties.md5 target.process.file.md5 El valor de este campo se toma del campo "MatchDetails.match.properties.md5" del registro sin procesar.
MatchDetails.match.properties.parent.args security_result.about.process.command_line El valor de este campo se toma del campo "MatchDetails.match.properties.parent.args" del registro sin procesar.
MatchDetails.match.properties.parent.file.fullpath target.process.parent_process.file.full_path El valor de este campo se toma del campo "MatchDetails.match.properties.parent.file.fullpath" del registro sin procesar.
MatchDetails.match.properties.parent.file.md5 target.process.parent_process.file.md5 El valor de este campo se toma del campo "MatchDetails.match.properties.parent.file.md5" del registro sin procesar.
MatchDetails.match.properties.parent.parent.file.fullpath target.process.parent_process.parent_process.file.full_path El valor de este campo se toma del campo "MatchDetails.match.properties.parent.parent.file.fullpath" del registro sin procesar.
MatchDetails.match.properties.parent.parent.file.md5 target.process.parent_process.parent_process.file.md5 El valor de este campo se toma del campo "MatchDetails.match.properties.parent.parent.file.md5" del registro sin procesar.
MatchDetails.match.properties.parent.parent.parent.file.fullpath target.process.parent_process.parent_process.parent_process.file.full_path El valor de este campo se toma del campo "MatchDetails.match.properties.parent.parent.parent.file.fullpath" del registro sin procesar.
MatchDetails.match.properties.parent.parent.parent.file.md5 target.process.parent_process.parent_process.parent_process.file.md5 El valor de este campo se toma del campo "MatchDetails.match.properties.parent.parent.parent.file.md5" del registro sin procesar.
MatchDetails.match.properties.parent.parent.parent.parent.file.fullpath target.process.parent_process.parent_process.parent_process.parent_process.file.full_path El valor de este campo se toma del campo "MatchDetails.match.properties.parent.parent.parent.parent.file.fullpath" del registro sin procesar.
MatchDetails.match.properties.parent.parent.parent.parent.file.md5 target.process.parent_process.parent_process.parent_process.parent_process.file.md5 El valor de este campo se toma del campo "MatchDetails.match.properties.parent.parent.parent.parent.file.md5" del registro sin procesar.
MatchDetails.match.properties.parent.parent.parent.parent.parent.file.fullpath target.process.parent_process.parent_process.parent_process.parent_process.parent_process.file.full_path El valor de este campo se toma del campo "MatchDetails.match.properties.parent.parent.parent.parent.parent.file.fullpath" del registro sin procesar.
MatchDetails.match.properties.parent.parent.parent.parent.parent.file.md5 target.process.parent_process.parent_process.parent_process.parent_process.parent_process.file.md5 El valor de este campo se toma del campo "MatchDetails.match.properties.parent.parent.parent.parent.parent.file.md5" del registro sin procesar.
MatchDetails.match.properties.parent.pid target.process.parent_process.pid El valor de este campo se toma del campo "MatchDetails.match.properties.parent.pid" del registro sin procesar.
MatchDetails.match.properties.parent.parent.pid target.process.parent_process.parent_process.pid El valor de este campo se toma del campo "MatchDetails.match.properties.parent.parent.pid" del registro sin procesar.
MatchDetails.match.properties.parent.parent.parent.pid target.process.parent_process.parent_process.parent_process.pid El valor de este campo se toma del campo "MatchDetails.match.properties.parent.parent.parent.pid" del registro sin procesar.
MatchDetails.match.properties.parent.parent.parent.parent.pid target.process.parent_process.parent_process.parent_process.parent_process.pid El valor de este campo se toma del campo "MatchDetails.match.properties.parent.parent.parent.parent.pid" del registro sin procesar.
MatchDetails.match.properties.parent.parent.parent.parent.parent.pid target.process.parent_process.parent_process.parent_process.parent_process.parent_process.pid El valor de este campo se toma del campo "MatchDetails.match.properties.parent.parent.parent.parent.parent.pid" del registro sin procesar.
MatchDetails.match.properties.pid target.process.pid El valor de este campo se toma del campo "MatchDetails.match.properties.pid" del registro sin procesar.
MatchDetails.match.properties.protocol network.ip_protocol El valor de este campo se toma del campo "MatchDetails.match.properties.protocol" del registro sin procesar.
MatchDetails.match.properties.remote_ip target.ip El valor de este campo se toma del campo "MatchDetails.match.properties.remote_ip" del registro sin procesar.
MatchDetails.match.properties.remote_port target.port El valor de este campo se toma del campo "MatchDetails.match.properties.remote_port" del registro sin procesar.
MatchDetails.match.properties.sha1 target.process.file.sha1 El valor de este campo se toma del campo "MatchDetails.match.properties.sha1" del registro sin procesar.
MatchDetails.match.properties.sha256 target.process.file.sha256 El valor de este campo se toma del campo "MatchDetails.match.properties.sha256" del registro sin procesar.
MatchDetails.match.properties.user target.administrative_domain El nombre de dominio se extrae del campo "MatchDetails.match.properties.user" del registro sin procesar buscando el carácter de barra invertida (""). Los caracteres que aparecen antes de la barra invertida se consideran el nombre de dominio.
MatchDetails.match.properties.user target.user.userid El nombre de usuario se extrae del campo "MatchDetails.match.properties.user" del registro sin procesar buscando el carácter de barra invertida (""). Los caracteres que aparecen después de la barra invertida se consideran el nombre de usuario.
Técnicas de MITRE security_result.threat_id El valor de este campo se toma del campo "Técnicas de MITRE" del registro sin procesar.
params security_result.detection_fields El valor de este campo se toma del campo "params" del registro sin procesar. La clave se codifica como "params_" concatenado con el índice del parámetro.
Marca de tiempo metadata.event_timestamp El valor de este campo se toma del campo "Timestamp" del registro sin procesar.
N/A is_alert Este campo tiene el valor "true" si el campo "Computer IP" del registro sin procesar no está vacío.
N/A metadata.log_type Este campo se ha codificado como "TANIUM_THREAT_RESPONSE".
N/A metadata.product_event_type Este campo se ha codificado como "Tanium Signal".
N/A metadata.product_name Este campo se ha codificado como "Respuesta a amenazas".
N/A metadata.vendor_name Este campo se ha codificado como "Tanium".
N/A network.http.method Este campo tiene el valor "POST" codificado si el valor del campo "method" del registro sin procesar es "submit".

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.