Collecter les journaux d'alertes Palo Alto Cortex XDR

Compatible avec :

Ce document explique comment collecter les journaux d'alertes Palo Alto Cortex XDR en configurant un flux Google Security Operations.

Pour en savoir plus, consultez Ingestion de données dans Google Security Operations.

Un libellé d'ingestion identifie l'analyseur qui normalise les données de journaux brutes au format UDM structuré. Les informations de ce document s'appliquent au parseur avec le libellé d'ingestion CORTEX_XDR.

Configurer les alertes Palo Alto Cortex XDR

Pour configurer les alertes Palo Alto Cortex XDR, effectuez les tâches suivantes :

Obtenir la clé API des alertes Palo Alto Cortex XDR

  1. Connectez-vous au portail Cortex XDR.
  2. Dans le menu Paramètres, cliquez sur Paramètres.
  3. Sélectionnez + Nouvelle clé.
  4. Dans la section Niveau de sécurité, sélectionnez Avancé.
  5. Dans la section Rôles, sélectionnez Lecteur.
  6. Cliquez sur Générer.
  7. Copiez la clé API, puis cliquez sur OK. La clé API représente votre clé d'autorisation unique et n'est affichée qu'au moment de la création. Elle est obligatoire lorsque vous configurez le flux Google Security Operations.

Obtenir l'ID de la clé API d'alertes Palo Alto Cortex XDR

Dans la section Configurations, accédez à Clés API > ID. Notez le numéro d'ID correspondant, qui représente le jeton x-xdr-auth-id:{key_id}.

Obtenir le nom de domaine complet

  1. Accédez à Clés API.
  2. Cliquez sur Copier l'URL. Enregistrez l'URL, qui est requise lorsque vous configurez le flux Google Security Operations.

Configurer des flux

Il existe deux points d'entrée différents pour configurer les flux dans la plate-forme Google SecOps :

  • Paramètres SIEM> Flux
  • Plate-forme de contenu > Packs de contenu

Configurer des flux à partir de Paramètres SIEM > Flux

Pour configurer plusieurs flux pour différents types de journaux dans cette famille de produits, consultez Configurer des flux par produit.

Pour configurer un seul flux :

  1. Accédez à Paramètres SIEM> Flux.
  2. Cliquez sur Add New Feed (Ajouter un flux).
  3. Sur la page suivante, cliquez sur Configurer un seul flux.
  4. Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux des alertes Palo Alto Cortex XDR).
  5. Sélectionnez API tierce comme Type de source.
  6. Sélectionnez Alertes Palo Alto Cortex XDR comme Type de journal.
  7. Cliquez sur Suivant.
  8. Configurez les paramètres d'entrée obligatoires suivants :
    • En-têtes HTTP d'authentification : fournissez la clé d'autorisation et l'ID de clé d'autorisation que vous avez obtenus précédemment.
    • Nom d'hôte de l'API : indiquez l'URL que vous avez obtenue précédemment.
    • Point de terminaison : spécifiez le point de terminaison.
  9. Cliquez sur Suivant, puis sur Envoyer.

Pour en savoir plus sur les flux Google Security Operations, consultez la documentation sur les flux Google Security Operations. Pour en savoir plus sur les exigences associées à chaque type de flux, consultez Configuration des flux par type.

Configurer des flux depuis le Hub de contenu

Indiquez les valeurs des champs suivants :

  • En-têtes HTTP d'authentification : fournissez la clé d'autorisation et l'ID de clé d'autorisation que vous avez obtenus précédemment.
  • Nom d'hôte de l'API : indiquez l'URL que vous avez obtenue précédemment.
  • Point de terminaison : spécifiez le point de terminaison.

Options avancées

  • Nom du flux : valeur préremplie qui identifie le flux.
  • Type de source : méthode utilisée pour collecter les journaux dans Google SecOps.
  • Espace de noms de l'élément : espace de noms associé au flux.
  • Libellés d'ingestion : libellés appliqués à tous les événements de ce flux.

Référence du mappage de champs

Ce parseur extrait les journaux de sécurité de Palo Alto Networks Cortex XDR au format JSON ou SYSLOG (clé-valeur), normalise les champs et les mappe à l'UDM. Il gère les formats JSON et clé/valeur, extrait les dates, enrichit les données avec des métadonnées et structure la sortie pour l'ingestion dans Google SecOps.

Activer les requêtes de l'API REST sur Cortex XDR et configurer un flux Google SecOps

Ce guide fournit des instructions détaillées pour activer les requêtes de l'API REST sur Cortex XDR et configurer un flux correspondant dans Google SecOps.

Partie 1 : Activer les requêtes de l'API REST sur Cortex XDR

Cortex XDR utilise des clés API pour l'authentification. Pour générer une clé API :

  1. Connectez-vous à la console de gestion Cortex XDR.
  2. Accédez à Paramètres.
  3. Accédez à Clés API.
  4. Générez une clé.
  5. Attribuez un nom à la clé (par exemple, "Intégration SecOps").
  6. Attribuez à la clé API les autorisations nécessaires pour accéder aux données requises. C'est essentiel pour la sécurité et permet de s'assurer que la clé n'a accès qu'à ce dont elle a besoin. Consultez la documentation Cortex XDR pour connaître les autorisations spécifiques requises pour votre cas d'utilisation.
  7. Stockez la clé API de manière sécurisée. Vous en aurez besoin pour la configuration du flux Google SecOps. C'est la seule fois où vous verrez la clé complète. Assurez-vous donc de la copier maintenant.
  8. (Facultatif) Configurez une date d'expiration pour la clé API afin de renforcer la sécurité.

Partie 2 : Configurer le flux dans Google SecOps

Une fois la clé API générée, configurez le flux dans Google SecOps pour recevoir les données de Cortex XDR :

  1. Accédez à Paramètres SIEM> Flux.
  2. Cliquez sur Ajouter.
  3. Sélectionnez API tierce comme Type de source.
  4. Sélectionnez le type de journal requis correspondant aux données que vous souhaitez ingérer à partir de Cortex XDR.
  5. Cliquez sur Suivant.
  6. Configurez les paramètres d'entrée suivants :
    • Point de terminaison de l'API : saisissez l'URL de base de l'API Cortex XDR. Vous trouverez cette information dans la documentation de l'API Cortex XDR.
    • Clé API : collez la clé API que vous avez générée précédemment.
    • Autres paramètres : selon l'API Cortex XDR spécifique que vous utilisez, vous devrez peut-être fournir des paramètres supplémentaires, tels que des filtres de données ou des plages de temps spécifiques. Pour en savoir plus, consultez la documentation de l'API Cortex XDR.
  7. Cliquez sur Suivant, puis sur Envoyer.

Remarques importantes :

  • Limitation du débit : tenez compte des limites de débit imposées par l'API Cortex XDR. Configurez le flux en conséquence pour éviter de dépasser ces limites.
  • Gestion des erreurs : implémentez gestion des exceptions appropriée dans votre configuration Google SecOps pour gérer les situations où l'API Cortex XDR est indisponible ou renvoie des erreurs.
  • Sécurité : stockez la clé API de manière sécurisée et suivez les bonnes pratiques de sécurité. Alternez régulièrement les clés API pour minimiser l'impact d'éventuelles compromissions.
  • Documentation : consultez la documentation officielle de l'API Cortex XDR pour obtenir des informations détaillées sur les points de terminaison, les paramètres et les formats de données disponibles.

Table de mappage UDM

Champ de journal Mappage UDM Logique
action security_result.action Si action contient "BLOCKED", définissez la valeur sur "BLOCK".
action security_result.action_details Si act n'est pas vide, nul ou "none", utilisez la valeur de act. Sinon, si action n'est pas défini sur "BLOCKED", utilisez la valeur de action.
action_country security_result.about.location.country_or_region Mappage direct. Également utilisé dans le champ events imbriqué.
action_file_path target.resource.attribute.labels Crée un libellé avec la clé "action_file_path" et la valeur du champ de journal.
action_file_sha256 target.file.sha256 Convertit en minuscules.
action_local_port principal.port Convertit en entier.
action_remote_ip target.ip Fusionné dans le tableau target.ip.
action_remote_ip target.asset.ip Fusionné dans le tableau target.asset.ip.
action_remote_port target.port Convertit en entier.
act security_result.action_details Utilisé s'il n'est pas vide, nul ou "none".
agent_data_collection_status Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
agent_device_domain target.administrative_domain Mappage direct.
agent_fqdn Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
agent_install_type Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
agent_is_vdi Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
agent_os_sub_type target.platform_version Mappage direct.
agent_os_type target.platform Si vous avez sélectionné "Windows", définissez la valeur sur "WINDOWS".
agent_version Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
alert_id security_result.rule_id Mappage direct.
app target.application Mappage direct.
cat security_result.category_details Fusionné dans le champ security_result.category_details.
category security_result.category Si la valeur est "Logiciel malveillant", définissez-la sur "SOFTWARE_MALICIOUS".
category security_result.category_details Fusionné dans le champ security_result.category_details.
cn1 network.session_id Mappage direct.
cn1Label Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
contains_featured_host Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
contains_featured_ip Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
contains_featured_user Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
creation_time metadata.event_timestamp Converti en code temporel.
cs1 security_result.rule_name Concaténé avec cs1Label pour former security_result.rule_name.
cs1Label security_result.rule_name Concaténé avec cs1 pour former security_result.rule_name.
cs2 additional.fields Crée une paire clé-valeur dans additional.fields avec la clé de cs2Label et la valeur de chaîne de cs2.
cs2Label additional.fields Utilisé comme clé pour la valeur cs2 dans additional.fields.
cs3 additional.fields Crée une paire clé-valeur dans additional.fields avec la clé de cs3Label et la valeur de chaîne de cs3.
cs3Label additional.fields Utilisé comme clé pour la valeur cs3 dans additional.fields.
cs4 additional.fields Crée une paire clé-valeur dans additional.fields avec la clé de cs4Label et la valeur de chaîne de cs4.
cs4Label additional.fields Utilisé comme clé pour la valeur cs4 dans additional.fields.
cs5 additional.fields Crée une paire clé-valeur dans additional.fields avec la clé de cs5Label et la valeur de chaîne de cs5.
cs5Label additional.fields Utilisé comme clé pour la valeur cs5 dans additional.fields.
cs6 additional.fields Crée une paire clé-valeur dans additional.fields avec la clé de cs6Label et la valeur de chaîne de cs6.
cs6Label additional.fields Utilisé comme clé pour la valeur cs6 dans additional.fields.
CSPaccountname additional.fields Crée une paire clé-valeur dans additional.fields avec la clé "CSPaccountname" et la valeur de chaîne du champ de journal.
description metadata.description Mappage direct. Également utilisé pour security_result.description si event_type n'est pas GENERIC_EVENT.
destinationTranslatedAddress target.ip Fusionné dans le tableau target.ip.
destinationTranslatedAddress target.asset.ip Fusionné dans le tableau target.asset.ip.
destinationTranslatedPort target.port Converti en entier s'il n'est pas vide ou s'il est égal à -1.
deviceExternalId security_result.about.asset_id Il doit être précédé de "Device External Id: ".
dpt target.port Converti en entier si destinationTranslatedPort est vide ou égal à -1.
dst target.ip Fusionné dans le tableau target.ip.
dst target.asset.ip Fusionné dans le tableau target.asset.ip.
dst_agent_id target.ip Converti en adresse IP et fusionné dans le tableau target.ip s'il s'agit d'une adresse IP valide.
dst_agent_id target.asset.ip Converti en adresse IP et fusionné dans le tableau target.asset.ip s'il s'agit d'une adresse IP valide.
dvchost principal.hostname Mappage direct.
dvchost principal.asset.hostname Mappage direct.
endpoint_id target.process.product_specific_process_id Préfixé par "cor:".
event_id Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
event_sub_type Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
event_timestamp metadata.event_timestamp Converti en code temporel. Également utilisé dans le champ events imbriqué.
event_type metadata.event_type Mappé à un type d'événement UDM en fonction de la logique. Également utilisé dans le champ events imbriqué.
event_type metadata.product_event_type Mappage direct.
event_type security_result.threat_name Mappage direct.
events Événements imbriqués Les champs du tableau events sont mappés aux champs UDM correspondants dans les objets events imbriqués. Pour en savoir plus, consultez les mappages de champs individuels.
external_id Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
fileId target.resource.attribute.labels Crée un libellé avec la clé "fileId" et la valeur du champ de journal.
fileHash target.file.sha256 Converti en minuscules. Définit metadata.event_type sur FILE_UNCATEGORIZED.
filePath target.file.full_path Mappage direct. Définit metadata.event_type sur FILE_UNCATEGORIZED.
fw_app_category Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
fw_app_id Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
fw_app_subcategory Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
fw_app_technology Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
fw_device_name Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
fw_email_recipient Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
fw_email_sender Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
fw_email_subject Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
fw_interface_from Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
fw_interface_to Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
fw_is_phishing Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
fw_misc Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
fw_rule Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
fw_rule_id Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
fw_serial_number Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
fw_url_domain Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
fw_vsys Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
fw_xff Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
host_ip principal.ip Séparés par une virgule et fusionnés dans le tableau principal.ip.
host_ip principal.asset.ip Séparés par une virgule et fusionnés dans le tableau principal.asset.ip.
host_name principal.hostname Mappage direct.
host_name principal.asset.hostname Mappage direct.
hosts target.hostname Extrait le nom d'hôte du premier élément du tableau hosts.
hosts target.asset.hostname Extrait le nom d'hôte du premier élément du tableau hosts.
hosts target.user.employee_id Extrait l'ID utilisateur du premier élément du tableau hosts.
incident_id metadata.product_log_id Mappage direct.
is_whitelisted Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
local_insert_ts Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
mac principal.mac Séparés par une virgule et fusionnés dans le tableau principal.mac.
matching_status Non mappé Bien que présent dans le journal brut, ce champ n'est pas mappé à l'objet IDM dans l'UDM final.
metadata.description security_result.description Utilisé si event_type est GENERIC_EVENT.
metadata.event_type metadata.event_type Définissez-les en fonction de la logique à l'aide de event_type, host_ip et d'autres champs.
metadata.log_type metadata.log_type Défini sur "CORTEX_XDR".
metadata.product_name metadata.product_name Définissez-le sur "Cortex".
metadata.vendor_name metadata.vendor_name Défini sur "Palo Alto Networks".
msg security_result.description Mappage direct.
name security_result.summary Mappage direct.
PanOSDGHierarchyLevel1 security_result.detection_fields Crée une paire clé-valeur dans security_result.detection_fields avec la clé "PanOSDGHierarchyLevel1" et la valeur du champ de journal.
PanOSDestinationLocation target.location.country_or_region Mappage direct.
PanOSDynamicUserGroupName principal.group.group_display_name Mappage direct s'il n'est pas vide ou si la valeur est "-".
PanOSSourceLocation principal.location.country_or_region Mappage direct.
PanOSThreatCategory security_result.category_details Fusionné dans le champ security_result.category_details.
PanOSThreatID security_result.threat_id Mappage direct.
principal.asset.attribute.labels principal.asset.attribute.labels Crée un libellé avec la clé "Source" et la valeur du champ source.
proto network.ip_protocol Converti en majuscules. Définit metadata.event_type sur NETWORK_CONNECTION.
request network.http.referral_url Mappage direct.
rt metadata.event_timestamp Converti en code temporel.
security_result.severity security_result.severity Définissez sur la valeur en majuscules de severity.
severity security_result.severity Converti en majuscules.
shost principal.hostname Mappage direct. Définit metadata.event_type sur STATUS_UPDATE.
shost principal.asset.hostname Mappage direct. Définit metadata.event_type sur STATUS_UPDATE.
source principal.asset.attribute.labels Utilisé comme valeur pour le libellé "Source".
source security_result.summary Utilisé si les filtres not_json et grok correspondent.
sourceTranslatedAddress principal.ip Fusionné dans le tableau principal.ip.
sourceTranslatedAddress principal.asset.ip Fusionné dans le tableau principal.asset.ip.
sourceTranslatedPort principal.port Converti en entier s'il n'est pas vide ou s'il est égal à -1.
spt principal.port Converti en entier.
sr_summary security_result.summary Utilisé si les filtres not_json et grok correspondent.
src principal.ip Fusionné dans le tableau principal.ip.
src principal.asset.ip Fusionné dans le tableau principal.asset.ip.
suser principal.user.user_display_name Mappage direct.
tenantCDLid additional.fields Crée une paire clé-valeur dans additional.fields avec la clé "tenantCDLid" et la valeur de chaîne du champ de journal.
tenantname additional.fields Crée une paire clé-valeur dans additional.fields avec la clé "tenantname" et la valeur de chaîne du champ de journal.
users target.user.userid Utilise le premier élément du tableau users.
xdr_url metadata.url_back_to_product Mappage direct.

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.