Citrix ADC

Vérification des scripts intersites HTML

La vérification Script intersite HTML (script intersite) examine à la fois les en-têtes et les corps POST des requêtes utilisateur pour détecter d’éventuelles attaques de script intersite. S’il trouve un script intersite, il modifie (transforme) la demande pour rendre l’attaque inoffensive ou bloque la demande.

Remarque :

La vérification Script intersite HTML (script intersite) fonctionne uniquement pour le type de contenu, la longueur du contenu, etc. Assurez-vous également que l’option « CheckRequestHeaders » est activée dans votre profil de pare-feu d’application Web.

Vous pouvez empêcher l’utilisation abusive des scripts sur vos sites Web protégés en utilisant les scripts de script intersite HTML qui enfreignent la même règle d’origine, qui stipule que les scripts ne doivent pas accéder au contenu ni le modifier sur aucun serveur, sauf le serveur sur lequel ils se trouvent. 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 les scripts intersites constituent un problème de sécurité est qu’un serveur Web qui autorise le script intersite peut être attaqué à l’aide d’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 importante base installée de contenu Web amélioré par JavaScript qui enfreint la même règle d’origine. Si vous activez la vérification de script intersite HTML sur un tel site, vous devez générer les exceptions appropriées afin que la vérification ne bloque pas les activités légitimes.

Le Web App Firewall propose diverses options d’action pour mettre en œuvre la protection par script intersite HTML. Outre les actions Bloquer, Consigner, Statistiques et Apprendre, vous avez également la possibilité de Transformer les scripts intersites afin de neutraliser une attaque par l’entité encodant les balises de script dans la demande soumise. Vous pouvez configurer le paramètre Vérifier les URL complètes pour le script intersite afin de spécifier si vous souhaitez inspecter non seulement les paramètres de requête, mais également l’URL complète pour détecter une attaque de script intersite. Vous pouvez configurer le paramètre InspectQueryContentTypes pour inspecter la partie requête de demande pour l’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.

Pour configurer une protection par script intersite HTML optimisée pour votre application, configurez l’une des actions suivantes :

  • 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 demande.
  • Journal : si vous activez la fonctionnalité de journal, la vérification de script intersite HTML génère des messages de journal indiquant les actions qu’elle entreprend. Si le blocage 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, 1 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.
  • Stats : si elle est activée, la fonctionnalité de statistiques collecte 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 demandes légitimes sont bloquées, vous devrez peut-être revoir la configuration pour voir si vous devez configurer les nouvelles règles de relaxation ou modifier celles existantes.
  • Learn—Si vous n’êtes pas sûr des règles de relaxation qui conviennent le mieux à votre application, vous pouvez utiliser la fonction d’apprentissage pour générer des recommandations de règles de script intersite 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 des avantages optimaux sans compromettre les performances, vous pouvez activer l’option d’apprentissage pendant une courte période afin d’obtenir un exemple 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 intersite HTML :
    • Crochet angulaire gauche (<) en équivalent d’entité de caractères HTML (<)
    • Crochet droit (>) en équivalent d’entité de caractères HTML (>)

Cela garantit que les navigateurs n’interprètent pas les balises HTML non sécurisées, 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 demande, tous les caractères spéciaux présents dans les en-têtes de demande sont également modifiés. Si les scripts de votre site Web protégé contiennent des fonctionnalités de script intersite, mais que votre site Web ne dépend pas de ces scripts pour fonctionner correctement, vous pouvez désactiver le blocage et activer la transformation en toute sécurité. Cette configuration garantit qu’aucun trafic Web légitime n’est bloqué, tout en arrêtant toute attaque de script intersite potentielle.

  • Vérifiez les URL complètes pour les scripts intersites. Si la vérification des URL complètes est activée, le Web App Firewall examine les URL entières à la recherche d’attaques de script intersite HTML au lieu de vérifier uniquement les parties de requête des URL.
  • Vérifiez les en-têtes de demande. Si la vérification des en-têtes de demande 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 Web App Firewall.
  • InspectQueryContentTypes. Si l’inspection des requêtes par requête est configurée, App Firewall examine la requête des demandes 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 App Firewall.

Important :

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

Script intersite Relaxations affinées

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

Le Web App Firewall vous permet d’implémenter une sécurité plus stricte en affinant les règles de relaxation. Une application peut avoir besoin de flexibilité pour autoriser des modèles spécifiques, mais la configuration d’une règle d’assouplissement pour contourner l’inspection de sécurité peut rendre l’application vulnérable aux attaques, car le champ cible est exempté d’inspection pour tout modèle d’attaque par script intersite. La relaxation affinée des scripts intersites offre la possibilité d’autoriser des attributs, des balises et des modèles spécifiques. Les autres attributs, balises et modèles sont bloqués. Par exemple, le Web App Firewall possède actuellement un ensemble par défaut de plus de 125 modèles refusés. Étant donné que les pirates informatiques peuvent utiliser ces modèles dans des attaques de script intersites, le Web App Firewall les signale comme des menaces potentielles. Vous pouvez détendre un ou plusieurs modèles considérés comme sûrs pour un endroit spécifique. Les autres modèles de script intersite potentiellement dangereux sont toujours vérifiés pour l’emplacement cible et continuent de déclencher les violations du 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 intersite. 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 possède les listes intégrées de script intersite suivantes :

  1. Attributs autorisés : 52 attributspar défaut sont autorisés, tels que, abbr, accesskey, align, alt, axis, bgcolor, border, remplissage de cellule, cellspacing, char, charoff, charset et ainsi de suite
  2. Balises autorisées : Il y a 47 balisesautorisées par défaut, telles que, address, basefont, bgsound, big, blockquote, bg, br, caption, center, **cite, **dd, del et ainsi de suite
  3. Modèles refusés de script intersite : 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 intersite HTML, vous pouvez spécifier Nameet Value Expression comme étant littéral ou RegEx. Les expressions régulières sont puissantes. Surtout si vous n’êtes pas très familier avec les expressions régulières au format PCRE, vérifiez toutes 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 imprudente de caractères génériques, et en particulier du métacaractère point-astérisque (.*) ou de la combinaison de caractères génériques, peut avoir des résultats indésirables, tels que le blocage de l’accès au contenu Web que vous n’aviez pas l’intention de bloquer ou l’autorisation d’une attaque que la vérification de script intersite HTML aurait autrement bloquée.

Points à considérer :

  • L’expression de valeur est un argument facultatif. Le nom d’un champ peut ne pas comporter d’expression de valeur.
  • Un nom de champ peut être lié à plusieurs expressions de valeur.
  • Les expressions de valeur doivent se voir attribuer un type de valeur. Le type de valeur de script intersite peut être : 1) Balise, 2) Attribut ou 3) Modèle.
  • Vous pouvez avoir plusieurs règles de relaxation par combinaison nom de champ/URL
  • 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 de script intersite HTML

Pour configurer le script intersite HTML, les actions de vérification 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 :

Pour configurer une règle de relaxation de script intersite HTML, vérifiez la règle de relaxation à 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 intersite HTML

Dans l’interface graphique, vous pouvez configurer la vérification de script intersite HTML dans le volet pour le profil associé à votre application.

Pour configurer ou modifier la vérification de script intersite HTML à l’aide de l’interface graphique

  1. Accédez à Pare-feu d’application > Profils, mettez en surbrillance le profil cible, puis cliquez sur Modifier.
  2. Dans le volet Paramètres avancés, cliquez sur Contrôles de sécurité.

Le tableau de contrôle de sécurité affiche les paramètres d’action actuellement configurés pour tous les contrôles de sécurité. Deux options de configuration s’offrent à vous :

a. Si vous souhaitez activer ou désactiver les actions Bloquer, Consigner, Statistiqueset Apprendre pour le script intersite HTML, vous pouvez activer ou désactiver les cases à cocher dans le tableau, cliquer sur OK, puis sur Enregistrer et fermer pour fermer le Volet de contrôle de sécurité .

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

Transformer les scripts intersites : transforme les balises de script non sécurisées.

Vérifier les URL complètes pour les scripts intersites : au lieu de vérifier uniquement la partie requête de l’URL, vérifiez que l’URL complète ne contient pas de violations de script intersite.

Après avoir modifié l’un des paramètres ci-dessus, cliquez sur OK pour enregistrer les modifications et revenir au tableau Contrôles de sécurité. Vous pouvez procéder à la configuration d’autres contrôles de sécurité si nécessaire. Cliquez sur OK pour enregistrer toutes les modifications que vous avez apportées dans la section Contrôles 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 En-tête de demande de vérification, 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 soit utiliser l’icône X en haut à droite du volet Paramètres du profil pour fermer cette section, soit, si vous avez fini de configurer ce profil, vous pouvez cliquer sur Terminé pour revenir à Application Firewall > Profil.

Pour activer ou désactiver le paramètre Requête de demande de vérification 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 de demande de vérification non HTML . Cliquez sur OK. Vous pouvez soit utiliser l’icône X en haut à droite du volet Paramètres du profil pour fermer cette section, soit, si vous avez fini de configurer ce profil, vous pouvez cliquer sur Terminé pour revenir à App Firewall > Profil.

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

  1. Accédez à Pare-feu d’application > Profils, mettez en surbrillance le profil cible, puis 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 Script intersite HTML, ou sélectionnez-la et cliquez sur Modifier.
  4. Dans la boîte de dialogue Règles de relaxation des scripts intersites HTML, effectuez des opérations Ajouter, Modifier, Supprimer, Activerou Désactiver pour les règles de relaxation.

Remarque

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

Pour gérer les règles de relaxation du script intersite HTML à l’aide du visualiseur

Pour obtenir une vue consolidée de toutes les règles de relaxation, vous pouvez mettre en surbrillance la ligne Script intersite HTML 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 intersite à 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 ou des balises autorisées pour les scripts intersites. Vous pouvez également afficher ou personnaliser la liste par défaut des modèles refusés par script intersite.

Les listes par défaut sont spécifiées dans Pare-feu d’application > Signatures > Signaturespar défaut. Si vous ne liez aucun objet de signature à votre profil, la liste des scripts intersites autorisés et refusés par défaut 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é du script intersite. Les balises, les attributs et les modèles, 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. Apportez des modifications aux listes autorisées ou refusées du 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 d’autorisation et de refus personnalisées.

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

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

Le tableau Gérer les chemins de script SQL/intersite affiche les trois lignes suivantes relatives au script intersite :

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 intersite du Web App Firewall.

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

a. Accédez à Pare-feu d’application > Signatures, mettez en surbrillance la signature définie par l’utilisateur cible, puis cliquez sur Modifier. Cliquez sur Gérer les modèles de script SQL/intersite pour afficher le tableau Gérer les chemins de script SQL/intersite .

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 de script intersite pour supprimer la ligne entière. Les règles de signature et le contrôle de sécurité du script intersite s’appuient sur ces éléments pour détecter les attaques afin de protéger vos applications. Personnalisation des scripts intersites Les éléments peuvent rendre votre application vulnérable aux attaques de script intersite si le modèle requis est supprimé pendant la modification.

Apprendre les violations de script intersite HTML (script intersite)

Lorsque l’apprentissage est activé, le moteur d’apprentissage Citrix Web App Firewall surveille le trafic et apprend les violations d’URL de script intersite. Vous pouvez inspecter régulièrement les règles d’URL de script intersite et les déployer en cas de faux positifs.

Remarque :

Dans une configuration de cluster, tous les nœuds doivent être de la même version pour déployer les règles d’URL de script intersite.

Dans le cadre de la configuration de l’apprentissage, le Web App Firewall propose un apprentissage détaillé du script intersite HTML. Le moteur d’apprentissage fait 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 d’apprentissage 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 du pare-feu 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 d’assouplissement déployée peut par inadvertance relâcher tous ces champs de l’inspection de script intersite HTML.

Conseil :

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

Si vous avez besoin d’une longueur de balise plus grande pour l’apprentissage, vous pouvez ajouter une grande balise non apparaissant dans la liste AS_Cross-site scripting_allowed_tags_List pour la longueur « x ».

Le processus d’apprentissage du script intersite HTML réduit les faux positifs dans les attaques par script intersite. Lorsque l’apprentissage est activé, vous pouvez apprendre toutes les violations d’une demande et éventuellement appliquer un assouplissement à plusieurs balises, attributs ou modèles sans avoir besoin de les répéter.

Par exemple, s’il y a 15 balises personnalisées dans une charge utile entraînant chacune une violation, vous pouvez appliquer la relaxation fine pour toutes les balises signalées comme violation, au lieu de répéter le processus pour appliquer la relaxation pour une balise à la fois.

Scénario 1 : Apprentissage activé et blocage activé : Dans ce scénario, l’appliance Citrix ADC apprend toutes les violations dans les balises/attributs/modèles personnalisés, et la demande est bloquée et chaque violation est consignée. Le comportement est cohérent pour les violations identifiées dans le champ de formulaire, l’en-tête ou le cookie.

Scénario 2 : Apprentissage activé et blocage désactivé : Dans ce scénario, l’appliance Citrix ADC apprend les violations dans les balises/attributs/modèles personnalisés et chacune des violations est consignée. La demande n’est pas bloquée. Le comportement est cohérent pour les violations identifiées dans le champ de formulaire, l’en-tête ou le cookie.

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*

Configurer la relaxation fine du script intersite pour contourner les balises personnalisées

Vous pouvez configurer la relaxation des scripts intersites dans le profil de pare-feu de l’application Web pour contourner les balises/attributs/modèles personnalisés qui ne figurent pas dans la liste verte. À l’invite de commandes, tapez :

bind appfw profile p1 -crossSiteScripting <string> <formActionURL> -valueType <valueType> <value expression>

Exemple :

bind appfw profile profile1 -crossSiteScripting formfield1 http://1.1.1.1 -valueType Tag tag1

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

  1. Accédez à Pare-feu d’application > Profils, mettez en surbrillance le profil cible, puis cliquez sur Modifier.
  2. Dans le volet Paramètres avancés, cliquez sur Règles apprises. Vous pouvez sélectionner l’entrée Script intersite HTML dans le tableau Règles apprises et double-cliquer dessus pour accéder aux règles apprises. Le tableau affiche les colonnes Nom de champ,URL d’action, Typede valeur, Valeuret Résultats . 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 annuler une règle, vous pouvez la sélectionner et cliquer sur le bouton Ignorer . Vous ne pouvez modifier qu’une règle à la fois, mais vous pouvez sélectionner plusieurs règles à déployer ou à ignorer.

Vous pouvez également afficher un résumé des relaxations apprises en sélectionnant l’entrée Script intersite HTML 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 la prise de mesures sur un groupe de règles en un seul clic. Le principal 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 d’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 sous forme d’assouplissements. Vous pouvez également ignorer les règles pour les ignorer.

Utilisation de la fonction de journalisation avec la vérification du script intersite HTML

Lorsque l’action de journalisation est activée, les violations de contrôle de sécurité du script intersite HTML sont consignées dans le journal d’audit en tant que violations de script intersite AppFW_intersite . 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

Passez au shell et terminez les fichiers ns.logs dans le dossier /var/log/ pour accéder aux messages de journal relatifs aux violations de script intersite HTML :

Shell tail -f /var/log/ns.log | grep APPFW_cross-site scripting

Exemple de message de journal de violation de vérification de sécurité de script intersite au format journal CEF :

Jul 11 00:45:51 <local0.info> 10.217.31.98 CEF:0|Citrix|Citrix ADC|NS11.0|APPFW|\*\*APPFW_cross-site scripting\*\*|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\*\*
<!--NeedCopy-->

Exemple de message de journal de violation de vérification de sécurité de script intersite au format journal natif indiquant l’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_cross-site scripting\*\* 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>\*\*
<!--NeedCopy-->

Accédez aux messages du journal à l’aide de l’interface graphique

L’interface graphique Citrix inclut un outil utile (Syslog Viewer) pour analyser les messages de 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, puis cliquez sur Contrôles de sécurité. Mettez en surbrillance la ligne Script intersite HTML et cliquez sur Journaux. Lorsque vous accédez aux journaux directement à partir de la vérification de script intersite HTML du profil, l’interface graphique filtre les messages du journal et affiche uniquement les journaux relatifs à ces violations de contrôle 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 la visionneuse Syslog, qui affiche tous les messages de journal, y compris les autres journaux de violation de contrôle de sécurité. Ceci est utile pour le débogage lorsque plusieurs violations de contrôle de sécurité peuvent être déclenchées pendant le traitement des demandes.
  • Accédez à Pare-feu des applications > Stratégies > Audit. Dans la section Messages d’audit, cliquez sur le lien Messages Syslog pour afficher la visionneuse Syslog, qui affiche tous les messages de journal, y compris les autres journaux de violation des contrôles 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 de script intersite HTML, filtrez en sélectionnant APPFW dans les options de la liste déroulante pour 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 Script intersite AppFW_Cross-site et que vous cliquez sur le bouton Appliquer, seuls les messages de journal relatifs aux violations de contrôle de sécurité du script intersite HTML apparaissent dans la visionneuse Syslog.

Si vous placez le curseur sur la ligne d’un message de journal spécifique, plusieurs options, telles que le module, le type d’événement, l’ID d’événement, l’adresse 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.

La fonctionnalitéCliquer pour déployer n’est disponible que dans l’interface graphique. Vous pouvez utiliser la visionneuse Syslog non seulement pour afficher les journaux, mais également pour déployer les règles de relaxation du script intersite HTML en fonction des messages de journal pour les violations de contrôle de sécurité du Web App Firewall. Les messages de journal doivent être au format de journal CEF pour cette opération. La fonctionnalité Cliquer pour déployer n’est disponible que pour les messages de journal générés par l’action Bloquer (ou ne pas bloquer). Vous ne pouvez pas déployer de 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 apparaît dans le coin supérieur droit de la case Syslog Viewer 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. Les optionsModifier et déployer, Déployeret Tout déployer sont disponibles en tant qu’options d’action .

Les règles de script intersite HTML qui sont déployées à l’aide de l’option Cliquez pour déployer n’incluent pas les recommandations de relaxation fine.

Configurer la fonctionnalité Cliquer pour déployer à l’aide de l’interface graphique

  1. Dans la visionneuse Syslog, sélectionnez APPFW dans les options du module .
  2. Sélectionnez le script App_Cross-site comme Type d’événement pour filtrer les messages de journal correspondants.
  3. Cochez la case 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 de règle de relaxation correspondante.

Statistiques relatives aux violations de script intersite HTML

Lorsque l’action de statistiques est activée, le compteur de la vérification de script intersite HTML est incrémenté lorsque le Web App Firewall effectue 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 intersite HTML incrémente le compteur de statistiques d’un, car la page est bloquée lorsque la première violation est détectée. Toutefois, si le bloc est désactivé, le traitement de la même demande incrémente de trois le compteur de statistiques pour les violations et les journaux, car chaque violation génère un message de journal distinct.

Pour afficher les statistiques de vérification du script intersite HTML à 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>

Afficher les statistiques de script intersite HTML à l’aide de l’interface graphique

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

Résumé

  • Prise en charge intégrée de la protection contre les attaques par script intersite HTML : Citrix Web App Firewall protège contre les attaques par script intersite en surveillant une combinaison d’attributs et de balises autorisés, ainsi que les 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és dans le fichier /netscaler/default_custom_settings.xml.
  • Personnalisation : vous pouvez modifier la liste par défaut des balises, des attributs et des modèles afin de personnaliser l’inspection du contrôle de sécurité du script intersite 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 de signature à votre profil pour utiliser la configuration personnalisée.
  • Modèle de sécurité hybride : les signatures et les protections de sécurité avancées utilisent les modèles de script SQL/intersite spécifiés dans l’objet de signature lié au profil. Si aucun objet de signature n’est lié au profil, les modèles de script SQL/intersite présents dans l’objet de signature par défaut sont utilisés.
  • Transform—Notez les points suivants concernant l’opération de transformation :

L’opération de transformation fonctionne indépendamment des autres paramètres d’action de script intersite. Si la transformation est activée et que le blocage, le journal, les statistiques et l’apprentissage 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.

  • Relaxation et apprentissage à grains fins. Affinez la règle de relaxation pour assouplir un sous-ensemble d’éléments de script intersite issus de l’inspection du contrôle de sécurité, mais détectez le reste. 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 du profil doit être défini en fonction des besoins de l’application. Par défaut, le jeu de caractères du profil est défini sur Anglais américain (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 s’il s’agissait de la norme ISO-8859-1. Le caractère de crochet ouvert (<) or the close bracket character (>) ne sera pas interprété comme des balises de script intersite si ces caractères sont codés dans d’autres jeux de caractères. Par exemple, si une demande contient une chaîne de caractères UTF-8 « %uff1cscript%uff1e » mais que le jeu de caractères n’est pas spécifié sur la page de demande, la violation de script intersite peut ne pas être déclenchée à moins que le jeu de caractères par défaut du profil ne soit spécifié comme Unicode.