Citrix ADC

Vérification par déni de service XML

La vérification du déni de service XML (XML DoS ou XDoS) examine les demandes XML entrantes pour déterminer si elles correspondent aux caractéristiques d’une attaque par déni de service (DoS). S’il y a une correspondance, bloque ces requêtes. Le but de la vérification XML DoS est d’empêcher un attaquant d’utiliser des requêtes XML pour lancer une attaque par déni de service sur votre serveur Web ou site Web.

Si vous utilisez l’Assistant ou l’interface graphique, dans la boîte de dialogue Modifier la vérification du déni de service XML, sous l’onglet Général, vous pouvez activer ou désactiver les actions Bloquer, Journal, Statistiques et Learn :

Si vous utilisez l’interface de ligne de commande, vous pouvez entrer la commande suivante pour configurer la vérification de déni de service XML :

  • set appfw profile <name> -xmlDoSAction [**block**] [**log**] [**learn**] [**stats**] [**none**]

Pour configurer des règles de déni de service XML individuelles, vous devez utiliser l’interface graphique. Sous l’onglet Vérifications de la boîte de dialogue Modifier la vérification du déni de service XML, sélectionnez une règle et cliquez sur Ouvrir pour ouvrir la boîte de dialogue Modifier le déni de service XML pour cette règle. Les boîtes de dialogue individuelles diffèrent selon les règles mais sont simples. Certains vous permettent uniquement d’activer ou de désactiver la règle ; d’autres vous permettent de modifier un nombre en tapant une nouvelle valeur dans une zone de texte.

Remarque :

Le comportement attendu du moteur d’apprentissage pour les attaques par déni de service est basé sur l’action configurée. Si l’action est définie comme « Bloquer », le moteur apprend la valeur de liaison configurée +1 et l’analyse XML s’arrête en cas de violation. Si l’action configurée n’est pas définie comme « Bloquer », le moteur apprend la valeur réelle de longueur de violation entrante.

Les règles de déni de service XML individuelles sont les suivantes :

  • Profondeur maximale de l’élément. Limitez le nombre maximal de niveaux imbriqués dans chaque élément individuel à 256. Si cette règle est activée et que le Web App Firewall détecte une demande XML avec un élément dont le nombre maximal de niveaux autorisés est supérieur au nombre maximal, il bloque la demande. Vous pouvez modifier le nombre maximal de niveaux à n’importe quelle valeur de un (1) à 65 535.

  • Longueur maximale du nom de l’élément. Limitez la longueur maximale de chaque nom d’élément à 128 caractères. Cela inclut le nom dans l’espace de noms développé, qui inclut le chemin d’accès XML et le nom de l’élément dans le format suivant :

     {http://prefix.example.com/path/}target_page.xml
    

L’utilisateur peut modifier la longueur maximale du nom à n’importe quelle valeur comprise entre un (1) caractère et 65 535.

  • Nombre maximum d’éléments. Limitez le nombre maximal d’un type d’élément par document XML à 65 535. Vous pouvez modifier le nombre maximal d’éléments à n’importe quelle valeur comprise entre un (1) et 65 535.

  • Nombre maximum d’enfants d’élément. Limitez le nombre maximal d’enfants (y compris les autres éléments, les informations de caractère et les commentaires) que chaque élément individuel est autorisé à avoir à 65 535. Vous pouvez modifier le nombre maximal d’enfants d’élément à n’importe quelle valeur comprise entre un (1) et 65 535.

  • Nombre maximum d’attributs. Restreindre le nombre maximal d’attributs que chaque élément individuel est autorisé à avoir à 256. Vous pouvez modifier le nombre maximal d’attributs à n’importe quelle valeur comprise entre un (1) et 256.

  • Longueur maximale du nom d’attribut. Limitez la longueur maximale de chaque nom d’attribut à 128 caractères. Vous pouvez modifier la longueur maximale du nom d’attribut à n’importe quelle valeur comprise entre un (1) et 2,048.

  • Longueur maximale de la valeur d’attribut. Limitez la longueur maximale de chaque valeur d’attribut à 2048 caractères. Vous pouvez modifier la longueur maximale du nom d’attribut à n’importe quelle valeur comprise entre un (1) et 2,048.

  • Longueur maximale des données de caractère. Limitez la longueur maximale des données de caractères pour chaque élément à 65 535. Vous pouvez modifier la longueur à n’importe quelle valeur comprise entre un (1) et 65 535.

  • Taille maximale du fichier. Limitez la taille de chaque fichier à 20 Mo. Vous pouvez modifier la taille maximale du fichier à n’importe quelle valeur.

  • Taille minimale du fichier. Exiger que chaque fichier ait une longueur minimale de 9 octets. Vous pouvez modifier la taille minimale du fichier à n’importe quel entier positif représentant différents octets.

  • Nombre maximal d’extensions d’entités. Limitez le nombre d’extensions d’entités autorisées au nombre spécifié. Par défaut : 1024.

  • Profondeur maximale d’extension de l’entité. Limitez le nombre maximal d’expansions d’entités imbriquées au nombre spécifié. Par défaut : 32.

  • Nombre maximum d’espaces de noms. Limitez le nombre de déclarations d’espace de noms dans un document XML au maximum au nombre spécifié. Par défaut : 16.

  • Longueur maximale de l’URI d’espace de noms. Limitez la longueur d’URL de chaque déclaration d’espace de noms au maximum le nombre de caractères spécifié. Par défaut : 256.

  • Instructions de traitement des blocs. Bloquer toutes les instructions spéciales de traitement incluses dans la demande. Cette règle ne comporte aucune valeur modifiable par l’utilisateur.

  • Bloquer la DTD. Bloquer toutes les définitions de type de document (DTD) incluses dans la demande. Cette règle ne comporte aucune valeur modifiable par l’utilisateur.

  • Bloquer les entités externes. Bloquer toutes les références aux entités externes dans la demande. Cette règle ne comporte aucune valeur modifiable par l’utilisateur.

  • Vérification de la baie SOAP. Activez ou désactivez les vérifications de tableau SOAP suivantes :

    • Taille maximale du tableau SOAP. Taille totale maximale de toutes les baies SOAP dans une requête XML avant que la connexion ne soit bloquée. Vous pouvez modifier cette valeur. Par défaut : 20000000.
    • Rang maximum du tableau SOAP. Rang ou dimensions maximum d’un tableau SOAP unique dans une requête XML avant que la connexion ne soit bloquée. Vous pouvez modifier cette valeur. Par défaut : 16.
Vérification par déni de service XML