AWS Aurora-Protokolle erfassen
In diesem Dokument wird beschrieben, wie Sie AWS Aurora-Protokolle in Google Security Operations aufnehmen. AWS Aurora ist ein verwalteter relationaler Datenbankdienst mit hoher Leistung, Skalierbarkeit und Verfügbarkeit. Bei dieser Integration konfigurieren Sie AWS Aurora so, dass Protokolle zur Analyse, Überwachung und Bedrohungserkennung an Google SecOps weitergeleitet werden.
Vorbereitung
- Sie benötigen eine Google SecOps-Instanz.
- Sie benötigen erhöhte Zugriffsrechte für AWS.
- Ihr AWS Aurora-Datenbankcluster muss eingerichtet und ausgeführt werden.
Amazon S3-Bucket konfigurieren
- Erstellen Sie einen Amazon S3-Bucket. Folgen Sie dazu dieser Anleitung: Bucket erstellen.
- Speichern Sie den Namen und die Region des Buckets für später.
- Erstellen Sie einen Nutzer gemäß der Anleitung IAM-Nutzer erstellen.
- Wählen Sie den erstellten Nutzer aus.
- Wählen Sie den Tab Sicherheitsanmeldedaten aus.
- Klicken Sie im Bereich Zugriffsschlüssel auf Zugriffsschlüssel erstellen.
- Wählen Sie als Anwendungsfall 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 Secret Access Key zur späteren 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 den Richtlinien AmazonS3FullAccess und CloudWatchLogsFullAccess und wählen Sie sie aus.
- Klicken Sie auf Weiter.
- Klicken Sie auf Berechtigungen hinzufügen.
Erweitertes Monitoring konfigurieren
- Melden Sie sich bei der AWS Management Console an.
- Geben Sie in die Suchleiste RDS ein und wählen Sie RDS aus der Liste der Dienste aus.
- Wählen Sie im RDS-Dashboard im Navigationsbereich die Option Datenbanken aus.
- Wählen Sie den Aurora-Cluster aus, den Sie überwachen möchten.
- Klicken Sie im Abschnitt Protokolle und Monitoring auf Ändern.
- Gehen Sie zum Bereich Monitoring und aktivieren Sie Verbessertes Monitoring.
- Legen Sie die Monitoring-Rolle auf die entsprechende IAM-Rolle fest, die Berechtigungen zum Veröffentlichen in CloudWatch-Logs oder S3 hat.
- Speichern Sie die Änderungen und wenden Sie sie auf Ihren Aurora-Cluster an.
AWS Aurora-Audit-Logs konfigurieren
- Wählen Sie im RDS-Dashboard die Option Datenbanken aus und klicken Sie auf Ihren Aurora-Cluster.
- Klicken Sie im Bereich Protokolle und Monitoring auf Ändern.
- Achten Sie darauf, dass im Abschnitt Datenbankoptionen die Option Audit-Protokolle aktivieren ausgewählt ist.
- Wählen Sie unter Ziel die Option S3 aus und geben Sie den S3-Bucket an, in dem die Protokolle gespeichert werden sollen.
- Klicken Sie auf Änderungen speichern, um die Einstellungen anzuwenden.
Optional: Konfiguration von AWS Aurora-Logs mit CloudWatch
Für zusätzliche Überwachungsfunktionen können Sie CloudWatch-Protokolle so konfigurieren, dass Aurora-Protokolle erfasst werden.
- Wählen Sie im RDS-Dashboard Ihren Aurora-Cluster aus.
- Prüfen Sie im Bereich Protokolle und Monitoring, ob die Integration von CloudWatch-Logs aktiviert ist.
- Rufen Sie CloudWatch-Protokolle auf und erstellen Sie eine neue Protokollgruppe zum Speichern der Aurora-Protokolle.
- Wählen Sie auf dem Bildschirm Loggruppen den Namen der neuen Loggruppe aus.
- Wählen Sie Aktionen > Daten nach Amazon S3 exportieren aus.
Legen Sie auf dem Bildschirm Daten in Amazon S3 exportieren unter Datenexport definieren mit Von und Bis den Zeitraum für den Export fest.
Wählen Sie unter S3-Bucket auswählen das Konto aus, das mit dem Amazon S3-Bucket verknüpft ist.
S3-Bucket-Name: Wählen Sie einen Amazon S3-Bucket aus.
S3-Bucket-Präfix: Geben Sie den zufällig generierten String ein, den Sie in der Bucket-Richtlinie angegeben haben.
Wählen Sie Exportieren aus, um Ihre Protokolldaten nach Amazon S3 zu exportieren.
Wenn Sie den Status der Protokolldaten aufrufen möchten, die Sie in Amazon S3 exportiert haben, wählen Sie Aktionen > Alle Exporte nach Amazon S3 ansehen aus.
Feed in Google SecOps für die Aufnahme von AWS Aurora-Logs konfigurieren
- Gehen Sie zu SIEM-Einstellungen > Feeds.
- Klicken Sie auf Neu hinzufügen.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. AWS Aurora-Protokolle.
- Wählen Sie als Quelltyp Amazon S3 aus.
- Wählen Sie als Logtyp AWS Aurora aus.
- Klicken Sie auf Weiter.
Geben Sie Werte für die folgenden Eingabeparameter an:
- Region: Die Region, in der sich der Amazon S3-Bucket befindet.
- S3-URI: der Bucket-URI.
s3://your-log-bucket-name/
- Ersetzen Sie
your-log-bucket-name
durch den tatsächlichen Namen des Buckets.
- Ersetzen Sie
- URI ist ein: Wählen Sie Verzeichnis oder Verzeichnis mit Unterverzeichnissen aus.
Optionen zum Löschen der Quelle: Wählen Sie die gewünschte Löschoption aus.
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 werden soll.
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 |
---|---|---|
account |
principal.group.product_object_id |
Direkt aus dem Feld account im Rohprotokoll zugeordnet. |
column1 |
timestamp_epoch |
Direkt aus dem Feld column1 im Rohprotokoll zugeordnet. Wird verwendet, um metadata.event_timestamp abzuleiten. |
column10 |
Variabel | Kann je nach Protokollformat principal.process.command_line , object oder number sein. |
column11 |
ddl oder response oder command_line2 |
Kann je nach Protokollformat principal.resource.resource_subtype (ddl), security_result.outcomes.value (response) oder Teil von principal.process.command_line (command_line2) sein. |
column12 |
operation oder response oder command_line3 |
Kann je nach Protokollformat sr.summary (Vorgang), security_result.outcomes.value (Antwort) oder Teil von principal.process.command_line (command_line3) sein. |
column13 |
database oder response |
Kann je nach Protokollformat target.resource.name (Datenbank) oder security_result.outcomes.value (Antwort) sein. |
column14 |
object |
Je nach Logformat direkt auf principal.resource.product_object_id oder target_data.resource.name zugeordnet. |
column15 |
command_line |
Direkt principal.process.command_line zugeordnet. |
column16 |
response |
Direkt security_result.outcomes.value zugeordnet. |
column2 |
timestamp oder timestamp_ms |
Direkt aus dem Feld column2 im Rohprotokoll zugeordnet. |
column3 |
ip oder hostname |
Kann principal.ip oder principal.resource.name sein, je nach Protokollformat. |
column4 |
port oder userid |
Kann principal.port oder principal.user.userid sein, je nach Protokollformat. |
column5 |
userid oder ip |
Kann principal.user.userid oder principal.ip sein, je nach Protokollformat. |
column6 |
hostname oder connection_id |
Kann principal.resource.name oder network.session_id sein, je nach Protokollformat. |
column7 |
connection_id oder query_id |
Kann network.session_id oder principal.process.pid sein, je nach Protokollformat. |
column8 |
operation |
Direkt auf sr.summary oder metadata.product_event_type zugeordnet. |
column9 |
query_id oder database |
Kann principal.process.pid oder target_data.resource.name sein, je nach Protokollformat. |
command_line |
principal.process.command_line |
Direkt aus dem extrahierten Feld command_line zugeordnet. |
connection_id |
network.session_id |
Direkt aus dem extrahierten Feld connection_id zugeordnet. |
database |
target.resource.name |
Direkt aus dem extrahierten Feld database zugeordnet. Wird durch bedingte Logik im Parser aus mehreren Feldern wie operation , command_line , has_principal_user und has_principal_machine abgeleitet. Kann RESOURCE_DELETION , RESOURCE_CREATION , RESOURCE_READ , RESOURCE_WRITTEN , USER_RESOURCE_ACCESS , USER_UNCATEGORIZED oder GENERIC_EVENT sein. Hartcodiert auf „AWS_AURORA“. Aus column8 zugeordnet oder aus der Parserlogik abgeleitet. „AURORA“ ist hartcodiert. „AMAZON“ ist hartcodiert. |
has_principal_machine |
has_principal_machine |
Wird auf „wahr“ gesetzt, wenn principal.ip vorhanden ist, andernfalls auf „falsch“ initialisiert. |
has_principal_user |
has_principal_user |
Wird auf „wahr“ gesetzt, wenn principal.user.userid vorhanden ist, andernfalls auf „falsch“ initialisiert. |
hostname |
principal.resource.name |
Direkt aus dem extrahierten Feld hostname zugeordnet. |
ip |
principal.ip |
Direkt aus dem extrahierten Feld ip zugeordnet. |
logevent.id |
security_result.detection_fields.value |
Verschachtelt in target.logEvents.logEvents , mit dem Schlüssel „id“ zugeordnet. |
logevent.message |
security_result.detection_fields.value |
Verschachtelt in target.logEvents.logEvents , zugeordnet mit dem Schlüssel „message“. Wird zum Extrahieren von principal.ip , time_unix , operation und user verwendet. |
logevent.timestamp |
security_result.detection_fields.value |
Verschachtelt in target.logEvents.logEvents , zugeordnet mit dem Schlüssel „Zeitstempel“. |
object |
target_data.resource.name oder principal.resource.product_object_id |
Direkt aus dem extrahierten Feld object zugeordnet. |
operation |
sr.summary |
Direkt aus dem extrahierten Feld operation zugeordnet. |
port |
principal.port |
Direkt aus dem extrahierten Feld port zugeordnet. |
query_id |
principal.process.pid |
Direkt aus dem extrahierten Feld query_id zugeordnet. |
response |
security_result.outcomes.value |
Direkt aus dem extrahierten Feld response zugeordnet. |
service |
principal.application |
Direkt aus dem Feld service im Rohprotokoll zugeordnet. |
src_ip |
principal.ip |
Aus logevent.message innerhalb der verschachtelten target.logEvents.logEvents -Struktur extrahiert. |
target.logEvents.logGroup |
target.resource.attribute.labels.value |
Dem Schlüssel „logGroup“ zugeordnet. |
target.logEvents.logStream |
target.resource.attribute.labels.value |
Wird mit dem Schlüssel „logStream“ zugeordnet. |
target.logEvents.messageType |
target.resource.attribute.labels.value |
Wird mit dem Schlüssel „messageType“ zugeordnet. |
target.logEvents.owner |
target.resource.attribute.labels.value |
Dem Schlüssel „owner“ zugeordnet. |
timestamp_epoch |
metadata.event_timestamp |
Mit dem Filter date in metadata.event_timestamp umgewandelt. |
user |
principal.user.userid |
Aus logevent.message innerhalb der verschachtelten target.logEvents.logEvents -Struktur extrahiert. |
userid |
principal.user.userid |
Direkt aus dem extrahierten Feld userid zugeordnet. |
Änderungen
2024-01-12
- „logEvents.messageType“, „logEvents.owner“, „logEvents.logGroup“ und „logEvents.logStream“ wurden in „target.resource.attribute.labels“ zugeordnet.
- „logEvents.logEvents.message“, „logEvents.logEvents.timestamp“ und „logEvents.logEvents.id“ wurden in „securit_result.detection_fields“ zugeordnet.
- Es wurde ein Grok-Muster hinzugefügt, um die IP-Adresse aus „logEvents.logEvents.message“ abzurufen. Außerdem wurde „src_data“ zu „principal.ip“ zugeordnet.
- „user“ wurde „principal.user.userid“ zugeordnet.
2023-11-02
- Neu erstellter Parser.
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten