Recopila registros de auditoría de Tanium

Compatible con:

En este documento, se explica cómo transferir registros de auditoría de Tanium a Google Security Operations con Amazon S3 a través de la capacidad nativa de exportación a S3 de Tanium Connect. El analizador extrae los registros y, en un principio, borra varios campos predeterminados. Luego, analiza el mensaje de registro con grok y el filtro json, y extrae campos como la marca de tiempo, la IP del dispositivo y los detalles de la auditoría. El analizador asigna estos campos extraídos al UDM y controla varios tipos de datos y lógica condicional para completar los campos correspondientes del UDM según la presencia y los valores de atributos específicos del registro de auditoría de Tanium.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Una instancia de Google SecOps
  • Acceso privilegiado a Tanium Connect y Tanium Console
  • Acceso privilegiado a AWS (S3, IAM)

Crea un bucket de Amazon S3

  1. Abre la consola de Amazon S3.
  2. Si es necesario, puedes cambiar la región.
    • En la barra de navegación, selecciona la región en la que deseas que residan tus registros de auditoría de Tanium.
  3. Haga clic en Crear bucket.
    • Nombre del bucket: Ingresa un nombre significativo para el bucket (por ejemplo, tanium-audit-logs).
    • Región: Selecciona tu región preferida (por ejemplo, us-east-1).
    • Haz clic en Crear.

Crea un usuario de IAM con acceso completo a Amazon S3

  1. Abre la consola de IAM.
  2. Haz clic en Usuarios > Agregar usuario.
  3. Ingresa un nombre de usuario (por ejemplo, tanium-connect-s3-user).
  4. Selecciona Acceso programático o Acceso a la consola de administración de AWS según sea necesario.
  5. Selecciona Contraseña generada automáticamente o Contraseña personalizada.
  6. Haz clic en Next: Permissions.
  7. Elige Adjuntar las políticas existentes de forma directa.
  8. Busca y selecciona la política AmazonS3FullAccess para el usuario.
  9. Haz clic en Siguiente: Etiquetas.
  10. Haz clic en Siguiente: Revisar.
  11. Haz clic en Crear usuario.
  12. Copia y guarda el ID de clave de acceso y la clave de acceso secreta para futuras referencias.

Configura los permisos en el bucket de Amazon S3

  1. En la consola de Amazon S3, elige el bucket que creaste anteriormente.
  2. Haz clic en Permisos > Política de bucket.
  3. En el Editor de políticas de bucket, agrega la siguiente política:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::YOUR_ACCOUNT_ID:user/tanium-connect-s3-user"
          },
          "Action": [
            "s3:PutObject",
            "s3:PutObjectAcl",
            "s3:GetObject",
            "s3:ListBucket"
          ],
          "Resource": [
            "arn:aws:s3:::tanium-audit-logs",
            "arn:aws:s3:::tanium-audit-logs/*"
          ]
        }
      ]
    }
    
  4. Reemplaza las siguientes variables:

    • Cambia YOUR_ACCOUNT_ID por tu ID de cuenta de AWS.
    • Si es diferente, cambia tanium-audit-logs por el nombre real de tu bucket.
    • Cambia tanium-connect-s3-user por tu nombre de usuario de IAM real si es diferente.
  5. Haz clic en Guardar.

Configura Tanium Connect para la exportación a S3

Crea una conexión de AWS S3 en Tanium Connect

  1. Accede a la consola de Tanium como administrador.
  2. Ve a Tanium Connect > Connections.
  3. Haz clic en Create Connection.
  4. En la sección Información general, proporciona los siguientes detalles de configuración:
    • Nombre: Ingresa un nombre descriptivo (por ejemplo, Tanium Audit to S3).
    • Descripción: Ingresa una descripción significativa (por ejemplo, Export Tanium audit logs to S3 for Google SecOps ingestion).
    • Habilitar: Selecciona esta opción para habilitar la conexión.
    • Nivel de registro: Selecciona Información (predeterminado) o ajústalo según sea necesario.

Configura la fuente de conexión

  1. En la sección Configuración, en Fuente, selecciona Auditoría de Tanium.
  2. Configura los parámetros de la fuente de auditoría:
    • Days of History Retrieved: Ingresa la cantidad de días de datos históricos de auditoría que se recuperarán (por ejemplo, 7 para una semana).
    • Tipos de auditoría: Selecciona los tipos de auditoría que deseas exportar. Elige una de las siguientes opciones:
      • Historial de acciones: Son las acciones que emiten los operadores de la consola.
      • Authentication: Eventos de autenticación de usuarios.
      • Contenido: Cambios y modificaciones en el contenido
      • Grupos: Cambios en los grupos de computadoras
      • Packages: Actividades relacionadas con paquetes.
      • Sensores: Modificaciones de sensores.
      • Configuración del sistema: Cambios en la configuración del sistema
      • Usuarios: Actividades de administración de usuarios.

Configura el destino de AWS S3

  1. En Destino, selecciona AWS S3.
  2. Proporciona los siguientes detalles de configuración:
    • Nombre del destino: Ingresa un nombre (por ejemplo, Google SecOps S3 Bucket).
    • Clave de acceso de AWS: Ingresa el ID de la clave de acceso del usuario de IAM que creaste antes.
    • Clave secreta de AWS: Ingresa la clave de acceso secreta del usuario de IAM que creaste antes.
    • Nombre del bucket: Ingresa el nombre de tu bucket de S3 (por ejemplo, tanium-audit-logs).
    • Ruta de acceso al bucket: Opcional. Ingresa un prefijo de ruta de acceso (por ejemplo, tanium/audit/).
    • Región: Selecciona la región de AWS en la que reside tu bucket (por ejemplo, us-east-1).

Configura el formato y la programación

  1. En la sección Formato, configura el formato de salida:
    • Tipo de formato: Selecciona JSON.
    • Include Column Headers: Selecciona esta opción si deseas incluir encabezados de columna.
    • Generar documento: Anula la selección de esta opción para enviar datos JSON sin procesar.
  2. En la sección Programación, configura cuándo se ejecutará la conexión:
    • Tipo de programa: Selecciona Cron.
    • Cron Expression: Ingresa una expresión cron para las exportaciones periódicas (por ejemplo, 0 */1 * * * para las exportaciones por hora).
    • Fecha de inicio: Establece la fecha de inicio de la programación.
  3. Haz clic en Guardar cambios.

Prueba y ejecuta la conexión

  1. En la página Resumen de Connect, ve a Conexiones.
  2. Haz clic en la conexión que creaste (Tanium Audit to S3).
  3. Haz clic en Ejecutar ahora para probar la conexión.
  4. Confirma que deseas ejecutar la conexión.
  5. Supervisa el estado de la conexión y verifica que los registros de auditoría se exporten a tu bucket de S3.

Opcional: Crea un usuario y claves de IAM de solo lectura para Google SecOps

  1. Ve a Consola de AWS > IAM > Usuarios > Agregar usuarios.
  2. Haz clic en Agregar usuarios.
  3. Proporciona los siguientes detalles de configuración:
    • Usuario: Ingresa secops-reader.
    • Tipo de acceso: Selecciona Clave de acceso: Acceso programático.
  4. Haz clic en Crear usuario.
  5. Adjunta una política de lectura mínima (personalizada): Usuarios > secops-reader > Permisos > Agregar permisos > Adjuntar políticas directamente > Crear política.
  6. En el editor de JSON, ingresa la siguiente política:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": ["s3:GetObject"],
          "Resource": "arn:aws:s3:::tanium-audit-logs/*"
        },
        {
          "Effect": "Allow",
          "Action": ["s3:ListBucket"],
          "Resource": "arn:aws:s3:::tanium-audit-logs"
        }
      ]
    }
    
  7. Configura el nombre como secops-reader-policy.

  8. Ve a Crear política > busca o selecciona > Siguiente > Agregar permisos.

  9. Ve a Credenciales de seguridad > Claves de acceso > Crear clave de acceso.

  10. Descarga el archivo CSV (estos valores se ingresan en el feed).

