Tanium Threat Response-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Tanium Threat Response-Logs mit der nativen AWS S3-Exportfunktion von Tanium Connect in Google Security Operations aufnehmen. Tanium Threat Response erzeugt Warnungen zur Bedrohungserkennung, Untersuchungsergebnisse und Incident Response-Daten im JSON-Format, die mit Tanium Connect direkt nach S3 exportiert werden können, ohne dass benutzerdefinierte Lambda-Funktionen erforderlich sind. Der Parser wandelt JSON-Rohdaten von Tanium Threat Response in ein einheitliches Datenmodell (UDM) um. Zuerst wird versucht, die eingehende Nachricht als JSON zu parsen. Potenzielle Fehler werden behandelt und relevante Felder werden extrahiert und der UDM-Struktur zugeordnet. Dazu gehören Details zum betroffenen Host, Nutzer, Prozess, zur Netzwerkaktivität und zu Sicherheitsergebnissen.
Hinweis
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Eine Google SecOps-Instanz
- Tanium Core Platform 7.0 oder höher
- Tanium Threat Response-Modul installiert und konfiguriert
- Tanium Connect-Modul mit gültiger Lizenz installiert
- Tanium Direct Connect 1.9.30 oder höher für Untersuchungsfunktionen
- Privilegierter Zugriff auf die Tanium-Konsole mit Administratorrechten
- Privilegierter Zugriff auf AWS (S3, IAM)
Tanium Threat Response-Dienstkonto konfigurieren
- Melden Sie sich in der Tanium Console an.
- Rufen Sie Module > Reaktion auf Bedrohungen auf.
- Klicken Sie rechts oben auf Einstellungen.
- Konfigurieren Sie im Abschnitt Dienstkonto Folgendes:
- Dienstkontonutzer: Wählen Sie einen Nutzer mit den entsprechenden Berechtigungen für die Reaktion auf Bedrohungen aus.
- Prüfen Sie, ob das Konto die Berechtigung „Connect User“ hat.
- Bestätigen Sie den Zugriff auf Threat Response-Benachrichtigungen und ‑Untersuchungsdaten.
- Klicken Sie auf Speichern, um die Dienstkontokonfiguration anzuwenden.
Voraussetzungen für Tanium Threat Response erfassen
- Melden Sie sich als Administrator in der Tanium Console an.
- Gehen Sie zu Verwaltung > Berechtigungen > Nutzer.
- Erstellen oder identifizieren Sie einen Dienstkontonutzer mit den folgenden Rollen:
- Rolle Threat Response Administrator oder Threat Response Read Only User.
- Rollenberechtigung Nutzer verbinden.
- Zugriff auf überwachte Computergruppen (empfohlen: Gruppe Alle Computer).
- Berechtigung Read Saved Question für Threat Response-Inhaltssätze.
AWS S3-Bucket und IAM für Google SecOps konfigurieren
- Erstellen Sie einen Amazon S3-Bucket gemäß diesem Nutzerhandbuch: Bucket erstellen.
- Speichern Sie den Namen und die Region des Buckets zur späteren Verwendung (z. B.
tanium-threat-response-logs). - Erstellen Sie einen Nutzer gemäß diesem Nutzerhandbuch: IAM-Nutzer erstellen.
- Wählen Sie den erstellten Nutzer aus.
- Wählen Sie den Tab Sicherheitsanmeldedaten aus.
- Klicken Sie im Bereich Access Keys (Zugriffsschlüssel) auf Create Access Key (Zugriffsschlüssel erstellen).
- Wählen Sie als Anwendungsfall die Option Drittanbieterdienst aus.
- Klicken Sie auf Weiter.
- Optional: Fügen Sie ein Beschreibungs-Tag hinzu.
- Klicken Sie auf Zugriffsschlüssel erstellen.
- Klicken Sie auf CSV-Datei herunterladen, um den Zugriffsschlüssel und den geheimen Zugriffsschlüssel für die spätere Verwendung zu speichern.
- Klicken Sie auf Fertig.
- Wählen Sie den Tab Berechtigungen aus.
- Klicken Sie im Bereich Berechtigungsrichtlinien auf Berechtigungen hinzufügen.
- Wählen Sie Berechtigungen hinzufügen aus.
- Wählen Sie Richtlinien direkt anhängen aus.
- Suchen Sie nach der Richtlinie AmazonS3FullAccess und wählen Sie sie aus.
- Klicken Sie auf Weiter.
- Klicken Sie auf Berechtigungen hinzufügen.
AWS S3-Ziel für Tanium Connect konfigurieren
- Melden Sie sich in der Tanium Console an.
- Gehen Sie zu Module > Verbinden.
- Klicken Sie auf Create Connection.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie einen aussagekräftigen Namen ein (z. B.
Threat Response Alerts to S3 for SecOps). - Beschreibung: Optionale Beschreibung (z. B.
Export threat detection alerts and investigation findings to AWS S3 for Google SecOps ingestion). - Aktivieren: Wählen Sie diese Option aus, um die Verbindung nach Zeitplan auszuführen.
- Name: Geben Sie einen aussagekräftigen Namen ein (z. B.
- Klicken Sie auf Weiter.
Verbindungsquelle konfigurieren
- Geben Sie im Bereich Quelle die folgenden Konfigurationsdetails an:
- Quelltyp: Wählen Sie Gespeicherte Frage aus.
- Gespeicherte Frage: Wählen Sie eine der folgenden gespeicherten Fragen zur Bedrohungsabwehr aus:
- Threat Response – Alerts für Warnmeldungen zur Bedrohungserkennung.
- Bedrohungsreaktion – Untersuchungsergebnisse für Untersuchungsergebnisse.
- Threat Response – Intel Matches für Threat Intelligence-Übereinstimmungen.
- Threat Response – Endpoint Activity für verdächtige Endpunktaktivitäten.
- Threat Response – Netzwerkverbindungen für netzwerkbasierte Bedrohungen.
- Computer Group (Computergruppe): Wählen Sie All Computers (Alle Computer) oder bestimmte Computergruppen aus, die überwacht werden sollen.
- Aktualisierungsintervall: Legen Sie ein geeignetes Intervall für die Datenerhebung fest (z. B. 10 Minuten für Bedrohungswarnungen).
- Klicken Sie auf Weiter.
AWS S3-Ziel konfigurieren
- Geben Sie im Bereich Ziel die folgenden Konfigurationsdetails an:
- Zieltyp: Wählen Sie AWS S3 aus.
- Zielname: Geben Sie einen eindeutigen Namen ein (z. B.
Google SecOps ThreatResponse S3 Destination). - AWS-Zugriffsschlüssel: Geben Sie den AWS-Zugriffsschlüssel aus der CSV-Datei ein, die Sie im AWS S3-Konfigurationsschritt heruntergeladen haben.
- Geheimer AWS-Zugriffsschlüssel: Geben Sie den geheimen AWS-Zugriffsschlüssel aus der CSV-Datei ein, die Sie im Schritt „AWS S3-Konfiguration“ heruntergeladen haben.
- Bucket-Name: Geben Sie den Namen Ihres S3-Buckets ein (z. B.
tanium-threat-response-logs). - Region: Wählen Sie die AWS-Region aus, in der sich Ihr S3-Bucket befindet.
- Schlüsselpräfix: Geben Sie ein Präfix für die S3-Objekte ein (z. B.
tanium/threat-response/).
- Klicken Sie auf Weiter.
Filter konfigurieren
- Konfigurieren Sie im Bereich Filter die Optionen für die Datenfilterung:
- Nur neue Elemente senden: Wählen Sie diese Option aus, um nur neue Bedrohungswarnungen seit dem letzten Export zu senden.
- Spaltenfilter: Sie können bei Bedarf Filter basierend auf bestimmten Benachrichtigungsattributen hinzufügen, z. B. nach Schweregrad der Benachrichtigung, Bedrohungstyp oder Prüfstatus filtern.
- Klicken Sie auf Weiter.
Daten für AWS S3 formatieren
- Konfigurieren Sie im Abschnitt Format das Datenformat:
- Format: Wählen Sie JSON aus.
- Optionen:
- Header einschließen: Auswahl aufheben, um Header in der JSON-Ausgabe zu vermeiden.
- Leere Zellen einbeziehen: Wählen Sie die gewünschte Option aus.
- Erweiterte Optionen:
- Dateibenennung: Verwenden Sie die standardmäßige zeitstempelbasierte Benennung.
- Komprimierung: Wählen Sie Gzip aus, um die Speicherkosten und die Übertragungszeit zu reduzieren.
- Klicken Sie auf Weiter.
Verbindung planen
- Konfigurieren Sie im Abschnitt Zeitplan den Exportzeitplan:
- Zeitplan aktivieren: Wählen Sie diese Option aus, um automatische geplante Exporte zu aktivieren.
- Zeitplantyp: Wählen Sie Wiederkehrend aus.
- Häufigkeit: Wählen Sie Alle 10 Minuten aus, um rechtzeitig Benachrichtigungen zu Bedrohungsreaktionen zu erhalten.
- Beginn: Legen Sie eine geeignete Startzeit für den ersten Export fest.
- Klicken Sie auf Weiter.
Verbindung speichern und prüfen
- Überprüfen Sie die Verbindungskonfiguration auf dem Zusammenfassungsbildschirm.
- Klicken Sie auf Save, um die Verbindung herzustellen.
- Klicken Sie auf Verbindung testen, um die Konfiguration zu prüfen.
- Wenn der Test erfolgreich ist, klicken Sie auf Jetzt ausführen, um einen ersten Export durchzuführen.
- Überwachen Sie den Verbindungsstatus auf der Seite Connect-Übersicht.
Feed in Google SecOps konfigurieren, um Tanium Threat Response-Logs aufzunehmen
- Rufen Sie die Einstellungen > Datenverwaltung > Feeds auf. Wenn Sie eine reine SIEM-Plattform verwenden, rufen Sie die Einstellungen > Feeds auf.
- Klicken Sie auf + Neuen Feed hinzufügen.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B.
Tanium Threat Response logs. - Wählen Sie als Quelltyp Amazon S3 V2 aus.
- Wählen Sie Tanium Threat Response als Logtyp aus.
- Klicken Sie auf Weiter.
- Geben Sie Werte für die folgenden Eingabeparameter an:
- S3-URI:
s3://tanium-threat-response-logs/tanium/threat-response/ - Optionen zum Löschen der Quelle: Wählen Sie die gewünschte Löschoption aus.
- Maximales Dateialter: Dateien einschließen, die in den letzten Tagen geändert wurden. Der Standardwert ist 180 Tage.
- Zugriffsschlüssel-ID: Der Nutzerzugriffsschlüssel mit Zugriff auf den S3-Bucket.
- Geheimer Zugriffsschlüssel: Der geheime Schlüssel des Nutzers mit Zugriff auf den S3-Bucket.
- Asset-Namespace: Der Asset-Namespace.
- Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet wird.
- S3-URI:
- Klicken Sie auf Weiter.
- Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
| Benachrichtigungs-ID | security_result.rule_instance | Der Wert dieses Felds wird aus dem Feld „Alert Id“ im Rohlog übernommen. |
| Computer-IP | principal.ip | Der Wert dieses Felds wird aus dem Feld „Computer-IP“ im Rohlog übernommen. |
| Computer-IP | target.ip | Der Wert dieses Felds wird aus dem Feld „Computer-IP“ im Rohlog übernommen. |
| Computername | principal.hostname | Der Wert dieses Felds wird aus dem Feld „Computer Name“ im Rohlog übernommen. |
| Computername | target.hostname | Der Wert dieses Felds wird aus dem Feld „Computer Name“ im Rohlog übernommen. |
| id | target.resource.attribute.labels | Der Wert dieses Felds wird aus dem Feld „id“ im Rohlog übernommen. Der Schlüssel ist auf „id“ hartcodiert. |
| Intel-ID | security_result.rule_id | Der Wert dieses Felds wird aus dem Feld „Intel Id“ im Rohlog übernommen. |
| Bedrohungsdaten-Labels | security_result.description | Der Wert dieses Felds wird aus dem Feld „Intel Labels“ im Rohlog übernommen. |
| Name der Bedrohungsdaten | security_result.summary | Der Wert dieses Felds wird aus dem Feld „Intel Name“ im Rohlog übernommen. |
| Name der Bedrohungsdaten | security_result.threat_name | Der Wert dieses Felds wird aus dem Feld „Intel Name“ im Rohlog übernommen. |
| Bedrohungstyp | security_result.rule_type | Der Wert dieses Felds wird aus dem Feld „Intel Type“ im Rohlog übernommen. |
| MatchDetails.finding.system_info.bits | principal.asset.platform_software.bits | Der Wert dieses Felds stammt aus dem Feld „MatchDetails.finding.system_info.bits“ im Rohlog. |
| MatchDetails.finding.system_info.os | principal.asset.platform_software.platform_version | Der Wert dieses Felds wird aus dem Feld „MatchDetails.finding.system_info.os“ im Rohlog übernommen. |
| MatchDetails.finding.system_info.patch_level | principal.asset.platform_software.platform_patch_level | Der Wert dieses Felds wird aus dem Feld „MatchDetails.finding.system_info.patch_level“ im Rohlog übernommen. |
| MatchDetails.finding.system_info.platform | principal.asset.platform_software.platform | Der Wert dieses Felds stammt aus dem Feld „MatchDetails.finding.system_info.platform“ im Rohlog. |
| MatchDetails.match.contexts.0.event.registrySet.keyPath | target.registry.registry_key | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.contexts.0.event.registrySet.keyPath“ im Rohlog übernommen. |
| MatchDetails.match.contexts.0.event.registrySet.valueName | target.registry.registry_value_name | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.contexts.0.event.registrySet.valueName“ im Rohlog übernommen. |
| MatchDetails.match.properties.args | security_result.about.process.command_line | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.args“ im Rohlog übernommen. |
| MatchDetails.match.properties.file.fullpath | target.process.file.full_path | Der Wert dieses Felds stammt aus dem Feld „MatchDetails.match.properties.file.fullpath“ im Rohlog. |
| MatchDetails.match.properties.file.md5 | target.process.file.md5 | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.file.md5“ im Rohlog übernommen. |
| MatchDetails.match.properties.file.sha1 | target.process.file.sha1 | Der Wert dieses Felds stammt aus dem Feld „MatchDetails.match.properties.file.sha1“ im Rohlog. |
| MatchDetails.match.properties.file.sha256 | target.process.file.sha256 | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.file.sha256“ im Rohlog übernommen. |
| MatchDetails.match.properties.fullpath | target.process.file.full_path | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.fullpath“ im Rohlog übernommen. |
| MatchDetails.match.properties.local_port | principal.port | Der Wert dieses Felds stammt aus dem Feld „MatchDetails.match.properties.local_port“ im Rohlog. |
| MatchDetails.match.properties.md5 | target.process.file.md5 | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.md5“ im Rohlog übernommen. |
| MatchDetails.match.properties.parent.args | security_result.about.process.command_line | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.parent.args“ im Rohlog übernommen. |
| MatchDetails.match.properties.parent.file.fullpath | target.process.parent_process.file.full_path | Der Wert dieses Felds stammt aus dem Feld „MatchDetails.match.properties.parent.file.fullpath“ im Rohlog. |
| MatchDetails.match.properties.parent.file.md5 | target.process.parent_process.file.md5 | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.parent.file.md5“ im Rohlog übernommen. |
| MatchDetails.match.properties.parent.parent.file.fullpath | target.process.parent_process.parent_process.file.full_path | Der Wert dieses Felds stammt aus dem Feld „MatchDetails.match.properties.parent.parent.file.fullpath“ im Rohlog. |
| MatchDetails.match.properties.parent.parent.file.md5 | target.process.parent_process.parent_process.file.md5 | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.parent.parent.file.md5“ im Rohlog übernommen. |
| MatchDetails.match.properties.parent.parent.parent.file.fullpath | target.process.parent_process.parent_process.parent_process.file.full_path | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.parent.parent.parent.file.fullpath“ im Rohlog übernommen. |
| MatchDetails.match.properties.parent.parent.parent.file.md5 | target.process.parent_process.parent_process.parent_process.file.md5 | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.parent.parent.parent.file.md5“ im Rohlog übernommen. |
| MatchDetails.match.properties.parent.parent.parent.parent.file.fullpath | target.process.parent_process.parent_process.parent_process.parent_process.file.full_path | Der Wert dieses Felds stammt aus dem Feld „MatchDetails.match.properties.parent.parent.parent.parent.file.fullpath“ im Rohlog. |
| MatchDetails.match.properties.parent.parent.parent.parent.file.md5 | target.process.parent_process.parent_process.parent_process.parent_process.file.md5 | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.parent.parent.parent.parent.file.md5“ im Rohlog übernommen. |
| 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 | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.parent.parent.parent.parent.parent.file.fullpath“ im Rohlog übernommen. |
| MatchDetails.match.properties.parent.parent.parent.parent.parent.file.md5 | target.process.parent_process.parent_process.parent_process.parent_process.parent_process.file.md5 | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.parent.parent.parent.parent.parent.file.md5“ im Rohlog übernommen. |
| MatchDetails.match.properties.parent.pid | target.process.parent_process.pid | Der Wert dieses Felds stammt aus dem Feld „MatchDetails.match.properties.parent.pid“ im Rohlog. |
| MatchDetails.match.properties.parent.parent.pid | target.process.parent_process.parent_process.pid | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.parent.parent.pid“ im Rohlog übernommen. |
| MatchDetails.match.properties.parent.parent.parent.pid | target.process.parent_process.parent_process.parent_process.pid | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.parent.parent.parent.pid“ im Rohlog übernommen. |
| MatchDetails.match.properties.parent.parent.parent.parent.pid | target.process.parent_process.parent_process.parent_process.parent_process.pid | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.parent.parent.parent.parent.pid“ im Rohlog übernommen. |
| MatchDetails.match.properties.parent.parent.parent.parent.parent.pid | target.process.parent_process.parent_process.parent_process.parent_process.parent_process.pid | Der Wert dieses Felds stammt aus dem Feld „MatchDetails.match.properties.parent.parent.parent.parent.parent.pid“ im Rohlog. |
| MatchDetails.match.properties.pid | target.process.pid | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.pid“ im Rohlog übernommen. |
| MatchDetails.match.properties.protocol | network.ip_protocol | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.protocol“ im Rohlog übernommen. |
| MatchDetails.match.properties.remote_ip | target.ip | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.remote_ip“ im Rohlog übernommen. |
| MatchDetails.match.properties.remote_port | target.port | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.remote_port“ im Rohlog übernommen. |
| MatchDetails.match.properties.sha1 | target.process.file.sha1 | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.sha1“ im Rohlog übernommen. |
| MatchDetails.match.properties.sha256 | target.process.file.sha256 | Der Wert dieses Felds wird aus dem Feld „MatchDetails.match.properties.sha256“ im Rohlog übernommen. |
| MatchDetails.match.properties.user | target.administrative_domain | Der Domainname wird aus dem Feld „MatchDetails.match.properties.user“ im Rohlog extrahiert, indem nach einem Backslash („\“) gesucht wird. Die Zeichen vor dem Backslash werden als Domainname betrachtet. |
| MatchDetails.match.properties.user | target.user.userid | Der Nutzername wird aus dem Feld „MatchDetails.match.properties.user“ im Rohlog extrahiert, indem nach einem Backslash-Zeichen („“) gesucht wird. Die Zeichen nach dem Backslash werden als Nutzername betrachtet. |
| MITRE-Techniken | security_result.threat_id | Der Wert dieses Felds wird aus dem Feld „MITRE Techniques“ im Rohlog übernommen. |
| params | security_result.detection_fields | Der Wert dieses Felds wird aus dem Feld „params“ im Rohlog übernommen. Der Schlüssel ist hartcodiert auf „params_“, verkettet mit dem Index des Parameters. |
| Zeitstempel | metadata.event_timestamp | Der Wert dieses Felds wird aus dem Feld „Timestamp“ im Rohlog übernommen. |
| – | is_alert | Dieses Feld ist hartcodiert auf „true“, wenn das Feld „Computer-IP“ im Rohprotokoll nicht leer ist. |
| – | metadata.log_type | Dieses Feld ist hartcodiert auf „TANIUM_THREAT_RESPONSE“. |
| – | metadata.product_event_type | Dieses Feld ist hartcodiert auf „Tanium Signal“. |
| – | metadata.product_name | Dieses Feld ist fest auf „Threat Response“ codiert. |
| – | metadata.vendor_name | Dieses Feld ist hartcodiert auf „Tanium“. |
| – | network.http.method | Dieses Feld ist hartcodiert auf „POST“, wenn der Wert des Felds „method“ im Rohlog „submit“ ist. |
Änderungsprotokoll
Änderungsprotokoll für diesen Parser ansehen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten