Raccogli i log WAF di Vercel

Supportato in:

Questo documento spiega come importare i log WAF di Vercel in Google Security Operations utilizzando Google Cloud Storage V2.

Vercel WAF è un web application firewall integrato nella rete perimetrale Vercel per proteggere le applicazioni serverless. Ispeziona le richieste HTTP in entrata al perimetro e applica regole di sicurezza per bloccare il traffico dannoso prima che raggiunga la tua applicazione. Poiché i log WAF di Vercel devono essere esportati dalla piattaforma Vercel, devi caricarli in un bucket Google Cloud Storage (GCS) e poi configurare un feed Google SecOps per importarli.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps
  • Un progetto cloud Google Cloud con la fatturazione abilitata
  • Un account Vercel con accesso ai log WAF (piano Pro o Enterprise)
  • Un token API Vercel o un Log Drain configurato per esportare i log WAF

Crea un bucket Google Cloud Storage

  1. Vai alla console Google Cloud.
  2. Seleziona il tuo progetto o creane uno nuovo.
  3. Nel menu di navigazione, vai a Cloud Storage > Bucket.
  4. Fai clic su Crea bucket.
  5. Fornisci i seguenti dettagli di configurazione:

    Impostazione Valore
    Assegna un nome al bucket Inserisci un nome univoco globale (ad esempio vercel-waf-logs).
    Tipo di località Scegli in base alle tue esigenze (regione singola, a due regioni, multiregionale)
    Località Seleziona la località più vicina alla tua istanza Google SecOps (ad esempio us-central1).
    Classe di archiviazione Standard (consigliato per i log a cui si accede di frequente)
    Controllo degli accessi Uniforme (consigliato)
    Strumenti di protezione (Facoltativo) Abilita il controllo delle versioni degli oggetti o la policy di conservazione
  6. Fai clic su Crea.

Esportare i log WAF di Vercel in GCS

Vercel fornisce i log WAF tramite Log Drains e l'API REST Vercel. Configura l'esportazione dei log, poi caricali in GCS.

Vercel Log Drains trasmette i log in tempo reale a un endpoint esterno.

  1. Accedi alla dashboard di Vercel.
  2. Vai alle impostazioni del team: Impostazioni > Scarichi log.
  3. Fai clic su Aggiungi scarico log.
  4. Configura lo scarico dei log:
    • Formato di pubblicazione: seleziona JSON.
    • Origini: seleziona Firewall per includere gli eventi WAF.
    • Ambienti: seleziona gli ambienti da monitorare (produzione, anteprima, sviluppo).
    • Endpoint: inserisci l'URL del ricevitore intermedio (ad esempio, un endpoint della funzione Cloud Run che scrive in GCS).
  5. Fai clic su Aggiungi scarico log.
  6. Verifica che i log vengano inviati all'endpoint.

Opzione B: esportazione tramite l'API REST di Vercel

  1. Genera un token API Vercel in Impostazioni > Token.
  2. Utilizza l'API REST di Vercel per recuperare gli eventi firewall:

    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
    

Recuperare il account di servizio Google SecOps

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome per il feed (ad esempio, Vercel WAF Logs).
  5. Seleziona Google Cloud Storage V2 come Tipo di origine.
  6. Seleziona Vercel WAF come Tipo di log.
  7. Fai clic su Ottieni service account. Verrà visualizzato un indirizzo email del account di servizio univoco, ad esempio:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. Copia questo indirizzo email per utilizzarlo nel passaggio successivo.

Concedi le autorizzazioni IAM al account di servizio Google SecOps

Il account di servizio Google SecOps deve avere il ruolo Visualizzatore oggetti Storage nel tuo bucket GCS.

  1. Vai a Cloud Storage > Bucket.
  2. Fai clic sul nome del bucket (ad esempio vercel-waf-logs).
  3. Vai alla scheda Autorizzazioni.
  4. Fai clic su Concedi l'accesso.
  5. Fornisci i seguenti dettagli di configurazione:
    • Aggiungi entità: incolla l'email dell'account di servizio Google SecOps (ad esempio, chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com).
    • Assegna ruoli: seleziona Visualizzatore oggetti Storage.
  6. Fai clic su Salva.

Configura il feed Google SecOps

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome per il feed (ad esempio, Vercel WAF Logs).
  5. Seleziona Google Cloud Storage V2 come Tipo di origine.
  6. Seleziona Vercel WAF come Tipo di log.
  7. Fai clic su Avanti.
  8. Specifica i valori per i seguenti parametri di input:

    • URL del bucket di archiviazione: inserisci l'URI del bucket GCS:

      gs://vercel-waf-logs/vercel-waf/
      
      • Sostituisci vercel-waf-logs con il nome del tuo bucket GCS.
      • Sostituisci vercel-waf con il percorso del prefisso configurato.
    • Opzione di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze:

      • Mai: non elimina mai i file dopo i trasferimenti (opzione consigliata per i test).
      • Elimina file trasferiti e directory vuote: elimina i file e le directory vuote dopo il trasferimento riuscito.

    • Età massima file: includi i file modificati nell'ultimo numero di giorni (il valore predefinito è 180 giorni).

    • Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.

    • Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.

  9. Fai clic su Avanti.

  10. Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
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 Metadati aggiuntivi dell'evento
metadata.event_type Tipo di evento
record.deploymentId metadata.product_deployment_id ID deployment specifico per il prodotto
record.id metadata.product_log_id ID log specifico del prodotto
record.proxy.method network.http.method Metodo HTTP
record.statusCode network.http.response_code Codice di risposta HTTP
record.source principal.asset.hostname Nome host della risorsa associata all'entità
record.host principal.hostname Nome host dell'entità
record.message security_result.description Descrizione del risultato di sicurezza
record.proxy.wafRule security_result.rule_name Nome della regola che ha attivato il risultato di sicurezza
record.level security_result.severity Gravità del risultato di sicurezza
record.proxy.wafRule security_result.threat_name Nome della minaccia
record.proxy.clientIp target.asset.ip Indirizzo IP dell'asset
record.projectId target.cloud.project.id ID del progetto cloud
record.projectName target.cloud.project.name Nome del progetto cloud
record.proxy.path target.file.full_path Percorso completo del file
record.proxy.clientIp target.ip Indirizzo IP della destinazione
record.executionRegion target.location.name Nome della posizione
record.proxy.vercelId target.user.userid ID utente dell'utente di destinazione
metadata.product_name Nome del prodotto
metadata.vendor_name Nome fornitore

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.