Vercel-WAF-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Vercel WAF-Logs mit Google Cloud Storage V2 in Google Security Operations aufnehmen.
Vercel WAF ist eine Web Application Firewall, die in das Vercel-Edge-Netzwerk eingebunden ist, um serverlose Anwendungen zu schützen. Sie prüft eingehende HTTP-Anfragen am Edge und wendet Sicherheitsregeln an, um schädlichen Traffic zu blockieren, bevor er Ihre Anwendung erreicht. Da Vercel WAF-Logs von der Vercel-Plattform exportiert werden müssen, müssen Sie diese Logs in einen Google Cloud Storage-Bucket (GCS) hochladen und dann einen Google SecOps-Feed konfigurieren, um sie aufzunehmen.
Hinweis
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Eine Google SecOps-Instanz
- Ein Google Cloud-Projekt mit aktivierter Abrechnung
- Ein Vercel-Konto mit Zugriff auf WAF-Logs (Pro- oder Enterprise-Tarif)
- Ein Vercel API-Token oder ein Log Drain, der für den Export von WAF-Logs konfiguriert ist
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. vercel-waf-logs).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, der Ihrer Google SecOps-Instanz am nächsten liegt (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 Klicken Sie auf Erstellen.
Vercel WAF-Logs nach GCS exportieren
Vercel stellt WAF-Logs über Log Drains und die Vercel REST API bereit. Konfigurieren Sie den Logexport und laden Sie die Logs dann in GCS hoch.
Option A: Vercel Log Drains konfigurieren (empfohlen)
Vercel Log Drains streamen Logs in Echtzeit an einen externen Endpunkt.
- Melden Sie sich im Vercel-Dashboard an.
- Rufen Sie die Teameinstellungen auf: Einstellungen > Log-Drains.
- Klicken Sie auf Log-Drain hinzufügen.
- Konfigurieren Sie den Log-Drain:
- Zustellungsformat: Wählen Sie JSON aus.
- Quellen: Wählen Sie Firewall aus, um WAF-Ereignisse einzubeziehen.
- Umgebungen: Wählen Sie die zu überwachenden Umgebungen aus (Produktion, Vorschau, Entwicklung).
- Endpunkt: Geben Sie die URL Ihres Zwischenempfängers ein (z. B. einen Cloud Run-Funktionsendpunkt, der in GCS schreibt).
- Klicken Sie auf Log-Drain hinzufügen.
Prüfen Sie, ob Logs an Ihren Endpunkt gesendet werden.
Option B: Export über die Vercel REST API
- Generieren Sie ein Vercel API-Token unter Einstellungen > Tokens.
Verwenden Sie die Vercel REST API, um Firewall-Ereignisse abzurufen:
curl -H "Authorization: Bearer YOUR_VERCEL_TOKEN" \ "https://api.vercel.com/v1/security/firewall/events?teamId=YOUR_TEAM_ID&projectId=YOUR_PROJECT_ID&limit=100" \ -o vercel-waf-events.json
Google SecOps-Dienstkonto abrufen
- Rufen Sie die Einstellungen > Datenverwaltung > Feeds auf. Wenn Sie eine reine SIEM-Plattform verwenden, rufen Sie die 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.
Vercel WAF Logs. - Wählen Sie Google Cloud Storage V2 als Quelltyp aus.
- Wählen Sie Vercel WAF als Protokolltyp aus.
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.comKopieren Sie diese E-Mail-Adresse, um sie im nächsten Schritt zu verwenden.
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 (z. B.
vercel-waf-logs). - 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 (z. B.
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com). - Rollen zuweisen: Wählen Sie Storage Object Viewer aus.
- Hauptkonten hinzufügen: Fügen Sie die E-Mail-Adresse des Google SecOps-Dienstkontos ein (z. B.
Klicken Sie auf Speichern.
Google SecOps-Feed konfigurieren
- Rufen Sie die Einstellungen > Datenverwaltung > Feeds auf. Wenn Sie eine reine SIEM-Plattform verwenden, rufen Sie die 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.
Vercel WAF Logs. - Wählen Sie Google Cloud Storage V2 als Quelltyp aus.
- Wählen Sie Vercel WAF als Protokolltyp aus.
- Klicken Sie auf Weiter.
Geben Sie Werte für die folgenden Eingabeparameter an:
Storage-Bucket-URL: Geben Sie den GCS-Bucket-URI ein:
gs://vercel-waf-logs/vercel-waf/- Ersetzen Sie
vercel-waf-logsdurch den Namen Ihres GCS-Buckets. - Ersetzen Sie
vercel-wafdurch den konfigurierten Präfixpfad.
- Ersetzen Sie
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 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 (Standardwert: 180 Tage).
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 |
|---|---|---|
| record.requestId, record.proxy.timestamp, record.proxy.region, record.proxy.errorCode, record.proxy.vercelCache, record.proxy.pathType, record.proxy.referer, record.proxy.cacheId, record.proxy.wafAction, record.proxy.scheme, record.proxy.userAgent, record.environment | additional.fields | Zusätzliche Ereignismetadaten |
| metadata.event_type | Ereignistyp | |
| record.deploymentId | metadata.product_deployment_id | Produktspezifische Bereitstellungs-ID |
| record.id | metadata.product_log_id | Produktspezifische Log-ID |
| record.proxy.method | network.http.method | HTTP-Methode |
| record.statusCode | network.http.response_code | HTTP-Antwortcode |
| record.source | principal.asset.hostname | Hostname des Assets, das mit dem Hauptkonto verknüpft ist |
| record.host | principal.hostname | Hostname des Hauptkontos |
| record.message | security_result.description | Beschreibung des Sicherheitsergebnisses |
| record.proxy.wafRule | security_result.rule_name | Name der Regel, die das Sicherheitsergebnis ausgelöst hat |
| record.level | security_result.severity | Schweregrad des Sicherheitsergebnisses |
| record.proxy.wafRule | security_result.threat_name | Name der Bedrohung |
| record.proxy.clientIp | target.asset.ip | IP-Adresse des Assets |
| record.projectId | target.cloud.project.id | ID des Cloud-Projekts |
| record.projectName | target.cloud.project.name | Name des Cloud-Projekts |
| record.proxy.path | target.file.full_path | Vollständiger Pfad der Datei |
| record.proxy.clientIp | target.ip | IP-Adresse des Ziels |
| record.executionRegion | target.location.name | Name des Orts |
| record.proxy.vercelId | target.user.userid | Nutzer-ID des Zielnutzers |
| metadata.product_name | Produktname | |
| metadata.vendor_name | Anbietername |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten