Gmail-Protokolle erfassen

Parserversion: 7.0

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Gmail-Logs mit Google Cloud Storage V2 in Google Security Operations aufnehmen.

Gmail ist der E‑Mail-Dienst von Google Workspace, der sichere, intelligente E‑Mails mit integriertem Spam- und Phishing-Schutz bietet. Gmail-Protokolle enthalten detaillierte Informationen zur E-Mail-Zustellung, zu Sicherheitsereignissen und zum Nachrichtenfluss über die Gmail-Infrastruktur.

Hinweis

Folgende Voraussetzungen müssen erfüllt sein:

  • Eine Google SecOps-Instanz
  • Google Cloud-Projekt mit aktivierter Cloud Storage API und BigQuery API
  • Google Workspace-Konto mit der entsprechenden Version (Enterprise Standard, Enterprise Plus, Education Standard oder Education Plus)
  • Super Admin-Zugriff auf die Admin-Konsole von Google Workspace
  • Berechtigungen zum Erstellen und Verwalten von GCS-Buckets
  • Berechtigungen zum Verwalten von IAM-Richtlinien für GCS-Buckets
  • Berechtigungen zum Erstellen geplanter BigQuery-Abfragen
  • Das Dienstkonto gapps-reports@system.gserviceaccount.com muss die Rolle „Bearbeiter“ für das BigQuery-Projekt haben.

Google Cloud Storage-Bucket erstellen

Google Cloud Console verwenden

  1. Gehen Sie zur Google Cloud Console.
  2. Wählen Sie Ihr Projekt aus oder erstellen Sie ein neues.
  3. Rufen Sie im Navigationsmenü Cloud Storage > Buckets auf.
  4. Klicken Sie auf Bucket erstellen.
  5. Geben Sie die folgenden Konfigurationsdetails an:

    Einstellung Wert
    Bucket benennen Geben Sie einen global eindeutigen Namen ein (z. B. gmail-logs-export).
    Standorttyp Wählen Sie die Option, die am besten zu Ihren Anforderungen passt (Region, Dual-Region, Multi-Region).
    Standort Wählen Sie den Standort aus (z. B. us-central1).
    Speicherklasse Standard (empfohlen für Logs, auf die häufig zugegriffen wird)
    Zugriffssteuerung Einheitlich (empfohlen)
    Schutztools Optional: Objektversionsverwaltung oder Aufbewahrungsrichtlinie aktivieren
  6. Klicken Sie auf Erstellen.

gcloud-Befehlszeilentool verwenden

  • Alternativ können Sie einen Bucket mit dem Befehl gcloud erstellen:

    gcloud storage buckets create gs://gmail-logs-export \
        --location=us-central1 \
        --default-storage-class=STANDARD
    
    • Ersetzen Sie:
      • gmail-logs-export: Der gewünschte Bucket-Name (global eindeutig).
      • us-central1: Ihre bevorzugte Region (z. B. us-central1, europe-west1).

Google Workspace für den Export von Protokollen nach BigQuery konfigurieren

Google Workspace-Protokolle, einschließlich Gmail-Protokolle, werden über die einheitliche Funktion für Workspace-Protokolle und ‑Berichte nach BigQuery exportiert.

BigQuery-Export für Workspace-Protokolle aktivieren

  1. Melden Sie sich mit einem Super-Admin-Konto in der Admin-Konsole an.
  2. Klicken Sie auf das Dreistrich-Menü > Berichterstellung > Datenintegrationen.
  3. Bewegen Sie den Mauszeiger auf die Karte BigQuery Export und klicken Sie auf Bearbeiten.
  4. Setzen Sie ein Häkchen im Kästchen Export von Google Workspace-Daten zu Google BigQuery aktivieren.
  5. Wählen Sie unter BigQuery-Projekt-ID das Projekt aus, in dem die Protokolle gespeichert werden sollen.
  6. Geben Sie unter Neues Dataset im Projekt den Namen des Datasets ein, das zum Speichern der Protokolle verwendet werden soll (z. B. workspace_logs).
  7. Optional: Setzen Sie ein Häkchen in das Kästchen Dataset auf einen bestimmten geografischen Standort beschränken und wählen Sie den Standort aus dem Menü aus.
  8. Klicken Sie auf Speichern.

Nach dem Aktivieren des Exports sind Ereignisse im Aktivitätsprotokoll normalerweise innerhalb von 10 Minuten verfügbar. Die Daten werden in Tabellen mit dem Namen activity_YYYYMMDD im angegebenen Dataset exportiert.

Geplante Abfrage für den Export von BigQuery nach GCS erstellen

Wenn Sie Gmail-Protokolle automatisch nach einem wiederkehrenden Zeitplan von BigQuery nach Cloud Storage exportieren möchten, erstellen Sie eine geplante Abfrage mit der Anweisung EXPORT DATA.

BigQuery-Konsole verwenden

  1. Rufen Sie in der Google Cloud Console BigQuery auf.
  2. Klicken Sie im linken Navigationsbereich auf Geplante Abfragen.
  3. Klicken Sie auf Geplante Abfrage erstellen.
  4. Geben Sie im Abfrageeditor die folgende SQL-Abfrage ein:

    EXPORT DATA OPTIONS(
        uri='gs://gmail-logs-export/gmail-logs/*.json',
        format='JSON',
        overwrite=false
    ) AS
    SELECT 
        *
    FROM 
        `PROJECT_ID.workspace_logs.activity_*`
    WHERE 
        record_type = 'gmail'
        AND _TABLE_SUFFIX = FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
    
    • Ersetzen Sie:
      • gmail-logs-export: Name Ihres GCS-Buckets
      • PROJECT_ID: Ihre GCP-Projekt-ID.
      • workspace_logs: Der Name Ihres BigQuery-Datasets
  5. Im Abschnitt Zeitplanoptionen:

    • Wiederholen: Wählen Sie Stunden aus.
    • Alle: Geben Sie 1 ein.
    • Startdatum und Ausführungszeit: Wählen Sie das aktuelle Datum und die aktuelle Uhrzeit aus.
  6. Gehen Sie im Abschnitt Ziel für Abfrageergebnisse so vor:

    • Dataset: Wählen Sie ein Dataset für Abfragemetadaten aus (nicht die exportierten Daten).
  7. Klicken Sie auf Speichern.

bq-Befehlszeilentool verwenden

  • Alternativ können Sie eine geplante Abfrage mit dem Befehl bq erstellen:

    bq mk \
        --transfer_config \
        --project_id=PROJECT_ID \
        --data_source=scheduled_query \
        --display_name='Gmail Logs Export to GCS' \
        --schedule='every 1 hours' \
        --params='{
            "query":"EXPORT DATA OPTIONS(uri=\"gs://gmail-logs-export/gmail-logs/*.json\", format=\"JSON\", overwrite=false) AS SELECT * FROM `PROJECT_ID.workspace_logs.activity_*` WHERE record_type = \"gmail\" AND _TABLE_SUFFIX = FORMAT_DATE(\"%Y%m%d\", DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))",
            "destination_table_name_template":"gmail_export_metadata",
            "write_disposition":"WRITE_TRUNCATE"
        }'
    
    • Ersetzen Sie:
      • PROJECT_ID: Ihre GCP-Projekt-ID.
      • gmail-logs-export: Name Ihres GCS-Buckets
      • workspace_logs: Der Name Ihres BigQuery-Datasets

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.

Feed in Google SecOps konfigurieren, um Gmail-Protokolle aufzunehmen

  1. Rufen Sie die Einstellungen > Datenverwaltung > Feeds auf. Wenn Sie eine reine SIEM-Plattform verwenden, rufen Sie die Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf Einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Gmail Logs.
  5. Wählen Sie Google Cloud Storage V2 als Quelltyp aus.
  6. Wählen Sie als Logtyp die Option GMAIL-Logs aus.

  7. Klicken Sie auf Dienstkonto abrufen. Eine eindeutige E-Mail-Adresse für das Dienstkonto wird angezeigt, z. B.:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. Kopieren Sie diese E-Mail-Adresse, um sie im nächsten Schritt zu verwenden.

  9. Klicken Sie auf Weiter.

  10. Geben Sie Werte für die folgenden Eingabeparameter an:

    • Storage-Bucket-URL: Geben Sie den GCS-Bucket-URI mit dem Präfixpfad ein:

       gs://gmail-logs-export/gmail-logs/
      
      • Ersetzen Sie:
        • gmail-logs-export: Name Ihres GCS-Buckets
        • gmail-logs: Der Präfix-/Ordnerpfad, in dem Logs gespeichert werden.
    • Option zum Löschen der Quelle: Wählen Sie die gewünschte Löschoption aus:

      • Nie: Nach Übertragungen werden keine Dateien gelöscht (empfohlen für Tests).
      • Übertragene Dateien löschen: Dateien werden nach erfolgreicher Übertragung gelöscht.
      • Übertragene Dateien und leere Verzeichnisse löschen: Dateien und leere Verzeichnisse werden nach erfolgreicher Übertragung gelöscht.

    • Maximales Dateialter: Dateien einschließen, die in den letzten Tagen geändert wurden. Der Standardwert ist 180 Tage.

    • Asset-Namespace: Der Asset-Namespace.

    • Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll.

  11. Klicken Sie auf Weiter.

  12. Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

Dem Google SecOps-Dienstkonto IAM-Berechtigungen gewähren

Das Google SecOps-Dienstkonto benötigt die Rolle Storage-Objekt-Betrachter für Ihren GCS-Bucket.

Google Cloud Console verwenden

  1. Rufen Sie Cloud Storage > Buckets auf.
  2. Klicken Sie auf den Namen Ihres Buckets.
  3. Wechseln Sie zum Tab Berechtigungen.
  4. Klicken Sie auf Zugriff erlauben.
  5. 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 Object Viewer aus.
  6. Klicken Sie auf Speichern.

gcloud-Befehlszeilentool verwenden

  • Alternativ können Sie Berechtigungen mit dem Befehl gcloud gewähren:

    gcloud storage buckets add-iam-policy-binding gs://gmail-logs-export \
        --member="serviceAccount:SECOPS_SERVICE_ACCOUNT_EMAIL" \
        --role="roles/storage.objectViewer"
    
    • Ersetzen Sie:
      • gmail-logs-export: Der Name Ihres Buckets.
      • SECOPS_SERVICE_ACCOUNT_EMAIL: Die E-Mail-Adresse des Google SecOps-Dienstkontos.

gsutil-Befehlszeilentool verwenden (Legacy)

  • Gewähren Sie dem SecOps-Dienstkonto Zugriff als Storage-Objekt-Betrachter auf den Bucket für den Export von Gmail-Protokollen.

    gsutil iam ch serviceAccount:SECOPS_SERVICE_ACCOUNT_EMAIL:objectViewer \
        gs://gmail-logs-export
    

Berechtigungen prüfen

  • So prüfen Sie, ob die Berechtigungen korrekt gewährt wurden:

    gcloud storage buckets get-iam-policy gs://gmail-logs-export \
        --flatten="bindings[].members" \
        --filter="bindings.role:roles/storage.objectViewer"
    

In der Ausgabe sollte die E-Mail-Adresse des Google SecOps-Dienstkontos angezeigt werden.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
attachment.file_extension_type, attachment.sha256, attachment.file_name, domains über Zusammengeführt mit Anhangdetails und Linkdomains
message_info.post_delivery_info.action_type, gmail.message_info.post_delivery_info.action_type, event_info.mail_event_type, gmail.event_info.mail_event_type, tok.product_bucket, tok.scope_name, record_type, token.client_type, message_info.num_message_attachments, gmail.message_info.num_message_attachments additional.fields Zusammengeführt mit verschiedenen zusätzlichen Metadatenfeldern
action_type, description, rule_id metadata.description Wird auf bestimmte Beschreibungen basierend auf action_type-Werten oder aus der Beschreibung oder auf „Anstößige Inhalte“ gesetzt, wenn rule_id == 7
metadata.event_type Legen Sie diesen Wert auf „EMAIL_TRANSACTION“ fest.
event_name metadata.product_event_type Wert direkt kopiert
metadata.product_name Legen Sie diesen Wert auf „GMAIL“ fest.
metadata.vendor_name Legen Sie diesen Wert auf „Google“ fest.
__incoming_message, __outcoming_message network.direction Wird auf „INBOUND“ gesetzt, wenn eine eingehende Nachricht erkannt wird, und auf „OUTBOUND“, wenn eine ausgehende Nachricht erkannt wird.
destination.address network.email.cc Zusammengeführt aus Zieladressen, bei denen der Index > 0 ist
message_info.source.from_header_address, message_info.source.address network.email.from Wert aus „from_header_address“, falls nicht leer, andernfalls aus „source.address“
message_info.rfc2822_message_id, gmail.message_info.rfc2822_message_id network.email.mail_id Aus rfc2822_message_id extrahiert, < > entfernt, mit Grok
message_info.subject, gmail.message_info.subject network.email.subject Wert aus „message_info.subject“, wenn nicht leer, andernfalls „gmail.message_info.subject“
destination.address network.email.to Aus erster Zieladresse zusammengeführt
network.ip_protocol Legen Sie diesen Wert auf „TCP“ fest.
_payload_size network.received_bytes Wird auf _payload_size gesetzt, wenn die eingehende Nachricht
_payload_size network.sent_bytes Wird auf _payload_size gesetzt, wenn es sich um eine ausgehende Nachricht handelt
token.app_name, message_info.source.service, message_info.source.selector, gmail.message_info.source.service, gmail.message_info.source.selector principal.application Wert aus token.app_name, falls nicht leer, andernfalls aus source.service und source.selector verkettet
message_info.connection_info.client_host_zone, gmail.message_info.connection_info.client_host_zone principal.asset.hostname Wert aus client_host_zone
client_ip principal.asset.ip Wert direkt kopiert
message_info.connection_info.client_host_zone, gmail.message_info.connection_info.client_host_zone principal.hostname Wert aus client_host_zone
client_ip principal.ip Wert direkt kopiert
message_info.connection_info.ip_geo_country, gmail.message_info.connection_info.ip_geo_country principal.location.country_or_region Wert aus „ip_geo_country“
email, source_address principal.user.email_addresses Zusammengeführt aus email_address und source_address
token.client_id principal.user.group_identifiers Wert direkt kopiert
message_info.source.from_header_displayname, gmail.message_info.source.from_header_displayname principal.user.user_display_name Wert aus „from_header_displayname“
source_address principal.user.userid Wert direkt kopiert
Aktion security_result.action Wert direkt kopiert
Kategorie security_result.category Wert direkt kopiert
category_details security_result.category_details Wert direkt kopiert
message_info.connection_info.smtp_response_reason, gmail.message_info.connection_info.smtp_response_reason, rule_description, reason security_result.description Auf Grund für SMTP-Antwort, Regelbeschreibung oder Klassifizierungsgrund festlegen
stringMatch.predefined_detector_name, stringMatch.matched_string, stringMatch.match_expression, stringMatch.source, stringMatch.type security_result.detection_fields Mit Objekten im Erkennungsfeld zusammengeführt
rule_id security_result.rule_id Wert direkt kopiert
rule_name security_result.rule_name Wert direkt kopiert
_err_summary, rule_id, description security_result.summary Auf Fehlerzusammenfassung, regelspezifische Zusammenfassung oder Beschreibung festlegen
_target_host target.administrative_domain Wert direkt kopiert
message_info.destination.0.service, message_info.destination.0.selector, gmail.message_info.destination.0.service, gmail.message_info.destination.0.selector target.application Aus Dienst und Selektor verkettet
gmail.message_info.link_domain about.labels Aus Änderungsprotokoll zugeordnet
gmail.message_info.description metadata.description Aus Änderungsprotokoll zugeordnet
gmail.message_info.attachment.sha256 about.file.sha256 Aus Änderungsprotokoll zugeordnet
gmail.message_info.destination.address network.email.to Aus Änderungsprotokoll zugeordnet
gmail.message_info.attachment.file_name about.file.full_path Aus Änderungsprotokoll zugeordnet
gmail.message_info.source.from_header_address network.email.from Aus Änderungsprotokoll zugeordnet
gmail.message_info.attachment.file_extension_type about.file.mime_type Aus Änderungsprotokoll zugeordnet
gmail.message_info.triggered_rule_info.rule_type security_result.rule_id Aus Änderungsprotokoll zugeordnet
gmail.message_info.triggered_rule_info.rule_name security_result.rule_name Aus Änderungsprotokoll zugeordnet
gmail.message_info.source.service", "gmail.message_info.source.selector principal.application Aus Änderungsprotokoll zugeordnet
gmail.message_info.payload_size network.sent_bytes Aus Änderungsprotokoll zugeordnet
gmail.message_info.payload_size network.received_bytes Aus Änderungsprotokoll zugeordnet
gmail.message_info.destination.0.service", "gmail.message_info.destination.0.selector target.application Aus Änderungsprotokoll zugeordnet
gmail.message_info.post_delivery_info.action_type", "gmail.message_info.num_message_attachments", and "gmail.event_info.mail_event_type additional.fields Aus Änderungsprotokoll zugeordnet
event_info.success security_result.action Aus Änderungsprotokoll zugeordnet
attachment.file_name about.file.full_path Aus Änderungsprotokoll zugeordnet
message_info.post_delivery_info.action_type", "message_info.post_delivery_info.interaction.link_url", "event_info.mail_event_type additional.fields Aus Änderungsprotokoll zugeordnet

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

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