Logs für den benutzerdefinierten Anwendungszugriff erfassen
In diesem Dokument wird beschrieben, wie Sie Custom Application Access-Logs mit Cloud Storage- oder Streaming-Aufnahmemethoden in Google Security Operations aufnehmen.
In benutzerdefinierten Anwendungszugriffsprotokollen werden Authentifizierungsereignisse, Autorisierungsentscheidungen und Zugriffsmuster von proprietären oder benutzerdefinierten Anwendungen erfasst. Diese Logs sind unerlässlich, um Nutzeraktivitäten zu überwachen, nicht autorisierte Zugriffsversuche zu erkennen und die Einhaltung von Sicherheitsrichtlinien zu gewährleisten.
Hinweise
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Eine Google SecOps-Instanz
- Benutzerdefinierte Anwendungszugriffsprotokolle im JSON-, CSV- oder strukturierten Textformat
- Zugriff auf eine der folgenden Optionen:
- Google Cloud Storage-Bucket (für die GCS-Aufnahme)
- Amazon S3-Bucket (für die S3-Aufnahme)
- Microsoft Azure Storage-Konto (für die Aufnahme von Azure-Blobs)
- Webhook-Endpunktfunktion (für die Push-basierte Aufnahme)
- Amazon Kinesis Data Firehose (für die Streaming-Aufnahme)
Benutzerdefinierten Logtyp erstellen
Der Logtyp „CUSTOM_APPLICATION_ACCESS“ ist in Google SecOps nicht als vordefinierter Parser vorhanden. Sie müssen einen benutzerdefinierten Logtyp erstellen, bevor Sie Logs aufnehmen.
- Rufen Sie die SIEM-Einstellungen > Verfügbare Log-Typen auf.
- Klicken Sie auf Log-Typ anfordern.
- Geben Sie unter Benutzerdefinierten Logtyp selbst erstellen die folgenden Details ein:
- Anbieter/Produkt: Geben Sie
Custom Application Access Logsein. - Logtyp: Geben Sie
CUSTOM_APPLICATION_ACCESSein.
- Anbieter/Produkt: Geben Sie
Klicken Sie auf Log-Typ erstellen.
Warten Sie 10 Minuten, bis der neue Protokolltyp in allen Komponenten verfügbar ist, bevor Sie Feeds erstellen.
Aufnahmemethode auswählen
Wählen Sie die Aufnahmemethode aus, die am besten zu Ihrer Infrastruktur passt:
- Google Cloud Storage (GCS): Verwenden Sie diese Option, wenn Ihre Anwendung Logs in GCS-Buckets schreibt oder Sie Logs in GCS exportieren können.
- Amazon S3: Verwenden Sie diese Option, wenn Ihre Anwendung Protokolle in S3-Buckets schreibt oder Sie Protokolle in S3 exportieren können.
- Azure Blob Storage: Verwenden Sie diese Option, wenn Ihre Anwendung Protokolle in Azure Storage schreibt oder Sie Protokolle nach Azure exportieren können.
- Webhook: Verwenden Sie diese Option, wenn Ihre Anwendung HTTP-POST-Anfragen an einen externen Endpunkt senden kann.
- Amazon Kinesis Data Firehose: Verwenden Sie diese Option, wenn Ihre Anwendung in CloudWatch Logs schreibt oder Sie Echtzeit-Streaming benötigen.
Option 1: Aus Google Cloud Storage aufnehmen
Google Cloud Storage-Bucket erstellen
- Gehen Sie zur Google Cloud Console.
- Wählen Sie Ihr Projekt aus oder erstellen Sie ein neues.
- Rufen Sie im Navigationsmenü Cloud Storage > Buckets auf.
- Klicken Sie auf Bucket erstellen.
Geben Sie die folgenden Konfigurationsdetails an:
Einstellung Wert Bucket benennen Geben Sie einen global eindeutigen Namen ein, z. B. custom-app-access-logs.Standorttyp Wählen Sie je nach Bedarf aus (Region, Dual-Region, Multi-Region). Standort Wählen Sie den Speicherort aus, z. B. us-central1.Speicherklasse Standard (empfohlen für Logs, auf die häufig zugegriffen wird) Zugriffskontrolle Einheitlich (empfohlen) Schutzmaßnahmen Optional: Objektversionsverwaltung oder Aufbewahrungsrichtlinie aktivieren Klicken Sie auf Erstellen.
Anwendung für das Schreiben von Logs in GCS konfigurieren
Konfigurieren Sie Ihre benutzerdefinierte Anwendung so, dass Zugriffslogs in den von Ihnen erstellten GCS-Bucket geschrieben werden. Die Protokolle sollten in einem der folgenden Formate geschrieben werden:
JSON-Format (empfohlen):
{"timestamp": "2025-01-15T10:30:00Z", "user": "john.doe@example.com", "action": "login", "result": "success", "source_ip": "203.0.113.45", "application": "custom-app", "resource": "/api/users"}CSV-Format:
timestamp,user,action,result,source_ip,application,resource 2025-01-15T10:30:00Z,john.doe@example.com,login,success,203.0.113.45,custom-app,/api/usersDurch Zeilenumbruch getrenntes JSON (NDJSON):
{"timestamp": "2025-01-15T10:30:00Z", "user": "john.doe@example.com", "action": "login", "result": "success"} {"timestamp": "2025-01-15T10:30:05Z", "user": "jane.smith@example.com", "action": "access", "result": "denied"}
Google SecOps-Dienstkonto abrufen
Google SecOps verwendet ein eindeutiges Dienstkonto, um Daten aus Ihrem GCS-Bucket zu lesen. Sie müssen diesem Dienstkonto Zugriff auf Ihren Bucket gewähren.
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Klicken Sie auf Einzelnen Feed konfigurieren.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B.
Custom Application Access Logs - GCS. - Wählen Sie Google Cloud Storage V2 als Quelltyp aus.
- Wählen Sie CUSTOM_APPLICATION_ACCESS_CUSTOM als Logtyp aus.
- Klicken Sie auf Dienstkonto abrufen.
Es wird eine eindeutige E-Mail-Adresse für das Dienstkonto angezeigt, z. B.:
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.comKopieren Sie diese E-Mail-Adresse für den nächsten Schritt.
Dem Google SecOps-Dienstkonto IAM-Berechtigungen gewähren
Das Google SecOps-Dienstkonto benötigt die Rolle Storage-Objekt-Betrachter für Ihren GCS-Bucket.
- Rufen Sie Cloud Storage > Buckets auf.
- Klicken Sie auf den Namen Ihres Buckets.
- Wechseln Sie zum Tab Berechtigungen.
- Klicken Sie auf Zugriff erlauben.
- Geben Sie die folgenden Konfigurationsdetails an:
- Hauptkonten hinzufügen: Fügen Sie die E‑Mail-Adresse des Google SecOps-Dienstkontos ein.
- Rollen zuweisen: Wählen Sie Storage-Objekt-Betrachter aus.
Klicken Sie auf Speichern.
Feed in Google SecOps konfigurieren
- Kehren Sie zur Seite zum Erstellen von Feeds zurück oder rufen Sie die SIEM-Einstellungen > Feeds > Neuen Feed hinzufügen auf.
- Klicken Sie auf Weiter.
Geben Sie Werte für die folgenden Eingabeparameter an:
Storage-Bucket-URL: Geben Sie den GCS-Bucket-URI mit dem Präfixpfad ein:
gs://custom-app-access-logs/Option zum Löschen der Quelle: Wählen Sie die gewünschte Option zum Löschen aus:
- Nie: Es werden niemals Dateien nach Übertragungen gelöscht (empfohlen für Tests).
- Übertragene Dateien löschen: Löscht Dateien nach der erfolgreichen Übertragung.
- Übertragene Dateien und leere Verzeichnisse löschen: Dateien und leere Verzeichnisse werden nach der erfolgreichen Übertragung gelöscht.
Höchstalter von Dateien: Dateien einschließen, die in den letzten Tagen geändert wurden (Standardwert: 180 Tage).
Asset-Namespace: Der Asset-Namespace.
Labels für Datenaufnahme: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll (z. B.
custom_app_access).
Klicken Sie auf Weiter.
Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
Option 2: Daten aus Amazon S3 aufnehmen
Amazon S3-Bucket erstellen
- Öffnen Sie die Amazon S3-Konsole.
- Klicken Sie auf Bucket erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Bucket-Name: Geben Sie einen aussagekräftigen Namen für den Bucket ein, z. B.
custom-app-access-logs. - Region: Wählen Sie die Region aus, in der Ihre Anwendung ausgeführt wird, z. B.
us-east-1.
- Bucket-Name: Geben Sie einen aussagekräftigen Namen für den Bucket ein, z. B.
- Klicken Sie auf Erstellen.
IAM-Nutzer mit S3-Zugriff erstellen
- Öffnen Sie die IAM-Konsole.
- Klicken Sie auf Nutzer > Nutzer hinzufügen.
- Geben Sie einen Nutzernamen ein, z. B.
chronicle-s3-reader. - Wählen Sie Programmatic access (Programmatischer Zugriff) aus.
- Klicken Sie auf Next: Permissions.
- Wählen Sie Vorhandene Richtlinien direkt anhängen aus.
- Suchen Sie nach der Richtlinie AmazonS3FullAccess und wählen Sie sie aus.
- Klicken Sie auf Weiter: Tags.
- Klicken Sie auf Weiter: Überprüfen.
- Klicken Sie auf Nutzer erstellen.
- Klicken Sie auf CSV-Datei herunterladen, um den Access Key (Zugriffsschlüssel) und den Secret Access Key (geheimer Zugriffsschlüssel) für die zukünftige Verwendung zu speichern.
- Klicken Sie auf Schließen.
Anwendung so konfigurieren, dass Logs in S3 geschrieben werden
Konfigurieren Sie Ihre benutzerdefinierte Anwendung so, dass Zugriffslogs in den von Ihnen erstellten S3-Bucket geschrieben werden. Verwenden Sie dieselben Logformate wie im GCS-Abschnitt beschrieben (JSON, CSV oder NDJSON).
Feed in Google SecOps konfigurieren, um Logs aus S3 aufzunehmen
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Klicken Sie auf Einzelnen Feed konfigurieren.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B.
Custom Application Access Logs - S3. - Wählen Sie Amazon S3 V2 als Quelltyp aus.
- Wählen Sie CUSTOM_APPLICATION_ACCESS_CUSTOM als Logtyp aus.
- Klicken Sie auf Weiter und dann auf Senden.
Geben Sie Werte für die folgenden Eingabeparameter an:
S3-URI: Geben Sie den Bucket-URI im folgenden Format ein:
s3://custom-app-access-logs/Option zum Löschen der Quelle: Wählen Sie die gewünschte Option zum Löschen aus.
Höchstalter von Dateien: Dateien einschließen, die in den letzten Tagen geändert wurden (Standardwert: 180 Tage).
Zugriffsschlüssel-ID: 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.
Labels für Datenaufnahme: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll (z. B.
custom_app_access).
Klicken Sie auf Weiter und dann auf Senden.
Option 3: Daten aus Azure Blob Storage aufnehmen
Azure Storage-Konto erstellen
- Suchen Sie im Azure-Portal nach Speicherkonten.
- Klicken Sie auf + Erstellen.
Geben Sie die folgenden Konfigurationsdetails an:
Einstellung Wert Abo Azure-Abo auswählen Ressourcengruppe Vorhandene auswählen oder neue erstellen Name des Speicherkontos Geben Sie einen eindeutigen Namen ein, z. B. customappaccesslogs.Region Wählen Sie die Region aus (z. B. East US).Leistung Standard (empfohlen) Redundanz LRS (Lokal redundanter Speicher) Klicken Sie auf Überprüfen + Erstellen.
Sehen Sie sich die Übersicht des Kontos an und klicken Sie auf Erstellen.
Warten Sie, bis die Bereitstellung abgeschlossen ist.
Anmeldedaten für das Speicherkonto abrufen
- Rufen Sie das soeben erstellte Storage-Konto auf.
- Wählen Sie im linken Navigationsbereich unter Sicherheit + Netzwerk die Option Zugriffsschlüssel aus.
- Klicken Sie auf Schlüssel anzeigen.
- Kopieren und speichern Sie die folgenden Informationen für die spätere Verwendung:
- Name des Speicherkontos:
customappaccesslogs - Schlüssel 1 oder Schlüssel 2: Der gemeinsame Zugriffsschlüssel
- Name des Speicherkontos:
Blob-Container erstellen
- Wählen Sie im selben Speicherkonto in der linken Navigationsleiste Container aus.
- Klicken Sie auf + Container.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie
access-logsein. - Öffentliche Zugriffsebene: Wählen Sie Privat (kein anonymer Zugriff) aus.
- Name: Geben Sie
- Klicken Sie auf Erstellen.
Anwendung für das Schreiben von Logs in Azure Blob Storage konfigurieren
Konfigurieren Sie Ihre benutzerdefinierte Anwendung so, dass Zugriffslogs in den von Ihnen erstellten Azure Blob Storage-Container geschrieben werden. Verwenden Sie dieselben Logformate wie im GCS-Abschnitt beschrieben (JSON, CSV oder NDJSON).
Feed in Google SecOps konfigurieren, um Logs aus Azure aufzunehmen
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Klicken Sie auf Einzelnen Feed konfigurieren.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B.
Custom Application Access Logs - Azure. - Wählen Sie Microsoft Azure Blob Storage V2 als Quelltyp aus.
- Wählen Sie CUSTOM_APPLICATION_ACCESS_CUSTOM als Logtyp aus.
- Klicken Sie auf Weiter.
Geben Sie Werte für die folgenden Eingabeparameter an:
Azure-URI: Geben Sie die Blob Service-Endpunkt-URL mit dem Containerpfad ein:
https://customappaccesslogs.blob.core.windows.net/access-logs/Option zum Löschen der Quelle: Wählen Sie die gewünschte Option zum Löschen aus.
Höchstalter für Dateien: Dateien einschließen, die in den letzten Tagen geändert wurden (Standard: 180 Tage)
Freigegebener Schlüssel: Geben Sie den Wert des freigegebenen Schlüssels (Zugriffsschlüssel) ein, den Sie aus dem Speicherkonto abgerufen haben.
Asset-Namespace: Der Asset-Namespace
Labels für Datenaufnahme: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll (z. B.
custom_app_access)
Klicken Sie auf Weiter.
Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
Option 4: Daten mithilfe eines Webhooks aufnehmen
Webhook-Feed in Google SecOps erstellen
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Klicken Sie auf Einzelnen Feed konfigurieren.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B.
Custom Application Access Logs - Webhook. - Wählen Sie Webhook als Quelltyp aus.
- Wählen Sie CUSTOM_APPLICATION_ACCESS_CUSTOM als Logtyp aus.
- Klicken Sie auf Weiter.
- Geben Sie Werte für die folgenden Eingabeparameter an:
- Trennzeichen für Aufteilung: Geben Sie
\nein, um durch Zeilenumbruch getrennte Ereignisse aufzuteilen (wenn mehrere Ereignisse pro Anfrage gesendet werden). - Asset-Namespace: Der Asset-Namespace.
- Labels für Datenaufnahme: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll (z. B.
custom_app_access).
- Trennzeichen für Aufteilung: Geben Sie
- Klicken Sie auf Weiter.
- Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
Secret-Schlüssel generieren und speichern
- Klicken Sie auf der Seite mit den Feeddetails auf Secret Key generieren.
- In einem Dialogfeld wird der geheime Schlüssel angezeigt.
Kopieren Sie den geheimen Schlüssel und speichern Sie ihn sicher.
Feed-Endpunkt-URL abrufen
- Rufen Sie den Tab Details des Feeds auf.
- Kopieren Sie im Abschnitt Endpunktinformationen die Feed-Endpunkt-URL.
Das URL-Format lautet:
https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreateSpeichern Sie diese URL für die nächsten Schritte.
Klicken Sie auf Fertig.
Google Cloud API-Schlüssel erstellen
Für Google SecOps ist ein API-Schlüssel für die Authentifizierung erforderlich. Erstellen Sie in der Google Cloud Console einen eingeschränkten API-Schlüssel.
- Rufen Sie die Seite „Anmeldedaten“ in der Google Cloud Console auf.
- Wählen Sie Ihr Projekt aus (das Projekt, das mit Ihrer Chronicle-Instanz verknüpft ist).
- Klicken Sie auf Anmeldedaten erstellen > API-Schlüssel.
- Ein API-Schlüssel wird erstellt und in einem Dialogfeld angezeigt.
- Klicken Sie auf API-Schlüssel bearbeiten, um den Schlüssel einzuschränken.
- Auf der Seite mit den API-Schlüssel-Einstellungen:
- Name: Geben Sie einen aussagekräftigen Namen ein, z. B.
Chronicle Webhook API Key.
- Name: Geben Sie einen aussagekräftigen Namen ein, z. B.
- Gehen Sie unter API-Einschränkungen so vor:
- Wählen Sie Schlüssel einschränken aus.
- Suchen Sie im Drop-down-Menü APIs auswählen nach Google SecOps API (oder Chronicle API) und wählen Sie die Option aus.
- Klicken Sie auf Speichern.
- Kopieren Sie den API-Schlüsselwert aus dem Feld API-Schlüssel oben auf der Seite.
- Speichern Sie den API-Schlüssel sicher.
Anwendung für das Senden von Logs über Webhook konfigurieren
Konfigurieren Sie Ihre benutzerdefinierte Anwendung so, dass HTTP-POST-Anfragen an den Chronicle-Webhook-Endpunkt gesendet werden.
Webhook-URL erstellen:
Hängen Sie den API-Schlüssel an die URL des Feedendpunkts an:
https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=<API_KEY>Ersetzen Sie
<API_KEY>durch den API-Schlüssel, den Sie erstellt haben.
Format der HTTP-POST-Anfrage:
POST https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=<API_KEY> HTTP/1.1 Content-Type: application/json x-chronicle-auth: <SECRET_KEY> {"timestamp": "2025-01-15T10:30:00Z", "user": "john.doe@example.com", "action": "login", "result": "success", "source_ip": "203.0.113.45"}Für mehrere Ereignisse (durch Zeilenumbruch getrennt):
POST https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=<API_KEY> HTTP/1.1 Content-Type: application/json x-chronicle-auth: <SECRET_KEY> {"timestamp": "2025-01-15T10:30:00Z", "user": "john.doe@example.com", "action": "login", "result": "success"} {"timestamp": "2025-01-15T10:30:05Z", "user": "jane.smith@example.com", "action": "access", "result": "denied"}Beispiel mit „curl“:
curl -X POST \ "https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=YOUR_API_KEY" \ -H "Content-Type: application/json" \ -H "x-chronicle-auth: YOUR_SECRET_KEY" \ -d '{"timestamp": "2025-01-15T10:30:00Z", "user": "john.doe@example.com", "action": "login", "result": "success", "source_ip": "203.0.113.45"}'
Option 5: Daten mit Amazon Kinesis Data Firehose aufnehmen
Feed in Google SecOps erstellen
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Klicken Sie auf Einzelnen Feed konfigurieren.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B.
Custom Application Access Logs - Firehose. - Wählen Sie Amazon Data Firehose als Quelltyp aus.
- Wählen Sie CUSTOM_APPLICATION_ACCESS_CUSTOM als Logtyp aus.
- Klicken Sie auf Weiter.
- Geben Sie Werte für die folgenden Eingabeparameter an:
- Trennzeichen für Aufteilung: Geben Sie
\nein, um durch Zeilenumbruch getrennte Logs aufzuteilen. - Asset-Namespace: Der Asset-Namespace.
- Labels für Datenaufnahme: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll (z. B.
custom_app_access).
- Trennzeichen für Aufteilung: Geben Sie
- Klicken Sie auf Weiter.
- Prüfen Sie die Feedkonfiguration und klicken Sie auf Senden.
- Klicken Sie auf Geheimen Schlüssel generieren, um einen geheimen Schlüssel zur Authentifizierung dieses Feeds zu generieren.
- Kopieren Sie den geheimen Schlüssel und speichern Sie ihn, da Sie ihn nicht noch einmal aufrufen können.
- Wechseln Sie zum Tab Details.
- Kopieren Sie die Feed-Endpunkt-URL aus dem Feld Endpoint Information (Endpunktinformationen).
- Klicken Sie auf Fertig.
API-Schlüssel für den Amazon Data Firehose-Feed erstellen
- Rufen Sie in der Google Cloud Console die Seite Anmeldedaten unter https://console.cloud.google.com/apis/credentials auf.
- Klicken Sie auf Anmeldedaten erstellen und wählen Sie anschließend API-Schlüssel aus.
- Klicken Sie auf API-Schlüssel bearbeiten, um den Schlüssel einzuschränken.
- Wählen Sie unter API-Einschränkungen die Option Schlüssel einschränken aus.
- Suchen Sie nach Google SecOps API und wählen Sie die Option aus.
- Klicken Sie auf Speichern.
- Kopieren und speichern Sie den API-Schlüssel.
Endpunkt-URL erstellen
Hängen Sie den API-Schlüssel an die URL des Feed-Endpunkts an. Verwenden Sie dazu das folgende Format:
<FEED_ENDPOINT_URL>?key=<API_KEY>Ersetzen Sie Folgendes:
<FEED_ENDPOINT_URL>: Die Feed-Endpunkt-URL aus einem vorherigen Schritt<API_KEY>: Der API-Schlüssel aus einem vorherigen Schritt
Beispiel:
https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...Speichern Sie diese vollständige URL für den nächsten Schritt.
IAM-Richtlinie für Firehose erstellen
- Rufen Sie in der AWS Console den Tab IAM > Policies > Create policy > JSON auf.
Fügen Sie den folgenden JSON-Code für die Richtlinie ein:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Resource": "arn:aws:firehose:us-east-1:123456789012:deliverystream/CustomAppAccessToChronicle" } ] }Ersetzen Sie Folgendes:
us-east-1: Ihre AWS-Region123456789012: Ihre AWS-Konto-ID (12-stellige Nummer)CustomAppAccessToChronicle: Der Name Ihres Firehose-Übertragungsstreams (diesen erstellen Sie im nächsten Schritt)
Nennen Sie die Richtlinie
CustomAppAccessFirehoseWritePolicy.Klicken Sie auf Richtlinie erstellen.
IAM-Rolle für CloudWatch Logs erstellen
- Klicken Sie auf IAM > Rollen > Rolle erstellen.
Wählen Sie Benutzerdefinierte Vertrauensrichtlinie aus und fügen Sie Folgendes ein:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.us-east-1.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }Ersetzen Sie
us-east-1durch Ihre AWS-Region.Klicken Sie auf Weiter.
Suchen Sie nach der Richtlinie
CustomAppAccessFirehoseWritePolicy, die Sie im vorherigen Schritt erstellt haben, und wählen Sie sie aus.Klicken Sie auf Weiter.
Geben Sie der Rolle den Namen
CloudWatchLogsToFirehoseRole.Klicken Sie auf Rolle erstellen.
Kinesis Data Firehose-Bereitstellungsstream erstellen
- Rufen Sie in der AWS Console Kinesis > Data Firehose > Create delivery stream auf.
Geben Sie die folgenden Konfigurationsdetails an:
Quelle und Ziel:
- Quelle: Wählen Sie Direkter PUT oder andere Quellen aus.
- Ziel: Wählen Sie HTTP-Endpunkt aus.
Name des Bereitstellungsstreams:
- Name des Bereitstellungsstreams: Geben Sie
CustomAppAccessToChronicleein.
- Name des Bereitstellungsstreams: Geben Sie
HTTP-Endpunktziel:
- HTTP-Endpunkt-URL: Geben Sie die vollständige Endpunkt-URL ein, die Sie zuvor erstellt haben (Feed-Endpunkt + API-Schlüssel).
- Contentcodierung: Wählen Sie GZIP aus (empfohlen, um Bandbreite zu sparen).
Benutzerdefinierte HTTP-Header:
- Klicken Sie auf Benutzerdefinierten HTTP-Header hinzufügen.
- Headername: Geben Sie
X-Goog-Chronicle-Authein. - Header value: Geben Sie den geheimen Schlüssel ein, den Sie in einem vorherigen Schritt gespeichert haben.
Sicherungseinstellungen:
- Sicherung von Quelldatensätzen in Amazon S3: Wählen Sie Nur fehlgeschlagene Daten aus (empfohlen).
- S3-Bucket: Wählen Sie einen vorhandenen Bucket aus oder erstellen Sie einen neuen für fehlgeschlagene Datensätze.
Pufferhinweise:
- Puffergröße: Geben Sie
1MiB ein (Mindestwert für HTTP-Endpunkte). - Pufferintervall: Geben Sie
60Sekunden ein.
- Puffergröße: Geben Sie
Wiederholungszeitraum:
- Wiederholungsdauer: Geben Sie
300Sekunden (5 Minuten) ein.
- Wiederholungsdauer: Geben Sie
Klicken Sie auf Lieferstream erstellen.
Warten Sie, bis sich der Status des Bereitstellungsstreams in Aktiv ändert (1–2 Minuten).
Anwendung für das Schreiben in CloudWatch Logs konfigurieren
Konfigurieren Sie Ihre benutzerdefinierte Anwendung so, dass Zugriffslogs in eine CloudWatch-Loggruppe geschrieben werden. Erstellen Sie dann einen Abo-Filter, um Logs an Firehose zu streamen.
- Rufen Sie in der AWS Console CloudWatch > Logs > Log groups auf.
- Erstellen Sie eine neue Loggruppe oder wählen Sie eine vorhandene aus, in die Ihre Anwendung Logs schreibt.
- Klicken Sie auf den Tab Abo-Filter.
- Klicken Sie auf Erstellen > Amazon Kinesis Data Firehose-Abo-Filter erstellen.
Geben Sie die folgenden Konfigurationsdetails an:
- Ziel: Wählen Sie den Auslieferungsstream
CustomAppAccessToChronicleaus. - Berechtigung erteilen: Wählen Sie die Rolle
CloudWatchLogsToFirehoseRoleaus. - Name des Abo-Filters: Geben Sie
CustomAppAccessToChronicleein. - Log format (Logformat): Wählen Sie Other (Sonstige) aus. Das Parsing wird von Google SecOps übernommen.
- Abo-Filtermuster: Lassen Sie das Feld leer, um alle Ereignisse zu senden.
- Ziel: Wählen Sie den Auslieferungsstream
Klicken Sie auf Streaming starten.
Logs werden über Firehose in Echtzeit an Google SecOps gestreamt.
Benutzerdefinierten Parser erstellen
Nachdem Sie Logs aufgenommen haben, müssen Sie einen benutzerdefinierten Parser erstellen, um die Daten in das UDM-Format zu normalisieren.
- Rufen Sie die SIEM-Einstellungen > Parser auf.
- Klicken Sie auf Parser erstellen.
- Wählen Sie CUSTOM_APPLICATION_ACCESS_CUSTOM als Logtyp aus.
Verwenden Sie den Parser-Editor, um Grok-Muster oder Parser-Erweiterungen zu erstellen, mit denen Ihre Logfelder UDM-Feldern zugeordnet werden.
Beispiel für die Parserzuordnung:
Benutzerdefiniertes Logfeld UDM-Feld timestampmetadata.event_timestampuserprincipal.user.email_addressesactionsecurity_result.actionresultsecurity_result.summarysource_ipprincipal.ipapplicationtarget.applicationresourcetarget.resource.nameParser mit Beispiellogs testen
Klicken Sie auf Speichern, um den Parser zu aktivieren.
Eine ausführliche Anleitung zum Erstellen von Parsern finden Sie unter Self-Service-Parseroptionen.
Aufnahme überprüfen
Prüfen Sie nach der Konfiguration des Feeds und des Parsers, ob Logs aufgenommen werden:
- Klicken Sie auf Suchen > UDM-Suche.
Führen Sie die folgende Abfrage aus:
metadata.log_type = "CUSTOM_APPLICATION_ACCESS_CUSTOM"Prüfen Sie, ob Ereignisse in den Suchergebnissen angezeigt werden.
Prüfen Sie, ob die UDM-Felder basierend auf Ihrer Parserkonfiguration korrekt ausgefüllt sind.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
| zusätzlich | Zusammengeführt mit Labels, die aus service, env, msg.attachment.fileName, msg.attachment.digest, msg.attachment.key, msg.attachment.authorizeId, msg.attachment.contentType, dest.type, type, msg.sortID, msg.refID, state.reported.applications_installed, state.reported.applications_status, state.reported.ota_queue, state.reported.VICMB_Deg_Battery_LimpHome, state.reported.VICMB_Inhibit_Propulsion, state.reported.VICMB_FA_LostComm_BPCM, state.reported.VICMB_FA_LostComm_SFAM1, state.reported.VICMB_Inhibit_HV, state.reported.VICMB_FA_LostComm_RIDM, state.reported.VICMB_FA_LostComm_RWAM1, state.reported.uname, meta.reported.battery_charging_rate_kw.timestamp, state.reported.battery_charging_rate_kw, meta.reported.cell.connected.timestamp, meta.reported.cell.packet_loss.timestamp, meta.reported.cell.average_ping_ms.timestamp, meta.reported.cell.bitrate.timestamp, meta.reported.cell.download_speed_bytes_per_sec.timestamp, meta.reported.cell.signal_strength.timestamp, meta.reported.cell.signal.timestamp, state.reported.cell.connected, state.reported.cell.packet_loss, state.reported.cell.average_ping_ms, state.reported.cell.bitrate, state.reported.cell.download_speed_bytes_per_sec, state.reported.cell.signal_strength, state.reported.cell.signal erstellt wurden | |
| request_time | metadata.collected_timestamp | Aus „request_time“ im ISO8601-Format geparst |
| msg_1, msg.body | metadata.description | Wert aus msg_1, falls nicht leer, andernfalls msg.body |
| user_id, src_email, otadata.1687965118.initiator | metadata.event_type | Auf „USER_UNCATEGORIZED“ festgelegt, wenn user_id, src_email oder otadata.1687965118.initiator vorhanden sind, andernfalls „GENERIC_EVENT“ |
| otadata.1687965118.deployment_id | metadata.product_deployment_id | Wert direkt kopiert |
| Version | metadata.product_version | Wert direkt kopiert |
| response.status | network.http.response_code | In Ganzzahl konvertiert |
| request_id | principal.resource.product_object_id | Wert direkt kopiert |
| msg.attachment.url, otadata.1687965118.download_url | principal.url | Wert aus msg.attachment.url, falls nicht leer, andernfalls otadata.1687965118.download_url |
| src_email, otadata.1687965118.initiator | principal.user.email_addresses | Wert aus „src_email“, wenn er mit dem regulären Ausdruck für E-Mail-Adressen übereinstimmt, andernfalls aus „otadata.1687965118.initiator“ |
| user_id | principal.user.userid | Wert direkt kopiert |
| level | security_result.severity | Auf „INFORMATIONAL“ festlegen, wenn die Stufe „INFO“ ist |
| metadata.product_name | Auf „Benutzerdefinierter Anwendungszugriff“ festgelegt | |
| metadata.vendor_name | Auf „Benutzerdefinierter Anwendungszugriff“ festgelegt |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten