AWS Aurora-Protokolle erfassen

Unterstützt in:

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

  1. Erstellen Sie einen Amazon S3-Bucket. Folgen Sie dazu dieser Anleitung: Bucket erstellen.
  2. Speichern Sie den Namen und die Region des Buckets für später.
  3. Erstellen Sie einen Nutzer gemäß der Anleitung IAM-Nutzer erstellen.
  4. Wählen Sie den erstellten Nutzer aus.
  5. Wählen Sie den Tab Sicherheitsanmeldedaten aus.
  6. Klicken Sie im Bereich Zugriffsschlüssel auf Zugriffsschlüssel erstellen.
  7. Wählen Sie als Anwendungsfall Drittanbieterdienst aus.
  8. Klicken Sie auf Weiter.
  9. Optional: Fügen Sie ein Beschreibungs-Tag hinzu.
  10. Klicken Sie auf Zugriffsschlüssel erstellen.
  11. Klicken Sie auf CSV-Datei herunterladen, um den Zugriffsschlüssel und den Secret Access Key zur späteren Verwendung zu speichern.
  12. Klicken Sie auf Fertig.
  13. Wählen Sie den Tab Berechtigungen aus.
  14. Klicken Sie im Bereich Berechtigungsrichtlinien auf Berechtigungen hinzufügen.
  15. Wählen Sie Berechtigungen hinzufügen aus.
  16. Wählen Sie Richtlinien direkt anhängen aus.
  17. Suchen Sie nach den Richtlinien AmazonS3FullAccess und CloudWatchLogsFullAccess und wählen Sie sie aus.
  18. Klicken Sie auf Weiter.
  19. Klicken Sie auf Berechtigungen hinzufügen.

Erweitertes Monitoring konfigurieren

  1. Melden Sie sich bei der AWS Management Console an.
  2. Geben Sie in die Suchleiste RDS ein und wählen Sie RDS aus der Liste der Dienste aus.
  3. Wählen Sie im RDS-Dashboard im Navigationsbereich die Option Datenbanken aus.
  4. Wählen Sie den Aurora-Cluster aus, den Sie überwachen möchten.
  5. Klicken Sie im Abschnitt Protokolle und Monitoring auf Ändern.
  6. Gehen Sie zum Bereich Monitoring und aktivieren Sie Verbessertes Monitoring.
  7. Legen Sie die Monitoring-Rolle auf die entsprechende IAM-Rolle fest, die Berechtigungen zum Veröffentlichen in CloudWatch-Logs oder S3 hat.
  8. Speichern Sie die Änderungen und wenden Sie sie auf Ihren Aurora-Cluster an.

AWS Aurora-Audit-Logs konfigurieren

  1. Wählen Sie im RDS-Dashboard die Option Datenbanken aus und klicken Sie auf Ihren Aurora-Cluster.
  2. Klicken Sie im Bereich Protokolle und Monitoring auf Ändern.
  3. Achten Sie darauf, dass im Abschnitt Datenbankoptionen die Option Audit-Protokolle aktivieren ausgewählt ist.
  4. Wählen Sie unter Ziel die Option S3 aus und geben Sie den S3-Bucket an, in dem die Protokolle gespeichert werden sollen.
  5. 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.

  1. Wählen Sie im RDS-Dashboard Ihren Aurora-Cluster aus.
  2. Prüfen Sie im Bereich Protokolle und Monitoring, ob die Integration von CloudWatch-Logs aktiviert ist.
  3. Rufen Sie CloudWatch-Protokolle auf und erstellen Sie eine neue Protokollgruppe zum Speichern der Aurora-Protokolle.
  4. Wählen Sie auf dem Bildschirm Loggruppen den Namen der neuen Loggruppe aus.
  5. Wählen Sie Aktionen > Daten nach Amazon S3 exportieren aus.
  6. Legen Sie auf dem Bildschirm Daten in Amazon S3 exportieren unter Datenexport definieren mit Von und Bis den Zeitraum für den Export fest.

  7. Wählen Sie unter S3-Bucket auswählen das Konto aus, das mit dem Amazon S3-Bucket verknüpft ist.

  8. S3-Bucket-Name: Wählen Sie einen Amazon S3-Bucket aus.

  9. S3-Bucket-Präfix: Geben Sie den zufällig generierten String ein, den Sie in der Bucket-Richtlinie angegeben haben.

  10. Wählen Sie Exportieren aus, um Ihre Protokolldaten nach Amazon S3 zu exportieren.

  11. 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

  1. Gehen Sie zu SIEM-Einstellungen > Feeds.
  2. Klicken Sie auf Neu hinzufügen.
  3. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. AWS Aurora-Protokolle.
  4. Wählen Sie als Quelltyp Amazon S3 aus.
  5. Wählen Sie als Logtyp AWS Aurora aus.
  6. Klicken Sie auf Weiter.
  7. 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.
    • 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.

  8. Klicken Sie auf Weiter.

  9. 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