Raccogliere i log di Secure Web Proxy

Supportato in:

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 modello 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 su principal e target.

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

  1. Accedi alla consoleGoogle Cloud .
  2. Vai alla pagina Bucket Cloud Storage.

    Vai a Bucket

  3. Fai clic su Crea.

  4. Nella pagina Crea un bucket, inserisci le informazioni del bucket. Dopo ogni passaggio riportato di seguito, fai clic su Continua per passare al passaggio successivo:

    1. Nella sezione Inizia:

      1. Inserisci un nome univoco che soddisfi i requisiti per il nome del bucket, ad esempio gcp-swp-logs.
      2. Per attivare 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, poi seleziona Abilita uno spazio dei nomi gerarchico in questo bucket.

      3. Per aggiungere un'etichetta del bucket, fai clic sulla freccia di espansione per espandere la sezione Etichette.

      4. Fai clic su Aggiungi etichetta e specifica una chiave e un valore per l'etichetta.

    2. Nella sezione Scegli dove archiviare i tuoi dati, segui questi passaggi:

      1. Seleziona un Tipo di località.
      2. Utilizza il menu del tipo di località per selezionare una Località in cui i dati degli oggetti all'interno del bucket verranno archiviati in modo permanente.

      3. Per configurare la replica tra bucket, espandi la sezione Configura replica tra bucket.

    3. Nella sezione Scegli una classe di archiviazione per i tuoi dati, seleziona una classe di archiviazione predefinita per il bucket oppure Autoclass per la gestione automatica della classe di archiviazione dei dati del bucket.

    4. Nella sezione Scegli come controllare l'accesso agli oggetti, seleziona No per applicare la prevenzione dell'accesso pubblico e seleziona un modello di controllo dell'accesso per gli oggetti del bucket.

    5. Nella sezione Scegli come proteggere i dati degli oggetti, segui questi passaggi:

      1. Seleziona una delle opzioni in Protezione dei dati che vuoi impostare per il bucket.
      2. 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.
  5. Fai clic su Crea.

Configura l'esportazione dei log di Secure Web Proxy

  1. Accedi alla consoleGoogle Cloud .
  2. Vai a Logging > Router dei log.
  3. Fai clic su Crea sink.
  4. 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 bucket, ad esempio gs://gcp-swp-logs.
    • Filtro log:
    logName="projects/<your-project-id>/logs/networkservices.googleapis.com/gateway_requests"
    
  5. Fai clic su Crea.

Configura le autorizzazioni per Cloud Storage

  1. Vai a IAM e amministrazione > IAM.
  2. Individua l'account di servizio Cloud Logging.
  3. Concedi il ruolo roles/storage.admin sul bucket.

Configurare i feed

Esistono due diversi punti di accesso per configurare i feed nella piattaforma Google SecOps:

  • Impostazioni SIEM > Feed
  • Hub dei contenuti > Pacchetti di contenuti

Configura i feed da Impostazioni SIEM > Feed

Per configurare un feed:

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Nella pagina successiva, fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome per il feed, ad esempio Google Cloud Log SWP.
  5. Seleziona Google Cloud Storage come Tipo di origine.
  6. Seleziona GCP Secure Web Proxy come tipo di log.
  7. Fai clic su Ottieni account di servizio accanto al campo Account di servizio Chronicle.
  8. Fai clic su Avanti.
  9. Specifica i valori per i seguenti parametri di input:

    • URI bucket di archiviazione: URL del bucket Cloud Storage, ad esempio gs://gcp-swp-logs.
    • URI Is A: seleziona Directory which includes subdirectories (Directory che include sottodirectory).
    • Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.

  10. Fai clic su Avanti.

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

Configurare i feed dall'hub dei contenuti

Specifica i valori per i seguenti campi:

  • URI bucket di archiviazione: URL del bucket Cloud Storage, ad esempio gs://gcp-swp-logs.
  • URI Is A: seleziona Directory which includes subdirectories (Directory che include sottodirectory).
  • Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.

Opzioni avanzate

  • Nome feed: un valore precompilato che identifica il feed.
  • Tipo di origine: metodo utilizzato per raccogliere i log in Google SecOps.
  • Spazio dei nomi dell'asset: lo spazio dei nomi associato al feed.
  • Etichette di importazione: etichette applicate a tutti gli eventi di questo feed.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
httpRequest.latency additional.fields[].key: HTTPRequest Latency
additional.fields[].value.string_value: 0.124462s
Mappato direttamente dal campo del log non elaborato.
httpRequest.protocol network.application_protocol: HTTP
network.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.1
target.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.4
principal.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.1
network.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 dall'analisi del campo httpRequest.userAgent.
insertId metadata.product_log_id: 1yh8wczer5o8n Mappato direttamente dal campo del log non elaborato.
jsonPayload.@type additional.fields[].key: Log Type
additional.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.com
target.hostname: github.com
Mappato direttamente dal campo del log non elaborato.
jsonPayload.enforcedGatewaySecurityPolicy.matchedRules[].action security_result.action: ALLOW
security_result.action_details: ALLOWED
Il security_result.action viene derivato 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: requestWasTlsIntercepted
security_result.detection_fields[].value: true
Mappato direttamente dal campo del log non elaborato.
logName additional.fields[].key: Log Name
additional.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 log non elaborato utilizzando il formato della data RFC 3339.
resource.labels.gateway_name security_result.detection_fields[].key: gateway-name
security_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-type
security_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_name
target.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 Type
target.resource.attribute.labels[].value: networkservices.googleapis.com/Gateway
Mappato direttamente dal campo del log non elaborato.
severity security_result.severity: MEDIUM Mappato dal campo 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 log non elaborato utilizzando il formato della data RFC 3339.
(Parser Logic) metadata.event_type: NETWORK_HTTP Determinato dalla logica del parser in base alla presenza di has_principal, has_target e di un protocollo corrispondente a http.
(Parser Logic) metadata.log_type: GCP_SWP Valore hardcoded in base al prodotto.

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