Raccogli i log degli avvisi di Palo Alto Prisma Cloud
Panoramica
Questo parser estrae i log degli avvisi da Palo Alto Prisma Cloud in formato JSON, trasformandoli in UDM. Il parser esegue la normalizzazione dei dati, le conversioni dei tipi e la logica condizionale per compilare i campi UDM appropriati. Gestisce anche strutture JSON nidificate e array all'interno dei dati di log per estrarre le informazioni pertinenti.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps.
- Accesso con privilegi a Palo Alto Prisma Cloud.
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 PAN Prisma Cloud Alerts.
- Seleziona Webhook come Tipo di origine.
- Seleziona Payload degli avvisi di Palo Alto Prisma Cloud come Tipo di log.
- Fai clic su Avanti.
- (Facoltativo) Specifica i valori per i seguenti parametri di input:
- Delimitatore di suddivisione: il delimitatore utilizzato per separare le righe di log, ad esempio
\n
.
- Delimitatore di suddivisione: il delimitatore utilizzato per separare le righe di log, ad esempio
- Fai clic su Avanti.
- Controlla la configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
- Fai clic su Genera chiave segreta per generare una chiave segreta per autenticare questo feed.
- Copia e memorizza la chiave segreta. Non puoi visualizzare di nuovo questa chiave segreta. Se necessario, puoi rigenerare una nuova chiave segreta, ma questa azione rende obsoleta la chiave segreta precedente.
- Nella scheda Dettagli, copia l'URL dell'endpoint del feed dal campo Informazioni sull'endpoint. Devi specificare questo URL dell'endpoint nell'applicazione client.
- Fai clic su Fine.
Configurare i feed dall'hub dei contenuti
Specifica i valori per i seguenti campi:
- Delimitatore di suddivisione: il delimitatore utilizzato per separare le righe di log, ad esempio
\n
.
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.
Fai clic su Genera chiave segreta per generare una chiave segreta per autenticare questo feed.
Copia e memorizza la chiave segreta. Non puoi visualizzare di nuovo questa chiave segreta. Se necessario, puoi rigenerare una nuova chiave segreta, ma questa azione rende obsoleta la chiave segreta precedente.
Nella scheda Dettagli, copia l'URL dell'endpoint del feed dal campo Informazioni sull'endpoint. Devi specificare questo URL dell'endpoint nell'applicazione client.
Crea una chiave API per il feed webhook
Vai alla console Google Cloud > Credenziali.
Fai clic su Crea credenziali e poi seleziona Chiave API.
Limita l'accesso della chiave API all'API Google Security Operations.
Specifica l'URL dell'endpoint
- Nella tua applicazione client, specifica l'URL dell'endpoint HTTPS fornito nel feed webhook.
Attiva l'autenticazione specificando la chiave API e la chiave segreta come parte dell'intestazione personalizzata nel seguente formato:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
Consiglio: specifica la chiave API come intestazione anziché nell'URL.
Se il client webhook non supporta le intestazioni personalizzate, puoi specificare la chiave API e la chiave segreta utilizzando parametri di ricerca nel seguente formato:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Sostituisci quanto segue:
ENDPOINT_URL
: l'URL dell'endpoint del feed.API_KEY
: la chiave API per l'autenticazione a Google Security Operations.SECRET
: la chiave segreta che hai generato per autenticare il feed.
Configurare il webhook di Palo Alto Prisma Cloud in Google SecOps
- Accedi a Palo Alto Prisma Cloud.
- Seleziona Impostazioni > Integrazioni e notifiche ((and_then)) Integrazioni.
- Fai clic su Aggiungi integrazione.
- Seleziona Webhook.
- Specifica i valori per i seguenti parametri di input:
- Nome integrazione: fornisci un nome univoco e descrittivo (ad esempio, Google SecOps).
- URL webhook: inserisci ENDPOINT_URL.
- (Facoltativo) Fornisci una descrizione dell'integrazione.
- (Facoltativo) Attiva Payload personalizzato > fai clic su Avanti per esaminare o modificare il payload personalizzato.
- Fai clic su Avanti.
- Testa e Salva integrazione.
Configurare gli avvisi di Palo Alto Prisma Cloud
- Nella console Palo Alto Prisma Cloud, vai ad Avvisi > Visualizza regole di avviso.
- Seleziona una regola di avviso esistente da modificare.
- (Facoltativo) Crea nuovo avviso per infrastruttura cloud.
- (Facoltativo) Crea nuovo avviso per Cloud Workload.
- Vai a Configura le notifiche.
- Seleziona Webhook.
- (Facoltativo) Seleziona i canali a cui vuoi inviare le notifiche degli avvisi attivati dalla regola di avviso.
- Fai clic su Avanti.
- Fai clic su Salva.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
accountId |
target.resource.id |
Il valore di accountId dal log non elaborato. |
accountId |
target.resource.product_object_id |
Il valore di accountId dal log non elaborato. Questa azione sostituisce il campo resource.id obsoleto. |
alertId |
security_result.detection_fields[].key |
La chiave è impostata su "alert id". |
alertId |
security_result.detection_fields[].value |
Il valore di alertId dal log non elaborato. |
alertRuleId |
security_result.rule_id |
Il valore di alertRuleId dal log non elaborato. |
alertRuleName |
security_result.rule_name |
Il valore di alertRuleName dal log non elaborato. |
alertStatus |
security_result.detection_fields[].key |
La chiave è impostata su "stato avviso". |
alertStatus |
security_result.detection_fields[].value |
Il valore di alertStatus dal log non elaborato. |
alertTs |
security_result.detection_fields[].key |
La chiave è impostata su "alertTs". |
alertTs |
security_result.detection_fields[].value |
Il valore di alertTs dal log non elaborato, convertito in una stringa. |
callbackUrl |
metadata.url_back_to_product |
Il valore di callbackUrl dal log non elaborato. |
cloudType |
principal.cloud.environment |
Se cloudType è "gcp" (senza distinzione tra maiuscole e minuscole), il valore è impostato su "GOOGLE_CLOUD_PLATFORM". |
complianceMetadata[].complianceId |
security_result.detection_fields[].key |
La chiave è impostata su "complianceId". |
complianceMetadata[].complianceId |
security_result.detection_fields[].value |
Il valore di complianceMetadata[].complianceId dal log non elaborato. |
complianceMetadata[].customAssigned |
security_result.detection_fields[].key |
La chiave è impostata su "customAssigned". |
complianceMetadata[].customAssigned |
security_result.detection_fields[].value |
Il valore di complianceMetadata[].customAssigned dal log non elaborato, convertito in una stringa. |
complianceMetadata[].policyId |
security_result.detection_fields[].key |
La chiave è impostata su "ID policy". |
complianceMetadata[].policyId |
security_result.detection_fields[].value |
Il valore di complianceMetadata[].policyId dal log non elaborato. |
complianceMetadata[].requirementId |
security_result.rule_id |
Il valore di complianceMetadata[].requirementId dal log non elaborato. |
complianceMetadata[].requirementName |
security_result.summary |
Il valore di complianceMetadata[].requirementName dal log non elaborato. |
complianceMetadata[].requirementViewOrder |
security_result.detection_fields[].key |
La chiave è impostata su "requirementViewOrder". |
complianceMetadata[].requirementViewOrder |
security_result.detection_fields[].value |
Il valore di complianceMetadata[].requirementViewOrder dal log non elaborato, convertito in una stringa. |
complianceMetadata[].sectionDescription |
security_result.detection_fields[].key |
La chiave è impostata su "sectionDescription". |
complianceMetadata[].sectionDescription |
security_result.detection_fields[].value |
Il valore di complianceMetadata[].sectionDescription dal log non elaborato. |
complianceMetadata[].sectionId |
security_result.detection_fields[].key |
La chiave è impostata su "sectionId". |
complianceMetadata[].sectionId |
security_result.detection_fields[].value |
Il valore di complianceMetadata[].sectionId dal log non elaborato. |
complianceMetadata[].sectionLabel |
security_result.detection_fields[].key |
La chiave è impostata su "sectionLabel". |
complianceMetadata[].sectionLabel |
security_result.detection_fields[].value |
Il valore di complianceMetadata[].sectionLabel dal log non elaborato. |
complianceMetadata[].sectionViewOrder |
security_result.detection_fields[].key |
La chiave è impostata su "sectionViewOrder". |
complianceMetadata[].sectionViewOrder |
security_result.detection_fields[].value |
Il valore di complianceMetadata[].sectionViewOrder dal log non elaborato, convertito in una stringa. |
complianceMetadata[].standardDescription |
security_result.detection_fields[].key |
La chiave è impostata su "standardDescription". |
complianceMetadata[].standardDescription |
security_result.detection_fields[].value |
Il valore di complianceMetadata[].standardDescription dal log non elaborato. |
complianceMetadata[].standardName |
security_result.rule_name |
Il valore di complianceMetadata[].standardName dal log non elaborato. |
complianceMetadata[].systemDefault |
security_result.detection_fields[].key |
La chiave è impostata su "systemDefault". |
complianceMetadata[].systemDefault |
security_result.detection_fields[].value |
Il valore di complianceMetadata[].systemDefault dal log non elaborato, convertito in una stringa. |
create_time |
metadata.event_timestamp , events[].timestamp |
Il valore di create_time dal log non elaborato. |
data.allocationId |
principal.resource.product_object_id |
Il valore di data.allocationId dal log non elaborato. |
data.publicIp |
principal.ip |
Il valore di data.publicIp dal log non elaborato. |
deleted |
additional.fields[].key |
La chiave è impostata su "eliminata". |
deleted |
additional.fields[].value.string_value |
Il valore di deleted dal log non elaborato, convertito in una stringa. |
description |
metadata.description |
Il valore di description dal log non elaborato. |
firstSeen |
principal.asset.first_seen_time |
Il valore di firstSeen dal log non elaborato, analizzato come timestamp (formato UNIX_MS o UNIX). |
hasFinding |
security_result.detection_fields[].key |
La chiave è impostata su "hasFinding". |
hasFinding |
security_result.detection_fields[].value |
Il valore di hasFinding dal log non elaborato, convertito in una stringa. |
lastSeen |
principal.asset.last_discover_time |
Il valore di lastSeen dal log non elaborato, analizzato come timestamp (formato UNIX_MS o UNIX). |
N/D | metadata.event_type |
Impostato su "USER_RESOURCE_ACCESS" se non viene sostituito da un tipo di evento specifico del log. In caso contrario, impostalo su "GENERIC_EVENT". |
N/D | metadata.product_name |
Codificato in modo permanente su "CASB". |
N/D | metadata.vendor_name |
Codificato in modo permanente su "Palo Alto Networks". |
policyDescription |
security_result.detection_fields[].key |
La chiave è impostata su "policyDescription". |
policyDescription |
security_result.detection_fields[].value |
Il valore di policyDescription dal log non elaborato. |
policyId |
security_result.detection_fields[].key |
La chiave è impostata su "ID policy". |
policyId |
security_result.detection_fields[].value |
Il valore di policyId dal log non elaborato. |
policyLabels |
additional.fields[].key |
La chiave è impostata su "policyLabels". |
policyLabels |
additional.fields[].value.string_value |
Il valore di policyLabels dal log non elaborato. |
policyName |
security_result.description |
Il valore di policyName dal log non elaborato. |
policyRecommendation |
security_result.detection_fields[].key |
La chiave è impostata su "Suggerimento per la policy". |
policyRecommendation |
security_result.detection_fields[].value |
Il valore di policyRecommendation dal log non elaborato. |
policyType |
security_result.detection_fields[].key |
La chiave è impostata su "Tipo di norma". |
policyType |
security_result.detection_fields[].value |
Il valore di policyType dal log non elaborato. |
reason |
security_result.summary |
Il valore di reason dal log non elaborato. |
recommendation |
security_result.detection_fields[].key |
La chiave è impostata su "Recommendation". |
recommendation |
security_result.detection_fields[].value |
Il valore di recommendation dal log non elaborato. |
resource.additionalInfo |
principal.resource.attribute.labels[].key |
La chiave è impostata su "resource additionalInfo". |
resource.additionalInfo |
principal.resource.attribute.labels[].value |
Il valore di resource.additionalInfo dal log non elaborato. |
resource.cloudAccountGroups |
principal.resource.attribute.labels[].key |
La chiave è impostata su "resource cloudAccountGroups {index}". |
resource.cloudAccountGroups |
principal.resource.attribute.labels[].value |
Il valore di resource.cloudAccountGroups[] dal log non elaborato. |
resource.cloudType |
principal.resource.attribute.labels[].key |
La chiave è impostata su "resource cloudType". |
resource.cloudType |
principal.resource.attribute.labels[].value |
Il valore di resource.cloudType dal log non elaborato. |
resource.data |
principal.resource.attribute.labels[].key |
La chiave è impostata su "resource data {nested_key}". |
resource.data |
principal.resource.attribute.labels[].value |
Il valore di resource.data[] dal log non elaborato. |
resource.id |
principal.resource.product_object_id |
Il valore di resource.id dal log non elaborato. |
resource.name |
principal.resource.name |
Il valore di resource.name dal log non elaborato. |
resource.region |
principal.location.country_or_region |
Il valore di resource.region dal log non elaborato. |
resource.regionId |
principal.cloud.availability_zone |
Il valore di resource.regionId dal log non elaborato. |
resource.resourceApiName |
principal.resource.attribute.labels[].key |
La chiave è impostata su "resource resourceApiName". |
resource.resourceApiName |
principal.resource.attribute.labels[].value |
Il valore di resource.resourceApiName dal log non elaborato. |
resource.resourceTags |
principal.resource.attribute.labels[].key |
La chiave è impostata su "resource resourceTags {nested_key}". |
resource.resourceTags |
principal.resource.attribute.labels[].value |
Il valore di resource.resourceTags[] dal log non elaborato. |
resource.resourceTs |
principal.resource.attribute.labels[].key |
La chiave è impostata su "resource resourceTs". |
resource.resourceTs |
principal.resource.attribute.labels[].value |
Il valore di resource.resourceTs dal log non elaborato. |
resource.resourceType |
principal.resource.attribute.labels[].key |
La chiave è impostata su "resource resourceType". |
resource.resourceType |
principal.resource.attribute.labels[].value |
Il valore di resource.resourceType dal log non elaborato. |
resource.rrn |
principal.resource.attribute.labels[].key |
La chiave è impostata su "resource rrn". |
resource.rrn |
principal.resource.attribute.labels[].value |
Il valore di resource.rrn dal log non elaborato. |
resource.url |
principal.url |
Il valore di resource.url dal log non elaborato. |
resourceCloudService |
principal.resource.attribute.labels[].key |
La chiave è impostata su "resource cloud service". |
resourceCloudService |
principal.resource.attribute.labels[].value |
Il valore di resourceCloudService dal log non elaborato. |
resourceName |
principal.resource.name |
Il valore di resourceName dal log non elaborato. |
resourceRegion |
principal.location.country_or_region |
Il valore di resourceRegion dal log non elaborato. |
resourceRegionId |
principal.cloud.availability_zone |
Il valore di resourceRegionId dal log non elaborato. |
resourceType |
target.resource.resource_subtype |
Il valore di resourceType dal log non elaborato. |
severity |
security_result.severity |
Il valore di severity dal log non elaborato, convertito in maiuscolo. Mappato ai valori di gravità UDM (CRITICAL, HIGH, MEDIUM, LOW, INFORMATIONAL). |
source |
principal.application |
Il valore di source dal log non elaborato. |
unifiedAssetId |
principal.asset.asset_id |
Il valore di unifiedAssetId dal log non elaborato, con il prefisso "ASSETID:". |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.