Citrix ADC

Modèles de règles de signature

Vous pouvez ajouter un motif ou modifier un motif existant pour spécifier une chaîne ou une expression qui caractérise une attaque si la signature correspond. Pour détecter les motifs d’une attaque, vous pouvez examiner les journaux de votre serveur Web. Vous pouvez utiliser un outil pour observer les données de connexion en temps réel, ou obtenir la chaîne ou l’expression à partir d’un rapport tiers sur l’attaque.

Avertissement :

Tout nouveau modèle que vous ajoutez à une règle de signature se trouve dans une relation AND avec les modèles existants. N’ajoutez pas de modèle à une règle de signature existante si vous ne souhaitez pas qu’une attaque potentielle puisse correspondre à tous les modèles pour correspondre à la signature.

Chaque modèle peut être constitué d’une chaîne simple, d’une expression régulière au format PCRE ou d’une injection SQL intégrée ou d’un modèle de script intersite. Avant d’essayer d’ajouter un modèle basé sur une expression régulière, assurez-vous que vous comprenez les expressions régulières au format PCRE. Les expressions PCRE sont complexes et puissantes. Si vous ne comprenez pas comment ils fonctionnent, vous pouvez involontairement créer un motif qui correspond à quelque chose que vous ne vouliez pas (un faux positif) ou qui ne correspond pas à quelque chose que vous vouliez (un faux négatif).

Modèle de signature personnalisé pour les types de contenu autres que par défaut

Le Web App Firewall (WAF) Citrix ADC prend désormais en charge un nouvel emplacement pour inspecter le contenu canonisé. Par défaut, WAF ne bloque pas la charge utile codée avec les types de contenu autres que ceux par défaut. Lorsque ces types de contenu sont mis en liste blanche et qu’aucune action configurée n’est appliquée, la vérification de la protection des scripts SQL et intersite ne filtre pas les attaques de script SQL ou intersite dans les charges utiles encodées. Pour résoudre le problème, un utilisateur peut créer une règle de signature personnalisée avec ce nouvel emplacement (HTTP_CANON_POST_BODY) qui examine les charges utiles codées pour les types de contenu autres que par défaut et s’il y a une attaque de script SQL ou intersite, il bloque le trafic après canonisation du corps de publication.

Remarque :

Cette prise en charge n’est applicable que pour les requêtes HTTP.

Si vous n’êtes pas déjà familier avec les expressions régulières au format PCRE, vous pouvez utiliser les ressources suivantes pour apprendre les bases ou pour obtenir de l’aide sur un problème spécifique :

  • « Maîtriser les expressions régulières », Troisième édition. Copyright (c) 2006 par Jeffrey Friedl. O’Reilly Media, ISBN : 9780596528126.
  • « Regular Expressions Cookbook ». Copyright (c) 2009 par Jan Goyvaerts et Steven Levithan. O’Reilly Media, ISBN : 9780596520687
  • Page de manuel PCRE/spécification (texte/officiel) : "<http://www.pcre.org/pcre.txt>"
  • Page de manuel PCRE/spécification (html/gammon.edu.au) : "<http://www.gammon.com.au/pcre/index.html>"
  • Entrée PCRE Wikipedia : « [http://en.wikipedia.org/wiki/PCRE] (http://en.wikipedia.org/wiki/pcre) »
  • Liste de diffusion PCRE (gérée par exim.org) : <http://lists.exim.org/mailman/listinfo/pcre-dev>"

Si vous devez encoder des caractères non ASCII dans une expression régulière au format PCRE, la plate-forme Citrix ADC prend en charge le codage des codes hexadécimaux UTF-8. Pour de plus amples informations, consultez Format de codage de caractères PCRE.

Pour configurer un modèle de règle de signature

  1. Accédez à Sécurité > Pare-feu d’application > Signatures.
  2. Dans le volet d’informations, sélectionnez l’objet signatures que vous souhaitez configurer, puis cliquez sur Ouvrir.
  3. Dans la boîte de dialogue Modifier l’objet Signatures, au milieu de l’écran, sous la fenêtre Résultats filtrés, cliquez sur Ajouter pour créer une règle de signature, ou sélectionnez une règle de signature existante et cliquez sur Ouvrir.

    Remarque :

    Vous ne pouvez modifier que les règles de signature que vous avez ajoutées. Vous ne pouvez pas modifier les règles de signature par défaut.

    Selon votre action, la boîte de dialogue Ajouter une règle de signature locale ou Modifier une règle de signature locale s’affiche. Les deux boîtes de dialogue ont le même contenu.

  4. Dans la fenêtre Motifs de la boîte de dialogue, cliquez sur Ajouter pour ajouter un nouveau motif ou sélectionnez un motif existant dans la liste située sous le bouton Ajouter, puis cliquez sur Ouvrir. Selon votre action, la boîte de dialogue Créer un modèle de règle de signature ou Modifier le modèle de règle de signature s’affiche. Les deux boîtes de dialogue ont le même contenu.
  5. Dans la liste déroulante Type de motif, choisissez le type de connexion auquel le motif doit correspondre.

    • Si le modèle est conçu pour correspondre à des éléments ou des fonctionnalités de requête, tels que du code SQL injecté, des attaques sur des formulaires Web, des scripts intersites ou des URL inappropriées, choisissez Request.
    • Si le motif est conçu pour correspondre à des éléments ou des fonctions de réponse, tels que des numéros de carte de crédit ou des objets sûrs, choisissez Réponse.
  6. Dans la zone Emplacement, définissez les éléments à examiner avec ce motif. La zone Emplacement décrit les éléments de la requête ou de la réponse HTTP à examiner pour ce modèle. Les choix qui apparaissent dans la zone Emplacement dépendent du type de répétition choisi. Si vous avez choisi Request comme type de modèle, les éléments pertinents pour les requêtes HTTP apparaissent. Si vous avez choisi Réponse, les éléments pertinents pour les réponses HTTP apparaissent. En outre, lorsque vous choisissez une valeur dans la liste déroulante Zone, les parties restantes de la zone Emplacement changent de manière interactive. Voici tous les éléments de configuration qui peuvent apparaître dans cette section.

    • Zone. Liste déroulante des éléments qui décrivent une partie particulière de la connexion HTTP. Les choix sont les suivants :
      • HTTP_ANY. Toutes les parties de la connexion HTTP.
      • HTTP_COOKIE Tous les cookies dans les en-têtes de requête HTTP après toute transformation de cookie est effectuée. Remarque : Ne recherche pas les en-têtes de réponse HTTP “Set-Cookie:”.
      • HTTP_FORM_FIELD. Champs de formulaire et leur contenu, après décodage d’URL, décodage de pourcentage et suppression des espaces excédentaires. Vous pouvez utiliser la<Location> balise pour restreindre davantage la liste des noms de champs de formulaire à rechercher.
      • HTTP_HEADER. Les parties de valeur de l’en-tête HTTP après toute transformation de script intersite ou de décodage d’URL.
      • HTTP_METHOD. Méthode de requête HTTP.
      • HTTP_ORIGIN_URL. URL d’origine d’un formulaire Web.
      • HTTP_POST_BODY. Corps de publication HTTP et données de formulaire Web qu’il contient.
      • HTTP_RAW_COOKIE. Tous les cookies de requête HTTP, y compris la partie nom « Cookie : ». Remarque : Ne recherche pas les en-têtes de réponse HTTP “Set-Cookie:”.
      • HTTP_RAW_HEADER. En-tête HTTP entier, avec des en-têtes individuels séparés par des caractères de saut de ligne (n) ou des chaînes de retour chariot/saut de ligne (rn).
      • HTTP_RAW_RESP_HEADER. L’ensemble de l’en-tête de réponse, y compris les parties de nom et de valeur de l’en-tête de réponse après la transformation de l’URL, ainsi que l’état de la réponse complète. Comme pour HTTP_RAW_HEADER, les en-têtes individuels sont séparés par des caractères de saut de ligne (n) ou des chaînes de retour chariot/saut de ligne (rn).
      • HTTP_RAW_SET_COOKIE. L’en-tête Set-Cookie entier après toutes les transformations d’URL ont été effectuées Remarque : la transformation d’URL peut modifier à la fois les parties domaine et chemin de l’en-tête Set-Cookie.
      • HTTP_RAW_URL. Toute l’URL de requête avant toute transformation d’URL est effectuée, y compris toute partie de requête ou de fragment.
      • HTTP_RESP_HEADER. La partie valeur des en-têtes de réponse complète après toute transformation d’URL a été effectuée.
      • HTTP_RESP_BODY. Le corps de la réponse HTTP
      • HTTP_SET_COOKIE. Tous les en-têtes « Set-Cookie » dans les en-têtes de réponse HTTP.
      • HTTP_STATUS_CODE. Code d’état HTTP.
      • HTTP_STATUS_MESSAGE. Message d’état HTTP.
      • HTTP_URL. La partie valeur de l’URL dans les en-têtes HTTP, à l’exclusion des ports de requête ou de fragment, après conversion au jeu de caractères UTF-*, décodage d’URL, suppression des espaces et conversion des URL relatives en absolues. N’inclut pas le décodage d’entité HTML.
      • URL. Examine toutes les URL trouvées dans les éléments spécifiés par le paramètre Area. Sélectionnez l’un des paramètres suivants.
      • Any. Vérifie toutes les URL.
      • Littéral. Vérifie les URL qui contiennent une chaîne littérale. Une fois que vous avez sélectionné Littéral, une zone de texte s’affiche. Tapez la chaîne littérale souhaitée dans la zone de texte.
      • PCRE. Vérifie les URL qui correspondent à une expression régulière au format PCRE. Après avoir sélectionné ce choix, la fenêtre d’expression régulière s’affiche. Tapez l’expression régulière dans la fenêtre. Vous pouvez utiliser les jetons Regex pour insérer des éléments d’expression régulière communs au niveau du curseur, ou vous pouvez cliquer sur Éditeur Regex pour afficher la boîte de dialogue Éditeur d’expression régulière, qui fournit plus d’aide pour la construction de l’expression régulière souhaitée.
      • Expression. Vérifie les URL qui correspondent à une expression par défaut de Citrix ADC.
      • Nom du champ. Examine tous les noms de champs de formulaire trouvés dans les éléments spécifiés par la sélection Zone. Any. Vérifie toutes les URL.
      • Littéral. Vérifie les URL qui contiennent une chaîne littérale. Une fois que vous avez sélectionné Littéral, une zone de texte s’affiche. Tapez la chaîne littérale souhaitée dans la zone de texte.
      • PCRE. Vérifie les URL qui correspondent à une expression régulière au format PCRE. Après avoir sélectionné ce choix, la fenêtre d’expression régulière s’affiche. Tapez l’expression régulière dans la fenêtre. Vous pouvez utiliser les jetons Regex pour insérer des éléments d’expression régulière communs ou vous pouvez utiliser l’éditeur Regex pour obtenir de l’aide dans la construction d’une expression régulière souhaitée.
      • Expression. Vérifie les URL qui correspondent à une expression par défaut de Citrix ADC.
  7. Dans la zone Motif, définissez la répétition. Un motif est une chaîne littérale ou une expression régulière au format PCRE qui définit le motif que vous souhaitez faire correspondre. La zone Motif contient les éléments suivants : - Correspondance. Liste déroulante des méthodes de recherche que vous pouvez utiliser pour la signature. Cette liste diffère selon que le type de motif est Request ou Réponse.

    Types de correspondance de demande PCRE. Expression régulière au format PCRE.

    Remarque :

    Lorsque vous choisissez PCRE, les outils d’expression régulière situés sous la fenêtre Motif sont activés. Ces outils ne sont pas utiles pour la plupart des autres types de modèles.

    • Injection. Indique au Web App Firewall de rechercher le SQL injecté à l’emplacement spécifié. La fenêtre Motif disparaît, car le Web App Firewall possède déjà les modèles pour l’injection SQL.

    • CrossSiteScripting. Indique au pare-feu de l’application Web de rechercher des scripts intersites à l’emplacement spécifié. La fenêtre Motif disparaît, car le Web App Firewall possède déjà les modèles pour les scripts intersites.

    • Expression. Une expression dans le langage d’expressions par défaut Citrix ADC est le même langage d’expression pour la création de stratégies de Web App Firewall sur l’appliance Citrix ADC. Bien que le langage d’expressions Citrix ADC ait été initialement développé pour les règles de stratégie, il s’agit d’un langage à usage général hautement flexible qui peut également être utilisé pour définir un modèle de signature.

    Lorsque vous choisissez Expression, l’éditeur Citrix ADC Expression s’affiche sous la fenêtre Motif. Pour plus d’informations sur l’Éditeur d’expression et des instructions sur son utilisation, voirPour ajouter une règle de pare-feu (expression) à l’aide de la boîte de dialogue Ajouter une expression

    Types de correspondance de réponse :

    -  Littéral. Une chaîne littérale
    -  PCRE. Expression régulière au format PCRE.
    

    Remarque

    Lorsque vous choisissez PCRE, les outils d’expression régulière situés sous la fenêtre Motif sont activés. Ces outils ne sont pas utiles pour la plupart des autres types de modèles.

    • Carte de crédit. Modèle intégré pour correspondre à l’un des six types de numéro de carte de crédit pris en charge.

    Remarque :

    Le type de correspondance Expression n’est pas disponible pour les signatures côté réponse.

    • Fenêtre de répétition (sans étiquette)

    Dans cette fenêtre, tapez le motif que vous souhaitez faire correspondre et remplissez toutes les données supplémentaires.

    • Littéral. Tapez la chaîne à rechercher dans la zone de texte.
    • CRE. Tapez l’expression régulière dans la zone de texte. Utilisez l’éditeur Regex pour obtenir plus d’aide dans la construction de l’expression régulière souhaitée, ou les jetons Regex pour insérer des éléments d’expression régulière communs au curseur. Pour activer les caractères UTF-8, cliquez sur UTF-8.
    • Expression. Tapez l’expression avancée Citrix ADC dans la zone de texte. Utilisez Préfixe pour choisir le premier terme dans votre expression ou Opérateur pour insérer des opérateurs communs au curseur. Cliquez sur Ajouter pour ouvrir la boîte de dialogue Ajouter une expression pour obtenir plus d’aide dans la construction de l’expression régulière souhaitée. Cliquez sur Evaluer pour ouvrir Advanced Expression Evaluator afin de déterminer l’effet de votre expression.
    • Décalage. Nombre de caractères à ignorer avant de commencer à correspondre sur ce modèle. Vous utilisez ce champ pour commencer à examiner une chaîne à un moment autre que le premier caractère.
    • Profondeur. Combien de caractères à partir du point de départ à examiner pour les correspondances. Vous utilisez ce champ pour limiter les recherches d’une chaîne volumineuse à un nombre spécifique de caractères.
    • Mini-longueur. La chaîne à rechercher doit avoir au moins le nombre d’octets spécifié en longueur. Les chaînes plus courtes ne sont pas appariées.
    • Longueur maximale. La chaîne à rechercher ne doit pas dépasser le nombre d’octets spécifié. Les chaînes plus longues ne sont pas appariées.
    • Méthode de recherche. Une case à cocher intitulée Fastmatch. Vous pouvez activer fastmatch uniquement pour un motif littéral, afin d’améliorer les performances.
  8. Cliquez sur OK.
  9. Répétez les quatre étapes précédentes pour ajouter ou modifier d’autres motifs.
  10. Lorsque vous avez terminé d’ajouter ou de modifier des modèles, cliquez sur OK pour enregistrer vos modifications et revenir au volet Signatures.

Avertissement :

Tant que vous n’avez pas cliqué sur OK dans la boîte de dialogue Ajouter une règle de signature locale ou Modifier une règle de signature locale, vos modifications ne sont pas enregistrées. Ne fermez aucune de ces boîtes de dialogue sans cliquer sur OK, sauf si vous souhaitez ignorer vos modifications.

Modèles de règles de signature