Raccogli i log WAF di Vercel
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
- Vai alla console Google Cloud.
- Seleziona il tuo progetto o creane uno nuovo.
- Nel menu di navigazione, vai a Cloud Storage > Bucket.
- Fai clic su Crea bucket.
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 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.
Opzione A: configura i log drain di Vercel (opzione consigliata)
Vercel Log Drains trasmette i log in tempo reale a un endpoint esterno.
- Accedi alla dashboard di Vercel.
- Vai alle impostazioni del team: Impostazioni > Scarichi log.
- Fai clic su Aggiungi scarico log.
- 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).
- Fai clic su Aggiungi scarico log.
Verifica che i log vengano inviati all'endpoint.
Opzione B: esportazione tramite l'API REST di Vercel
- Genera un token API Vercel in Impostazioni > Token.
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
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Fai clic su Configura un singolo feed.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio,
Vercel WAF Logs). - Seleziona Google Cloud Storage V2 come Tipo di origine.
- Seleziona Vercel WAF come Tipo di log.
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.comCopia 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.
- Vai a Cloud Storage > Bucket.
- Fai clic sul nome del bucket (ad esempio
vercel-waf-logs). - Vai alla scheda Autorizzazioni.
- Fai clic su Concedi l'accesso.
- 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.
- Aggiungi entità: incolla l'email dell'account di servizio Google SecOps (ad esempio,
Fai clic su Salva.
Configura il feed Google SecOps
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Fai clic su Configura un singolo feed.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio,
Vercel WAF Logs). - Seleziona Google Cloud Storage V2 come Tipo di origine.
- Seleziona Vercel WAF come Tipo di log.
- Fai clic su Avanti.
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-logscon il nome del tuo bucket GCS. - Sostituisci
vercel-wafcon il percorso del prefisso configurato.
- Sostituisci
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.
Fai clic su Avanti.
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.