Citrix ADC

Vérification de la protection par script intersite JSON

Si une charge utile JSON entrante contient des données de script intersite malveillantes, WAF bloque la demande. Les procédures suivantes expliquent comment configurer cela via les interfaces CLI et GUI.

Configurer la protection par script intersite JSON

Pour configurer la protection par script intersite JSON, vous devez effectuer les étapes suivantes :

  1. Ajoutez un profil de pare-feu d’application au format JSON.
  2. Configurer l’action de script intersite JSON pour bloquer la charge utile malveillante de script intersite

Ajouter un profil de pare-feu d’application de type JSON

Vous devez d’abord créer un profil qui spécifie comment le pare-feu d’application doit protéger votre contenu Web JSON contre les attaques de script intersite JSON.

À l’invite de commandes, tapez :

add appfw profile <name> -type (HTML | XML | JSON)

Remarque :

Lorsque vous définissez le type de profil sur JSON, les autres vérifications telles que HTML ou XML ne s’appliquent pas.

Exemple

add appfw profile profile1 –type JSON

Exemple de sortie pour violation de script intersite JSON

JSONcross-site scriptingAction: block log stats
Payload: {"username":"<a href="jAvAsCrIpT:alert(1)">X</a>","password":"xyz"}

Log message: Aug 19 06:57:33 <local0.info> 10.106.102.21 08/19/2019:06:57:33 GMT  0-PPE-0 : default APPFW APPFW_JSON_cross-site scripting 58 0 :  10.102.1.98 12-PPE0 - profjson http://10.106.102.24/ Cross-site script check failed for object value(with violation="Bad URL: jAvAsCrIpT:alert(1)") starting at offset(12). <blocked>

Counters
   1  357000                  1 as_viol_json_xss
   3  0                       1 as_log_json_xss
   5  0                       1 as_viol_json_xss_profile appfw__(profjson)
   7  0                       1 as_log_json_xss_profile appfw__(profjson)

<!--NeedCopy-->

Action Configurer les scripts intersites JSON

Vous devez configurer une ou plusieurs actions de script intersite JSON pour protéger votre application contre les attaques de script intersite JSON. À l’invite de commandes, tapez :

set appfw profile <name> - JSONcross-site scriptingAction [block] [log] [stats] [none]

Exemple

set appfw profile profile1 –JSONcross-site scriptingAction block

Les actions de script intersite disponibles sont les suivantes : Bloquer - Bloquer les connexions qui ne respectent pas ce contrôle de sécurité. Journal - Consigner les violations de cette vérification de sécurité. Stats - Générez des statistiques pour cette vérification de sécurité. Aucun : désactivez toutes les actions pour ce contrôle de sécurité.

Remarque : Pour activer une ou plusieurs actions, tapez « set appfw profile - JSONCross-site ScriptingAction » suivi des actions à activer.

Exemple

set appfw profile profile1 -JSONSQLInjectionAction block log stat

Configurer la protection par script intersite JSON (script intersite) à l’aide de l’interface graphique Citrix

Suivez la procédure ci-dessous pour définir les paramètres de protection par script intersite (script intersite).

  1. Dans le volet de navigation, accédez à Sécurité > Profils.
  2. Sur la page Profils, cliquez sur Ajouter.
  3. Sur la page Profil Citrix Web App Firewall, cliquez sur Contrôles de sécurité sous Paramètres avancés.
  4. Dans la section Vérifications de sécurité, accédez aux paramètres de script intersite JSON (script intersite) .
  5. Cliquez sur l’icône exécutable à côté de la case à cocher.

    Vérification de sécurité des scripts intersites JSON

  6. Cliquez sur Paramètres d’action pour accéder à la page Paramètres de script intersite JSON .
  7. Sélectionnez les actions de script intersite JSON.
  8. Cliquez sur OK.

    Vérification de sécurité des scripts intersites JSON

  9. Dans la page Profil de Citrix Web App Firewall, cliquez sur Règles de relaxation sous Paramètres avancés.
  10. Dans la section Règles de relaxation, sélectionnez Paramètres de script intersite JSON et cliquez sur Modifier.

    Vérification de sécurité des scripts intersites JSON

  11. Dans la page Règle de relaxation de script intersite JSON, cliquez sur Ajouter pour ajouter une règle de relaxation de script intersite JSON.
  12. Entrez l’URL à laquelle la demande doit être envoyée. Toutes les demandes envoyées à cette URL ne seront pas bloquées.
  13. Cliquez sur Créer.

    Vérification de sécurité des scripts intersites JSON

Configurer la relaxation fine pour les scripts intersites basés sur JSON

Le Web App Firewall vous permet d’assouplir une clé ou une valeur JSON spécifique de la vérification d’inspection par script intersite (XSS) basé sur JSON. Vous pouvez configurer plusieurs options pour détendre les charges utiles JSON à l’aide de règles de relaxation de grain fin. Auparavant, la seule façon de configurer des relaxations pour les contrôles de protection JSON était de spécifier l’URL complète, ce qui contournait la vérification de l’URL complète. La protection de sécurité SQL basée sur JSON fournit une relaxation pour les éléments suivants :

  • Noms des clés
  • Valeurs des clés

La protection par script intersite (XSS) basée sur JSON vous permet de configurer des relaxations qui autorisent des modèles spécifiques et bloquent le reste. Par exemple, le Web App Firewall possède actuellement un ensemble par défaut de plus de 100 mots-clés SQL. Étant donné que les pirates informatiques peuvent utiliser ces mots clés dans des attaques par injection SQL, le Web App Firewall les identifie tous comme des menaces potentielles. Si vous souhaitez assouplir un ou plusieurs mots clés considérés comme sûrs pour un emplacement spécifique, vous pouvez configurer une règle d’assouplissement qui peut contourner le contrôle de sécurité et bloquer le reste. Les commandes utilisées dans les relaxations ont des paramètres facultatifs pour le type de valeur et l’expression de valeur. Vous pouvez spécifier si l’expression de valeur est une expression régulière ou une chaîne littérale. Le type de valeur peut être laissé vide, ou vous pouvez sélectionner Mot-clé ou Chaîne spéciale.

Remarque :

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 l’URL 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 ou de la combinaison de caractères génériques points-astérisques (.*), peut avoir des résultats que vous ne souhaitez pas, 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 d’injection SQL JSON aurait autrement bloquée.

Points à prendre en compte

  • L’expression de valeur est un argument facultatif. Le nom d’un champ peut ne pas comporter d’expression de valeur.
  • Un nom de clé peut être lié à plusieurs expressions de valeur.
  • Les expressions de valeur doivent se voir attribuer un type de valeur. Les types de valeur sont balise, attribut et modèle.
  • Vous pouvez définir plusieurs règles de relaxation par combinaison de nom de clé/URL.

Configurer la relaxation du grain fin JSON pour les attaques par injection de script intersite (XSS) à l’aide de l’interface de commande

Pour configurer la règle de relaxation du grain du fichier JSON, vous devez lier les entités de relaxation de grain fin au profil Web App Firewall.

À l’invite de commandes, tapez :

bind appfw profile <profile name> -jsonxssURL <URL> -key <key name> -isregex <REGEX/NOTREGEX> -valueType <keyword/SpecialString> <value Expression> -isvalueRegex <REGEX/NOTREGEX>
<!--NeedCopy-->

Exemple :

bind appfw profile appprofile1 -jsonxssurl www.example.com -key name  -isRegex NOTREGEX -valueType Tag “sname” -isvalueRegex NOTREGEX
<!--NeedCopy-->

Pour configurer une règle de relaxation du grain fin par injection de script intersite (XSS) basée sur JSON à l’aide de l’interface graphique

  1. Accédez à Pare-feu d’application > Profils, sélectionnez un profil, puis cliquez sur Modifier.
  2. Dans le volet Paramètres avancés, cliquez sur Règles de relaxation.
  3. Dans la section Règles de relaxation, sélectionnez un enregistrement d’injection SQL JSON et cliquez sur Modifier.
  4. Dans le curseur Règles de relaxation des scripts intersites JSON, cliquez sur Ajouter.
  5. Dans la page Règle de relaxation des scripts intersites JSON, définissez les paramètres suivants.

    1. Activé
    2. Is Name Regex
    3. Nom de la clé
    4. URL
    5. Type de valeur
    6. Commentaires
    7. ID de ressource
  6. Cliquez sur Créer.

Relaxation du grain fin JSON pour les scripts intersites

Vérification de la protection par script intersite JSON