Tanium-Audit-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Tanium-Audit-Logs mit Amazon S3 in Google Security Operations aufnehmen. Dazu wird die native S3-Exportfunktion von Tanium Connect verwendet. Der Parser extrahiert die Logs und löscht dabei zuerst zahlreiche Standardfelder. Anschließend wird die Log-Nachricht mit „grok“ und dem JSON-Filter geparst und Felder wie Zeitstempel, Geräte-IP und Prüfdetails werden extrahiert. Der Parser ordnet diese extrahierten Felder dem UDM zu und verarbeitet verschiedene Datentypen und bedingte Logik, um geeignete UDM-Felder basierend auf dem Vorhandensein und den Werten bestimmter Tanium-Audit-Log-Attribute zu füllen.

Hinweise

Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:

  • Eine Google SecOps-Instanz
  • Privilegierter Zugriff auf Tanium Connect und Tanium Console
  • Privilegierter Zugriff auf AWS (S3, IAM)

Amazon S3-Bucket erstellen

  1. Öffnen Sie die Amazon S3-Konsole.
  2. Bei Bedarf können Sie die Region ändern.
    • Wählen Sie in der Navigationsleiste die Region aus, in der sich Ihre Tanium-Prüfprotokolle befinden sollen.
  3. Klicken Sie auf Bucket erstellen.
    • Bucket-Name: Geben Sie einen aussagekräftigen Namen für den Bucket ein, z. B. tanium-audit-logs.
    • Region: Wählen Sie die gewünschte Region aus (z. B. us-east-1).
    • Klicken Sie auf Erstellen.

IAM-Nutzer mit vollem Zugriff auf Amazon S3 erstellen

  1. Öffnen Sie die IAM-Konsole.
  2. Klicken Sie auf Nutzer > Nutzer hinzufügen.
  3. Geben Sie einen Nutzernamen ein, z. B. tanium-connect-s3-user.
  4. Wählen Sie nach Bedarf Programmatic access (Programmgesteuerter Zugriff) und/oder AWS Management Console access (Zugriff auf die AWS Management Console) aus.
  5. Wählen Sie entweder Automatisch generiertes Passwort oder Benutzerdefiniertes Passwort aus.
  6. Klicken Sie auf Next: Permissions.
  7. Wählen Sie Vorhandene Richtlinien direkt anhängen aus.
  8. Suchen Sie nach der Richtlinie AmazonS3FullAccess und weisen Sie sie dem Nutzer zu.
  9. Klicken Sie auf Weiter: Tags.
  10. Klicken Sie auf Weiter: Überprüfen.
  11. Klicken Sie auf Nutzer erstellen.
  12. Kopieren und speichern Sie die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel für die spätere Verwendung.