Configura un feed en Google SecOps para transferir registros de auditoría de Tanium

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en + Agregar feed nuevo.
  3. En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, Tanium Audit logs).
  4. Selecciona Amazon S3 V2 como el Tipo de fuente.
  5. Selecciona Tanium Audit como el Tipo de registro.
  6. Haz clic en Siguiente.
  7. Especifica valores para los siguientes parámetros de entrada:
    • URI de S3: s3://tanium-audit-logs/tanium/audit/ (ajusta la ruta de acceso si usaste un nombre o una ruta de acceso de bucket diferentes).
    • Opciones de borrado de la fuente: Selecciona la opción de borrado según tu preferencia.
    • Antigüedad máxima del archivo: Incluye los archivos modificados en la cantidad de días especificada. El valor predeterminado es de 180 días.
    • ID de clave de acceso: Clave de acceso del usuario con acceso al bucket de S3 (del usuario de solo lectura creado anteriormente).
    • Clave de acceso secreta: Clave secreta del usuario con acceso al bucket de S3 (del usuario de solo lectura creado anteriormente).
    • Espacio de nombres del recurso: Es el espacio de nombres del recurso.
    • Etiquetas de transmisión: Es la etiqueta que se aplicará a los eventos de este feed.
  8. Haz clic en Siguiente.
  9. Revisa la nueva configuración del feed 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
ActionId metadata.product_log_id Se asigna directamente desde el campo ActionId.
ActionName security_result.action_details Se asigna directamente desde el campo ActionName.
Approver additional.fields[Approver].value.string_value Se asigna directamente desde el campo Approver.
Approver principal.user.userid Se asigna desde el campo Approver si Issuer no está presente.
audit_name metadata.description Se asigna directamente desde el campo audit_name.
audit_row_id additional.fields[audit_row_id].value.string_value Se asigna directamente desde el campo audit_row_id.
audit_type additional.fields[audit_type].value.string_value Se asigna directamente desde el campo audit_type.
authentication_type principal.user.attribute.labels[authentication_type].value Se asigna directamente desde el campo authentication_type extraído del campo details.
Command principal.process.command_line Se asigna directamente desde el campo Command después de la decodificación de URL.
creation_time target.resource.attribute.creation_time Se asigna directamente desde el campo creation_time.
details network.session_id Se extrae del campo details con el análisis de clave-valor.
details principal.user.attribute.labels[authentication_type].value Se extrae del campo details con el análisis de clave-valor.
details principal.asset.ip, principal.ip La dirección IP se extrae del campo details con el análisis de clave-valor y se asigna a principal.asset.ip y principal.ip.
DistributeOver additional.fields[DistributeOver].value.string_value Se asigna directamente desde el campo DistributeOver.
dvc_ip intermediary.hostname Se asigna directamente desde el campo dvc_ip que se extrae del mensaje de syslog.
dvc_ip observer.ip Se asigna directamente desde el campo dvc_ip si logstash.collect.host no está presente.
Expiration additional.fields[Expiration].value.string_value Se asigna directamente desde el campo Expiration.
host.architecture target.asset.hardware.cpu_platform Se asigna directamente desde el campo host.architecture.
host.id target.asset.asset_id Se asigna directamente desde el campo host.id, con el prefijo "ID de host:".
host.ip target.ip Se asigna directamente desde el campo host.ip.
host.mac target.mac Se asigna directamente desde el campo host.mac.
host.name target.hostname Se asigna directamente desde el campo host.name si host.hostname no está presente.
host.os.kernel target.platform_patch_level Se asigna directamente desde el campo host.os.kernel.
host.os.name additional.fields[os_name].value.string_value Se asigna directamente desde el campo host.os.name.
host.os.version target.platform_version Se asigna directamente desde el campo host.os.version.
InsertTime additional.fields[InsertTime].value.string_value Se asigna directamente desde el campo InsertTime.
Issuer additional.fields[Issuer].value.string_value Se asigna directamente desde el campo Issuer.
Issuer principal.user.userid Se asigna directamente desde el campo Issuer si está presente.
last_modified_by principal.resource.attribute.labels[last_modified_by].value Se asigna directamente desde el campo last_modified_by.
log.source.address principal.ip La dirección IP se extrae del campo log.source.address y se asigna a principal.ip.
log.source.address principal.port El puerto se extrae del campo log.source.address.
logstash.collect.host observer.ip Se asigna directamente desde el campo logstash.collect.host si está presente.
logstash.collect.timestamp metadata.collected_timestamp Se asigna directamente desde el campo logstash.collect.timestamp.
logstash.ingest.timestamp metadata.ingested_timestamp Se asigna directamente desde el campo logstash.ingest.timestamp.
logstash.irm_environment additional.fields[irm_environment].value.string_value Se asigna directamente desde el campo logstash.irm_environment.
logstash.irm_region additional.fields[irm_region].value.string_value Se asigna directamente desde el campo logstash.irm_region.
logstash.irm_site additional.fields[irm_site].value.string_value Se asigna directamente desde el campo logstash.irm_site.
logstash.process.host intermediary.hostname Se asigna directamente desde el campo logstash.process.host.
message dvc_ip, json_data, timestamp Se analizó con Grok para extraer dvc_ip, json_data y timestamp.
modification_time target.resource.attribute.last_update_time Se asigna directamente desde el campo modification_time.
modifier_user_id principal.resource.attribute.labels[modifier_user_id].value Se asigna directamente desde el campo modifier_user_id.
object_id target.resource.product_object_id Se asigna directamente desde el campo object_id.
object_name target.resource.name Se asigna directamente desde el campo object_name.
object_type_name target.resource.attribute.labels[object_type_name].value Se asigna directamente desde el campo object_type_name.
PackageName additional.fields[PackageName].value.string_value Se asigna directamente desde el campo PackageName.
SourceId additional.fields[SourceId].value.string_value Se asigna directamente desde el campo SourceId.
StartTime additional.fields[StartTime].value.string_value Se asigna directamente desde el campo StartTime.
Status security_result.action Se asigna a "BLOCK" si Status es "Closed" y a "ALLOW" si Status es "Open".
Status security_result.summary Se asigna directamente desde el campo Status.
tanium_audit_type metadata.product_event_type Se asigna directamente desde el campo tanium_audit_type.
timestamp metadata.event_timestamp Se asigna directamente desde el campo timestamp extraído del mensaje de syslog o del campo message.
type additional.fields[type].value.string_value Se asigna directamente desde el campo type.
type_name metadata.product_event_type Se asigna directamente desde el campo type_name.
User principal.user.userid Se asigna directamente desde el campo User. Se determina según la lógica del analizador en función de la presencia de src_ip, has_target y has_user. Puede ser "NETWORK_CONNECTION", "USER_RESOURCE_ACCESS", "STATUS_UPDATE" o "GENERIC_EVENT". Se codifica de forma rígida como "TANIUM_AUDIT". Se codificó de forma rígida como "cybersecurity". Se codifica de forma rígida como "TANIUM_AUDIT".
@version metadata.product_version Se asigna directamente desde el campo @version.
agent.ephemeral_id additional.fields[ephemeral_id].value.string_value Se asigna directamente desde el campo agent.ephemeral_id.
agent.id observer.asset_id Se asigna directamente desde el campo agent.id, con el prefijo "filebeat:".
agent.type observer.application Se asigna directamente desde el campo agent.type.
agent.version observer.platform_version Se asigna directamente desde el campo agent.version.
Comment security_result.description Se asigna directamente desde el campo Comment.
host.hostname target.hostname Se asigna directamente desde el campo host.hostname si está presente.
input.type network.ip_protocol Se asigna a "TCP" si input.type es "tcp" o "TCP".
syslog_severity security_result.severity Se asigna a "ALTA" si syslog_severity es "error" o "advertencia", "MEDIA" si es "aviso" y "BAJA" si es "información" o "info".
syslog_severity security_result.severity_details Se asigna directamente desde el campo syslog_severity.

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.