Raccogliere i log di controllo di Tanium

Supportato in:

Questo documento spiega come importare i log di controllo Tanium in Google Security Operations utilizzando Amazon S3 tramite la funzionalità di esportazione S3 nativa di Tanium Connect. Il parser estrae i log, inizialmente cancellando numerosi campi predefiniti. Quindi, analizza il messaggio di log utilizzando grok e il filtro JSON, estraendo campi come timestamp, IP del dispositivo e dettagli di controllo. Il parser mappa questi campi estratti a UDM, gestendo vari tipi di dati e logica condizionale per compilare i campi UDM appropriati in base alla presenza e ai valori di attributi specifici degli audit log di Tanium.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps
  • Accesso privilegiato a Tanium Connect e Tanium Console
  • Accesso con privilegi ad AWS (S3, IAM)

Crea un bucket Amazon S3

  1. Apri la console Amazon S3.
  2. Se necessario, puoi modificare la regione.
    • Dalla barra di navigazione, seleziona la regione in cui vuoi che si trovino i log di controllo Tanium.
  3. Fai clic su Crea bucket.
    • Nome bucket: inserisci un nome significativo per il bucket (ad esempio tanium-audit-logs).
    • Regione: seleziona la regione che preferisci (ad esempio, us-east-1).
    • Fai clic su Crea.

Crea un utente IAM con accesso completo ad Amazon S3

  1. Apri la console IAM.
  2. Fai clic su Utenti > Aggiungi utente.
  3. Inserisci un nome utente (ad esempio, tanium-connect-s3-user).
  4. Seleziona Accesso programmatico e/o Accesso alla Console di gestione AWS in base alle esigenze.
  5. Seleziona Password generata automaticamente o Password personalizzata.
  6. Fai clic su Avanti: autorizzazioni.
  7. Scegli Collega direttamente i criteri esistenti.
  8. Cerca e seleziona la policy AmazonS3FullAccess per l'utente.
  9. Fai clic su Avanti: tag.
  10. Fai clic su Successivo: esamina.
  11. Fai clic su Crea utente.
  12. Copia e salva l'ID chiave di accesso e la chiave di accesso segreta per riferimento futuro.

Configura le autorizzazioni sul bucket Amazon S3

  1. Nella console Amazon S3, scegli il bucket che hai creato in precedenza.
  2. Fai clic su Autorizzazioni > Criterio del bucket.
  3. Nell'editor delle policy del bucket, aggiungi la seguente policy:

    {
      "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. Sostituisci le seguenti variabili:

    • Modifica YOUR_ACCOUNT_ID con il tuo ID account AWS.
    • Se è diverso, modifica tanium-audit-logs con il nome del bucket effettivo.
    • Modifica tanium-connect-s3-user con il tuo nome utente IAM effettivo, se diverso.
  5. Fai clic su Salva.

Configurare Tanium Connect per l'esportazione S3

Crea una connessione AWS S3 in Tanium Connect

  1. Accedi alla console Tanium come amministratore.
  2. Vai a Tanium Connect > Connessioni.
  3. Fai clic su Crea connessione.
  4. Nella sezione Informazioni generali, fornisci i seguenti dettagli di configurazione:
    • Nome: inserisci un nome descrittivo (ad esempio, Tanium Audit to S3).
    • Descrizione: inserisci una descrizione significativa (ad esempio, Export Tanium audit logs to S3 for Google SecOps ingestion).
    • Attiva: seleziona questa opzione per attivare la connessione.
    • Livello log: seleziona Informazioni (impostazione predefinita) o modificalo in base alle esigenze.

Configurare l'origine della connessione

  1. Nella sezione Configurazione, per Origine, seleziona Tanium Audit.
  2. Configura le impostazioni dell'origine di controllo:
    • Giorni di cronologia recuperati: inserisci il numero di giorni di dati di controllo storici da recuperare (ad esempio, 7 per una settimana).
    • Tipi di controllo: seleziona i tipi di controllo che vuoi esportare. Scegli tra:
      • Cronologia azioni: azioni emesse dagli operatori della console.
      • Autenticazione: eventi di autenticazione utente.
      • Contenuti: modifiche ai contenuti.
      • Gruppi: modifiche ai gruppi di computer.
      • Pacchi: attività relative ai pacchi.
      • Sensori: modifiche ai sensori.
      • Impostazioni di sistema: modifiche alla configurazione del sistema.
      • Utenti: attività di gestione degli utenti.

Configura la destinazione AWS S3

  1. Per Destinazione, seleziona AWS S3.
  2. Fornisci i seguenti dettagli di configurazione:
    • Nome destinazione: inserisci un nome (ad esempio Google SecOps S3 Bucket).
    • Chiave di accesso AWS: inserisci l'ID chiave di accesso dell'utente IAM creato in precedenza.
    • Chiave segreta AWS: inserisci la chiave di accesso segreta dell'utente IAM creato in precedenza.
    • Nome bucket: inserisci il nome del bucket S3 (ad esempio tanium-audit-logs).
    • Percorso del bucket: facoltativo. Inserisci un prefisso del percorso (ad esempio, tanium/audit/).
    • Regione: seleziona la regione AWS in cui si trova il bucket (ad esempio us-east-1).

Configurare il formato e la pianificazione

  1. Nella sezione Formato, configura il formato di output:
    • Tipo di formato: seleziona JSON.
    • Includi intestazioni di colonna: seleziona questa opzione se vuoi includere le intestazioni di colonna.
    • Genera documento: deseleziona questa opzione per inviare dati JSON non elaborati.
  2. Nella sezione Pianificazione, configura quando viene eseguita la connessione:
    • Tipo di pianificazione: seleziona Cron.
    • Espressione cron: inserisci un'espressione cron per le esportazioni regolari (ad esempio, 0 */1 * * * per le esportazioni orarie).
    • Data di inizio: imposta la data di inizio della pianificazione.
  3. Fai clic su Salva modifiche.

Testa ed esegui la connessione

  1. Nella pagina Panoramica di Connect, vai a Connessioni.
  2. Fai clic sulla connessione che hai creato (Tanium Audit to S3).
  3. Fai clic su Esegui ora per testare la connessione.
  4. Conferma di voler eseguire la connessione.
  5. Monitora lo stato della connessione e verifica che i log di controllo vengano esportati nel bucket S3.

(Facoltativo) Crea chiavi e utenti IAM di sola lettura per Google SecOps

  1. Vai alla console AWS > IAM > Utenti > Aggiungi utenti.
  2. Fai clic su Add users (Aggiungi utenti).
  3. Fornisci i seguenti dettagli di configurazione:
    • Utente: inserisci secops-reader.
    • Tipo di accesso: seleziona Chiave di accesso - Accesso programmatico.
  4. Fai clic su Crea utente.
  5. Collega la criterio per la lettura minima (personalizzata): Utenti > secops-reader > Autorizzazioni > Aggiungi autorizzazioni > Collega le norme direttamente > Crea norma.
  6. Nell'editor JSON, inserisci la seguente policy:

    {
      "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. Imposta il nome su secops-reader-policy.

  8. Vai a Crea criterio > cerca/seleziona > Avanti > Aggiungi autorizzazioni.

  9. Vai a Credenziali di sicurezza > Chiavi di accesso > Crea chiave di accesso.

  10. Scarica il file CSV (questi valori vengono inseriti nel feed).

Configura un feed in Google SecOps per importare i log di controllo di Tanium

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su + Aggiungi nuovo feed.
  3. Nel campo Nome feed, inserisci un nome per il feed (ad esempio, Tanium Audit logs).
  4. Seleziona Amazon S3 V2 come Tipo di origine.
  5. Seleziona Tanium Audit come Tipo di log.
  6. Fai clic su Avanti.
  7. Specifica i valori per i seguenti parametri di input:
    • URI S3: s3://tanium-audit-logs/tanium/audit/ (modifica il percorso se hai utilizzato un nome o un percorso del bucket diverso).
    • Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
    • Età massima del file: includi i file modificati nell'ultimo numero di giorni. Il valore predefinito è 180 giorni.
    • ID chiave di accesso: chiave di accesso utente con accesso al bucket S3 (dall'utente di sola lettura creato sopra).
    • Chiave di accesso segreta: chiave segreta dell'utente con accesso al bucket S3 (dell'utente di sola lettura creato sopra).
    • Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
    • Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.
  8. Fai clic su Avanti.
  9. Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
ActionId metadata.product_log_id Mappato direttamente dal campo ActionId.
ActionName security_result.action_details Mappato direttamente dal campo ActionName.
Approver additional.fields[Approver].value.string_value Mappato direttamente dal campo Approver.
Approver principal.user.userid Mappato dal campo Approver se Issuer non è presente.
audit_name metadata.description Mappato direttamente dal campo audit_name.
audit_row_id additional.fields[audit_row_id].value.string_value Mappato direttamente dal campo audit_row_id.
audit_type additional.fields[audit_type].value.string_value Mappato direttamente dal campo audit_type.
authentication_type principal.user.attribute.labels[authentication_type].value Mappato direttamente dal campo authentication_type estratto dal campo details.
Command principal.process.command_line Mappato direttamente dal campo Command dopo la decodifica dell'URL.
creation_time target.resource.attribute.creation_time Mappato direttamente dal campo creation_time.
details network.session_id Estratto dal campo details utilizzando l'analisi della coppia chiave-valore.
details principal.user.attribute.labels[authentication_type].value Estratto dal campo details utilizzando l'analisi della coppia chiave-valore.
details principal.asset.ip, principal.ip L'indirizzo IP viene estratto dal campo details utilizzando l'analisi delle coppie chiave-valore e mappato sia a principal.asset.ip sia a principal.ip.
DistributeOver additional.fields[DistributeOver].value.string_value Mappato direttamente dal campo DistributeOver.
dvc_ip intermediary.hostname Mappato direttamente dal campo dvc_ip estratto dal messaggio syslog.
dvc_ip observer.ip Mappato direttamente dal campo dvc_ip se logstash.collect.host non è presente.
Expiration additional.fields[Expiration].value.string_value Mappato direttamente dal campo Expiration.
host.architecture target.asset.hardware.cpu_platform Mappato direttamente dal campo host.architecture.
host.id target.asset.asset_id Mappato direttamente dal campo host.id, con il prefisso "ID host:".
host.ip target.ip Mappato direttamente dal campo host.ip.
host.mac target.mac Mappato direttamente dal campo host.mac.
host.name target.hostname Mappato direttamente dal campo host.name se host.hostname non è presente.
host.os.kernel target.platform_patch_level Mappato direttamente dal campo host.os.kernel.
host.os.name additional.fields[os_name].value.string_value Mappato direttamente dal campo host.os.name.
host.os.version target.platform_version Mappato direttamente dal campo host.os.version.
InsertTime additional.fields[InsertTime].value.string_value Mappato direttamente dal campo InsertTime.
Issuer additional.fields[Issuer].value.string_value Mappato direttamente dal campo Issuer.
Issuer principal.user.userid Mappato direttamente dal campo Issuer, se presente.
last_modified_by principal.resource.attribute.labels[last_modified_by].value Mappato direttamente dal campo last_modified_by.
log.source.address principal.ip L'indirizzo IP viene estratto dal campo log.source.address e mappato a principal.ip.
log.source.address principal.port La porta viene estratta dal campo log.source.address.
logstash.collect.host observer.ip Mappato direttamente dal campo logstash.collect.host, se presente.
logstash.collect.timestamp metadata.collected_timestamp Mappato direttamente dal campo logstash.collect.timestamp.
logstash.ingest.timestamp metadata.ingested_timestamp Mappato direttamente dal campo logstash.ingest.timestamp.
logstash.irm_environment additional.fields[irm_environment].value.string_value Mappato direttamente dal campo logstash.irm_environment.
logstash.irm_region additional.fields[irm_region].value.string_value Mappato direttamente dal campo logstash.irm_region.
logstash.irm_site additional.fields[irm_site].value.string_value Mappato direttamente dal campo logstash.irm_site.
logstash.process.host intermediary.hostname Mappato direttamente dal campo logstash.process.host.
message dvc_ip, json_data, timestamp Analizzato utilizzando grok per estrarre dvc_ip, json_data e timestamp.
modification_time target.resource.attribute.last_update_time Mappato direttamente dal campo modification_time.
modifier_user_id principal.resource.attribute.labels[modifier_user_id].value Mappato direttamente dal campo modifier_user_id.
object_id target.resource.product_object_id Mappato direttamente dal campo object_id.
object_name target.resource.name Mappato direttamente dal campo object_name.
object_type_name target.resource.attribute.labels[object_type_name].value Mappato direttamente dal campo object_type_name.
PackageName additional.fields[PackageName].value.string_value Mappato direttamente dal campo PackageName.
SourceId additional.fields[SourceId].value.string_value Mappato direttamente dal campo SourceId.
StartTime additional.fields[StartTime].value.string_value Mappato direttamente dal campo StartTime.
Status security_result.action Mappato su "BLOCK" se Status è "Closed", "ALLOW" se Status è "Open".
Status security_result.summary Mappato direttamente dal campo Status.
tanium_audit_type metadata.product_event_type Mappato direttamente dal campo tanium_audit_type.
timestamp metadata.event_timestamp Mappato direttamente dal campo timestamp estratto dal messaggio syslog o dal campo message.
type additional.fields[type].value.string_value Mappato direttamente dal campo type.
type_name metadata.product_event_type Mappato direttamente dal campo type_name.
User principal.user.userid Mappato direttamente dal campo User. Determinato dalla logica del parser in base alla presenza di src_ip, has_target e has_user. Può essere "NETWORK_CONNECTION", "USER_RESOURCE_ACCESS", "STATUS_UPDATE" o "GENERIC_EVENT". Codificato in modo permanente su "TANIUM_AUDIT". Codificato in modo permanente su "sicurezza informatica". Codificato in modo permanente su "TANIUM_AUDIT".
@version metadata.product_version Mappato direttamente dal campo @version.
agent.ephemeral_id additional.fields[ephemeral_id].value.string_value Mappato direttamente dal campo agent.ephemeral_id.
agent.id observer.asset_id Mappato direttamente dal campo agent.id, con il prefisso "filebeat:".
agent.type observer.application Mappato direttamente dal campo agent.type.
agent.version observer.platform_version Mappato direttamente dal campo agent.version.
Comment security_result.description Mappato direttamente dal campo Comment.
host.hostname target.hostname Mappato direttamente dal campo host.hostname, se presente.
input.type network.ip_protocol Mappato a "TCP" se input.type è "tcp" o "TCP".
syslog_severity security_result.severity Mappato su "HIGH" se syslog_severity è "error" o "warning", "MEDIUM" se "notice", "LOW" se "information" o "info".
syslog_severity security_result.severity_details Mappato direttamente dal campo syslog_severity.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.