Berechtigungen für Amazon S3-Bucket konfigurieren

  1. Wählen Sie in der Amazon S3-Konsole den Bucket aus, den Sie zuvor erstellt haben.
  2. Klicken Sie auf Berechtigungen > Bucket-Richtlinie.
  3. Fügen Sie im Bucket-Richtlinieneditor die folgende Richtlinie hinzu:

    {
      "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. Ersetzen Sie die folgenden Variablen:

    • Ersetzen Sie YOUR_ACCOUNT_ID durch Ihre AWS-Konto-ID.
    • Ändern Sie tanium-audit-logs in Ihren tatsächlichen Bucket-Namen, falls er sich unterscheidet.
    • Ändern Sie tanium-connect-s3-user in Ihren tatsächlichen IAM-Nutzernamen, falls er sich unterscheidet.
  5. Klicken Sie auf Speichern.

Tanium Connect für den S3-Export konfigurieren

AWS S3-Verbindung in Tanium Connect erstellen

  1. Melden Sie sich als Administrator in der Tanium Console an.
  2. Klicken Sie auf Tanium Connect > Connections (Tanium Connect > Verbindungen).
  3. Klicken Sie auf Create Connection.
  4. Geben Sie im Abschnitt Allgemeine Informationen die folgenden Konfigurationsdetails an:
    • Name: Geben Sie einen aussagekräftigen Namen ein, z. B. Tanium Audit to S3.
    • Beschreibung: Geben Sie eine aussagekräftige Beschreibung ein, z. B. Export Tanium audit logs to S3 for Google SecOps ingestion.
    • Aktivieren: Wählen Sie diese Option aus, um die Verbindung zu aktivieren.
    • Log-Ebene: Wählen Sie Informationen (Standard) aus oder passen Sie die Einstellung nach Bedarf an.

Verbindungsquelle konfigurieren

  1. Wählen Sie im Abschnitt Konfiguration für Quelle die Option Tanium Audit aus.
  2. Konfigurieren Sie die Einstellungen für die Prüfquelle:
    • Days of History Retrieved (Abgerufene Tage mit Verlaufsdaten): Geben Sie die Anzahl der Tage mit Verlaufsdaten für den Audit-Log ein, die abgerufen werden sollen (z. B. 7 für eine Woche).
    • Audit Types (Audit-Typen): Wählen Sie die Audit-Typen aus, die Sie exportieren möchten. Wählen Sie eine der folgenden Optionen aus:
      • Aktionsverlauf: Von Konsolenbedienern ausgeführte Aktionen.
      • Authentifizierung: Ereignisse zur Nutzerauthentifizierung.
      • Inhalte: Änderungen und Modifikationen an Inhalten.
      • Gruppen: Änderungen an Computergruppen.
      • Pakete: Aktivitäten im Zusammenhang mit Paketen.
      • Sensoren: Änderungen an Sensoren.
      • Systemeinstellungen: Änderungen an der Systemkonfiguration.
      • Nutzer: Aktivitäten zur Nutzerverwaltung.

AWS S3-Ziel konfigurieren

  1. Wählen Sie unter Ziel die Option AWS S3 aus.
  2. Geben Sie die folgenden Konfigurationsdetails an:
    • Zielname: Geben Sie einen Namen ein, z. B. Google SecOps S3 Bucket.
    • AWS Access Key (AWS-Zugriffsschlüssel): Geben Sie die Zugriffsschlüssel-ID des zuvor erstellten IAM-Nutzers ein.
    • AWS Secret Key: Geben Sie den geheimen Zugriffsschlüssel des zuvor erstellten IAM-Nutzers ein.
    • Bucket-Name: Geben Sie den Namen Ihres S3-Buckets ein (z. B. tanium-audit-logs).
    • Bucket-Pfad: Optional. Geben Sie ein Pfadpräfix ein, z. B. tanium/audit/.
    • Region: Wählen Sie die AWS-Region aus, in der sich Ihr Bucket befindet, z. B. us-east-1.

Format und Zeitplan konfigurieren

  1. Konfigurieren Sie im Bereich Format das Ausgabeformat:
    • Formattyp: Wählen Sie JSON aus.
    • Spaltenüberschriften einfügen: Wählen Sie aus, ob Spaltenüberschriften eingefügt werden sollen.
    • Dokument generieren: Deaktivieren Sie diese Option, um Roh-JSON-Daten zu senden.
  2. Konfigurieren Sie im Abschnitt Zeitplan, wann die Verbindung ausgeführt werden soll:
    • Schedule Type (Zeitplantyp): Wählen Sie Cron aus.
    • Cron-Ausdruck: Geben Sie einen Cron-Ausdruck für regelmäßige Exporte ein, z. B. 0 */1 * * * für stündliche Exporte.
    • Startdatum: Legen Sie das Startdatum für den Zeitplan fest.
  3. Klicken Sie auf Änderungen speichern.

Verbindung testen und ausführen

  1. Rufen Sie auf der Seite Connect-Übersicht die Seite Verbindungen auf.
  2. Klicken Sie auf die von Ihnen erstellte Verbindung (Tanium Audit to S3).
  3. Klicken Sie auf Jetzt ausführen, um die Verbindung zu testen.
  4. Bestätigen Sie, dass Sie die Verbindung ausführen möchten.
  5. Behalten Sie den Verbindungsstatus im Blick und prüfen Sie, ob Audit-Logs in Ihren S3-Bucket exportiert werden.

Optional: IAM-Nutzer mit Lesezugriff und Schlüssel für Google SecOps erstellen

  1. Rufen Sie die AWS-Konsole > IAM > Nutzer > Nutzer hinzufügen auf.
  2. Klicken Sie auf Add users (Nutzer hinzufügen).
  3. Geben Sie die folgenden Konfigurationsdetails an:
    • Nutzer: Geben Sie secops-reader ein.
    • Zugriffstyp: Wählen Sie Zugriffsschlüssel – programmatischer Zugriff aus.
  4. Klicken Sie auf Nutzer erstellen.
  5. Minimale Leseberechtigung (benutzerdefiniert) anhängen: Nutzer > secops-reader > Berechtigungen > Berechtigungen hinzufügen > Richtlinien direkt anhängen > Richtlinie erstellen.
  6. Geben Sie im JSON-Editor die folgende Richtlinie ein:

    {
      "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. Legen Sie secops-reader-policy als Name fest.

  8. Gehen Sie zu Richtlinie erstellen> suchen/auswählen > Weiter > Berechtigungen hinzufügen.

  9. Rufen Sie Sicherheitsanmeldedaten > Zugriffsschlüssel > Zugriffsschlüssel erstellen auf.

  10. Laden Sie die CSV herunter (diese Werte werden in den Feed eingegeben).

Feed in Google SecOps konfigurieren, um Tanium-Audit-Logs aufzunehmen

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf + Neuen Feed hinzufügen.
  3. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Tanium Audit logs.
  4. Wählen Sie Amazon S3 V2 als Quelltyp aus.
  5. Wählen Sie Tanium Audit als Logtyp aus.
  6. Klicken Sie auf Weiter.
  7. Geben Sie Werte für die folgenden Eingabeparameter an:
    • S3-URI: s3://tanium-audit-logs/tanium/audit/ (passen Sie den Pfad an, wenn Sie einen anderen Bucket-Namen oder Pfad verwendet haben).
    • Optionen zum Löschen von Quellen: Wählen Sie die gewünschte Option zum Löschen aus.
    • Maximales Dateialter: Dateien einschließen, die in den letzten Tagen geändert wurden. Der Standardwert ist 180 Tage.
    • Zugriffsschlüssel-ID: Nutzerzugriffsschlüssel mit Zugriff auf den S3-Bucket (vom oben erstellten schreibgeschützten Nutzer).
    • Geheimer Zugriffsschlüssel: Der geheime Schlüssel des Nutzers mit Zugriff auf den S3-Bucket (vom oben erstellten schreibgeschützten Nutzer).
    • Asset-Namespace: Der Asset-Namespace.
    • Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll.
  8. Klicken Sie auf Weiter.
  9. Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
ActionId metadata.product_log_id Direkt aus dem Feld ActionId zugeordnet.
ActionName security_result.action_details Direkt aus dem Feld ActionName zugeordnet.
Approver additional.fields[Approver].value.string_value Direkt aus dem Feld Approver zugeordnet.
Approver principal.user.userid Wird aus dem Feld Approver zugeordnet, wenn Issuer nicht vorhanden ist.
audit_name metadata.description Direkt aus dem Feld audit_name zugeordnet.
audit_row_id additional.fields[audit_row_id].value.string_value Direkt aus dem Feld audit_row_id zugeordnet.
audit_type additional.fields[audit_type].value.string_value Direkt aus dem Feld audit_type zugeordnet.
authentication_type principal.user.attribute.labels[authentication_type].value Direkt aus dem Feld authentication_type zugeordnet, das aus dem Feld details extrahiert wurde.
Command principal.process.command_line Direkt aus dem Feld Command nach der URL-Decodierung zugeordnet.
creation_time target.resource.attribute.creation_time Direkt aus dem Feld creation_time zugeordnet.
details network.session_id Wird mithilfe der Schlüssel/Wert-Analyse aus dem Feld details extrahiert.
details principal.user.attribute.labels[authentication_type].value Wird mithilfe der Schlüssel/Wert-Analyse aus dem Feld details extrahiert.
details principal.asset.ip, principal.ip Die IP-Adresse wird mithilfe der Schlüssel/Wert-Analyse aus dem Feld details extrahiert und sowohl principal.asset.ip als auch principal.ip zugeordnet.
DistributeOver additional.fields[DistributeOver].value.string_value Direkt aus dem Feld DistributeOver zugeordnet.
dvc_ip intermediary.hostname Direkt aus dem Feld dvc_ip abgeleitet, das aus der Syslog-Nachricht extrahiert wurde.
dvc_ip observer.ip Wird direkt aus dem Feld dvc_ip zugeordnet, wenn logstash.collect.host nicht vorhanden ist.
Expiration additional.fields[Expiration].value.string_value Direkt aus dem Feld Expiration zugeordnet.
host.architecture target.asset.hardware.cpu_platform Direkt aus dem Feld host.architecture zugeordnet.
host.id target.asset.asset_id Direkt aus dem Feld host.id zugeordnet, mit dem Präfix „Host-ID:“.
host.ip target.ip Direkt aus dem Feld host.ip zugeordnet.
host.mac target.mac Direkt aus dem Feld host.mac zugeordnet.
host.name target.hostname Wird direkt aus dem Feld host.name zugeordnet, wenn host.hostname nicht vorhanden ist.
host.os.kernel target.platform_patch_level Direkt aus dem Feld host.os.kernel zugeordnet.
host.os.name additional.fields[os_name].value.string_value Direkt aus dem Feld host.os.name zugeordnet.
host.os.version target.platform_version Direkt aus dem Feld host.os.version zugeordnet.
InsertTime additional.fields[InsertTime].value.string_value Direkt aus dem Feld InsertTime zugeordnet.
Issuer additional.fields[Issuer].value.string_value Direkt aus dem Feld Issuer zugeordnet.
Issuer principal.user.userid Wird direkt aus dem Feld Issuer zugeordnet, sofern vorhanden.
last_modified_by principal.resource.attribute.labels[last_modified_by].value Direkt aus dem Feld last_modified_by zugeordnet.
log.source.address principal.ip Die IP-Adresse wird aus dem Feld log.source.address extrahiert und principal.ip zugeordnet.
log.source.address principal.port Der Port wird aus dem Feld log.source.address extrahiert.
logstash.collect.host observer.ip Wird direkt aus dem Feld logstash.collect.host zugeordnet, sofern vorhanden.
logstash.collect.timestamp metadata.collected_timestamp Direkt aus dem Feld logstash.collect.timestamp zugeordnet.
logstash.ingest.timestamp metadata.ingested_timestamp Direkt aus dem Feld logstash.ingest.timestamp zugeordnet.
logstash.irm_environment additional.fields[irm_environment].value.string_value Direkt aus dem Feld logstash.irm_environment zugeordnet.
logstash.irm_region additional.fields[irm_region].value.string_value Direkt aus dem Feld logstash.irm_region zugeordnet.
logstash.irm_site additional.fields[irm_site].value.string_value Direkt aus dem Feld logstash.irm_site zugeordnet.
logstash.process.host intermediary.hostname Direkt aus dem Feld logstash.process.host zugeordnet.
message dvc_ip, json_data, timestamp Mit grok geparst, um dvc_ip, json_data und timestamp zu extrahieren.
modification_time target.resource.attribute.last_update_time Direkt aus dem Feld modification_time zugeordnet.
modifier_user_id principal.resource.attribute.labels[modifier_user_id].value Direkt aus dem Feld modifier_user_id zugeordnet.
object_id target.resource.product_object_id Direkt aus dem Feld object_id zugeordnet.
object_name target.resource.name Direkt aus dem Feld object_name zugeordnet.
object_type_name target.resource.attribute.labels[object_type_name].value Direkt aus dem Feld object_type_name zugeordnet.
PackageName additional.fields[PackageName].value.string_value Direkt aus dem Feld PackageName zugeordnet.
SourceId additional.fields[SourceId].value.string_value Direkt aus dem Feld SourceId zugeordnet.
StartTime additional.fields[StartTime].value.string_value Direkt aus dem Feld StartTime zugeordnet.
Status security_result.action Wird „BLOCK“ zugeordnet, wenn Status „Closed“ ist, und „ALLOW“, wenn Status „Open“ ist.
Status security_result.summary Direkt aus dem Feld Status zugeordnet.
tanium_audit_type metadata.product_event_type Direkt aus dem Feld tanium_audit_type zugeordnet.
timestamp metadata.event_timestamp Direkt aus dem Feld timestamp extrahiert, das aus der Syslog-Nachricht oder dem Feld message stammt.
type additional.fields[type].value.string_value Direkt aus dem Feld type zugeordnet.
type_name metadata.product_event_type Direkt aus dem Feld type_name zugeordnet.
User principal.user.userid Direkt aus dem Feld User zugeordnet. Wird durch die Parserlogik auf Grundlage des Vorhandenseins von src_ip, has_target und has_user bestimmt. Kann „NETWORK_CONNECTION“, „USER_RESOURCE_ACCESS“, „STATUS_UPDATE“ oder „GENERIC_EVENT“ sein. Fest codiert auf „TANIUM_AUDIT“. Fest codiert auf „Cybersicherheit“. Fest codiert auf „TANIUM_AUDIT“.
@version metadata.product_version Direkt aus dem Feld @version zugeordnet.
agent.ephemeral_id additional.fields[ephemeral_id].value.string_value Direkt aus dem Feld agent.ephemeral_id zugeordnet.
agent.id observer.asset_id Direkt aus dem Feld agent.id zugeordnet, mit dem Präfix „filebeat:“
agent.type observer.application Direkt aus dem Feld agent.type zugeordnet.
agent.version observer.platform_version Direkt aus dem Feld agent.version zugeordnet.
Comment security_result.description Direkt aus dem Feld Comment zugeordnet.
host.hostname target.hostname Wird direkt aus dem Feld host.hostname zugeordnet, sofern vorhanden.
input.type network.ip_protocol Wird „TCP“ zugeordnet, wenn input.type „tcp“ oder „TCP“ ist.
syslog_severity security_result.severity Wird „HIGH“ zugeordnet, wenn syslog_severity „error“ oder „warning“ ist, „MEDIUM“ bei „notice“ und „LOW“ bei „information“ oder „info“.
syslog_severity security_result.severity_details Direkt aus dem Feld syslog_severity zugeordnet.

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten