Citrix ADC

Vérification des scripts inter-sites HTML

La vérification HTML Cross-Site Scripting (cross-site scripting) examine à la fois les en-têtes et les corps POST des demandes des utilisateurs pour d’éventuelles attaques de script inter-site. S’il trouve un script intersite, il modifie (transforme) la requête pour rendre l’attaque inoffensive, ou bloque la requête.

Remarque :

La vérification HTML Cross-Site Scripting (cross-site scripting) fonctionne uniquement pour le type de contenu, la longueur du contenu, etc. Il ne fonctionne pas pour les cookies. Assurez-vous également que l’option « CheckRequestHeaders » est activée dans votre profil Web Application Firewall.

Pour éviter toute utilisation abusive des scripts sur vos sites Web protégés afin d’enfreindre la sécurité de vos sites Web, la vérification HTML Cross-Site Scripting bloque les scripts qui enfreignent la même règle d’origine, qui stipule que les scripts ne doivent pas accéder au contenu d’un serveur, mais le serveur sur lequel ils sont situé. Tout script qui enfreint la même règle d’origine est appelé script intersite, et la pratique consistant à utiliser des scripts pour accéder ou modifier du contenu sur un autre serveur est appelée script intersite. La raison pour laquelle le script inter-site est un problème de sécurité est qu’un serveur Web qui autorise le script inter-site peut être attaqué avec un script qui ne se trouve pas sur ce serveur Web, mais sur un autre serveur Web, tel qu’un serveur détenu et contrôlé par l’attaquant.

Malheureusement, de nombreuses entreprises disposent d’une grande base installée de contenu Web amélioré par Javascript-qui viole la même règle d’origine. Si vous activez la vérification HTML Cross-Site Scripting sur un tel site, vous devez générer les exceptions appropriées afin que la vérification ne bloque pas l’activité légitime.

Le Web App Firewall offre diverses options d’action pour implémenter la protection HTML cross-site Scripting. En plus des actions Block, Log, Statset Apprendre, vous avez également la possibilité de transformer des scripts intersitespour rendre une attaque inoffensive en codant les balises de script dans la demande soumise. Vous pouvez configurer Vérifier les URL complètes pour le paramètre de script intersite pour spécifier si vous souhaitez inspecter non seulement les paramètres de requête, mais l’URL entière pour détecter les attaques de script intersite. Vous pouvez configurer le paramètre InspectQueryContentTypes pour inspecter la partie requête pour une attaque de script intersite pour les types de contenu spécifiques.

Vous pouvez déployer des relaxations pour éviter les faux positifs. Le moteur d’apprentissage du Web App Firewall peut fournir des recommandations pour la configuration des règles de relaxation.

Les options suivantes sont disponibles pour configurer une protection HTML cross-site Scripting optimisée pour votre application :

  • Bloquer : si vous activez le blocage, l’action de blocage est déclenchée si les balises de script intersite sont détectées dans la requête.
  • Journal : si vous activez la fonction de journal, le contrôle HTML Cross-Site Scripting génère des messages de journal indiquant les actions qu’il effectue. Si le bloc est désactivé, un message de journal distinct est généré pour chaque en-tête ou champ de formulaire dans lequel la violation de script intersite a été détectée. Toutefois, un seul message est généré lorsque la demande est bloquée. De même, un message de journal par demande est généré pour l’opération de transformation, même lorsque les balises de script intersite sont transformées dans plusieurs champs. 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.
  • Statistiques : si cette option est activée, la fonction de statistiques recueille des statistiques sur les violations et les journaux. Une augmentation inattendue du compteur de statistiques peut indiquer que votre application est attaquée. Si des requêtes légitimes sont bloquées, vous devrez peut-être revoir la configuration pour voir si vous devez configurer de nouvelles règles de relaxation ou modifier celles existantes.
  • Learn—Si vous n’êtes pas sûr des règles de relaxation qui conviennent parfaitement à votre application, vous pouvez utiliser la fonctionnalité d’apprentissage pour générer des recommandations de règles de script inter-site HTML basées sur les données apprises. Le moteur d’apprentissage du Web App Firewall surveille le trafic et fournit des recommandations d’apprentissage basées sur les valeurs observées. Pour obtenir un avantage optimal sans compromettre les performances, vous pouvez activer l’option d’apprentissage pendant une courte période afin d’obtenir un échantillon représentatif des règles, puis déployer les règles et désactiver l’apprentissage.
  • Transformer les scripts intersites : si cette option est activée, le Web App Firewall apporte les modifications suivantes aux demandes qui correspondent à la vérification de script inter-site HTML :
    • Crochet d’angle gauche (<) à l’équivalent d’entité de caractères HTML (<)
    • Angle droit (>) à l’équivalent d’entité de caractères HTML (>)

Cela garantit que les navigateurs n’interprètent pas les balises html dangereuses, telles que<script>, et exécutent ainsi du code malveillant. Si vous activez à la fois la vérification et la transformation des en-têtes de requête, tous les caractères spéciaux trouvés dans les en-têtes de requête sont également modifiés comme décrit ci-dessus. Si les scripts de votre site Web protégé contiennent des fonctionnalités de script intersite, mais que votre site Web ne s’appuie pas sur ces scripts pour fonctionner correctement, vous pouvez désactiver en toute sécurité le blocage et activer la transformation. Cette configuration garantit qu’aucun trafic Web légitime n’est bloqué, tout en arrêtant toute attaque de script intersite potentielle.

  • Vérifier les URL complètes pour la création de scripts intersites : si la vérification des URL complètes est activée, le Web App Firewall examine les URL entières pour détecter les attaques de scripts intersites HTML au lieu de vérifier uniquement les parties de requête des URL.
  • Vérifier les en-têtes de requête : si la vérification des en-têtes de requête est activée, le Web App Firewall examine les en-têtes des demandes d’attaques de script intersite HTML, au lieu de simplement les URL. Si vous utilisez l’interface graphique, vous pouvez activer ce paramètre dans l’onglet Paramètres du profil Pare-feu de l’application Web.
  • InspectQueryContentTypes : si l’inspection de requête est configurée, le pare-feu d’application examine la requête des requêtes d’attaques de script intersite pour les types de contenu spécifiques. Si vous utilisez l’interface graphique, vous pouvez configurer ce paramètre dans l’onglet Paramètres du profil Pare-feu de l’application.

Important

Dans le cadre des modifications apportées à la diffusion en continu, le traitement du Web App Firewall des balises de script intersite a été modifié. Cette modification s’applique aux versions 11.0 ultérieures. Cette modification est également pertinente pour les versions d’amélioration de 10.5.e qui prennent en charge le streaming côté demande. Dans les versions antérieures, la présence de crochets ouverts (<), or close bracket (>) ou de crochets ouverts et fermés (<>) était signalée comme violation de script intersite. Le comportement a changé dans les versions qui incluent la prise en charge de la diffusion côté demande. Seul le caractère rapproché (>) n’est plus considéré comme une attaque. Les requêtes sont bloquées même lorsqu’un caractère entre crochets ouverts (<) est présent et est considéré comme une attaque. L’attaque de script inter-site est signalée.

Scripting inter-site Relaxations à grain fin

Le Web App Firewall vous permet d’exempter un champ de formulaire, un en-tête ou un cookie spécifique de la vérification de l’inspection des scripts intersites. Vous pouvez contourner complètement l’inspection d’un ou plusieurs de ces champs en configurant des règles de relaxation.

Le Web App Firewall vous permet de renforcer la sécurité en affinant les règles de relaxation. Une application peut nécessiter la flexibilité nécessaire pour autoriser des modèles spécifiques, mais la configuration d’une règle de relaxation pour contourner l’inspection de sécurité peut rendre l’application vulnérable aux attaques, car le champ cible est exempté de l’inspection pour tout modèle d’attaque de script intersite. La relaxation fine de script inter-site permet d’autoriser des attributs, des balises et des motifs spécifiques. Le reste des attributs, des balises et des motifs sont bloqués. Par exemple, le Web App Firewall dispose actuellement d’un ensemble par défaut de plus de 125 modèles refusés. Étant donné que les pirates peuvent utiliser ces modèles dans des attaques de script inter-sites, le Web App Firewall les signale comme des menaces potentielles. Vous pouvez vous détendre un ou plusieurs modèles considérés comme sûrs pour l’emplacement spécifique. Les autres modèles de script intersite potentiellement dangereux sont toujours vérifiés pour l’emplacement cible et continuent à déclencher les violations de contrôle de sécurité. Vous avez maintenant un contrôle beaucoup plus serré.

Les commandes utilisées dans les relaxations ont des paramètres facultatifs pour Type de valeur et Expression de valeur. Le type de valeur peut être laissé vide ou vous avez la possibilité de sélectionner Balise, Attribut ou Motif. Si vous laissez le type de valeur vide, le champ configuré de l’URL spécifiée est exempté de l’inspection de vérification de script inter-site. Si vous sélectionnez un type de valeur, vous devez fournir une expression de valeur. Vous pouvez spécifier si l’expression de valeur est une expression régulière ou une chaîne littérale. Lorsque l’entrée est mise en correspondance avec la liste autorisée et refusée, seules les expressions spécifiées configurées dans les règles de relaxation sont exemptées.

Le Web App Firewall contient les listes intégrées suivantes de script intersite :

  1. Attributs autorisés XSS : Il existe 52 attributs autorisés par défaut, tels que, abbr, accesskey, align, alt, axis, bgcolor, border, remplissage de cellule, espacement des cellules, char, charoff, jeu de caractères et ainsi de suite
  2. Balises autorisées XSS : Il existe 47 balises autorisées par défaut, telles que**,** address, basefont, bgsound, big, blockquote, bg, br, légende, centre, citez, dd, del et ainsi de suite
  3. Modèles refusés XSS : Il existe 129 modèles refusés par défaut, tels que FSCommand, javascript :, OnAbort, OnActivate et ainsi de suite

Avertissement

Les URL d’action du Web App Firewall sont des expressions régulières. Lorsque vous configurez des règles de relaxation de script inter-site HTML, vous pouvez spécifier Nomet Expression de valeurcomme étant littérale ou RegEx. Les expressions régulières sont puissantes. Surtout si vous n’êtes pas familier avec les expressions régulières au format PCRE, vérifiez les expressions régulières que vous écrivez. Assurez-vous qu’ils définissent exactement la règle que vous souhaitez ajouter en tant qu’exception, et rien d’autre. L’utilisation négligente des caractères génériques, et en particulier de la combinaison de métacaractres/caractères génériques (.*), peut avoir des résultats que vous ne voulez pas, comme bloquer l’accès au contenu Web que vous n’aviez pas l’intention de bloquer ou autoriser une attaque que la vérification de script inter-site HTML aurait autrement bloquée.

Points à considérer :

  • L’expression de valeur est un argument facultatif. Un nom de champ peut ne pas avoir d’expression de valeur.
  • Un nom de champ peut être lié à plusieurs expressions de valeur.
  • Un type de valeur doit être attribué aux expressions de valeur. Le type de valeur de script intersite peut être : 1) Balise, 2) Attribut ou 3) Pattern.
  • Vous pouvez avoir plusieurs règles de relaxation par combinaison nom/URL de champ
  • Les noms des champs de formulaire et les URL d’action ne sont pas sensibles à la casse.

Utilisation de la ligne de commande pour configurer la vérification HTML cross-site Scripting

Pour configurer les actions de vérification HTML Cross-Site Scripting et d’autres paramètres à l’aide de la ligne de commande

Si vous utilisez l’interface de ligne de commande, vous pouvez entrer les commandes suivantes pour configurer la vérification de script inter-site HTML :

  • définir le profil appfw “Description des paramètres fournie en bas de la page.”)
  • <name> -crossSiteScriptingAction (([block] [learn] [log] [stats]) | [**none**])
  • définir le profil appfw “Description des paramètres fournie en bas de la page.”)
  • <name> **-crossSiteScriptingTransformUnsafeHTML** (ON | OFF)
  • définir le profil appfw Description des paramètres fournie en bas de la page.
  • <name> -crossSiteScriptingCheckCompleteURLs (ON | OFF)
  • définir le profil appfw Description des paramètres fournie en bas de la page.
  • <name> - checkRequestHeaders (ON | OFF) Description des paramètres fournie en bas de la page.”
  • <name> - CheckRequestQueryNonHtml (ON | OFF) Description des paramètres fournie en bas de la page.”

Pour configurer une règle de relaxation HTML Cross-Site Scripting, vérifiez à l’aide de la ligne de commande

Utilisez la commande bind ou unbind pour ajouter ou supprimer une liaison, comme suit :

  • bind appfw profile <name> -crossSiteScripting <String> [isRegex (REGEX | NOTREGEX)] <formActionURL> [-location <location>] [-valueType (Tag|Attribute|Pattern) [<valueExpression>] [-isValueRegex (REGEX | NOTREGEX) ]]
  • unbind appfw profile <name> -crossSiteScripting <String> <formActionURL> [-location <location>] [-valueType (Tag |Attribute|Pattern) [<valueExpression>]]

Utilisation de l’interface graphique pour configurer la vérification de script inter-site HTML

Dans l’interface graphique, vous pouvez configurer la vérification HTML Cross-Site Scripting dans le volet du profil associé à votre application.

Pour configurer ou modifier la vérification HTML Cross-Site Scripting à l’aide de l’interface graphique

  1. Accédez à Application Firewall > Profils, mettez en surbrillance le profil cible et cliquez sur Modifier.
  2. Dans le volet Paramètres avancés, cliquez sur Vérifications de sécurité.

La table de vérification de sécurité affiche les paramètres d’action actuellement configurés pour tous les contrôles de sécurité. Vous avez 2 options de configuration :

a. Si vous souhaitez activer ou désactiver les actions Bloquer, Journal, Statistiqueset Apprendre pour le script intersite HTML, vous pouvez activer ou désactiver les cases à cocher dans le tableau, cliquez sur OK, puis cliquez sur Enregistrer et Fermer sur fermez le volet Contrôle de sécurité.

b. Si vous souhaitez configurer des options supplémentaires pour cette vérification de sécurité, double-cliquez sur HTML Cross-Site Scripting, ou sélectionnez la ligne et cliquez sur Paramètres d’action, pour afficher les options suivantes :

Transformer des scripts intersites—Transformer des balises de script non sécurisées.

Vérifier les URL complètes pour les scripts inter-sites : au lieu de vérifier uniquement la partie requête de l’URL, vérifiez l’URL complète pour les violations de script inter-sites.

Après avoir modifié l’un des paramètres ci-dessus, cliquez sur OK pour enregistrer les modifications et revenir au tableau Vérifications de sécurité. Vous pouvez procéder à la configuration d’autres vérifications de sécurité si nécessaire. Cliquez sur OK pour enregistrer toutes les modifications apportées dans la section Vérifications de sécurité, puis cliquez sur Enregistrer et fermer pour fermer le volet Contrôle de sécurité.

Pour activer ou désactiver le paramètre Vérifier l’en-tête de demande, dans le volet Paramètres avancés, cliquez sur Paramètres du profil. Dans Paramètres communs, activez ou désactivez la case à cocher Vérifier les en-têtes de demande. Cliquez sur OK. Vous pouvez utiliser l’icône X située en haut à droite du volet Paramètres du profil pour fermer cette section ou, si vous avez terminé de configurer ce profil, vous pouvez cliquer sur Terminé **pour revenir au **Pare-feu d’application > Profil.

Pour activer ou désactiver le paramètre Vérifier la requête Requête non HTML, dans le volet Paramètres avancés, cliquez sur Paramètres du profil. Dans Paramètres communs, Activez ou désactivez la case à cocher Requête non HTML de requête. Cliquez sur OK. Vous pouvez utiliser l’icône X en haut à droite du volet Paramètres du profil pour fermer cette section ou, si vous avez terminé de configurer ce profil, vous pouvez cliquer sur Terminé pour revenir au pare-feu de l’application > Profil.

Pour configurer une règle de relaxation de script cross-site HTML à l’aide de l’interface graphique

  1. Accédez à Application Firewall > Profils, mettez en surbrillance le profil cible et cliquez sur Modifier.
  2. Dans le volet Paramètres avancés, cliquez sur Règles de relaxation.
  3. Dans le tableau Règles de relaxation, double-cliquez sur l’entrée HTML Cross-Site Scripting, ou sélectionnez-la et cliquez sur Modifier.
  4. Dans la boîte de dialogue Règles de relaxation de script inter-site HTML, effectuez les opérations Ajouter, Modifier, Supprimer, Activer ou Désactiver pour les règles de relaxation.

Remarque

Lorsque vous ajoutez une nouvelle règle, le champ Expression de valeur n’est pas affiché, sauf si vous sélectionnez l’option Balise ou Attribut ou Modèle dans le champ Type de valeur.

Pour gérer les règles de relaxation HTML Cross-Site Scripting à l’aide du visualiseur

Pour obtenir une vue consolidée de toutes les règles de relaxation, vous pouvez mettre en surbrillance la ligne HTML Cross-Site Scripting dans le tableau Règles de relaxation, puis cliquer sur Visualiseur. Le visualiseur pour les relaxations déployées vous offre la possibilité d’ajouter une nouvelle règle ou de modifier une règle existante. Vous pouvez également activer ou désactiver un groupe de règles en sélectionnant un nœud et en cliquant sur les boutons correspondants dans le visualiseur de relaxation.

Pour afficher ou personnaliser les modèles de script inter-site à l’aide de l’interface graphique

Vous pouvez utiliser l’interface graphique pour afficher ou personnaliser la liste par défaut des attributs autorisés de script intersite ou des balises autorisées. Vous pouvez également afficher ou personnaliser la liste par défaut des modèles de script intersite refusés.

Les listes par défaut sont spécifiées dans Application Firewall > Signatures > Signaturespar défaut. Si vous ne liez aucun objet de signature à votre profil, la liste par défaut des scripts intersites autorisés et refusés spécifiée dans l’objet Signatures par défaut sera utilisée par le profil pour le traitement du contrôle de sécurité des scripts intersites. Les balises, attributs et motifs, spécifiés dans l’objet signatures par défaut, sont en lecture seule. Vous ne pouvez pas les modifier ou les modifier. Si vous souhaitez les modifier ou les modifier, faites une copie de l’objet Signatures par défaut pour créer un objet signature défini par l’utilisateur. Modifiez les listes autorisées ou refusées dans le nouvel objet de signature défini par l’utilisateur et utilisez cet objet de signature dans votre profil qui traite le trafic pour lequel vous souhaitez utiliser ces listes personnalisées autorisées et refusées.

Pour plus d’informations surSignatures, consultez la rubrique suivante.

  1. Pour afficher les modèles de script intersite par défaut :

a. Accédez à Application Pare-feu > Signatures, sélectionnez Signatures par défaut, puis cliquez sur Modifier. Cliquez ensuite sur Gérer les modèles SQL/XSS.

Le tableau Gérer les chemins SQL/XSS affiche les trois lignes suivantes relatives aux scripts intersites :

xss/allowed/attribute

xss/allowed/tag

xss/denied/pattern

b. Sélectionnez une ligne et cliquez sur Gérer les éléments pour afficher les éléments de script intersite correspondants (balise, attribut, modèle) utilisés par la vérification de script cross-site Web App Firewall.

  1. Pour personnaliser les éléments XSS : vous pouvez modifier l’objet signature défini par l’utilisateur pour personnaliser la balise autorisée, les attributs autorisés et les motifs refusés. Vous pouvez ajouter de nouvelles entrées ou supprimer celles qui existent déjà.

a. Accédez à Application Firewall > Signatures, mettez en surbrillance la signature définie par l’utilisateur cible, puis cliquez sur Modifier. Cliquez sur Gérer les modèles SQL/XSS pour afficher la table Gérer les chemins SQL/XSS.

b. Sélectionnez la ligne de script intersite cible.

i. Cliquez sur Gérer les élémentspour ajouter, modifier ou **supprimer l’élément de script intersite correspondant.

ii. Cliquez sur Supprimer pour supprimer la ligne sélectionnée.

Avertissement

Vous devez être prudent avant de supprimer ou de modifier un élément de script intersite par défaut, ou de supprimer le chemin d’accès XSS pour supprimer la ligne entière. Les règles de signature et la vérification de sécurité des scripts inter-sites reposent sur ces éléments pour détecter les attaques afin de protéger vos applications. La personnalisation des éléments XSS peut rendre votre application vulnérable aux attaques de script inter-site si le modèle requis est supprimé lors de la modification.

Utilisation de la fonctionnalité d’apprentissage avec la vérification de script inter-site HTML

Lorsque l’action d’apprentissage est activée, le moteur d’apprentissage du Web App Firewall surveille le trafic et apprend les violations déclenchées. Vous pouvez inspecter périodiquement ces règles apprises. Après avoir dûment pris en considération, vous pouvez déployer la règle apprise en tant que règle de relaxation du script cross-site HTML.

Amélioration del’apprentissage du script inter-site HTML : une améliorationde l’apprentissage du Web App Firewall a été introduite dans la version 11.0 du logiciel Citrix ADC. Pour déployer une relaxation de script cross-site HTML à grain fin, le Web App Firewall offre un apprentissage de script cross-site HTML à grain fin. Le moteur d’apprentissage formule des recommandations concernant le type de valeur observé (balise, attribut, modèle) et l’expression de valeur correspondante observée dans les champs de saisie. En plus de vérifier les demandes bloquées pour déterminer si la règle actuelle est trop restrictive et doit être assouplie, vous pouvez consulter les règles générées par le moteur de formation pour déterminer quels types de valeur et expressions de valeur déclenchent des violations et doivent être traitées dans les règles de relaxation.

Remarque

Le moteur d’apprentissage de Web App Firewall ne peut distinguer que les 128 premiers octets du nom. Si un formulaire comporte plusieurs champs dont les noms correspondent aux 128 premiers octets, le moteur d’apprentissage peut ne pas être en mesure de les distinguer. De même, la règle de relaxation déployée peut par inadvertance relâcher tous ces champs de l’inspection HTML Cross-Site Scripting. Conseil

Les balises de script intersite de plus de 12 caractères ne sont pas apprises ou enregistrées correctement.

Si vous avez besoin d’une longueur de tag plus grande pour apprendre, vous pouvez ajouter une grande balise non apparaissant dans le fichier AS_XSS_ALLOWED_TAGS_LIST pour la longueur ‘x ‘.

Pour afficher ou utiliser les données apprises à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez l’une des commandes suivantes :

  • show appfw learningdata <profilename> crossSiteScripting
  • rm appfw learningdata <profilename> -crossSiteScripting <string> <formActionURL> [<location>] [<valueType> <valueExpression>]
  • export appfw learningdata <profilename> **crossSiteScripting*

Pour afficher ou utiliser les données apprises à l’aide de l’interface graphique

  1. Accédez à Application Firewall > Profils, mettez en surbrillance le profil cible et cliquez sur Modifier.
  2. Dans le volet Paramètres avancés, cliquez sur Règles apprises. Vous pouvez sélectionner l’entrée HTML Cross-Site Scripting dans le tableau Règles apprises et double-cliquer dessus pour accéder aux règles apprises. Le tableau affiche les colonnes Nom du champ,URL A ction, Typede valeur, Valeur et **Hits . Vous pouvez déployer les règles apprises ou modifier une règle avant de la déployer en tant que règle de relaxation. Pour ignorer une règle, vous pouvez la sélectionner et cliquer sur le bouton Ignorer. Vous ne pouvez modifier qu’une seule règle à la fois, mais vous pouvez sélectionner plusieurs règles à déployer ou à ignorer.

Vous avez également la possibilité d’afficher une vue résumée des relaxations apprises en sélectionnant l’entrée HTML Cross-Site Scripting dans le tableau Règles apprises et en cliquant sur Visualiseur pour obtenir une vue consolidée de toutes les violations apprises. Le visualiseur facilite la gestion des règles apprises. Il présente une vue complète des données sur un seul écran et facilite l’action sur un groupe de règles en un seul clic. Le plus grand avantage du visualiseur est qu’il recommande des expressions régulières pour consolider plusieurs règles. Vous pouvez sélectionner un sous-ensemble de ces règles, en fonction du délimiteur et de l’URL Action. Vous pouvez afficher 25, 50 ou 75 règles dans le visualiseur, en sélectionnant le nombre dans une liste déroulante. Le visualiseur des règles apprises offre la possibilité de modifier les règles et de les déployer en tant que relaxations. Ou vous pouvez ignorer les règles pour les ignorer.

Utilisation de la fonction de journal avec la vérification de script inter-site HTML

Lorsque l’action du journal est activée, les violations de vérification de sécurité HTML Cross-Site Scripting sont enregistrées dans le journal d’audit en tant que violations APPFW_XSS. Le Web App Firewall prend en charge les formats de journaux natifs et CEF. Vous pouvez également envoyer les journaux à un serveur syslog distant.

Pour accéder aux messages du journal à l’aide de la ligne de commande

Basculez vers le shell et recherchez les fichiers ns.logs dans le dossier /var/log/ pour accéder aux messages de journal relatifs aux violations de script inter-site HTML :

Shell tail -f /var/log/ns.log | grep APPFW_XSS

Exemple de message de journal des violations de vérification de sécurité cross-site Scripting au format de journal CEF

Jul 11 00:45:51 <local0.info> 10.217.31.98 CEF:0|Citrix|Citrix ADC|NS11.0|APPFW|\*\*APPFW_XSS\*\*|6|src=10.217.253.62 geolocation=Unknown spt=4840 method=GET request=http://aaron.stratum8.net/FFC/CreditCardMind.html?abc=%3Cdef%3E msg=\*\*Cross-site script check failed for field abc="Bad tag: def"\*\* cn1=133 cn2=294 cs1=pr_ffc cs2=PPE1 cs3=eUljypvLa0BbabwfGVE52Sewg9U0001 cs4=ALERT cs5=2015 act=\*\*not blocked\*\*

Exemple d’un message de journal de violation de vérification de sécurité Cross-Site Scripting au format journal natif montrant une action de transformation

Jul 11 01:00:28 <local0.info> 10.217.31.98 07/11/2015:01:00:28 GMT ns 0-PPE-0 : default APPFW \*\*APPFW_XSS\*\* 132 0 :  10.217.253.62 392-PPE0 eUljypvLa0BbabwfGVE52Sewg9U0001 pr_ffc http://aaron.stratum8.net/FFC/login.php?login_name=%3CBOB%3E&passwd=&drinking_pref=on &text_area=&loginButton=ClickToLogin&as_sfid=AAAAAAVFqmYL68IGvkrcn2pzehjfIkm5E6EZ9FL8YLvIW_41AvAATuKYe9N7uGThSpEAxbb0iBx55jyvqOZNiVK_XwEPstMYvWHxfUWl62WINwRMrKsEDil-FC4llF \*\*Cross-site script special characters seen in fields <transformed>\*\*

Pour accéder aux messages du journal à l’aide de l’interface graphique

L’interface utilisateur graphique Citrix inclut un outil utile (Syslog Viewer) pour analyser les messages du journal. Vous disposez de plusieurs options pour accéder à la visionneuse Syslog :

  • Accédez au pare-feu des applications > Profils, sélectionnez le profil cible et cliquez sur Vérifications de sécurité. Mettez en surbrillance la ligne HTML Cross-Site Scripting, puis cliquez sur Journaux. Lorsque vous accédez aux journaux directement à partir de la vérification HTML Cross-Site Scripting du profil, l’interface graphique filtre les messages de journal et affiche uniquement les journaux relatifs à ces violations de vérification de sécurité.
  • Vous pouvez également accéder à la visionneuse Syslog en accédant à Citrix ADC > Système > Audit. Dans la section Messages d’audit, cliquez sur le lien Messages Syslog pour afficher Syslog Viewer, qui affiche tous les messages du journal, y compris les autres journaux des violations de contrôle de sécurité. Ceci est utile pour le débogage lorsque plusieurs violations de vérification de sécurité peuvent être déclenchées pendant le traitement de la demande.
  • Accédez à Application Firewall > Stratégies > Audit. Dans la section Messages d’audit, cliquez sur le lien Messages Syslog pour afficher Syslog Viewer, qui affiche tous les messages du journal, y compris les autres journaux des violations de contrôle de sécurité.

La visionneuse Syslog basée sur HTML fournit diverses options de filtre pour sélectionner uniquement les messages de journal qui vous intéressent. Pour sélectionner les messages de journal pour la vérification HTML Cross-Site Scripting, filtrez en sélectionnant APPFW dans les options déroulantes de Module. La liste Type d’événement offre un ensemble complet d’options pour affiner votre sélection. Par exemple, si vous activez la case à cocher APPFW_XSS et cliquez sur le bouton Appliquer, seuls les messages de journal relatifs aux violations de vérification de sécurité HTML Cross-Site Scripting apparaissent dans la visionneuse Syslog.

Si vous placez le curseur dans la ligne d’un message de journal spécifique, plusieurs options, telles que Module, Type d’événement, ID d’événement, IP du client, etc. apparaissent sous le message de journal. Vous pouvez sélectionner l’une de ces options pour mettre en surbrillance les informations correspondantes dans le message de journal.

Cliquez sur pour Déployer la fonctionnalité est disponible uniquement dans l’interface graphique. Vous pouvez utiliser la visionneuse Syslog non seulement pour afficher les journaux, mais aussi pour déployer des règles de relaxation HTML Cross-Site Scripting basées sur les messages de journal pour les violations de vérification de sécurité du Web App Firewall. Les messages de journal doivent être au format de journal CEF pour cette opération. Cliquez pour déployer la fonctionnalité est disponible uniquement pour les messages de journal générés par l’action Bloquer (ou non bloquer). Vous ne pouvez pas déployer une règle de relaxation pour un message de journal concernant l’opération de transformation.

Pour déployer une règle de relaxation à partir de la visionneuse Syslog, sélectionnez le message de journal. Une case à cocher s’affiche dans le coin supérieur droit de la case Visionneuse Syslog de la ligne sélectionnée. Activez la case à cocher, puis sélectionnez une option dans la liste Action pour déployer la règle de relaxation. Modifier et déployer, déployeret déployer toutsont disponibles en tant qu’options Action.

Les règles de script inter-site HTML déployées à l’aide de l’option Cliquez pour déployer n’incluent pas les recommandations de relaxation du grain fin.

Pour utiliser la fonctionnalité Cliquez pour déployer dans l’interface graphique

  1. Dans la visionneuse Syslog, sélectionnez APPFW dans les options du module.
  2. Sélectionnez APP_XSS comme type d’événement pour filtrer les messages de journal correspondants.
  3. Activez la case à cocher pour identifier la règle à déployer.
  4. Utilisez la liste déroulante d’options Action pour déployer la règle de relaxation.
  5. Vérifiez que la règle apparaît dans la section Règle de relaxation correspondante.

Statistiques pour les violations de script inter-site HTML

Lorsque l’action des statistiques est activée, le compteur de la vérification HTML Cross-Site Scripting est incrémenté lorsque le Web App Firewall prend une action pour cette vérification de sécurité. Les statistiques sont collectées pour le taux et le nombre total pour le trafic, les violations et les journaux. La taille d’un incrément du compteur de journaux peut varier en fonction des paramètres configurés. Par exemple, si l’action de blocage est activée, la demande d’une page contenant 3 violations de script inter-site HTML incrémente le compteur de statistiques d’un, car la page est bloquée dès que la première violation est détectée. Toutefois, si le bloc est désactivé, le traitement de la même demande incrémente le compteur de statistiques pour les violations et les journaux de trois, car chaque violation génère un message de journal distinct.

Pour afficher HTML Cross-Site Scripting, vérifiez les statistiques à l’aide de la ligne de commande

À l’invite de commandes, tapez :

> sh appfw stats

Pour afficher les statistiques d’un profil spécifique, utilisez la commande suivante :

> **stat appfw profile** <profile name>

Pour afficher les statistiques HTML Cross-Site Scripting à l’aide de l’interface graphique

  1. Accédez à Sécurité > Pare-feu d’application > Profils > Statistiques.
  2. Dans le volet droit, accédez au lien Statistiques.
  3. Utilisez la barre de défilement pour afficher les statistiques sur les violations et les journaux de script inter-site HTML. Le tableau des statistiques fournit des données en temps réel et est mis à jour toutes les 7 secondes.

Résumé

Notez les points suivants à propos de la vérification HTML Cross-Site Scripting :

  • Prise encharge intégrée de la protection contre les attaques par script inter-site HTML : le pare-feu Citrix Web App protège contre les attaques par script inter-site en surveillant une combinaison d’attributs et de balises autorisés, ainsi que des modèles refusés dans la charge utile reçue. Toutes les balises autorisées par défaut intégrées, les attributs autorisés et les modèles refusés utilisés par la vérification de script intersite sont spécifiées dans le fichier /netscaler/default_custom_settings.xml.
  • Personnalisation : vous pouvez modifier la liste par défaut de balises, d’attributs et de modèles pour personnaliser l’inspection de vérification de sécurité des scripts inter-site en fonction des besoins spécifiques de votre application. Effectuez une copie de l’objet signature par défaut, modifiez les entrées existantes ou ajoutez de nouvelles entrées. Liez cet objet signature à votre profil pour utiliser la configuration personnalisée.
  • Modèle de sécurité hybride : les signatures et les protections de sécurité profondes utilisent les modèles SQL/XSS spécifiés dans l’objet de signature lié au profil. Si aucun objet de signature n’est lié au profil, les motifs SQL/XSS présents dans l’objet de signature par défaut sont utilisés.
  • Transform—Notez ce qui suit à propos de l’opération de transformation :

L’opération de transformation fonctionne indépendamment des autres paramètres d’action de script inter-site. Si la transformation est activée et que les blocs, les journaux, les statistiques et les leçons sont tous désactivés, les balises de script intersite sont transformées.

Si l’action de blocage est activée, elle a priorité sur l’action de transformation.

  • Fine Grained Relaxation and Learning(Fine Grained Relaxation and Learning) : affinez la règle de relaxation pour détendre un sous-ensemble d’éléments de script intersite de l’inspection de contrôle de sécurité, tout en détectant Le moteur d’apprentissage recommande un type de valeur spécifique et des expressions de valeur basées sur les données observées.
  • Cliquez pour déployer : sélectionnez un ou plusieurs messages de journal de violation de script intersite dans la visionneuse syslog et déployez-les en tant que règles de relaxation.
  • Charset—Le jeu de caractères par défaut pour le profil doit être défini en fonction des besoins de l’application. Par défaut, le jeu de caractères de profil est défini sur Anglais US (ISO-8859-1). Si une demande est reçue sans le jeu de caractères spécifié, le Web App Firewall traite la demande comme si elle était ISO-8859-1. Le caractère entre crochets ouverts (<) or the close bracket character (>) ne sera pas interprété comme des balises XSS si ces caractères sont codés dans d’autres jeux de caractères. Par exemple, si une requête contient une chaîne de caractères UTF-8 « %uff1cscript%uff1emais que le jeu de caractères n’est pas spécifié sur la page de requête, la violation de script intersite peut ne pas être déclenchée sauf si le jeu de caractères par défaut du profil est spécifié en tant qu’Unicode.