AWS S3-Serverzugriffsprotokolle erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie AWS S3-Serverzugriffsprotokolle erfassen, indem Sie einen Google Security Operations-Feed einrichten. Der Parser extrahiert Felder mithilfe von Grok-Mustern, verarbeitet potenzielle JSON-Eingabe und ordnet die extrahierten Felder dem UDM zu. Es führt Datentransformationen, Typumwandlungen und bedingte Logik basierend auf der Anwesenheit und den Werten bestimmter Felder aus, um eine genaue UDM-Darstellung zu gewährleisten.

Hinweise

  • Sie benötigen eine Google SecOps-Instanz.
  • Sie benötigen erhöhte Zugriffsrechte für AWS.

Logging für den AWS S3-Serverzugriff konfigurieren

Google SecOps unterstützt die Protokollerfassung mit Amazon S3 über Amazon SQS.

  1. Melden Sie sich in der AWS Management Console an.
  2. Rufen Sie die Amazon S3-Konsole auf.
  3. Gehen Sie zu Amazon S3 > Buckets.
  4. Wählen Sie einen vorhandenen Bucket aus oder erstellen Sie einen neuen.
  5. Klicken Sie auf Eigenschaften.
  6. Klicken Sie im Bereich Serverzugriffsprotokollierung auf Bearbeiten.
  7. Wählen Sie Aktivieren aus.
  8. Geben Sie im Feld Ziel-Bucket einen Namen für den neuen Bucket ein, an den die Protokollereignisobjekte gesendet werden sollen, oder wählen Sie einen vorhandenen Bucket als Ziel aus.
  1. Klicken Sie auf Änderungen speichern.
  2. Um die SQS-Warteschlange für den S3-Bucket zu erstellen, konfigurieren Sie eine Amazon SQS-Instanz mit dem S3-Speicher. Weitere Informationen finden Sie unter Einen Bucket für Benachrichtigungen konfigurieren (SNS-Thema oder SQS-Warteschlange).

Ermitteln Sie anhand der folgenden AWS-Dokumentation die Endpunkte für die Konnektivität, je nach Dienst und Region: * Informationen zu Protokollierungsquellen finden Sie unter Endpunkte und Kontingente für die AWS Identity and Access Management. * Informationen zu S3-Protokollquellen finden Sie unter Amazon Simple Storage Service-Endpunkte und ‑Kontingente. * Informationen zu SQS-Protokollquellen finden Sie unter Amazon Simple Queue Service-Endpunkte und ‑Kontingente.

Feed in Google SecOps für die Aufnahme von AWS S3-Serverzugriffsprotokollen konfigurieren

  1. Klicken Sie im Google SecOps-Menü auf Einstellungen > Feeds > Neu hinzufügen.
  2. Wählen Sie in der Liste Quelltyp die Option Amazon S3 oder Amazon SQS aus.
  3. Wählen Sie in der Liste Logtyp die Option AWS S3-Serverzugriff aus.
  4. Klicken Sie auf Weiter.
  5. Google SecOps unterstützt die Protokollerhebung mit einer Zugriffsschlüssel-ID und einer Secret-Methode. Informationen zum Erstellen der Zugriffsschlüssel-ID und des geheimen Schlüssels finden Sie unter Toolauthentifizierung mit AWS konfigurieren.
  6. Geben Sie basierend auf der von Ihnen erstellten Konfiguration für den AWS S3-Serverzugriff Werte für die Eingabeparameter an:
    • Wenn Sie Amazon S3 verwenden, geben Sie Werte für die folgenden Felder an:
      • Region
      • S3-URI
      • URI ist ein
      • Option zum Löschen der Quelle
      • Zugriffsschlüssel-ID
      • Secret-Zugriffsschlüssel
    • Wenn Sie Amazon SQS verwenden, geben Sie Werte für die folgenden Felder an:
      • Region
      • Name der Warteschlange
      • Kontonummer
      • Zugriffsschlüssel-ID der Warteschlange
      • Secret-Zugriffsschlüssel für die Warteschlange
      • Option zum Löschen der Quelle
  7. Klicken Sie auf Weiter und klicken Sie dann auf Senden.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
