Tanium Stream-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Tanium Stream-Logs mit der nativen AWS S3-Exportfunktion von Tanium Connect in Google Security Operations aufnehmen. Tanium Stream bietet Echtzeit-Endpunkttelemetrie, Daten zur Bedrohungssuche und Verhaltensanalysen 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-Rohlogs aus Tanium Stream in ein einheitliches Datenmodell (Unified Data Model, UDM) um. Zuerst werden gängige Felder normalisiert und dann wird eine spezifische Logik basierend auf „logType“ oder „eventType“ angewendet, um relevante Informationen den entsprechenden UDM-Feldern zuzuordnen. Dabei werden verschiedene Ereignistypen wie Netzwerkverbindungen, Nutzeranmeldungen, Prozessstarts und Dateiänderungen verarbeitet.
Hinweis
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Eine Google SecOps-Instanz
- Tanium Core Platform 7.0 oder höher
- Tanium Stream-Modul installiert und konfiguriert
- Tanium Connect-Modul mit gültiger Lizenz installiert
- Tanium Threat Response 3.4.346 oder höher (bei Verwendung der TR-Integration)
- Privilegierter Zugriff auf die Tanium-Konsole mit Administratorrechten
- Privilegierter Zugriff auf AWS (S3, IAM)
Tanium Stream-Dienstkonto konfigurieren
- Melden Sie sich in der Tanium Console an.
- Rufen Sie Module > Stream auf.
- Klicken Sie rechts oben auf Einstellungen.
- Konfigurieren Sie im Abschnitt Dienstkonto Folgendes:
- Dienstkontonutzer: Wählen Sie einen Nutzer mit den entsprechenden Stream-Berechtigungen aus.
- Prüfen Sie, ob das Konto die Berechtigung „Connect User“ hat.
- Bestätigen Sie den Zugriff auf Stream-Datenquellen und ‑Endpunkte.
- Klicken Sie auf Speichern, um die Dienstkontokonfiguration anzuwenden.
Voraussetzungen für Tanium Stream erfüllen
- 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 Stream-Administrator oder Stream-Nutzer mit Leseberechtigung.
- Rollenberechtigung Nutzer verbinden.
- Zugriff auf überwachte Computergruppen (empfohlen: Gruppe Alle Computer).
- Berechtigung Gespeicherte Frage lesen für Stream-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-stream-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.
Stream Telemetry to S3 for SecOps). - Beschreibung: Optionale Beschreibung (z. B.
Export endpoint telemetry and threat hunting data 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 zum Stream aus:
- Stream – Endpunktereignisse für Echtzeit-Endpunkttelemetrie.
- Stream – Netzwerkereignisse für das Monitoring von Netzwerkaktivitäten.
- Stream – Prozessereignisse für das Tracking der Prozessausführung.
- Stream – Dateiereignisse für Dateisystemaktivitäten.
- Stream – Threat Hunting-Daten für Verhaltensanalysen.
- 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. 5 Minuten für Echtzeit-Telemetrie).
- 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 Stream 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-stream-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/stream/).
- 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 Telemetriedaten seit dem letzten Export zu senden.
- Spaltenfilter: Fügen Sie bei Bedarf Filter basierend auf bestimmten Ereignisattributen hinzu (z. B. Filter nach Ereignistyp, Prozessname oder Bedrohungsindikatoren).
- 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 5 Minuten aus, um Telemetriedaten nahezu in Echtzeit 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 Stream-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 Stream logs. - Wählen Sie als Quelltyp Amazon S3 V2 aus.
- Wählen Sie Tanium Stream als Logtyp aus.
- Klicken Sie auf Weiter.
- Geben Sie Werte für die folgenden Eingabeparameter an:
- S3-URI:
s3://tanium-stream-logs/tanium/stream/ - 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 |
|---|---|---|
| additional.event__AlgorithmName | additional.fields.key: eventAlgorithmName additional.fields.value.string_value: %{additional.eventAlgorithmName} |
Wert, der direkt aus dem Rohlogfeld additional.event__AlgorithmName übernommen wurde. |
| additional.event__AuthenticationPackageName | target.resource.name: %{additional.event__AuthenticationPackageName} | Wert, der direkt aus dem Rohlogfeld additional.event__AuthenticationPackageName übernommen wurde. |
| additional.event__CallerProcessId | principal.process.pid: %{additional.event__CallerProcessId} | Wert, der direkt aus dem Rohlogfeld additional.event__CallerProcessId übernommen wurde. |
| additional.event__CallerProcessName | principal.process.file.fullpath: %{additional.event_CallerProcessName} | Wert, der direkt aus dem Rohlogfeld additional.event__CallerProcessName übernommen wurde. |
| additional.event__ClientProcessId | principal.process.pid: %{additional.event__ClientProcessId} | Wert, der direkt aus dem Rohlogfeld additional.event__ClientProcessId übernommen wurde. |
| additional.event__ClientProcessStartKey | additional.fields.key: eventClientProcessStartKey additional.fields.value.string_value: %{additional.eventClientProcessStartKey} |
Wert, der direkt aus dem Rohprotokollfeld additional.event__ClientProcessStartKey übernommen wird. |
| additional.event__CommandLine | target.process.commandline: %{additional.event_CommandLine} | Wert, der direkt aus dem Rohlogfeld additional.event__CommandLine übernommen wurde. |
| additional.event__ElevatedToken | additional.fields.key: event__ElevatedToken additional.fields.value.string_value: Yes/No |
Der Wert wird direkt aus dem Rohprotokollfeld additional.event__ElevatedToken übernommen.Wenn der Wert „%%1842“ lautet, wird er durch „Ja“ ersetzt. Wenn der Wert „%%1843“ lautet, wird er durch „Nein“ ersetzt. |
| additional.event__FQDN | principal.hostname: %{additional.event__FQDN} | Wert, der direkt aus dem Rohlogfeld additional.event__FQDN übernommen wurde. |
| additional.event__FailureReason | additional.fields.key: eventFailureReason additional.fields.value.string_value: %{additional.eventFailureReason} |
Wert, der direkt aus dem Rohprotokollfeld additional.event__FailureReason übernommen wird. |
| additional.event__ImpersonationLevel | additional.fields.key: eventImpersonationLevel additional.fields.value.string_value: %{additional.eventImpersonationLevel} |
Wert, der direkt aus dem Rohlogfeld additional.event__ImpersonationLevel übernommen wurde. |
| additional.event__IpAddress | target.ip: %{additional.event__IpAddress} | Wert, der direkt aus dem Rohlogfeld additional.event__IpAddress übernommen wurde. |
| additional.event__IpPort | target.port: %{additional.event__IpPort} | Wert, der direkt aus dem Rohlogfeld additional.event__IpPort übernommen und in eine Ganzzahl konvertiert wurde. |
| additional.event__KeyLength | additional.fields.key: eventKeyLength additional.fields.value.string_value: %{additional.eventKeyLength} |
Wert, der direkt aus dem Rohlogfeld additional.event__KeyLength übernommen wurde. |
| additional.event__KeyName | additional.fields.key: eventKeyName additional.fields.value.string_value: %{additional.eventKeyName} |
Wert, der direkt aus dem Rohlogfeld additional.event__KeyName übernommen wurde. |
| additional.event__KeyType | additional.fields.key: eventKeyType additional.fields.value.string_value: %{additional.eventKeyType} |
Wert, der direkt aus dem Rohlogfeld additional.event__KeyType übernommen wurde. |
| additional.event__LmPackageName | additional.fields.key: eventLmPackageName additional.fields.value.string_value: %{additional.eventLmPackageName} |
Wert, der direkt aus dem Rohlogfeld additional.event__LmPackageName übernommen wurde. |
| additional.event__LogonGuid | target.resource.product_objectid: %{additional.event_LogonGuid} | Der Wert wird direkt aus dem Rohlogfeld additional.event__LogonGuid übernommen, wobei die geschweiften Klammern entfernt werden. |
| additional.event__LogonProcessName | target.process.file.fullpath: %{additional.event_LogonProcessName} | Wert, der direkt aus dem Rohlogfeld additional.event__LogonProcessName übernommen wurde. |
| additional.event__LogonType | extensions.auth.authdetails: Logon Type: %{additional.event_LogonType} | Wert, der direkt aus dem Rohprotokollfeld additional.event__LogonType übernommen wird. |
| additional.event__MandatoryLabel | additional.fields.key: eventMandatoryLabel additional.fields.value.string_value: %{additional.eventMandatoryLabel} |
Wert, der direkt aus dem Rohlogfeld additional.event__MandatoryLabel übernommen wurde. |
| additional.event__NewProcessId | target.process.pid: %{additional.event__NewProcessId} | Wert, der direkt aus dem Rohlogfeld additional.event__NewProcessId übernommen wurde. |
| additional.event__NewProcessName | target.process.file.fullpath: %{additional.event_NewProcessName} | Wert, der direkt aus dem Rohlogfeld additional.event__NewProcessName übernommen wurde. |
| additional.event__ObjectServer | security_result.categorydetails: %{additional.event_ObjectServer} | Wert, der direkt aus dem Rohlogfeld additional.event__ObjectServer übernommen wurde. |
| additional.event__Operation | additional.fields.key: eventOperation additional.fields.value.string_value: %{additional.eventOperation} |
Wert, der direkt aus dem Rohlogfeld additional.event__Operation übernommen wurde. |
| additional.event__ParentProcessId | principal.process.parentprocess.pid: %{additional.event_ParentProcessId} | Wert, der direkt aus dem Rohlogfeld additional.event__ParentProcessId übernommen wurde. |
| additional.event__ParentProcessName | principal.process.parent_process.file.fullpath: %{additional.event_ParentProcessName} | Wert, der direkt aus dem Rohlogfeld additional.event__ParentProcessName übernommen wurde. |
| additional.event__ProcessId | principal.process.pid: %{additional.event__ProcessId} | Wert, der direkt aus dem Rohlogfeld additional.event__ProcessId übernommen wurde. |
| additional.event__ProcessName | principal.process.file.fullpath: %{additional.event_ProcessName} | Wert, der direkt aus dem Rohprotokollfeld additional.event__ProcessName übernommen wird. |
| additional.event__PrivilegeList | principal.user.attribute.permissions.name: %{additional.event__PrivilegeList} | Wert, der direkt aus dem Rohlogfeld additional.event__PrivilegeList übernommen wurde. |
| additional.event__ProviderName | additional.fields.key: eventProviderName additional.fields.value.string_value: %{additional.eventProviderName} |
Wert, der direkt aus dem Rohlogfeld additional.event__ProviderName übernommen wurde. |
| additional.event__RestrictedAdminMode | additional.fields.key: eventRestrictedAdminMode additional.fields.value.string_value: %{additional.eventRestrictedAdminMode} |
Wert, der direkt aus dem Rohlogfeld additional.event__RestrictedAdminMode übernommen wurde. |
| additional.event__ReturnCode | additional.fields.key: eventReturnCode additional.fields.value.string_value: %{additional.eventReturnCode} |
Wert, der direkt aus dem Rohlogfeld additional.event__ReturnCode übernommen wurde. |
| additional.event__RpcCallClientLocality | additional.fields.key: eventRpcCallClientLocality additional.fields.value.string_value: %{additional.eventRpcCallClientLocality} |
Wert, der direkt aus dem Rohlogfeld additional.event__RpcCallClientLocality übernommen wurde. |
| additional.event__Service | securityresult.description: %{additional.event_Service} | Wert, der direkt aus dem Rohlogfeld additional.event__Service übernommen wurde. |
| additional.event__Status | additional.fields.key: eventStatus additional.fields.value.string_value: %{additional.eventStatus} |
Wert, der direkt aus dem Rohlogfeld additional.event__Status übernommen wurde. |
| additional.event__SubStatus | additional.fields.key: eventSubStatus additional.fields.value.string_value: %{additional.eventSubStatus} |
Wert, der direkt aus dem Rohlogfeld additional.event__SubStatus übernommen wurde. |
| additional.event__SubjectDomainName | principal.administrativedomain: %{additional.event_SubjectDomainName} | Wert, der direkt aus dem Rohlogfeld additional.event__SubjectDomainName übernommen wurde. |
| additional.event__SubjectLogonId | additional.fields.key: eventSubjectLogonId additional.fields.value.string_value: %{additional.eventSubjectLogonId} |
Wert, der direkt aus dem Rohlogfeld additional.event__SubjectLogonId übernommen wurde. |
| additional.event__SubjectUserName | principal.user.user_displayname: %{additional.event_SubjectUserName} | Wert, der direkt aus dem Rohlogfeld additional.event__SubjectUserName übernommen wurde. |
| additional.event__SubjectUserSid | principal.user.windowssid: %{additional.event_SubjectUserSid} | Wert, der direkt aus dem Rohlogfeld additional.event__SubjectUserSid übernommen wurde. |
| additional.event__TaskContentNew | additional.fields.key: eventTaskContentNew additional.fields.value.string_value: %{additional.eventTaskContentNew} |
Wert, der direkt aus dem Rohlogfeld additional.event__TaskContentNew übernommen wurde. |
| additional.event__TaskName | additional.fields.key: eventTaskName additional.fields.value.string_value: %{additional.eventTaskName} |
Wert, der direkt aus dem Rohlogfeld additional.event__TaskName übernommen wurde. |
| additional.event__TargetDomainName | target.administrativedomain: %{additional.event_TargetDomainName} | Wert, der direkt aus dem Rohlogfeld additional.event__TargetDomainName übernommen wurde. |
| additional.event__TargetLinkedLogonId | additional.fields.key: eventTargetLinkedLogonId additional.fields.value.string_value: %{additional.eventTargetLinkedLogonId} |
Wert, der direkt aus dem Rohlogfeld additional.event__TargetLinkedLogonId übernommen wurde. |
| additional.event__TargetLogonId | additional.fields.key: eventTargetLogonId additional.fields.value.string_value: %{additional.eventTargetLogonId} |
Wert, der direkt aus dem Rohlogfeld additional.event__TargetLogonId übernommen wurde. |
| additional.event__TargetOutboundDomainName | additional.fields.key: eventTargetOutboundDomainName additional.fields.value.string_value: %{additional.eventTargetOutboundDomainName} |
Wert, der direkt aus dem Rohlogfeld additional.event__TargetOutboundDomainName übernommen wurde. |
| additional.event__TargetOutboundUserName | additional.fields.key: eventTargetOutboundUserName additional.fields.value.string_value: %{additional.eventTargetOutboundUserName} |
Wert, der direkt aus dem Rohlogfeld additional.event__TargetOutboundUserName übernommen wurde. |
| additional.event__TargetSid | target.user.windowssid: %{additional.event_TargetSid} | Wert, der direkt aus dem Rohlogfeld additional.event__TargetSid übernommen wurde. |
| additional.event__TargetUserName | target.user.userid: %{additional.event__TargetUserName} | Wert, der direkt aus dem Rohprotokollfeld additional.event__TargetUserName übernommen wird. |
| additional.event__TargetUserSid | target.user.windowssid: %{additional.event_TargetUserSid} | Wert, der direkt aus dem Rohlogfeld additional.event__TargetUserSid übernommen wurde. |
| additional.event__TokenElevationType | additional.fields.key: eventTokenElevationType additional.fields.value.string_value: %{additional.eventTokenElevationType} |
Wert, der direkt aus dem Rohlogfeld additional.event__TokenElevationType übernommen wurde. |
| additional.event__TransmittedServices | additional.fields.key: eventTransmittedServices additional.fields.value.string_value: %{additional.eventTransmittedServices} |
Wert, der direkt aus dem Rohlogfeld additional.event__TransmittedServices übernommen wurde. |
| additional.event__VirtualAccount | additional.fields.key: eventVirtualAccount additional.fields.value.string_value: %{additional.eventVirtualAccount} |
Wert, der direkt aus dem Rohlogfeld additional.event__VirtualAccount übernommen wurde. |
| additional.event__WorkstationName | target.hostname: %{additional.event__WorkstationName} | Wert, der direkt aus dem Rohlogfeld additional.event__WorkstationName übernommen wurde. |
| additional.event_id | security_result.rule_name: EventID: %{additional.event_id} | Wert, der direkt aus dem Rohlogfeld additional.event_id übernommen und in einen String konvertiert wurde. |
| additional.query | network.dns.questions.name: %{additional.query} | Wert, der direkt aus dem Rohlogfeld additional.query übernommen wurde. |
| additional.response | network.dns.answers.name: %{additional.response} | Wert, der direkt aus dem Rohlogfeld additional.response übernommen wurde. |
| metadata.description | metadata.description: %{metadata.description} | Wert, der direkt aus dem Rohlogfeld metadata.description übernommen wurde. |
| metadata.eventTimestamp | metadata.event_timestamp.seconds: Extracted from %{metadata.eventTimestamp} metadata.event_timestamp.nanos: Extracted from %{metadata.eventTimestamp} |
Sekunden und Nanosekunden werden mithilfe von Datumsparsern aus dem Rohlogfeld metadata.eventTimestamp extrahiert. |
| metadata.eventType | metadata.product_event_type: %{metadata.eventType} metadata.event_type: %{metadata.eventType} |
Wert, der direkt aus dem Rohlogfeld metadata.eventType übernommen wurde. |
| metadata.logType | metadata.product_event_type: %{metadata.logType} metadata.event_type: %{metadata.logType} |
Wert, der direkt aus dem Rohlogfeld metadata.logType übernommen wurde. |
| network.applicationProtocol | network.application_protocol: %{network.applicationProtocol} | Wert, der direkt aus dem Rohlogfeld network.applicationProtocol übernommen wurde. |
| network.direction | network.direction: %{network.direction} | Wert, der direkt aus dem Rohlogfeld network.direction übernommen wurde. |
| network.ipProtocol | network.ip_protocol: %{network.ipProtocol} | Wert, der direkt aus dem Rohlogfeld network.ipProtocol übernommen wurde. |
| principal.assetId | principal.asset_id: TANIUM:%{principal.assetId} | Der Wert wird direkt aus dem Rohlogfeld principal.assetId übernommen und mit dem Präfix „TANIUM:“ versehen. |
| principal.hostname | principal.hostname: %{principal.hostname} | Wert, der direkt aus dem Rohlogfeld principal.hostname übernommen wurde. |
| principal.process.companySpecificParentProcessId | principal.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.companySpecificParentProcessId} | Der Wert wird direkt aus dem Rohlogfeld principal.process.companySpecificParentProcessId übernommen und als „TANIUM:%{principal.assetId}:%{principal.process.companySpecificParentProcessId}“ formatiert. |
| principal.process.companySpecificProcessId | principal.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.companySpecificProcessId} | Der Wert wird direkt aus dem Rohlogfeld principal.process.companySpecificProcessId übernommen und als „TANIUM:%{principal.assetId}:%{principal.process.companySpecificProcessId}“ formatiert. |
| principal.process.commandLine | target.process.command_line: %{principal.process.commandLine} | Der Wert wird direkt aus dem Rohlogfeld principal.process.commandLine übernommen, wobei doppelte Anführungszeichen entfernt und Bindestriche durch kaufmännische Und-Zeichen ersetzt werden. |
| principal.process.file.fullPath | target.process.file.full_path: %{principal.process.file.fullPath} | Wert, der direkt aus dem Rohlogfeld principal.process.file.fullPath übernommen wurde. |
| principal.process.file.md5 | target.process.file.md5: %{principal.process.file.md5} | Der Wert wird direkt aus dem Rohlogfeld principal.process.file.md5 übernommen und in Kleinbuchstaben umgewandelt. |
| principal.process.parentPid | principal.process.pid: %{principal.process.parentPid} | Wert, der direkt aus dem Rohprotokollfeld principal.process.parentPid nur für PROCESS_LAUNCH-Ereignisse übernommen wird. |
| principal.process.pid | target.process.pid: %{principal.process.pid} | Wert, der direkt aus dem Rohprotokollfeld principal.process.pid nur für PROCESS_LAUNCH-Ereignisse übernommen wird. |
| principal.process.productSpecificProcessId | principal.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId} | Der Wert wird direkt aus dem Rohlogfeld principal.process.productSpecificProcessId übernommen und als „TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId}“ formatiert. |
| principal.user.groupid | principal.user.group_identifiers: %{principal.user.groupid} | Wert, der direkt aus dem Rohlogfeld principal.user.groupid übernommen wurde. |
| principal.user.userid | principal.user.userid: %{principal.user.userid} | Wert, der direkt aus dem Rohlogfeld principal.user.userid übernommen wurde. |
| src.ip | principal.ip: %{src.ip} | Wert, der direkt aus dem Rohlogfeld src.ip übernommen wurde. |
| src.port | principal.port: %{src.port} | Wert, der direkt aus dem Rohlogfeld src.port übernommen und in eine Ganzzahl konvertiert wurde. |
| target.file.fullPath | target.file.full_path: %{target.file.fullPath} | Wert, der direkt aus dem Rohlogfeld target.file.fullPath übernommen wurde. |
| target.file.md5 | target.file.md5: %{target.file.md5} | Wert, der direkt aus dem Rohlogfeld target.file.md5 übernommen wurde. |
| target.port | target.port: %{target.port} | Wert, der direkt aus dem Rohlogfeld target.port übernommen und in eine Ganzzahl konvertiert wurde. |
| target.registry.registryKey | target.registry.registry_key: %{target.registry.registryKey} | Wert, der direkt aus dem Rohlogfeld target.registry.registryKey übernommen wurde. |
| target.registry.registryValue | target.registry.registry_value_data: %{target.registry.registryValue} | Wert, der direkt aus dem Rohlogfeld target.registry.registryValue übernommen wurde. |
| target.user.userDisplayName | target.user.user_display_name: %{target.user.userDisplayName} | Wert, der direkt aus dem Rohlogfeld target.user.userDisplayName übernommen wurde. |
| target.user.windowsSid | target.user.windows_sid: %{target.user.windowsSid} | Wert, der direkt aus dem Rohlogfeld target.user.windowsSid übernommen wurde. |
| User-Agent | network.http.user_agent: %{user-agent} | Der Wert wird direkt aus dem Rohprotokollfeld user-agent übernommen, wobei die doppelten Anführungszeichen entfernt werden. |
| – | extensions.auth.auth_mechanism: LOCAL/NETWORK/BATCH/SERVICE/UNLOCK/NETWORK_CLEAR_TEXT/NEW_CREDENTIALS/REMOTE_INTERACTIVE/CACHED_INTERACTIVE/MECHANISM_UNSPECIFIED | Wird vom Parsercode basierend auf dem Wert von additional.event__LogonType bestimmt. |
| – | extensions.auth.type: MACHINE | Wird vom Parsercode für USER_LOGIN- und USER_LOGOUT-Ereignisse hinzugefügt. |
| – | metadata.event_type: PROCESS_LAUNCH/NETWORK_CONNECTION/FILE_OPEN/FILE_DELETION/REGISTRY_MODIFICATION/USER_LOGIN/STATUS_UPDATE/USER_LOGOUT/PROCESS_MODULE_LOAD/PROCESS_TERMINATION/USER_CHANGE_PERMISSIONS/SCHEDULED_TASK_MODIFICATION/SCHEDULED_TASK_DISABLE/SCHEDULED_TASK_ENABLE/SCHEDULED_TASK_DELETION/SCHEDULED_TASK_CREATION/PROCESS_UNCATEGORIZED | Wird vom Parsercode basierend auf dem Wert von metadata.logType und additional.event_id bestimmt. |
| – | metadata.log_type: TANIUM_TH | Hartcodierter Wert, der vom Parsercode hinzugefügt wird. |
| – | metadata.product_name: Stream | Hartcodierter Wert, der vom Parsercode hinzugefügt wird. |
| – | metadata.vendor_name: Tanium | Hartcodierter Wert, der vom Parsercode hinzugefügt wird. |
| – | principal.hostname: %{principal_hostname} | Wert aus principal.hostname oder additional.event__FQDN. |
| – | principal.ip: %{srcIp} | Wird mit Grok aus dem rohen Logeintrag extrahiert, wenn src.ip vorhanden ist. |
| – | securityresult.about.resource.name: %{additional.event_AuthenticationPackageName} | Wert, der für bestimmte additional.event_id-Werte direkt aus dem Rohlogfeld additional.event__AuthenticationPackageName übernommen wird. |
| – | security_result.category: AUTH_VIOLATION | Wird vom Parsercode für bestimmte additional.event_id-Werte hinzugefügt. |
| – | security_result.rule_name: EventID: %{additional.event_id} | Wert, der direkt aus dem Rohlogfeld additional.event_id übernommen und in einen String konvertiert wurde. |
| – | target.hostname: %{query_host} | Wird aus dem Rohlogfeld additional.query extrahiert, wenn es einen Hostnamen enthält. |
| – | target.ip: %{dstIp} | Wird mit Grok aus dem rohen Logeintrag extrahiert, wenn src.ip vorhanden ist. |
| – | target.ip: %{query_ip} | Wird aus dem Rohlogfeld additional.query extrahiert, wenn es eine IP-Adresse enthält. |
| – | target.process.command_line: %{principal_process_commandLine} | Wert aus principal.process.commandLine, wenn nicht leer. |
| – | target.process.file.full_path: %{principal_process_file_fullPath} | Wert aus principal.process.file.fullPath, wenn nicht leer. |
| – | target.process.file.md5: %{principal_process_file_md5} | Wert aus principal.process.file.md5, wenn nicht leer. |
| – | target.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId} | Wert aus principal.process.productSpecificProcessId übernommen und als „TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId}“ formatiert. |
| – | target.resource.resource_type: TASK | Wird vom Parsercode für bestimmte additional.event_id-Werte hinzugefügt. |
| – | timestamp.seconds: Extracted from %{metadata.eventTimestamp} timestamp.nanos: Extracted from %{metadata.eventTimestamp} |
Sekunden und Nanosekunden werden mithilfe von Datumsparsern aus dem Rohlogfeld metadata.eventTimestamp extrahiert. |
Änderungsprotokoll
Änderungsprotokoll für diesen Parser ansehen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten