Tanium-Audit-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Tanium-Audit-Logs mit Amazon S3 und der nativen S3-Exportfunktion von Tanium Connect in Google Security Operations aufnehmen. Der Parser extrahiert die Logs und löscht dabei zuerst zahlreiche Standardfelder. Anschließend wird die Logeintrag mit grok und dem json-Filter geparst, um Felder wie Zeitstempel, Geräte-IP und Prüfdetails zu extrahieren. Der Parser ordnet diese extrahierten Felder dem UDM zu und verarbeitet verschiedene Datentypen und bedingte Logik, um die entsprechenden UDM-Felder basierend auf dem Vorhandensein und den Werten bestimmter Tanium-Audit-Log-Attribute zu füllen.
Hinweis
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Eine Google SecOps-Instanz
- Privilegierter Zugriff auf Tanium Connect und die Tanium Console
- Privilegierter Zugriff auf AWS (S3, IAM)
Amazon S3-Bucket erstellen
- Öffnen Sie die Amazon S3-Konsole.
- Bei Bedarf können Sie die Region ändern.
- Wählen Sie in der Navigationsleiste die Region aus, in der Ihre Tanium-Audit-Logs gespeichert werden sollen.
- 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.
- Bucket-Name: Geben Sie einen aussagekräftigen Namen für den Bucket ein (z. B.
IAM-Nutzer mit vollständigem Zugriff auf Amazon S3 erstellen
- Öffnen Sie die IAM-Konsole.
- Klicken Sie auf Nutzer > Nutzer hinzufügen.
- Geben Sie einen Nutzernamen ein, z. B.
tanium-connect-s3-user. - Wählen Sie nach Bedarf Programmatic access (Programmatischer Zugriff) und/oder AWS Management Console access (Zugriff auf die AWS Management Console) aus.
- Wählen Sie entweder Automatisch generiertes Passwort oder Benutzerdefiniertes Passwort aus.
- Klicken Sie auf Next: Permissions.
- Wählen Sie Bestehende Richtlinien direkt anhängen aus.
- Suchen Sie nach der Richtlinie AmazonS3FullAccess und weisen Sie sie dem Nutzer zu.
- Klicken Sie auf Weiter: Tags.
- Klicken Sie auf Weiter: Überprüfen.
- Klicken Sie auf Nutzer erstellen.
- 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
- Wählen Sie in der Amazon S3-Konsole den zuvor erstellten Bucket aus.
- Klicken Sie auf Berechtigungen > Bucket-Richtlinie.
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/*" ] } ] }Ersetzen Sie die folgenden Variablen:
- Ändern Sie
YOUR_ACCOUNT_IDin Ihre AWS-Konto-ID. - Ändern Sie
tanium-audit-logsin den tatsächlichen Bucket-Namen, falls dieser abweicht. - Ändern Sie
tanium-connect-s3-userin Ihren tatsächlichen IAM-Nutzernamen, falls dieser abweicht.
- Ändern Sie
Klicken Sie auf Speichern.
Tanium Connect für den S3-Export konfigurieren
AWS S3-Verbindung in Tanium Connect erstellen
- Melden Sie sich als Administrator in der Tanium Console an.
- Gehen Sie zu Tanium Connect > Connections.
- Klicken Sie auf Create Connection.
- 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.
- Logebene: Wählen Sie Information (Standard) aus oder passen Sie die Einstellung nach Bedarf an.
- Name: Geben Sie einen aussagekräftigen Namen ein (z. B.
Verbindungsquelle konfigurieren
- Wählen Sie im Abschnitt Konfiguration für Quelle die Option Tanium Audit aus.
- Konfigurieren Sie die Einstellungen für die Auditquelle:
- Days of History Retrieved (Abgerufene Tage des Verlaufs): Geben Sie die Anzahl der Tage ein, für die Audit-Verlaufsdaten abgerufen werden sollen (z. B.
7für eine Woche). - Audit Types (Prüfungstypen): Wählen Sie die Prüfungstypen aus, die Sie exportieren möchten. Wählen Sie eine der folgenden Optionen aus:
- Aktionsverlauf: Von Konsolenoperatoren ausgeführte Aktionen.
- Authentifizierung: Ereignisse zur Nutzerauthentifizierung.
- Inhalt: Änderungen und Modifikationen am Inhalt.
- Gruppen: Änderungen an Computergruppen.
- Pakete: Paketbezogene Aktivitäten.
- Sensoren: Sensoränderungen.
- Systemeinstellungen: Änderungen an der Systemkonfiguration.
- Nutzer: Aktivitäten zur Nutzerverwaltung.
- Days of History Retrieved (Abgerufene Tage des Verlaufs): Geben Sie die Anzahl der Tage ein, für die Audit-Verlaufsdaten abgerufen werden sollen (z. B.
AWS S3-Ziel konfigurieren
- Wählen Sie als Ziel die Option AWS S3 aus.
- Geben Sie die folgenden Konfigurationsdetails an:
- Zielname: Geben Sie einen Namen ein (z. B.
Google SecOps S3 Bucket). - AWS-Zugriffsschlüssel: Geben Sie die Zugriffsschlüssel-ID des zuvor erstellten IAM-Nutzers ein.
- Geheimer AWS-Schlüssel: 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).
- Zielname: Geben Sie einen Namen ein (z. B.
Format und Zeitplan konfigurieren
- Konfigurieren Sie im Abschnitt Format das Ausgabeformat:
- Formattyp: Wählen Sie JSON aus.
- Spaltenüberschriften einbeziehen: Wählen Sie diese Option aus, wenn Spaltenüberschriften einbezogen werden sollen.
- Dokument generieren: Deaktivieren Sie diese Option, um JSON-Rohdaten zu senden.
- Konfigurieren Sie im Abschnitt Zeitplan, wann die Verbindung ausgeführt wird:
- 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.
- Klicken Sie auf Änderungen speichern.
Verbindung testen und ausführen
- Rufen Sie auf der Seite Connect-Übersicht die Option Verbindungen auf.
- Klicken Sie auf die von Ihnen erstellte Verbindung (Tanium Audit to S3).
- Klicken Sie auf Jetzt ausführen, um die Verbindung zu testen.
- Bestätigen Sie, dass Sie die Verbindung ausführen möchten.
- Beobachten Sie den Verbindungsstatus und prüfen Sie, ob Audit-Logs in Ihren S3-Bucket exportiert werden.
Optional: IAM-Nutzer und ‑Schlüssel mit Lesezugriff für Google SecOps erstellen
- Rufen Sie die AWS-Konsole > IAM > Users > Add users auf.
- Klicken Sie auf Nutzer hinzufügen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Nutzer: Geben Sie
secops-readerein. - Zugriffstyp: Wählen Sie Zugriffsschlüssel – Programmatischer Zugriff aus.
- Nutzer: Geben Sie
- Klicken Sie auf Nutzer erstellen.
- Richtlinie für minimalen Lesezugriff (benutzerdefiniert) anhängen: Nutzer > secops-reader > Berechtigungen > Berechtigungen hinzufügen > Richtlinien direkt anhängen > Richtlinie erstellen.
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" } ] }Legen Sie
secops-reader-policyals Name fest.Gehen Sie zu Richtlinie erstellen > Suchen/Auswählen > Weiter > Berechtigungen hinzufügen.
Gehen Sie zu Sicherheitsanmeldedaten > Zugriffsschlüssel > Zugriffsschlüssel erstellen.
Laden Sie die CSV herunter. Diese Werte werden in den Feed eingegeben.
Feed in Google SecOps konfigurieren, um Tanium-Audit-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 Audit logs. - Wählen Sie als Quelltyp Amazon S3 V2 aus.
- Wählen Sie Tanium Audit als Logtyp aus.
- Klicken Sie auf Weiter.
- 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 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: Nutzerzugriffsschlüssel mit Zugriff auf den S3-Bucket (vom oben erstellten Nutzer mit Lesezugriff).
- Geheimer Zugriffsschlüssel: Der geheime Schlüssel des Nutzers mit Zugriff auf den S3-Bucket (vom oben erstellten Nutzer mit Lesezugriff).
- Asset-Namespace: Der Asset-Namespace.
- Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll.
- 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 |
|---|---|---|
ActionId |
metadata.product_log_id |
Wird direkt aus dem Feld ActionId zugeordnet. |
ActionName |
security_result.action_details |
Wird direkt aus dem Feld ActionName zugeordnet. |
Approver |
additional.fields[Approver].value.string_value |
Wird 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 |
Wird direkt aus dem Feld audit_name zugeordnet. |
audit_row_id |
additional.fields[audit_row_id].value.string_value |
Wird direkt aus dem Feld audit_row_id zugeordnet. |
audit_type |
additional.fields[audit_type].value.string_value |
Wird 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 |
Wird nach der URL-Decodierung direkt aus dem Feld Command zugeordnet. |
creation_time |
target.resource.attribute.creation_time |
Wird direkt aus dem Feld creation_time zugeordnet. |
details |
network.session_id |
Wird mithilfe von Schlüssel/Wert-Parsing aus dem Feld details extrahiert. |
details |
principal.user.attribute.labels[authentication_type].value |
Wird mithilfe von Schlüssel/Wert-Parsing aus dem Feld details extrahiert. |
details |
principal.asset.ip, principal.ip |
Die IP-Adresse wird mithilfe von Schlüssel/Wert-Parsing aus dem Feld details extrahiert und sowohl principal.asset.ip als auch principal.ip zugeordnet. |
DistributeOver |
additional.fields[DistributeOver].value.string_value |
Wird direkt aus dem Feld DistributeOver zugeordnet. |
dvc_ip |
intermediary.hostname |
Direkt aus dem Feld dvc_ip zugeordnet, 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 |
Wird direkt aus dem Feld Expiration zugeordnet. |
host.architecture |
target.asset.hardware.cpu_platform |
Wird direkt aus dem Feld host.architecture zugeordnet. |
host.id |
target.asset.asset_id |
Wird direkt aus dem Feld host.id zugeordnet, mit dem Präfix „Host-ID:“. |
host.ip |
target.ip |
Wird direkt aus dem Feld host.ip zugeordnet. |
host.mac |
target.mac |
Wird 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 |
Wird direkt aus dem Feld host.os.kernel zugeordnet. |
host.os.name |
additional.fields[os_name].value.string_value |
Wird direkt aus dem Feld host.os.name zugeordnet. |
host.os.version |
target.platform_version |
Wird direkt aus dem Feld host.os.version zugeordnet. |
InsertTime |
additional.fields[InsertTime].value.string_value |
Wird direkt aus dem Feld InsertTime zugeordnet. |
Issuer |
additional.fields[Issuer].value.string_value |
Wird direkt aus dem Feld Issuer zugeordnet. |
Issuer |
principal.user.userid |
Wird direkt aus dem Feld Issuer zugeordnet, falls vorhanden. |
last_modified_by |
principal.resource.attribute.labels[last_modified_by].value |
Wird 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, falls vorhanden. |
logstash.collect.timestamp |
metadata.collected_timestamp |
Wird direkt aus dem Feld logstash.collect.timestamp zugeordnet. |
logstash.ingest.timestamp |
metadata.ingested_timestamp |
Wird direkt aus dem Feld logstash.ingest.timestamp zugeordnet. |
logstash.irm_environment |
additional.fields[irm_environment].value.string_value |
Wird direkt aus dem Feld logstash.irm_environment zugeordnet. |
logstash.irm_region |
additional.fields[irm_region].value.string_value |
Wird direkt aus dem Feld logstash.irm_region zugeordnet. |
logstash.irm_site |
additional.fields[irm_site].value.string_value |
Wird direkt aus dem Feld logstash.irm_site zugeordnet. |
logstash.process.host |
intermediary.hostname |
Wird 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 |
Wird direkt aus dem Feld modification_time zugeordnet. |
modifier_user_id |
principal.resource.attribute.labels[modifier_user_id].value |
Wird direkt aus dem Feld modifier_user_id zugeordnet. |
object_id |
target.resource.product_object_id |
Wird direkt aus dem Feld object_id zugeordnet. |
object_name |
target.resource.name |
Wird direkt aus dem Feld object_name zugeordnet. |
object_type_name |
target.resource.attribute.labels[object_type_name].value |
Wird direkt aus dem Feld object_type_name zugeordnet. |
PackageName |
additional.fields[PackageName].value.string_value |
Wird direkt aus dem Feld PackageName zugeordnet. |
SourceId |
additional.fields[SourceId].value.string_value |
Wird direkt aus dem Feld SourceId zugeordnet. |
StartTime |
additional.fields[StartTime].value.string_value |
Wird 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 |
Wird direkt aus dem Feld Status zugeordnet. |
tanium_audit_type |
metadata.product_event_type |
Wird direkt aus dem Feld tanium_audit_type zugeordnet. |
timestamp |
metadata.event_timestamp |
Direkt aus dem Feld timestamp zugeordnet, das aus der Syslog-Nachricht oder dem Feld message extrahiert wurde. |
type |
additional.fields[type].value.string_value |
Wird direkt aus dem Feld type zugeordnet. |
type_name |
metadata.product_event_type |
Wird direkt aus dem Feld type_name zugeordnet. |
User |
principal.user.userid |
Wird direkt aus dem Feld User zugeordnet. Wird durch die Parserlogik basierend auf dem Vorhandensein von src_ip, has_target und has_user bestimmt. Kann „NETWORK_CONNECTION“, „USER_RESOURCE_ACCESS“, „STATUS_UPDATE“ oder „GENERIC_EVENT“ sein. Hartcodiert auf „TANIUM_AUDIT“. Hartcodiert auf „cybersecurity“. Hartcodiert auf „TANIUM_AUDIT“. |
@version |
metadata.product_version |
Wird direkt aus dem Feld @version zugeordnet. |
agent.ephemeral_id |
additional.fields[ephemeral_id].value.string_value |
Wird 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 |
Wird direkt aus dem Feld agent.type zugeordnet. |
agent.version |
observer.platform_version |
Wird direkt aus dem Feld agent.version zugeordnet. |
Comment |
security_result.description |
Wird direkt aus dem Feld Comment zugeordnet. |
host.hostname |
target.hostname |
Wird direkt aus dem Feld host.hostname zugeordnet, falls 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“, wenn „notice“, „LOW“, wenn „information“ oder „info“. |
syslog_severity |
security_result.severity_details |
Wird direkt aus dem Feld syslog_severity zugeordnet. |
Änderungsprotokoll
Änderungsprotokoll für diesen Parser ansehen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten