Citrix ADC

Informations supplémentaires sur les profils

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

Support des variables de configuration

Au lieu d’utiliser des valeurs statiques, pour configurer les contrôles et les paramètres de sécurité du Web App Firewall, 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 adaptée à 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. Vous pouvez créer une variable d’expression nommée à l’aide de l’interface graphique et de l’interface de ligne de commande Citrix ADC.

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

  • Start URL (-starturl)
  • Deny URL ( -denyurl)
  • Form Action URL for Form Field Consistency Check (-fieldconsistency)
  • Action URL for XML SQL Injection Check (-xmlSQLInjection)
  • Action URL for XML Cross-Site Scripting Check (-xmlcross-site scripting)
  • Form Action URL for HTML SQL Injection Check (-sqlInjection)
  • Form Action URL for Field Format Check (-fieldFormat)
  • Form Origin URL and Form Action URL for Cross-Site Request Forgery (CSRF) Check (-csrfTag)
  • Form Action URL for HTML Cross-Site Scripting Check (-crossSiteScripting)
  • Safe Object (-safeObject)
  • Action URL for XML Denial-of-Service (XDoS) check (-XMLDoS)
  • URL for Web Services Interoperability check (-XMLWSIURL)
  • <URL for XML Validation check (-XMLValidationURL)
  • URL for XML Attachment check (-XMLAttachmentURL)

Pour plus d’informations, voir 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 Refuser l’URL à l’aide de l’interface graphique et que vous souhaitez ajouter la variable d’expression nommée myDenyURL à la configuration, vous devez taper @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, vous devez taper add appfw profile <name> -denyUrlAction @myDenyURL@.

Format de codage de caractères PCRE

Le système d’exploitation Citrix ADC prend en charge la saisie directe de caractères dans le jeu de caractères ASCII imprimable uniquement, c’est-à-dire des caractères dont le code hexadécimal est compris entre HEX 20 (ASCII 32) et HEX 7E (ASCII 127). Pour inclure un caractère dont le code se trouve en dehors de cette plage dans votre configuration 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 codage à l’aide d’une expression régulière PCRE si vous les incluez dans votre configuration Web App Firewall en tant qu’URL, nom de champ de formulaire ou expression d’objet sécurisé. Ils incluent :

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

  • Caractères sur deux octets. Caractères dont l’encodage utilise deux mots de 8 octets. Les caractères codés sur deux octets sont principalement utilisés pour représenter du texte chinois, japonais et coréen au format électronique. Ces caractères peuvent apparaître dans les URL, les noms de champs de formulaire et les expressions d’objets sécurisés.

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

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

  • Anglais américain (ISO-8859-1). Bien que l’étiquette indique « Anglais américain », 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 sauf quelques uns dans le reste.

  • Chinois traditionnel (Big5). Le Web App Firewall prend en charge tous les caractères du jeu de caractères BIG5, qui inclut tous les caractères chinois traditionnels (idéogrammes) couramment utilisés en chinois moderne tels qu’ils sont 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 qu’ils sont 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 inclut la plupart des caractères (idéogrammes) couramment utilisés en 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éogrammes) couramment utilisés en 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éogrammes) 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 en 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 sont affectés des codes simples à deux chiffres dans ce jeu de caractères, se voient attribuer les mêmes codes dans le jeu de caractères UTF-8. Par exemple, le point d’exclamation (!) , auquel est affecté 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 sont associés à un jeu de codes hexadécimaux appariés dans le jeu de caractères UTF-8. Par exemple, la lettre a avec un accent aigu (á) se voit attribuer 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 souhaitez représenter un ! dans une expression régulière du Web App Firewall sous la forme d’un caractère UTF-8, tapez \x21. Si vous souhaitez 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 peuvent confondre un navigateur Web ou un système d’exploitation sous-jacent, vous pouvez utiliser la représentation UTF-8 du personnage pour éviter cette confusion. Par exemple, si une URL contient un espace, vous pouvez coder l’espace en 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’objets sécurisés contenant des caractères non ASCII qui doivent être entrés en tant qu’expressions régulières au format PCRE pour être inclus dans la configuration du Web App Firewall. Chaque exemple montre d’abord l’URL, le nom de champ ou la chaîne d’expression, suivi d’une expression régulière au format PCRE correspondant.

  • URL contenant des caractères ASCII étendus.

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

    URL codé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 codée : ^http://www[.]example\[.]de/tr\xC3\xB6mso[.]html$

  • Un 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 codée [A-Z]{3,6}¥[1-9][0-9]{6,6}

    Expression codée : [A-Z]{3,6}\xC2\xA5[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’adresse suivante :

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

Pour que les caractères du tableau de ce site Web s’affichent correctement, une police Unicode appropriée doit être installée sur votre ordinateur. Si ce n’est pas le cas, l’affichage visuel du personnage peut être erroné. Même si vous n’avez pas installé de police approprié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

Outre le contenu correspondant qui contient un modèle, vous pouvez faire correspondre un contenu qui ne contient pas de modèle à l’aide d’une expression PCRE inversée. Pour inverser une expression, il suffit d’inclure un point d’exclamation (!) suivi d’un espace en tant que premier caractère de l’expression.

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

Les commandes du 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 d’action de formulaire)
  • Cohérence des cookies (URL d’action de formulaire)
  • Falsification de demande intersite (CSRF) (URL de l’action du formulaire)
  • Script intersite HTML (URL d’action de formulaire)
  • Format du champ (URL de l’action du formulaire)
  • Type de champ (type)
  • Champ confidentiel (URL)

Remarque : Si le contrôle de sécurité contient un indicateur ou une case à cocher IsRegex, il doit être défini sur OUI ou coché 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 aux profils intégrés sur l’appliance Citrix ADC et ne peuvent pas être utilisés comme noms pour un profil Web App Firewall créé par l’utilisateur.

  • AGRESSIVE
  • ALLOW
  • BASIC
  • CLIENTAUTH
  • COMPRESS
  • CSSMINIFY
  • DEFLATE
  • DENY
  • DNS-NOP
  • ABANDONNER
  • GZIP
  • HTMLMINIFY
  • IMGOPTIMIZE
  • JSMINIFY
  • MODERATE
  • NOCLIENTAUTH
  • NOCOMPRESS
  • NONE
  • NOOP
  • NOREWRITE
  • RÉINITIALISER
  • 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