Raccogli i log degli avvisi di Palo Alto Prisma Cloud

Supportato in:

Panoramica

Questo parser estrae i log di avviso da Palo Alto Prisma Cloud in formato JSON, trasformandoli nell'UDM. Il parser esegue la normalizzazione dei dati, le conversioni di tipo e la logica condizionale per compilare i campi UDM appropriati. Gestisce inoltre strutture e array JSON nidificati all'interno dei dati dei log per estrarre le informazioni pertinenti.

Prima di iniziare

  • Assicurati di avere un'istanza Google SecOps.
  • Assicurati di disporre dell'accesso con privilegi a Palo Alto Prisma Cloud.

Configura un feed in Google SecOps per importare gli avvisi di Palo Alto Prisma Cloud

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuova.
  3. Nel campo Nome feed, inserisci un nome per il feed (ad esempio PAN Prisma Cloud Alerts).
  4. Seleziona Webhook come Tipo di origine.
  5. Seleziona Payload degli avvisi Palo Alto Prisma Cloud come Tipo di log.
  6. Fai clic su Avanti.
  7. (Facoltativo) Specifica i valori per i seguenti parametri di input:
    • Delimitatore di split: il delimitatore utilizzato per separare le righe di log, ad esempio \n.
    • Spazio dei nomi degli asset: lo spazio dei nomi degli asset.
    • Etichette di importazione: l'etichetta applicata agli eventi di questo feed.
  8. Fai clic su Avanti.
  9. Controlla la configurazione del feed nella schermata Concludi e poi fai clic su Invia.
  10. Fai clic su Genera chiave segreta per generare una chiave segreta per autenticare questo feed.
  11. Copia e memorizza la chiave segreta. Non potrai più visualizzare questa chiave segreta. Se necessario, puoi rigenerare una nuova chiave segreta, ma questa azione rende obsoleta la chiave segreta precedente.
  12. Dalla scheda Dettagli, copia l'URL dell'endpoint del feed dal campo Informazioni endpoint. Devi specificare questo URL endpoint nell'applicazione client.
  13. Fai clic su Fine.

Crea una chiave API per il feed webhook

  1. Vai alla console Google Cloud > Credenziali.

    Vai a credenziali

  2. Fai clic su Crea credenziali e poi seleziona Chiave API.

  3. Limita l'accesso della chiave API all'API Google Security Operations.

Specifica l'URL dell'endpoint

  1. Nell'applicazione client, specifica l'URL dell'endpoint HTTPS fornito nel feed webhook.
  2. Attiva l'autenticazione specificando la chiave API e la chiave segreta nell'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.

  3. 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 in Google Security Operations.
    • SECRET: la chiave segreta che hai generato per autenticare il feed.

Configurare il webhook Palo Alto Prisma Cloud per Google SecOps

  1. Accedi a Palo Alto Prisma Cloud.
  2. Seleziona Impostazioni > Integrazioni e notifiche ((and_then)) Integrazioni.
  3. Fai clic su Aggiungi integrazione.
  4. Seleziona Webhook.
  5. 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.
  6. Fai clic su Avanti.
  7. Testa e Salva integrazione.

Configurare gli avvisi di Palo Alto Prisma Cloud

  1. Nella console Palo Alto Prisma Cloud, vai a Avvisi > Visualizza regole di avviso.
  2. Seleziona una regola di avviso esistente da modificare.
  3. (Facoltativo) Crea nuovo avviso per Cloud Infrastructure.
  4. (Facoltativo) Crea nuovo avviso per Carico di lavoro cloud.
  5. Vai a Configura notifiche.
  6. Seleziona Webhook.
  7. (Facoltativo) Seleziona i canali a cui vuoi inviare notifiche degli avvisi attivati dalla regola di avviso.
  8. Fai clic su Avanti.
  9. Fai clic su Salva.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
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 deprecato.
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" (non è sensibile alle maiuscole), il valore viene 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 criterio".
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 "deleted".
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 è sostituito da un tipo di evento specifico del log. In caso contrario, impostalo su "GENERIC_EVENT".
N/D metadata.product_name Hardcoded su "CASB".
N/D metadata.vendor_name Hardcoded 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 criterio".
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 "policy recommendation".
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 "Consiglio".
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. Mappati 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, preceduto dal prefisso "ASSETID:".

Modifiche

2023-12-10

  • È stato aggiunto un pattern Grok per estrarre la parte JSON.
  • "resourceId" è stato mappato a "principal.resource.product_object_id".
  • "account_id" è stato mappato a "target.resource.product_object_id".
  • "alertRuleName" è stato mappato a "security_result.rule_name".
  • "accountName" è stato mappato a "target.resource.name".
  • "hasFinding" è stato mappato a "security_result.detection_fields".
  • "resourceRegionId" è stato mappato a "principal.cloud.availability_zone".
  • "source" è stato mappato a "principal.application".
  • "callbackUrl" è stato mappato a "metadata.url_back_to_product".
  • "alertRuleId" è stato mappato a "security_result.rule_id".
  • "alertId" è stato mappato a "security_result.detection_fields".
  • "policyLabels" è stato mappato a "additional.fields".
  • "policyName" è stato mappato a "security_result.description".
  • "resourceName" è stato mappato a "principal.resource.name".
  • "resourceRegion" è stato mappato a "principal.location.country_or_region".
  • "policyDescription" è stato mappato a "security_result.detection_fields".
  • "policyRecommendation" è stato mappato a "security_result.detection_fields".
  • "resourceCloudService" è stato mappato a "principal.resource.attribute.labels".
  • "resource.url" è stato mappato a "principal.url".
  • "alertTs" è stato mappato a "security_result.detection_fields".
  • "firstSeen" è stato mappato a "principal.asset.first_seen_time".
  • "lastSeen" è stato mappato a "principal.asset.last_discover_time".
  • "reason" è stato mappato a "security_result.summary".
  • "alertStatus" è stato mappato a "security_result.detection_fields".
  • Se il valore "severity" è "HIGH", imposta "security_result.severity" su "HIGH".
  • Se il valore "cloudType" è "gcp", imposta "principal.cloud.environment" su "GOOGLE_CLOUD_PLATFORM".

2023-08-17

  • Parser appena creato.