Raccogli i log eventi di 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 formato 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 legata 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 bucket di archiviazione Google Cloud
- Accedi alla console Google 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, cortex-xdr-events-secops).
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 del 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 Crittografia dei dati e seleziona un Metodo di crittografia dei dati.
Fai clic su Crea.
Configura una regola di Gestione del ciclo di vita degli oggetti sul bucket di destinazione appena creato per eliminare gli oggetti dopo 7 giorni:
- Nell'elenco Bucket Cloud Storage, fai clic sul nome del tuo bucket.
- Seleziona la scheda Ciclo di vita, quindi fai clic su Aggiungi una regola.
- Nella sezione Seleziona un'azione, seleziona Elimina oggetto.
- Nella sezione Seleziona le condizioni dell'oggetto, seleziona Età e imposta il valore su
7giorni. - Fai clic su Salva.
Configura l'inoltro degli eventi Cortex XDR
- Accedi alla UI web di Cortex XDR.
- Vai a Impostazioni > Configurazioni > Gestione dei dati > Event Forwarding.
- 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.
- Attiva Endpoints Event Forwarding (Inoltro di eventi degli endpoint) per esportare i dati non elaborati degli endpoint per Cortex XDR Pro EP e Cloud Endpoints.
- Salva la selezione.
- Copia il percorso di archiviazione visualizzato.
- Genera e scarica il JSON WEB TOKEN del service account, che contiene la chiave di accesso.
- Salvalo in un luogo sicuro.
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.
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, PANW Cortex XDR log eventi).
- Seleziona Google Cloud Storage V2 come Tipo di origine.
- Seleziona Palo Alto Cortex XDR Events come Tipo di log.
- Fai clic su Ottieni service account come Service account 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-secops/). Questo URL deve terminare con una barra (/). Opzioni di eliminazione dell'origine: seleziona Non eliminare i file trasferiti.
Età massima dei file: include i file modificati negli ultimi giorni. Il valore predefinito è 180 giorni.
- URI bucket di archiviazione: Google Cloud URL del bucket di archiviazione (ad esempio,
Fai clic su Avanti.
Controlla la nuova configurazione del feed di notizie nella schermata Finalizza e poi fai clic su Invia.
Dopo aver creato il feed, trovalo nell'elenco Feed e fai clic sui tre puntini delle azioni sul lato destro della riga.
Seleziona Disattiva feed.
Configura l'accesso JSON ai secret per 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-secops creato in precedenza.
Configura le autorizzazioni di Google SecOps per Cloud Storage
- Vai a IAM e amministrazione > IAM.
- Individua il service account Chronicle.
- Concedi l'accesso Storage Object Viewer (roles/storage.objectViewer) al bucket cortex-xdr-events-secops creato in precedenza.
Configura l'importazione dei log degli eventi PANW Cortex XDR in Cloud Storage del progetto
- 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.gitVai alla directory eseguendo questo comando:
cd google-cloud-cortex-chronicle/Apri il file
env.propertiescon 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-secops # 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=30Fornisci le autorizzazioni necessarie allo script
deploy.sh:chmod 744 deploy.shEsegui lo script
deploy.sh:./deploy.shIdentifica il account di servizio Cloud Job utilizzato dall'output dello script.
Concedi al account di servizio Cloud Job l'autorizzazione Secret Manager Secret Ancestor per accedere al secret creato in precedenza (come nel nostro esempio, EVENT_FRWD_CRTX_KEY).
Vai a Secret Manager > EVENT_FRWD_CRTX_KEY (secret) > Autorizzazioni.
Nella piattaforma Google SecOps, vai a Impostazioni > Gestione dei dati > Feed > Nome feed eventi XDR > Attiva feed.
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logica |
|---|---|---|
action_file_path |
target.file.full_path |
Mappatura diretta |
action_file_size |
target.file.size |
Mappato e convertito direttamente in un numero intero senza segno |
action_local_ip |
principal.ip |
Mappati direttamente e uniti ad altri indirizzi IP |
action_local_port |
principal.port |
Mappato direttamente e convertito in numero intero |
action_module_path |
target.process.file.full_path |
Mappatura diretta |
action_network_connection_id |
network.session_id |
Mappatura diretta |
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 |
Mappatura diretta |
action_process_image_md5 |
target.process.file.md5 |
Mappatura diretta |
action_process_image_path |
target.process.file.full_path |
Mappatura diretta |
action_process_image_sha256 |
target.process.file.sha256 |
Mappatura diretta |
action_process_os_pid |
target.process.pid |
Mappato direttamente e convertito in stringa |
action_process_user_sid |
target.user.windows_sid |
Mappatura diretta |
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 |
Mappatura diretta |
action_registry_key_name |
target.registry.registry_key |
Mappatura diretta |
action_registry_value_name |
target.registry.registry_value_name |
Mappatura diretta |
action_remote_ip |
target.ip |
Mappati direttamente e uniti ad altri indirizzi IP |
action_remote_port |
target.port |
Mappato direttamente e convertito in numero intero |
action_total_download |
network.received_bytes |
Mappato e convertito direttamente in un numero intero senza segno |
action_total_upload |
network.sent_bytes |
Mappato e convertito direttamente in un 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 |
Mappatura diretta |
event_id |
metadata.product_log_id |
Mappatura diretta |
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 |
Mappatura diretta |
os_actor_process_image_md5 |
principal.process.file.md5 |
Mappatura diretta |
os_actor_process_image_path |
principal.process.file.full_path |
Mappatura diretta |
os_actor_process_image_sha256 |
principal.process.file.sha256 |
Mappatura diretta |
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 |
Impostato come hardcoded su "PAN_CORTEX_XDR_EVENTS" |
metadata.product_name |
metadata.product_name |
Impostato come hardcoded su "Cortex XDR" |
metadata.vendor_name |
metadata.vendor_name |
Impostato come hardcoded su "PAN" |
target.platform |
target.platform |
Impostato su "WINDOWS" se agent_os_sub_type contiene "Windows" |
action_user_session_id |
event.idm.read_only_udm.network.session_id |
Mappato dal log delle modifiche |
action_username |
event.idm.read_only_udm.principal.user.user_display_name |
Mappato dal log delle modifiche |
agent_ip_addresses |
event.idm.read_only_udm.principal.ip e event.idm.read_only_udm.principal.asset.ip |
Mappato dal log delle modifiche |
agent_os_sub_type |
event.idm.read_only_udm.principal.platform_version |
Mappato dal log delle modifiche |
agent_id |
event.idm.read_only_udm.principal.asset.asset_id e event.idm.read_only_udm.principal.asset_id |
Mappato dal log delle modifiche |
agent_os_type |
event.idm.read_only_udm.principal.platform |
Mappato dal log delle modifiche |
action_process_token |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
action_process_fds |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
action_process_termination_date |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
action_process_termination_code |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
action_network_stats_is_last |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
action_user_is_local_session |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
action_user_status |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
event_version |
event.idm.read_only_udm.metadata.product_version |
Mappato dal log delle modifiche |
action_file_previous_file_path |
event.idm.read_only_udm.principal.file.full_path |
Mappato dal log delle modifiche |
agent_interface_map.ipv4 |
event.idm.read_only_udm.observer.ip |
Mappato dal log delle modifiche |
agent_interface_map.mac |
event.idm.read_only_udm.observer.mac |
Mappato dal log delle modifiche |
action_file_last_writer_actor |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
action_file_device_type |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
action_file_previous_file_name |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
action_file_name |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
agent_id |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
agent_version |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
agent_os_type |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
os_actor_thread_thread_id |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
action_file_type |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
action_file_prev_type |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
os_actor_process_signature_status |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
os_actor_process_logon_id |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
agent_content_version |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
action_module_image_size |
event.idm.read_only_udm.target.file.size |
Mappato dal log delle modifiche |
action_file_md5 |
event.idm.read_only_udm.target.file.md5 |
Mappato dal log delle modifiche |
action_file_sha256 |
event.idm.read_only_udm.target.file.sha256 |
Mappato dal log delle modifiche |
action_module_md5 |
target.process.file.md5 |
Mappato dal log delle modifiche |
action_module_sha256 |
target.process.file.sha256 |
Mappato dal log delle modifiche |
metadata.event_type |
GENERIC_EVENT. |
Mappato dal log delle modifiche |
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.