aclRequired target.resource.attribute.labels.key: „aclRequired“
target.resource.attribute.labels.value: Wert von aclRequired
Direkt aus dem Rohlogfeld aclRequired zugeordnet.
authenticationtype extensions.auth.auth_details Direkt aus dem Rohlogfeld authenticationtype zugeordnet.
bucket target.resource.name Direkt aus dem Rohlogfeld bucket zugeordnet.
bucket target.resource.resource_type: „STORAGE_BUCKET“ Der Parser setzt resource_type auf „STORAGE_BUCKET“, wenn das Feld bucket vorhanden ist.
bucketowner target.resource.product_object_id Direkt aus dem Rohlogfeld bucketowner zugeordnet.
bytes_sent network.sent_bytes Wird direkt aus dem Rohprotokollfeld bytes_sent abgeleitet, nachdem es in eine positive Ganzzahl umgewandelt und „-“ durch „0“ ersetzt wurde.
ciphersuite network.application_protocol: „HTTPS“ Der Parser setzt application_protocol auf „HTTPS“, wenn das Feld ciphersuite vorhanden ist.
ciphersuite network.tls.cipher Direkt aus dem Rohlogfeld ciphersuite zugeordnet.
errorcode security_result.action_details Direkt aus dem Rohlogfeld errorcode zugeordnet.
errorcode security_result.action: „BLOCK“ Der Parser setzt action auf „BLOCK“, wenn das Feld errorcode „AccessDenied“ enthält (Groß- und Kleinschreibung wird nicht berücksichtigt).
hostheader target.hostname Aus dem Rohlogfeld hostheader extrahiert, wobei die Portnummer möglicherweise entfernt wird.
hostheader target.port Wird aus dem Feld „Raw Log“ hostheader extrahiert, wenn eine Portnummer vorhanden ist.
hostid target.resource.attribute.labels.key: „S3 Extended Request ID“
target.resource.attribute.labels.value: Wert von hostid
Direkt aus dem Rohlogfeld hostid zugeordnet.
http_capture network.http.method Die HTTP-Methode wird aus dem Feld http_capture extrahiert.
http_capture network.http.version Die HTTP-Version wird aus dem Feld http_capture extrahiert.
http_capture target.url Die Ziel-URL wird aus hostheader und http_request_uri (aus http_capture extrahiert) erstellt und je nach Vorhandensein von ciphersuite mit „http://“ oder „https://“ vorangestellt.
httpstatus network.http.response_code Wird direkt aus dem Rohlogfeld httpstatus abgeleitet, nachdem es in eine Ganzzahl umgewandelt wurde.
object_version_id target.resource.product_object_id Direkt aus dem Rohlogfeld object_version_id zugeordnet.
objectsize target.file.size Wird direkt aus dem Rohprotokollfeld objectsize abgeleitet, nachdem es in eine positive Ganzzahl umgewandelt und „-“ durch „0“ ersetzt wurde.
operation metadata.product_event_type Direkt aus dem Rohlogfeld operation zugeordnet.
referrer network.http.referral_url Wird direkt aus dem Rohprotokollfeld referrer abgeleitet, nachdem Anführungszeichen entfernt wurden.
remoteip metadata.event_type: „USER_RESOURCE_ACCESS“ Der Parser setzt event_type auf „USER_RESOURCE_ACCESS“, wenn das Feld remoteip leer ist.
remoteip principal.ip Direkt aus dem Rohlogfeld remoteip zugeordnet.
requester target.resource.attribute.labels.key: „Zugangspunkt-ARN“
target.resource.attribute.labels.value: Wert von requester
Direkt aus dem Rohlogfeld requester zugeordnet.
requester_user principal.user.userid Direkt aus dem Rohlogfeld requester_user zugeordnet.
requestid network.session_id Direkt aus dem Rohlogfeld requestid zugeordnet.
request_time_ms network.session_duration.nanos Wird direkt aus dem Roh-Log-Feld request_time_ms abgeleitet, nachdem es in eine Ganzzahl umgewandelt wurde. Dabei wird „-“ durch „0“ ersetzt und mit Nullen aufgefüllt, um Nanosekunden darzustellen.
signatureversion target.resource.attribute.labels.key: „Signature Version“
target.resource.attribute.labels.value: Wert von signatureversion
Direkt aus dem Rohlogfeld signatureversion zugeordnet.
time metadata.event_timestamp Wird aus dem Feld „Raw Log“ time geparst und in einen Zeitstempel umgewandelt.
tlsVersion network.tls.version Direkt aus dem Rohlogfeld tlsVersion zugeordnet.
useragent network.http.user_agent Wird direkt aus dem Rohprotokollfeld useragent nach dem Entfernen von Anführungszeichen zugeordnet.
(Parser Logic) metadata.event_type: „NETWORK_HTTP“ Der Parser setzt die Standard-event_type auf „NETWORK_HTTP“.
(Parser Logic) metadata.log_type: „AWS_S3_SERVER_ACCESS“ Der Parser setzt log_type auf „AWS_S3_SERVER_ACCESS“.
(Parser Logic) metadata.product_name: „AWS S3-Serverzugriff“ Der Parser setzt product_name auf „AWS S3-Serverzugriff“.
(Parser Logic) metadata.product_version: „HTTP/http_version Der Parser legt die product_version anhand der extrahierten http_version fest.
(Parser Logic) metadata.vendor_name: „AMAZON“ Der Parser setzt vendor_name auf „AMAZON“.
(Parser Logic) network.application_protocol: „HTTP“ Der Parser setzt application_protocol auf „HTTP“, wenn das Feld ciphersuite nicht vorhanden ist.
(Parser Logic) timestamp Der Parser setzt das Ereignis timestamp bei der Verarbeitung auf die aktuelle Zeit.

Änderungen

2023-07-19

  • Fehlerkorrektur –
  • Das Grok-Muster wurde so geändert, dass ein Bindestrich (-) verwendet wird, wenn keine Daten vorhanden sind.
  • „aclRequired“ wurde auf „target.resource.attribute.labels“ zugeordnet.

2023-05-04

  • Verbesserungen:
  • Unterstützung für Protokolle im JSON-Format hinzugefügt

2022-07-21

  • Neu erstellter Parser.

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten