Ce document fournit la documentation technique nécessaire pour configurer l'intégration du Cortex XDR de Palo Alto Networks avec le module Threat Exchange de la plateforme Netskope Cloud Exchange.
Conditions préalables
Pour compléter cette configuration, vous avez besoin de :
- Un locataire Netskope (ou plusieurs, par exemple des instances de production et de développement/test).
- Accès à la plateforme Cortex de Palo Alto pour le tirage et le partage.
- A Netskope Cloud Exchange tenant with the Tenant plugin and Threat Exchange plugin already configured.
- Vos informations d'identification API Cortex XDR de Palo Alto Networks (ID API, URL de base et méthode d'authentification).
- Connectivity to the following host: Palo Alto Networks Cortex XDR login URL.
For example: https://api-wwt3.xdr.us.paloaltonetworks.com/
Champ d'application du plugin
Ce plugin prend en charge l'extraction et le partage d'indicateurs depuis/vers la plateforme Cortex XDR de Palo Alto Networks. Le plugin Palo Alto Networks Cortex XDR récupère des indicateurs de types Fichier (MD5 et SHA256) de Palo Alto Networks Cortex XDR et les stocke dans Netskope CE. Le plugin permet également de partager les indicateurs SHA256, MD5, URL ( IPv4, Domaine) de Netskope CE avec des groupes existants sur la plateforme Cortex XDR de Palo Alto Networks.
Prise en charge du Cortex XDR par Palo Alto Networks
|
Types d'indicateurs prédéfinis | SHA256, MD5 |
| Types d'indicateurs partagés |
SHA256, MD5, URL (IPv4, domaine) |
Mises en correspondance
Mappings for Pull (champs Netskope - champs Palo Alto Networks Cortex XDR)
| Champs CE de Netskope | Champs Cortex XDR de Palo Alto Networks |
|---|---|
|
Value | action_process_image_sha256, action_process_image_md5 |
|
Sévérité | gravité (informative ⇒ faible) les autres niveaux sont identiques) |
|
Comments |
Description: <description>, Host Name: <host_name>, Matching Status: <matching_status>, Source: <source>, Resolution Status: resolution_status |
| Firstseen |
event_timestamp |
| Lastseen |
event_timestamp |
| Tags |
tags+original_tags |
Mapping for Push (champ Netskope - champ Third Party)
| Champs CE de Netskope | Champs Cortex XDR de Palo Alto Networks |
|---|---|
|
value |
md5, sha256, URL (IPv4, domaine) |
|
type |
URL (IPv4, domaine), SHA256, MD5 |
|
sévérité |
inconnu > Informatif |
|
commentaires |
commentaires |
| expiresAt |
expiration_date |
Permissions
Pour créer un utilisateur API, assurez-vous que vous avez le rôle d'administrateur de l'organisation sur la plateforme Cortex XDR de Palo Alto Networks pour créer un utilisateur API afin d'obtenir l'ID de la clé API, la clé API et la méthode d'authentification.
Pour extraire et pousser des données depuis/vers le Cortex XDR de Palo Alto Networks, assurez-vous que votre utilisateur dispose des droits ci-dessous.
| Functionality | Permissions |
|---|---|
|
Indicateurs de traction |
Select les éléments suivants : Alertes et incidents (View) |
| Indicateurs de poussée |
Select les éléments suivants : Détections (View/Edit) |
Détails de l'API
Liste des API utilisées
| Détail de l'API | Méthode | Point final de l'API |
|---|---|---|
|
Indicateurs de traction | PUBLIER |
/public_api/v1/alerts/get_alerts_multi_events/ |
| Indicateurs de poussée | PUBLIER |
/public_api/v1/indicators/insert_jsons |
Indicateurs de traction
Example:
API Endpoint:
POST public_api/v1/alerts/get_alerts_multi_events/
Method: Poste
Parameter: Aucun
API Request Endpoint:
{
"request_data": {
"filters": [
{
"field": "creation_time",
"operator": "gte",
"value": 1664794415000
},
{
"field": "severity",
"operator": "in",
"value": [
"informational",
"low",
"medium",
"high",
"critical"
]
}
],
"search_from": 0,
"search_to": 1,
"sort": {
"field": "creation_time",
"keyword": "asc"
}
}
}
API Response:
{
"reply": {
"total_count": 887,
"result_count": 1,
"alerts": [
{
"external_id": "7904b8db15cc4658b1e617dbafef1cca",
"severity": "medium",
"matching_status": "UNMATCHABLE",
"end_match_attempt_ts": null,
"local_insert_ts": 1683342672687,
"last_modified_ts": null,
"bioc_indicator": null,
"matching_service_rule_id": null,
"attempt_counter": 0,
"bioc_category_enum_key": null,
"is_whitelisted": false,
"starred": false,
"deduplicate_tokens": null,
"filter_rule_id": null,
"mitre_technique_id_and_name": null,
"mitre_tactic_id_and_name": null,
"agent_version": "8.0.1.44",
"agent_ip_addresses_v6": null,
"agent_device_domain": null,
"agent_fqdn": "Matthewharding's iPhone 14 Pro",
"agent_os_type": "iOS",
"agent_os_sub_type": "16.4.1",
"agent_data_collection_status": null,
"mac": null,
"is_pcap": false,
"alert_type": "Unclassified",
"resolution_status": "STATUS_010_NEW",
"resolution_comment": null,
"dynamic_fields": null,
"tags": [
"DS:PANW/XDR Agent"
],
"malicious_urls": null,
"events": [
{
"agent_install_type": "STANDARD",
"agent_host_boot_time": null,
"event_sub_type": null,
"module_id": "Incoming call or message reported as spam",
"association_strength": 50,
"dst_association_strength": null,
"story_id": null,
"event_id": null,
"event_type": null,
"event_timestamp": 1683342667518,
"actor_process_instance_id": null,
"actor_process_image_path": null,
"actor_process_image_name": null,
"actor_process_command_line": null,
"actor_process_signature_status": "N/A",
"actor_process_signature_vendor": null,
"actor_process_image_sha256": null,
"actor_process_image_md5": null,
"actor_process_causality_id": null,
"actor_causality_id": null,
"actor_process_os_pid": null,
"actor_thread_thread_id": null,
"causality_actor_process_image_name": null,
"causality_actor_process_command_line": null,
"causality_actor_process_image_path": null,
"causality_actor_process_signature_vendor": null,
"causality_actor_process_signature_status": "N/A",
"causality_actor_causality_id": null,
"causality_actor_process_execution_time": null,
"causality_actor_process_image_md5": null,
"causality_actor_process_image_sha256": null,
"action_file_path": null,
"action_file_name": null,
"action_file_md5": null,
"action_file_sha256": null,
"action_file_macro_sha256": null,
"action_registry_data": null,
"action_registry_key_name": null,
"action_registry_value_name": null,
"action_registry_full_key": null,
"action_local_ip": null,
"action_local_ip_v6": null,
"action_local_port": null,
"action_remote_ip": null,
"action_remote_ip_v6": null,
"action_remote_port": null,
"action_external_hostname": null,
"action_country": "UNKNOWN",
"action_process_instance_id": null,
"action_process_causality_id": null,
"action_process_image_name": null,
"action_process_image_sha256": null,
"action_process_image_command_line": null,
"action_process_signature_status": "N/A",
"action_process_signature_vendor": null,
"os_actor_effective_username": null,
"os_actor_process_instance_id": null,
"os_actor_process_image_path": null,
"os_actor_process_image_name": null,
"os_actor_process_command_line": null,
"os_actor_process_signature_status": "N/A",
"os_actor_process_signature_vendor": null,
"os_actor_process_image_sha256": null,
"os_actor_process_causality_id": null,
"os_actor_causality_id": null,
"os_actor_process_os_pid": null,
"os_actor_thread_thread_id": null,
"fw_app_id": null,
"fw_interface_from": null,
"fw_interface_to": null,
"fw_rule": null,
"fw_rule_id": null,
"fw_device_name": null,
"fw_serial_number": null,
"fw_url_domain": null,
"fw_email_subject": null,
"fw_email_sender": null,
"fw_email_recipient": null,
"fw_app_subcategory": null,
"fw_app_category": null,
"fw_app_technology": null,
"fw_vsys": null,
"fw_xff": null,
"fw_misc": null,
"fw_is_phishing": "N/A",
"dst_agent_id": null,
"dst_causality_actor_process_execution_time": null,
"dns_query_name": null,
"dst_action_external_hostname": null,
"dst_action_country": null,
"dst_action_external_port": null,
"contains_featured_host": "NO",
"contains_featured_user": "NO",
"contains_featured_ip": "NO",
"image_name": null,
"container_id": null,
"cluster_name": null,
"referenced_resource": null,
"operation_name": null,
"identity_sub_type": null,
"identity_type": null,
"project": null,
"cloud_provider": null,
"resource_type": null,
"resource_sub_type": null,
"user_agent": null,
"user_name": "matthewharding"
}
],
"alert_id": "179151",
"detection_timestamp": 1683342667518,
"name": "Incoming call or message reported as spam",
"category": "Spam",
"endpoint_id": "36c16cd205934e2fbf1bc874a1479b03",
"description": "A number was reported by the user as spam",
"host_ip": null,
"host_name": "Matthewharding's iPhone 14 Pro",
"mac_addresses": null,
"source": "XDR Agent",
"action": "REPORTED",
"action_pretty": "Detected (Reported)",
"original_tags": [
"DS:PANW/XDR Agent"
]
}
]
}
}
Indicateurs de poussée
Example:
API Endpoint:
POST public_api/v1/indicators/insert_json
Method: Poste
Parameter: Aucun
API Request Endpoint:
{
"request_data": [
{
"severity": "MEDIUM",
"comment": "\\Device\\HarddiskVolume2\\Windows\\System32\\mavinject.exe",
"vendors": [
{
"vendor_name": "Netskope Cloud Exchange"
}
],
"expiration_date": 1704215925000,
"indicator": "7562cf3c1237df992a6b8885b5ad5eaf1b5c40840bbe0d1ce09c2d61b5a12c44",
"type": "HASH"
}
],
"validate": true
}
Matrice de performance
Vous trouverez ci-dessous la lecture des performances réalisée pour la recherche et le partage de 100 000 IOC dans chaque cycle de vie du plugin sur une instance Large CE avec les spécifications ci-dessous.
| Détails de la pile | Taille : Grande RAM : 32 GB CPU : 16 cœurs |
| Indicateurs extraits du Cortex XDR de Palo Alto Networks | ~10K per minute |
| Indicateurs partagés avec Palo Alto Networks Cortex XDR | ~16K per minute |
Agent utilisateur
L'agent utilisateur ajouté pour ce plugin est au format suivant :
netskope-ce-<CE VERSION>-<MODULE NAME>-<PLUGIN NAME>-v<PLUGIN VERSION>
Exemple
netskope-ce-4.2.0-cte-palo-alto-networks-cortex-xdr-v1.0.0
Workflow
- Obtenez une clé API de la plateforme Cortex XDR de Palo Alto Networks.
- Configurez le plugin Cortex XDR de Palo Alto Networks.
- Ajouter une règle de gestion.
- Configurez le partage pour Netskope et le Cortex XDR de Palo Alto Networks.
- Validez le plugin Cortex XDR de Palo Alto Networks.
Cliquer sur « play » pour regarder une vidéo.
Obtenez votre clé API Cortex XDR de Palo Alto Networks
- Accédez à votre plateforme Cortex XDR de Palo Alto Networks et connectez-vous à l'aide de vos informations d'identification.
- Dans la barre de navigation en bas à gauche, survolez Settings et sélectionnez Configurations Settings.

- Cliquez API Keys, puis cliquez New Key.


- Saisissez les informations suivantes :
- Niveau de sécurité : Select Niveau de sécurité : Avancé/Standard.
- Poste : Créer un rôle personnalisé avec (Détections (View/Edit)/Alertes et incidents (View)).



- Activer la date d'expiration : Cochez la case de la clé API pour définir la date d'expiration.

- Cliquez sur Save.
- Copiez la clé API, car elle ne sera plus accessible après la fermeture de la fenêtre.
Configurez le plugin Cortex XDR de Palo Alto Networks
- Allez dans Settings > Plugins, cherchez et sélectionnez la boîte CTE Palo Alto Networks Cortex XDR pour configurer le plugin.

- Entrez ces valeurs :
- Nom de la configuration : Nom unique de la configuration.
- Intervalle de synchronisation : Laissez la valeur par défaut.
- Critères de vieillissement : Durée d'expiration du plugin en jours. (Valeur par défaut : 90)
- Ignorer la réputation : Définissez une valeur pour remplacer la réputation des indicateurs reçus de cette configuration.
- Activer la validation SSL : Activez la validation du certificat SSL.
- Utiliser le proxy du système : Activez cette option si un proxy est nécessaire pour la communication.

- Cliquez sur Next.
- Entrez ces valeurs :
- URL de base : URL de base pour les points d'extrémité de l'API Cortex XDR de Palo Alto Networks.
- ID API : ID API de l'API Cortex XDR de Palo Alto Networks.
- Clé API : Clé secrète de l'API Cortex XDR de Palo Alto Networks.
- Authentication Method (Méthode d'authentification) : Type d'authentification que vous choisissez lors de la création du jeton API à partir du Cortex XDR de Palo Alto Networks.
- Activer l'interrogation : Si vous souhaitez obtenir un indicateur de Palo Alto Networks Cortex XDR.
- Type de données de menace à extraire : SHA256/MD5.
- Gravité : Si vous souhaitez obtenir des données spécifiques sur la gravité.
- Activer le balisage : Activer/désactiver la fonctionnalité de marquage.
- Plage initiale : Nombre de jours pour extraire les données pour l'exécution initiale.

- Cliquez sur Save.

Ajouter une règle de gestion pour Palo Alto Networks Cortex XDR
Pour partager des indicateurs de Netskope CE vers Palo Alto Networks Cortex XDR et des indicateurs de Palo Alto Networks Cortex XDR vers Netskope ou tout autre plugin tiers, vous devez disposer d'une règle de gestion qui filtrera les indicateurs que vous devez partager. Pour configurer une règle de gestion, suivez les étapes ci-dessous :
- Allez à Threat Exchange > Business Rule et cliquez sur Create New Rule.

- Ajoutez le filtre souhaité pour les IoC que vous souhaitez partager et cliquez sur Save.

Configuration du partage pour Netskope et Palo Alto Networks Cortex XDR
Le plugin Cortex XDR de Palo Alto Networks prend en charge le partage des URL (IPv4, domaine), des types d'IOC MD5 et SHA256. Le plugin dispose d'une action Create IOCs qui permet de créer des indicateurs. Pour partager des IoC avec Palo Alto Networks Cortex XDR, procédez comme suit :
- Allez à Threat Exchange > Sharing et cliquez sur Add Sharing Configuration.
- Select votre Configuration Source (Netskope), la Règle Métier et la Configuration Destination (Palo Alto Networks Cortex XDR), et pour Target, entrez Create IOCs.

- Cliquez sur Save.
- Créez une autre configuration de partage pour partager les IoCs Cortex XDR de Palo Alto Networks avec Netskope. Select Palo Alto Networks Cortex XDR comme source et Netskope comme destination.
- Cliquez sur Save.

Validez le plugin Cortex XDR de Palo Alto Networks
Valider le retrait
- SHA256,MD5 sont tirés de INCIDENT RESPONSE > Incidents, du plugin Cortex XDR de Palo Alto Networks.

- Cliquez sur Alerts & Insights, puis cliquez sur n'importe quelle alerte pour la développer afin de trouver les valeurs SHA256 et MD5 qui seront extraites.

- En fonction de la configuration de votre plugin, les indicateurs seront tirés du plugin Cortex XDR de Palo Alto Networks vers Netskope CE.
- Allez à Threat Exchange > Threat IoCs et recherchez les IoC extraits du plugin Palo Alto Networks Cortex XDR.

Valider le push
- Pour vérifier les IoC poussés dans Palo Alto Networks Cortex XDR, rendez-vous sur Palo Alto Networks Cortex XDR Platform > DETECTION RULES > IOC.
- Les IoCs poussés depuis Netskope ont été VENDORS en tant que Netskope Cloud Exchange.

- Pour valider l'indicateur poussé dans Threat Exchange, allez à Threat IoCs et recherchez les IoC partagés avec Palo Alto Networks Cortex XDR.
Note: La plateforme Palo Alto Networks Cortex XDR peut prendre en charge jusqu'à 4 millions d'IOC. Une fois cette limite atteinte, tous les indicateurs nouvellement ingérés seront ignorés. Lien de référence
Dépannage
Réception de l'erreur 400 Client dans les logs lors de l'exécution du cycle de vie du plugin.
Lors de l'enregistrement du plugin, si le plugin n'est pas en mesure d'enregistrer avec des identifiants valides 401. 
Si vous recevez l'erreur susmentionnée dans le journal lors de la configuration du plugin, vérifiez la méthode d'authentification dans Palo Alto Networks Cortex XDR.
- Connectez-vous à la plateforme Cortex XDR.
- Cliquez sur Setting > Configurations.
- Cliquez sur API Keys.
- Vérifiez le niveau de sécurité et la méthode d'authentification dans le plugin (les deux doivent être identiques).

Lors de la réception d'une permission 403 en tirant ou en poussant des IoCs
Si vous recevez une autorisation 403 lorsque vous tirez ou poussez des IoC, vérifiez les rôles sur le Cortex XDR de Palo Alto Networks.
- Connectez-vous à la plateforme Cortex XDR.
- Allez sur Setting > Configurations > Roles.
- Vérifiez les rôles.
- Développez INCIDENT RESPONSE.
Les alertes et incidents doivent avoir la permission de consulter.
- Développez DETECTION & Threat INTEL.
Les règles doivent disposer des autorisations de consultation et de modification.
Lorsqu'il n'est pas possible de récupérer les IoC de Palo Alto Networks Cortex XDR
Si vous ne parvenez pas à récupérer les IoC de Palo Alto Cortex vers Netskope Threat Exchange.
- Connectez-vous à Palo Alto Networks Cortex XDR.
- Cliquez sur Incident Response > Incidents.
- Vérifiez que les alertes sont présentes en cliquant sur n’importe quel Incident > Alerts & Insights.


