Raccogli i log di Secure Web Proxy
Versione parser: 2.0
Questo documento spiega come esportare e importare Secure Web Proxy in Google Security Operations utilizzando Cloud Storage. Il parser estrae i campi dai log JSON, trasformandoli nel formato Unified Data Model (UDM). Inizializza i campi UDM, analizza il payload JSON, estrae le informazioni di rete, i dettagli di sicurezza, gli attributi delle risorse e imposta il tipo di evento in base alla presenza di informazioni principali e di destinazione.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps.
- Secure Web Proxy è attivo e configurato nel tuo ambiente Google Cloud .
- Accesso con privilegi a Google Cloud e autorizzazioni appropriate per accedere ai log di Secure Web Proxy.
Crea un bucket Cloud Storage
- Accedi alla consoleGoogle Cloud .
Vai alla pagina Bucket Cloud Storage.
Fai clic su Crea.
Nella pagina Crea un bucket, inserisci le informazioni del bucket. Dopo ciascuno dei seguenti passaggi, fai clic su Continua per procedere con il passaggio successivo:
Nella sezione Inizia, segui questi passaggi:
- Inserisci un nome univoco che soddisfi i requisiti per i nomi dei bucket, ad esempio gcp-swp-logs.
Per abilitare lo spazio dei nomi gerarchico, fai clic sulla freccia di espansione per espandere la sezione Ottimizza per workload orientati ai file e con uso intensivo dei dati, quindi seleziona Abilita uno spazio dei nomi gerarchico in questo bucket.
Per aggiungere un'etichetta del bucket, fai clic sulla freccia di espansione per espandere la sezione Etichette.
Fai clic su Aggiungi etichetta e specifica una chiave e un valore per l'etichetta.
Nella sezione Scegli dove archiviare i tuoi dati, segui questi passaggi:
- Seleziona un Tipo di località.
Utilizza il menu Tipo di località per selezionare una Località in cui i dati degli oggetti all'interno del bucket verranno archiviati in modo permanente.
Per configurare la replica tra bucket, espandi la sezione Configura la replica tra bucket.
Nella sezione Scegli una classe di archiviazione per i tuoi dati, seleziona una classe di archiviazione predefinita per il bucket o seleziona Autoclass per la gestione automatica della classe di archiviazione dei dati del bucket.
Nella sezione Scegli come controllare l'accesso agli oggetti, seleziona non per applicare la prevenzione dell'accesso pubblico e seleziona un modello di controllo degli accessi per gli oggetti del bucket.
Nella sezione Scegli come proteggere i dati degli oggetti, segui questi passaggi:
- Seleziona una delle opzioni in Protezione dei dati che vuoi impostare per il bucket.
- Per scegliere come criptare i dati degli oggetti, fai clic sulla freccia di espansione con l'etichetta Crittografia dei dati e seleziona un Metodo di crittografia dei dati.
Fai clic su Crea.
Configura l'esportazione dei log di Secure Web Proxy
- Accedi alla consoleGoogle Cloud .
- Vai a Logging > Router dei log.
- Fai clic su Crea sink.
Fornisci i seguenti parametri di configurazione:
- Nome sink: inserisci un nome significativo, ad esempio
SWP-Export-Sink. - Destinazione sink: seleziona Cloud Storage e inserisci l'URI del tuo bucket, ad esempio
gs://gcp-swp-logs/. - Filtro log:
logName="projects/<your-project-id>/logs/networkservices.googleapis.com/gateway_requests"- Nome sink: inserisci un nome significativo, ad esempio
Fai clic su Crea.
Configura le autorizzazioni per Cloud Storage
- Vai a IAM e amministrazione > IAM.
- Individua l'account di servizio Cloud Logging.
- Concedi il ruolo roles/storage.admin sul bucket.
Configura i feed
Per configurare un feed:
- Vai a Impostazioni > Gestione dei dati > Feed. Se utilizzi una piattaforma solo SIEM, vai a Impostazioni > Feed.
- Fai clic su Aggiungi nuovo feed.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- Nel campo Nome feed, inserisci un nome per il feed, ad esempio Google Cloud Log SWP.
- Seleziona Google Cloud Storage V2 come Tipo di origine.
- Seleziona Proxy web sicuro di Google Cloud come Tipo di log.
- Fai clic su Ottieni service account accanto al campo Service account Chronicle.
- Fai clic su Avanti.
Specifica i valori per i seguenti parametri di input:
- URI bucket di archiviazione: URL del bucket Cloud Storage, ad esempio
gs://gcp-swp-logs/. Questo URL deve terminare con una barra (/). Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
Età massima dei file: include i file modificati negli ultimi giorni. Il valore predefinito è 180 giorni.
- URI bucket di archiviazione: URL del bucket Cloud Storage, ad esempio
Fai clic su Avanti.
Controlla la nuova configurazione del feed di notizie nella schermata Finalizza e poi fai clic su Invia.
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logica |
|---|---|---|
httpRequest.latency |
additional.fields[].key: HTTPRequest Latencyadditional.fields[].value.string_value: 0.124462s |
Mappato direttamente dal campo del log non elaborato. |
httpRequest.protocol |
network.application_protocol: HTTPnetwork.application_protocol_version: 2 |
Il protocollo e la versione vengono estratti dal campo httpRequest.protocol utilizzando un pattern grok. |
httpRequest.remoteIp |
target.asset.ip: 1.1.0.1target.ip: 1.1.0.1 |
L'indirizzo IP viene estratto dal campo httpRequest.remoteIp utilizzando un pattern grok. |
httpRequest.requestMethod |
network.http.method: GET |
Mappato direttamente dal campo del log non elaborato. |
httpRequest.requestSize |
network.sent_bytes: 144 |
Mappato direttamente dal campo del log non elaborato e convertito in un numero intero. |
httpRequest.requestUrl |
target.url: https://github.com/tempuslabs/tempusutils/info/refs?service=git-upload-pack |
Mappato direttamente dal campo del log non elaborato. |
httpRequest.responseSize |
network.received_bytes: 225 |
Mappato direttamente dal campo del log non elaborato e convertito in un numero intero. |
httpRequest.serverIp |
principal.asset.ip: 1.8.1.4principal.ip: 1.8.1.4 |
L'indirizzo IP viene estratto dal campo httpRequest.serverIp utilizzando un pattern grok. |
httpRequest.status |
network.http.response_code: 401 |
Mappato direttamente dal campo del log non elaborato e convertito in un numero intero. |
httpRequest.userAgent |
network.http.user_agent: git/2.34.1network.http.parsed_user_agent: {family: USER_DEFINED,device: git,device_version: 2.34.1} |
Mappato direttamente dal campo del log non elaborato. Il campo parsed_user_agent viene derivato analizzando il campo httpRequest.userAgent. |
insertId |
metadata.product_log_id: 1yh8wczer5o8n |
Mappato direttamente dal campo del log non elaborato. |
jsonPayload.@type |
additional.fields[].key: Log Typeadditional.fields[].value.string_value: type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry |
Mappato direttamente dal campo del log non elaborato. |
jsonPayload.enforcedGatewaySecurityPolicy.hostname |
target.asset.hostname: github.comtarget.hostname: github.com |
Mappato direttamente dal campo del log non elaborato. |
jsonPayload.enforcedGatewaySecurityPolicy.matchedRules[].action |
security_result.action: ALLOWsecurity_result.action_details: ALLOWED |
security_result.action viene ricavato in base al valore di jsonPayload.enforcedGatewaySecurityPolicy.matchedRules[].action. Se l'azione è ALLOWED, il campo UDM è impostato su ALLOW. Se l'azione è DENIED, il campo UDM è impostato su BLOCK. |
jsonPayload.enforcedGatewaySecurityPolicy.matchedRules[].name |
security_result.rule_name: projects/671807354785/locations/us-central1/gatewaySecurityPolicies/github-access-gateway-security-policy-5cec30cd/rules/github-access-gateway-security-policy-rule-5cec30cd |
Mappato direttamente dal campo del log non elaborato. |
jsonPayload.enforcedGatewaySecurityPolicy.requestWasTlsIntercepted |
security_result.detection_fields[].key: requestWasTlsInterceptedsecurity_result.detection_fields[].value: true |
Mappato direttamente dal campo del log non elaborato. |
logName |
additional.fields[].key: Log Nameadditional.fields[].value.string_value: projects/rws-w6uza3pn5jzzh6z3hc3d/logs/networkservices.googleapis.com%2Fgateway_requests |
Mappato direttamente dal campo del log non elaborato. |
receiveTimestamp |
metadata.collected_timestamp: {seconds: 1710189647,nanos: 661101224} |
Analizzato dal campo del log non elaborato utilizzando il formato della data RFC 3339. |
resource.labels.gateway_name |
security_result.detection_fields[].key: gateway-namesecurity_result.detection_fields[].value: github-access-gateway-5cec30cd |
Mappato direttamente dal campo del log non elaborato. |
resource.labels.gateway_type |
security_result.detection_fields[].key: gateway-typesecurity_result.detection_fields[].value: SECURE_WEB_GATEWAY |
Mappato direttamente dal campo del log non elaborato. |
resource.labels.location |
target.resource.attribute.cloud.availability_zone: us-central1 |
Mappato direttamente dal campo del log non elaborato. |
resource.labels.network_name |
target.resource.attribute.labels[].key: rc_network_nametarget.resource.attribute.labels[].value: projects/rws-w6uza3pn5jzzh6z3hc3d/global/networks/rws-tr-pilot-workspace |
Mappato direttamente dal campo del log non elaborato. |
resource.type |
target.resource.attribute.labels[].key: Resource Typetarget.resource.attribute.labels[].value: networkservices.googleapis.com/Gateway |
Mappato direttamente dal campo del log non elaborato. |
severity |
security_result.severity: MEDIUM |
Mappato dal campo del log non elaborato. Il valore viene tradotto in un livello di gravità UDM. In questo caso, WARNING è mappato a MEDIUM. |
timestamp |
metadata.event_timestamp: {seconds: 1710189639,nanos: 952848000} |
Analizzato dal campo del log non elaborato utilizzando il formato della data RFC 3339. |
| (Logica del parser) | metadata.event_type: NETWORK_HTTP |
Determinato dalla logica del parser in base alla presenza di has_principal, has_target e un protocollo corrispondente a http. |
| (Logica del parser) | metadata.log_type: GCP_SWP |
Valore impostato come hardcoded in base al prodotto. |
Log delle modifiche
Visualizza il log delle modifiche per questo parser
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.