Citrix ADC

Protection contre les attaques des entités externes XML (XXE)

La protection contre les attaques des entités externes XML (XXE) examine si une charge utile entrante contient des entrées XML non autorisées concernant des entités en dehors du domaine approuvé où réside l’application Web. L’attaque XXE se produit si vous avez un analyseur XML faible qui analyse une charge utile XML avec une entrée contenant des références à des entités externes.

Dans une appliance Citrix ADC, si l’analyseur XML n’est pas correctement configuré, l’exploitation de la vulnérabilité peut avoir un impact dangereux. Il permet à un attaquant de lire des données sensibles sur le serveur web, d’effectuer une attaque par déni de service et ainsi de suite. Par conséquent, il est important de protéger l’appliance contre les attaques XXE. Web Application Firewall est capable de protéger l’appliance contre les attaques XXE tant que le type de contenu est identifié comme XML. Pour empêcher un utilisateur malveillant de contourner ce mécanisme de protection, WAF bloque une requête entrante si le type de contenu « inféré » dans les en-têtes HTTP ne correspond pas au type de contenu du corps. Ce mécanisme empêche le contournement de la protection contre les attaques XXE lorsqu’un type de contenu par défaut ou non par défaut est utilisé sur la liste blanche.

Voici quelques-unes des menaces XXE potentielles qui affectent une appliance Citrix ADC :

  • Fuites de données confidentielles
  • Attaques par déni de service (DOS)
  • Requêtes de falsification côté serveur
  • Analyse des ports

Fonctionnement de la protection des entités externes XML (XXE)

  1. Lorsqu’il y a une requête entrante, WAF examine les 512 premiers octets de la charge utile XML pour déterminer toute incompatibilité dans l’en-tête du type de contenu et le type de contenu de la charge utile.
  2. Si les types de contenu correspondent, la protection XML XXE est activée et appliquée à la requête HTTP.
  3. Toutefois, si l’en-tête de type de contenu ne correspond pas au type de contenu du corps, la requête est bloquée, supprimée ou consignée en fonction de l’action configurée.
  4. Vous pouvez activer la journalisation pour générer des messages de journal. Vous pouvez surveiller les journaux pour déterminer si les réponses aux demandes légitimes sont bloquées. Une forte augmentation du nombre de messages de journal peut indiquer des tentatives de lancement d’une attaque.
  5. Vous pouvez également activer la fonction de statistiques pour collecter des données statistiques sur les violations et les journaux. Une augmentation inattendue du compteur de statistiques peut indiquer que votre application est attaquée.

Configurer la protection par injection d’entités externes XML (XXE)

Pour configurer les entités externes XML (XXE), vérifiez à l’aide de l’interface de commande : dans l’interface de ligne de commande, vous pouvez ajouter ou modifier la commande de profil de pare-feu application pour configurer les paramètres XXE. Vous pouvez activer les actions de blocage, de journal et de statistiques.

À l’invite de commandes, tapez :

set appfw profile <name> [-inferContentTypeXmlPayloadAction <inferContentTypeXmlPayloadAction <block | log | stats | none>]

Remarque :

Par défaut, l’action XXE est définie comme « none ».

Exemple :

set appfw profile profile1 -inferContentTypeXmlPayloadAction Block

Où, les types d’action sont :

Bloc : La requête est bloquée sans exception aux URL de la requête.

Journal : si une incompatibilité entre le type de contenu dans un en-tête de requête HTTP et la charge utile se produit, les informations sur la demande violée doivent figurer dans le message de journal.

Statistiques : Si une incompatibilité entre les types de contenu est détectée, les statistiques correspondantes pour ce type de violation sont incrémentées.

Aucun : aucune action n’est prise si une inadéquation dans les types de contenu est détectée. Aucun ne peut être combiné avec un autre type d’action. L’action par défaut est définie sur Aucun.

Configurer la vérification de l’injection XXE à l’aide de l’interface graphique Citrix ADC

Procédez comme suit pour configurer la vérification de l’injection XXE.

  1. Accédez à Sécurité > Citrix Web App Firewall > Profils.
  2. Sur la page Profils, sélectionnez un profil et cliquez sur Modifier.
  3. Sur la page Profil du Citrix Web App Firewall, accédez à la section Paramètres avancés et cliquez sur Vérifications de sécurité.

    Section de vérification des entités externes XML

  4. Dans la section Vérifications de sécurité, sélectionnez Induire le type de contenu XML Charge utile et cliquez sur Paramètres d’action.
  5. Dans la page Paramètres de charge utile XML du type de contenu Inger, définissez les paramètres suivants :

    1. Actions. Sélectionnez une ou plusieurs actions à effectuer pour le contrôle de sécurité de l’injection XXE.
  6. Cliquez sur OK.

    Configuration des paramètres de vérification des entités externes XML

Affichage des statistiques sur le trafic d’injection XXE et les violations

La page Statistiques du Citrix Web App Firewall affiche les détails du trafic de sécurité et des violations de sécurité dans un format tabulaire ou graphique.

Pour afficher les statistiques de sécurité à l’aide de l’interface de commande.

À l’invite de commandes, tapez :

stat appfw profile profile1

Affichage des statistiques d’injection XXE à l’aide de l’interface graphique Citrix ADC

Procédez comme suit pour afficher les statistiques d’injection XXE :

  1. Accédez à Sécurité > Citrix Web App Firewall > Profils.
  2. Dans le volet d’informations, sélectionnez un profil de Web App Firewall et cliquez sur Statistiques.
  3. La page Statistiques du Citrix Web App Firewall affiche le trafic d’injection de commandes XXE et les détails de violation.
  4. Vous pouvez sélectionner Vue tabulaire ou passer à la vue graphique pour afficher les données sous forme de tableau ou graphique.

Statistiques de violation de vérification d'entités externes XML