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 de exportación nativa de S3 de Tanium Connect. El analizador extrae los registros y, en un principio, borra numerosos 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, controlando varios tipos de datos y lógica condicional para completar los campos de UDM adecuados 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 con privilegios a Tanium Connect y Tanium Console
  • Acceso con privilegios 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. Haz 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 total 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, o ambos, según sea necesario.
  5. Selecciona Contraseña generada automáticamente o Contraseña personalizada.
  6. Haz clic en Next: Permissions.
  7. Elige Adjuntar políticas existentes directamente.
  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 Create user.
  12. Copia y guarda el ID de clave de acceso y la clave de acceso secreta para consultarlos en el futuro.

Configura los permisos en el bucket de Amazon S3

  1. En la consola de Amazon S3, elige el bucket que creaste antes.
  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 el ID de tu cuenta de AWS.
    • Cambia tanium-audit-logs por el nombre real de tu bucket si es diferente.
    • 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. Establece la configuración de la fuente de auditoría:
    • Días de historial recuperados: Ingresa la cantidad de días de datos de auditoría históricos que se recuperarán (por ejemplo, 7 para una semana).
    • Tipos de auditoría: Selecciona los tipos de auditoría que quieres exportar. Elige entre las siguientes opciones:
      • Historial de acciones: Acciones emitidas por los operadores de la consola.
      • Autenticación: Eventos de autenticación de usuarios.
      • Contenido: Cambios y modificaciones en el contenido.
      • Grupos: Cambios en los grupos de computadoras.
      • Paquetes: Actividades relacionadas con paquetes.
      • Sensores: Modificaciones de los 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 del 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 el programa

  1. En la sección Formato, configura el formato de salida:
    • Tipo de formato: Selecciona JSON.
    • Incluir encabezados de columna: Selecciona esta opción si quieres que se incluyan los encabezados de columna.
    • Generar documento: Desmarca esta opción para enviar datos JSON sin procesar.
  2. En la sección Programación, configura cuándo se ejecuta la conexión:
    • Tipo de programa: Selecciona Cron.
    • Expresión cron: 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 Descripción general 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 quieres 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 AWS Console > IAM > Users > Add users.
  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 Create user.
  5. Adjunta la política de lectura mínima (personalizada): Users > secops-reader > Permissions > Add permissions > Attach policies directly > Create policy.
  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 > buscar/seleccionar > Siguiente > Agregar permisos.

  9. Ve a Security credentials > Access keys > Create access key.

  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 > Administración de datos > Feeds. Si estás en una plataforma solo de SIEM, ve a Configuración > 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 de bucket o una ruta de acceso diferentes).
    • 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 (del usuario con acceso de lectura que se creó anteriormente).
    • Clave de acceso secreta: Es la clave secreta del usuario con acceso al bucket de S3 (del usuario con acceso de lectura que se creó anteriormente).
    • Espacio de nombres del recurso: Es el espacio de nombres del recurso.
    • Etiquetas de transferencia: Es la etiqueta que se aplicará a los eventos de este feed.
  8. Haz clic en Siguiente.
  9. 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
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 la 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 pares clave-valor.
details principal.user.attribute.labels[authentication_type].value Se extrae del campo details con el análisis de pares clave-valor.
details principal.asset.ip, principal.ip La dirección IP se extrae del campo details con el análisis de pares 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 extraído 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 por 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 como "TANIUM_AUDIT". Está codificado como "cybersecurity". Se codifica 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", "BAJA" si es "información" o "info".
syslog_severity security_result.severity_details Se asigna directamente desde el campo syslog_severity.

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.