Raccogliere i log degli eventi Palo Alto Cortex XDR
Questo documento spiega come importare i log eventi di Palo Alto Cortex XDR in
Google Security Operations utilizzando Google Cloud Storage. Il parser estrae
i dati degli eventi di sicurezza dai log JSON di Palo Alto Networks Cortex XDR. Normalizza
i dati nel modello Unified Data Model (UDM) mappando i campi, convertendo i tipi di dati
e arricchendo gli eventi con metadati come fornitore, prodotto e tipi di eventi
in base alla logica condizionale associata ai campi event_type
e event_sub_type
. Gestisce
anche le connessioni di rete, le operazioni su file e registro, le informazioni
sui processi e l'attività utente.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps
- Google Cloud Lo spazio di archiviazione è configurato e attivo nel tuo ambiente Google Cloud
- Accesso privilegiato a Google Cloud e autorizzazioni appropriate
- Accesso con privilegi a Palo Alto Cortex XDR
Crea un Google Cloud bucket di archiviazione
- Accedi alla Google Cloud console.
Vai alla pagina Bucket Cloud Storage.
Fai clic su Crea.
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:
Nella sezione Inizia, esegui le seguenti operazioni: * Inserisci un nome univoco che soddisfi i requisiti del nome del bucket (ad esempio, cortex-xdr-events-googlesecops). * Per attivare lo spazio dei nomi gerarchico, fai clic sulla freccia di espansione per espandere la sezione Ottimizza per carichi di lavoro orientati ai file e con uso intensivo dei dati, poi seleziona Abilita uno spazio dei nomi gerarchico in questo bucket.
Note: You can't enable hierarchical namespace in an existing bucket. * To add a bucket label, click the expander arrow to expand the **Labels** section. * Click **Add label** and specify a key and a value for your label.
Nella sezione Scegli dove archiviare i tuoi dati, segui questi passaggi: * Seleziona un tipo di località. * 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.
Note: If you select the **dual-region** location type, you can also choose to enable **turbo replication** by selecting the relevant checkbox. * To set up cross-bucket replication, expand the **Set up cross-bucket replication** section.
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.
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.
Nella sezione Scegli come proteggere i dati degli oggetti, esegui le seguenti operazioni: * 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 Crittografia dei dati e seleziona un metodo di crittografia dei dati.
Fai clic su Crea.
Configura l'inoltro degli eventi Cortex XDR
- Accedi all'interfaccia utente web di Cortex XDR.
- Vai a Impostazioni > Configurazioni > Gestione dati > Inoltro eventi.
- Attiva le licenze nella sezione Attivazione.
- Attiva GB Event Forwarding per esportare i log analizzati per Cortex XDR Pro per GB in un SIEM esterno per l'archiviazione.
- Abilita Endpoints Event Forwarding per esportare i dati degli endpoint non elaborati per Cortex XDR Pro EP e Cloud Endpoints.
- Salva la selezione.
- Copia il percorso di archiviazione visualizzato.
- Genera e scarica il token web JSON del service account, che contiene la chiave di accesso.
- Salvalo in una posizione sicura.
Configura Google Cloud Secret Manager
- Accedi a GCP.
- Vai alla pagina Secret Manager.
- Se è la prima volta, ti verrà chiesto di abilitare l'API Secret Manager.
- Crea un secret denominato EVENT_FRWD_CRTX_KEY e copia i contenuti del file JSON xdr_sa_key.json che hai scaricato come valore del secret.
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:
- Vai a Impostazioni SIEM > 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 PANW Cortex XDR Event Logs).
- Seleziona Google Cloud Storage come Tipo di origine.
- Seleziona Palo Alto Cortex XDR Events (Eventi Palo Alto Cortex XDR) come Tipo di log.
- Fai clic su Ottieni account di servizio come Account di servizio Chronicle.
- Fai clic su Avanti.
Specifica i valori per i seguenti parametri di input:
- URI bucket di archiviazione: Google Cloud URL del bucket di archiviazione (ad esempio,
gs://cortex-xdr-events-chronicle
). - URI Is A: seleziona Directory which includes subdirectories (Directory che include sottodirectory).
- Opzioni di eliminazione dell'origine: seleziona un'opzione di eliminazione in base alle tue preferenze.
- URI bucket di archiviazione: Google Cloud URL del bucket di archiviazione (ad esempio,
Fai clic su Avanti.
Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
Dopo aver creato il feed, individua l'elenco Feed e fai clic sui tre puntini di azione a destra della riga.
Seleziona Disattiva feed.
Configurare i feed dall'hub dei contenuti
Specifica i valori per i seguenti campi:
- URI bucket di archiviazione: Google Cloud URL del bucket di archiviazione (ad esempio,
gs://cortex-xdr-events-chronicle
). - URI Is A: seleziona Directory which includes subdirectories (Directory che include sottodirectory).
Opzioni di eliminazione dell'origine: seleziona un'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.
Configurare l'accesso JSON segreto a Cloud Storage
- Accedi a GCP.
- Vai alla pagina Secret Manager.
- Seleziona il secret EVENT_FRWD_CRTX_KEY.
- Vai alla scheda Autorizzazioni.
- Fornisci l'accesso Storage Object Admin e Storage Legacy Bucket Reader al bucket cortex-xdr-events-chronicle creato in precedenza.
Configurare le autorizzazioni Google SecOps per Cloud Storage
- Vai a IAM e amministrazione > IAM.
- Individua l'account di servizio Chronicle.
- Concedi l'accesso Storage Object Viewer (roles/storage.objectViewer) al bucket cortex-xdr-events-chronicle creato in precedenza.
Configura l'importazione dei log eventi PANW Cortex XDR in Project Cloud Storage
- In Google Cloud, vai ad API e servizi > Libreria.
- Abilita le API Cloud Run e Artifact Registry.
- Apri Cloud Shell facendo clic sull'icona nella barra di navigazione in alto.
Scarica un codice personalizzato utilizzando il seguente comando:
git clone https://github.com/PaloAltoNetworks/google-cloud-cortex-chronicle.git
Vai alla directory eseguendo questo comando:
cd google-cloud-cortex-chronicle/
Apri il file
env.properties
con un editor comevi
.Fornisci i seguenti dettagli di configurazione:
REGION=us-central1 # Update according to your project region REPO_NAME=panw-chronicle IMAGE_NAME=sync_cortex_bucket GCP_PROJECT_ID=chrxxxxxxxxx # Update according to your project ID JOB_NAME=cloud-run-job-cortex-data-sync # The Cloud Job name ROJECT_NUMBER=80xxxxx9 # Update according to your project number # JOB ENV VARIABLES SRC_BUCKET=xdr-us-xxxxx-event-forwarding # Update with the Cortex XDR GCS bucket name DEST_BUCKET=cortex-xdr-events-chronicle # Update with the GCS name of the bucket you created SECRET_NAME=EVENT_FRWD_CRTX_KEY # Need to match the secret you created JOB_SCHEDULE_MINS=30
Fornisci le autorizzazioni necessarie allo script
deploy.sh
:chmod 744 deploy.sh
Esegui lo script
deploy.sh
:./deploy.sh
Identifica il account di servizio Cloud Job utilizzato dall'output dello script.
Concedi all'account di servizio Cloud Job l'autorizzazione Secret Manager Secret Ancestor per accedere al secret creato in precedenza (come nell'esempio, EVENT_FRWD_CRTX_KEY).
Vai a Secret Manager > EVENT_FRWD_CRTX_KEY (secret) > Permissions (Autorizzazioni).
Nella piattaforma Google SecOps, vai a Impostazioni SIEM > Feed > Nome feed eventi XDR > Attiva feed.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
action_file_path |
target.file.full_path |
Mappato direttamente |
action_file_size |
target.file.size |
Mappato e convertito direttamente in numero intero senza segno |
action_local_ip |
principal.ip |
Mappati e uniti direttamente ad altri indirizzi IP |
action_local_port |
principal.port |
Mappato e convertito direttamente in un numero intero |
action_module_path |
target.process.file.full_path |
Mappato direttamente |
action_network_connection_id |
network.session_id |
Mappato direttamente |
action_network_protocol |
network.ip_protocol |
Rinominato in protocol_number_src , analizzato utilizzando parse_ip_protocol.include e mappato a network.ip_protocol |
action_process_image_command_line |
target.process.command_line |
Mappato direttamente |
action_process_image_md5 |
target.process.file.md5 |
Mappato direttamente |
action_process_image_path |
target.process.file.full_path |
Mappato direttamente |
action_process_image_sha256 |
target.process.file.sha256 |
Mappato direttamente |
action_process_os_pid |
target.process.pid |
Mappato e convertito direttamente in stringa |
action_process_user_sid |
target.user.windows_sid |
Mappato direttamente |
action_process_username |
target.user.userid , target.administrative_domain |
Convertito in minuscolo, analizzato per dominio e utente e mappato di conseguenza |
action_registry_data |
target.registry.registry_value_data |
Mappato direttamente |
action_registry_key_name |
target.registry.registry_key |
Mappato direttamente |
action_registry_value_name |
target.registry.registry_value_name |
Mappato direttamente |
action_remote_ip |
target.ip |
Mappati e uniti direttamente ad altri indirizzi IP |
action_remote_port |
target.port |
Mappato e convertito direttamente in un numero intero |
action_total_download |
network.received_bytes |
Mappato e convertito direttamente in numero intero senza segno |
action_total_upload |
network.sent_bytes |
Mappato e convertito direttamente in numero intero senza segno |
agent_hostname |
principal.hostname , observer.hostname |
Convertito in minuscolo e mappato |
agent_ip_addresses |
observer.ip |
Analizzato come JSON, suddiviso in singoli IP e unito |
agent_os_sub_type |
target.platform_version |
Mappato direttamente |
event_id |
metadata.product_log_id |
Mappato direttamente |
event_sub_type |
metadata.product_event_type |
Convertito in stringa e utilizzato per la mappatura condizionale di metadata.event_type e metadata.product_event_type |
event_timestamp |
metadata.event_timestamp , timestamp |
Convertito in stringa, analizzato come timestamp UNIX_MS e mappato |
event_type |
metadata.event_type |
Convertito in stringa e utilizzato per la mappatura condizionale di metadata.event_type e metadata.product_event_type |
os_actor_process_command_line |
principal.process.command_line |
Mappato direttamente |
os_actor_process_image_md5 |
principal.process.file.md5 |
Mappato direttamente |
os_actor_process_image_path |
principal.process.file.full_path |
Mappato direttamente |
os_actor_process_image_sha256 |
principal.process.file.sha256 |
Mappato direttamente |
os_actor_process_instance_id |
principal.process.product_specific_process_id |
Con prefisso "PAN:" e mappato |
os_actor_process_os_pid |
principal.process.pid |
Convertito in stringa e mappato |
os_actor_primary_user_sid |
principal.user.windows_sid |
Mappato se inizia con "S-" o "s-" |
os_actor_primary_username |
principal.user.userid , principal.administrative_domain |
Convertito in minuscolo, analizzato per dominio e utente e mappato di conseguenza |
_action |
security_result.action |
Unito a _security_result e poi mappato |
metadata.log_type |
metadata.log_type |
Codificato in modo permanente su "PAN_CORTEX_XDR_EVENTS" |
metadata.product_name |
metadata.product_name |
Codificato in modo permanente su "Cortex XDR" |
metadata.vendor_name |
metadata.vendor_name |
Codificato come "PAN" |
target.platform |
target.platform |
Impostato su "WINDOWS" se agent_os_sub_type contiene "Windows" |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.