Citrix ADC

Informations supplémentaires sur les profils

Voici des informations supplémentaires sur des aspects particuliers des profils de Web App Firewall. Ces informations expliquent comment inclure des caractères spéciaux dans une règle de vérification de sécurité ou de relaxation, et comment utiliser des variables lors de la configuration des profils.

Prise en charge des variables de configuration

Au lieu d’utiliser des valeurs statiques, pour configurer les contrôles de sécurité et les paramètres du pare-feu Web App, vous pouvez désormais utiliser des variables nommées Citrix ADC standard. En créant des variables, vous pouvez plus facilement exporter, puis importer des configurations vers de nouvelles appliances Citrix ADC, ou mettre à jour des appliances Citrix ADC existantes à partir d’un seul ensemble de fichiers de configuration. Cela simplifie les mises à jour lorsque vous utilisez une configuration de banc d’essai pour développer une configuration complexe de Web App Firewall qui est réglée pour votre réseau local et vos serveurs, puis transférez cette configuration vers vos appliances Citrix ADC de production.

Vous créez des variables de configuration du Web App Firewall de la même manière que les autres variables nommées Citrix ADC, conformément aux conventions Citrix ADC standard. Pour créer une variable d’expression nommée à l’aide de l’interface graphique, utilisez la Boîte de dialogue Ajouter une expression. Pour créer une variable d’expression nommée à l’aide de la ligne de commande Citrix ADC, vous utilisez la commande add expression suivie du paramètre approprié.

Les URL et expressions suivantes peuvent être configurées avec des variables au lieu de valeurs statiques :

  • URL de démarrage (-starturl)
  • Refuser l’URL (-denyurl)
  • URL de l’action de formulaire pour le contrôle de cohérence des champs de formulaire (-fieldconsistency)
  • URL d’action pour la vérification d’injection SQL XML (-XMLSQLInjection)
  • URL d’action pour lavérification de script inter-site X ML (-XMLXSS)
  • URL d’action de formulaire pour HTML SQL Injection Check (-SQLInjection)
  • URL de l’action de formulaire pour la vérification du format de champ (-FieldFormat)
  • URL d’origine du formulaire et URL d’action de formulaire pour la vérification CSRF (Cross-Site Request Falgery) (-CSRFTag)
  • URL de l’action de formulaire pour la vérification de script inter-site HTML (-CrossSiteScripting)
  • Objet sécurisé (-SafeObject)
  • URL d’action pour la vérification par déni de service XML (xDoS) (-XMLDOS)
  • URL pour la vérification de l’interopérabilité des services Web (-XMLWSIURL)
  • <URL pour la vérification de validation XML (-XMLValidationURL)
  • URL pour la vérification des pièces jointes XML (-XMLAttachmentURL)

Pour de plus amples informations, consultez Stratégies et expressions.

Pour utiliser une variable dans la configuration, vous placez le nom de la variable entre deux symboles à (@), puis l’utilisez exactement comme vous le feriez pour la valeur statique qu’elle remplace. Par exemple, si vous configurez la vérification de l’URL Refuser à l’aide de l’interface graphique et que vous souhaitez ajouter la variable d’expression nommée MyDenyURL à la configuration, tapez @myDenyURL @ dans la boîte de dialogue Ajouter une URL de refus, zone de texte Refuser l’URL. Pour effectuer la même tâche à l’aide de la ligne de commande Citrix ADC, tapez add appfw profile <name> -denyUrlAction @myDenyURL@.

Format de codage de caractères PCRE

Le système d’exploitation Citrix ADC prend en charge l’entrée directe de caractères dans le jeu de caractères ASCII imprimable uniquement (caractères avec codes hexadécimaux compris entre HEX 20 (ASCII 32) et HEX 7E (ASCII 127). Pour inclure un caractère dont le code est en dehors de cette plage dans votre configuration de Web App Firewall, vous devez entrer son code hexadécimal UTF-8 en tant qu’expression régulière PCRE.

Un certain nombre de types de caractères nécessitent un encodage à l’aide d’une expression régulière PCRE si vous les incluez dans votre configuration de Web App Firewall en tant qu’URL, nom de champ de formulaire ou expression d’objet sécurisé. Il s’agit notamment des éléments suivants :

  • Caractères ASCII supérieurs. Caractères avec encodages de HEX 7F (ASCII 128) à HEX FF (ASCII 255). Selon la table de caractères utilisée, ces encodages peuvent faire référence à des codes de contrôle, à des caractères ASCII avec des accents ou d’autres modifications, à des caractères alphabétiques non latins et à des symboles non inclus dans le jeu de caractères ASCII de base. Ces caractères peuvent apparaître dans les URL, les noms de champs de formulaire et les expressions d’objet sécurisé.

  • Caractères à deux octets. Caractères avec encodages qui utilisent deux mots de 8 octets. Les caractères sur deux octets sont utilisés principalement pour représenter le texte chinois, japonais et coréen en format électronique. Ces caractères peuvent apparaître dans les URL, les noms de champs de formulaire et les expressions d’objet sécurisé.

  • Caractères de contrôle ASCII. Caractères non imprimables utilisés pour envoyer des commandes à une imprimante. Tous les caractères ASCII dont les codes hexadécimaux sont inférieurs à HEX 20 (ASCII 32) entrent dans cette catégorie. Toutefois, ces caractères ne devraient jamais apparaître dans une URL ou un nom de champ de formulaire et apparaîtraient rarement, voire jamais, dans une expression d’objet sécurisée.

L’appliance Citrix ADC ne prend pas en charge l’ensemble du jeu de caractères UTF-8, mais uniquement les caractères présents dans les huit jeux de caractères suivants :

  • Anglais US (ISO-8859-1). Bien que l’étiquette indique « Anglais US », le Web App Firewall prend en charge tous les caractères du jeu de caractères ISO-8859-1, également appelé jeu de caractères Latin-1. Ce jeu de caractères représente entièrement la plupart des langues modernes d’Europe occidentale et représente tous les caractères rares dans le reste.

  • Chinois traditionnel (Big5). Le Web App Firewall prend en charge tous les caractères du jeu de caractères BIG5, qui comprend tous les caractères chinois traditionnels (idéogrammes) couramment utilisés en chinois moderne tels que parlés et écrits à Hong Kong, Macao, Taïwan, et par de nombreuses personnes d’origine ethnique chinoise qui vivent en dehors de la Chine continentale.

  • Chinois simplifié (GB2312). Le Web App Firewall prend en charge tous les caractères du jeu de caractères GB2312, qui inclut tous les caractères chinois simplifiés (idéogrammes) couramment utilisés en chinois moderne, tels que parlés et écrits en Chine continentale.

  • Japonais (SJIS). Le Web App Firewall prend en charge tous les caractères du jeu de caractères Shift-JIS (SJIS), qui comprend la plupart des caractères (idéographes) couramment utilisés dans le japonais moderne.

  • japonais (EUC-JP). Le Web App Firewall prend en charge tous les caractères du jeu de caractères EUC-JP, qui inclut tous les caractères (idéographes) couramment utilisés dans le japonais moderne.

  • coréen (EUC-KR). Le Web App Firewall prend en charge tous les caractères du jeu de caractères EUC-KR, qui inclut tous les caractères (idéographes) couramment utilisés en coréen moderne.

  • turc (ISO-8859-9). Le Web App Firewall prend en charge tous les caractères du jeu de caractères ISO-8859-9, qui inclut toutes les lettres utilisées en turc moderne.

  • Unicode (UTF-8). Le Web App Firewall prend en charge certains caractères supplémentaires dans le jeu de caractères UTF-8, y compris ceux utilisés dans le russe moderne.

Lors de la configuration du Web App Firewall, vous entrez tous les caractères non-ASCII en tant qu’expressions régulières au format PCRE à l’aide du code hexadécimal attribué à ce caractère dans la spécification UTF-8. Les symboles et les caractères du jeu de caractères ASCII normal, auxquels on attribue des codes à deux chiffres dans ce jeu de caractères, sont affectés les mêmes codes dans le jeu de caractères UTF-8. Par exemple, le point d’exclamation (!), auquel est attribué le code hexadécimal 21 dans le jeu de caractères ASCII, est également hexadécimal 21 dans le jeu de caractères UTF-8. Les symboles et les caractères d’un autre jeu de caractères pris en charge ont un jeu de codes hexadécimaux appariés qui leur sont assignés dans le jeu de caractères UTF-8. Par exemple, la lettre a avec un accent aigu (á) est assignée le code UTF-8 C3 A1.

La syntaxe que vous utilisez pour représenter ces codes UTF-8 dans la configuration du Web App Firewall est “xNN” pour les caractères ASCII ; “\xNN\xNN” pour les caractères non ASCII utilisés en anglais, russe et turc ; et “\xNN\xNN\xNN” pour les caractères utilisés en chinois, japonais et coréen. Par exemple, si vous voulez représenter un ! dans une expression régulière du Web App Firewall en tant que caractère UTF-8, vous devez taper \x21. Si vous voulez inclure un á, vous devez taper \xC3\xA1.

Remarque :

Normalement, vous n’avez pas besoin de représenter les caractères ASCII au format UTF-8, mais lorsque ces caractères risquent de confondre un navigateur Web ou un système d’exploitation sous-jacent, vous pouvez utiliser la représentation UTF-8 du caractère pour éviter cette confusion. Par exemple, si une URL contient un espace, vous pouvez l’encoder en tant que x20 pour éviter de confondre certains navigateurs et logiciels de serveur Web.

Vous trouverez ci-dessous des exemples d’URL, de noms de champs de formulaire et d’expressions d’objet sécurisé contenant des caractères non-ASCII qui doivent être entrés en tant qu’expressions régulières au format PCRE à inclure dans la configuration du Web App Firewall. Chaque exemple montre en premier l’URL réelle, le nom du champ ou la chaîne d’expression, suivi d’une expression régulière au format PCRE.

  • URL contenant des caractères ASCII étendus.

    URL réelle : http://www.josénuñez.com

    URL encodée : ^http://www\[.\]jos\xC3\xA9nu\xC3\xB1ez\[.\]com$

  • Une autre URL contenant des caractères ASCII étendus.

    URL réelle : http://www.example.de/trömso.html

    URL encodée : ^http://www[.]example\[.]de/tr\xC3\xB6mso[.]html$

  • Nom de champ de formulaire contenant des caractères ASCII étendus.

    Actual Name: nome_do_usuário

    Nom codé :^nome_do_usu\xC3\xA1rio$

  • Expression d’objet sécurisée contenant des caractères ASCII étendus.

    Expression non encodée[A-Z]{3,6}¥[1-9][0-9]{6,6}

    Expression codée :[A-Z]{3,6} xC2xA5[1-9][0-9]{6,6}

Vous pouvez trouver un certain nombre de tables qui incluent l’ensemble du jeu de caractères Unicode et les encodages UTF-8 correspondants sur Internet. Un site Web utile contenant ces informations se trouve à l’URL suivante :

http://www.utf8-chartable.de/unicode-utf8-table.pl

Pour que les caractères du tableau de ce site Web s’affichent correctement, vous devez disposer d’une police Unicode appropriée installée sur votre ordinateur. Si vous ne le faites pas, l’affichage visuel du caractère peut être erroné. Même si vous n’avez pas de police appropriée installée pour afficher un caractère, la description et les codes UTF-8 et UTF-16 de cet ensemble de pages Web seront corrects.

Expressions PCRE inversées

En plus de faire correspondre le contenu contenant un motif, vous pouvez faire correspondre le contenu qui ne contient pas de motif à l’aide d’une expression PCRE inversée. Pour inverser une expression, il vous suffit d’inclure un point d’exclamation ( !) suivi d’un espace blanc comme premier caractère de l’expression.

Remarque : Si une expression est constituée uniquement d’un point d’exclamation sans aucune suite, le point d’exclamation est traité comme un caractère littéral, et non comme une syntaxe indiquant une expression inversée.

Les commandes de Web App Firewall suivantes prennent en charge les expressions PCRE inversées :

  • URL de démarrage (URL)
  • Refuser l’URL (URL)
  • Cohérence des champs de formulaire (URL de l’action de formulaire)
  • Cohérence des cookies (URL de l’action de formulaire)
  • Faux de demande intersite (CSRF) (URL de l’action de formulaire)
  • Scripting inter-site HTML (URL de l’action de formulaire)
  • Format du champ (URL de l’action de formulaire)
  • Type de champ (type)
  • Champ confidentiel (URL)

Remarque : Si la vérification de sécurité contient un indicateur IsRegex ou une case à cocher, elle doit être définie sur YES ou cochée pour activer les expressions régulières dans le champ. Sinon, le contenu de ce champ est traité comme littéral et aucune expression régulière (inversée ou non) n’est analysée.

Noms non autorisés pour les profils de Web App Firewall

Les noms suivants sont attribués aux actions et profils intégrés sur l’appliance Citrix ADC et ne peuvent pas être utilisés comme noms pour un profil de Web App Firewall créé par l’utilisateur.

  • AGRESSIVE
  • ALLOW
  • BASIC
  • CLIENTAUTH
  • COMPRESS
  • CSSMINIFY
  • DEFLATE
  • DENY
  • DNS-NOP
  • DROP
  • GZIP
  • HTMLMINIFY
  • IMGOPTIMIZE
  • JSMINIFY
  • MODERATE
  • NOCLIENTAUTH
  • NOCOMPRESS
  • NONE
  • NOOP
  • NOREWRITE
  • RESET
  • SETASLEARNNSLOG_ACT
  • SETNSLOGPARAMS_ACT
  • SETSYSLOGPARAMS_ACT
  • SETTMSESSPARAMS_ACT
  • SETVPNPARAMS_ACT
  • SET_PREAUTHPARAMS_ACT
  • default_DNS64_action
  • dns_default_act_Cachebypass
  • dns_default_act_Drop
  • nshttp_default_profile
  • nshttp_default_strict_validation
  • nstcp_default_Mobile_profile
  • nstcp_default_XA_XD_profile
  • nstcp_default_profile
  • nstcp_default_tcp_interactive_stream
  • nstcp_default_tcp_lan
  • nstcp_default_tcp_lan_thin_stream
  • nstcp_default_tcp_lfp
  • nstcp_default_tcp_lfp_thin_stream
  • nstcp_default_tcp_lnp
  • nstcp_default_tcp_lnp_thin_stream
  • nstcp_internal_apps

Informations supplémentaires sur les profils