Ajouter des modèles de règles de signature
Vous pouvez ajouter un modèle ou modifier un modèle existant pour spécifier une chaîne ou une expression qui caractérise une attaque si la signature correspond. Pour détecter les tendances d’une attaque, vous pouvez consulter 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 concernant l’attaque.
Important
Un nouveau modèle que vous ajoutez à une règle de signature est dans une relation ET 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 doive correspondre à tous les modèles correspondant à la signature.
Chaque modèle peut consister en une chaîne simple, une expression régulière au format PCRE ou le modèle intégré d’injection SQL ou de script intersite. Avant d’essayer d’ajouter un modèle basé sur une expression régulière, vous devez vous assurer 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 créer involontairement un modèle qui correspond à quelque chose que vous ne vouliez pas (un faux positif) ou qui ne correspond pas à ce que vous vouliez (un faux négatif).
Modèle de signature personnalisé pour les types de contenu autres que ceux par défaut
Le NetScaler Web App Firewall (WAF) 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 des types de contenu autres que ceux par défaut. Lorsque ces types de contenu figurent sur la liste blanche et qu’aucune action configurée n’est appliquée, le contrôle de protection contre les scripts SQL et intersites ne filtre pas les attaques par script SQL ou intersite dans les charges utiles codées. Pour résoudre ce 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 ceux par défaut et, en cas d’attaque SQL ou de script intersite, bloque le trafic après la canonisation du corps de la publication.
Remarque :
Cette prise en charge s’applique uniquement aux requêtes HTTP.
Si vous n’êtes pas déjà familiarisé avec les expressions régulières au format PCRE, vous pouvez utiliser les ressources suivantes pour en savoir plus ou pour obtenir de l’aide concernant un problème spécifique :
- « Mastering Regular Expressions », troisième édition. Copyright (c) 2006 par Jeffrey Friedl. O’Reilly Media, ISBN : 9780596528126.
- « Livre de recettes sur les expressions régulières ». Copyright (c) 2009 par Jan Goyvaerts et Steven Levithan. O’Reilly Media, ISBN : 9780596520687
- Page de manuel/Spécification du PCRE
- Page d’accueil/spécification PCRE
- Entrée PCRE de Wikipédia
- Liste de diffusion PCRE
Si vous devez coder des caractères non ASCII dans une expression régulière au format PCRE, la plateforme NetScaler prend en charge le codage de codes UTF-8 hexadécimaux. Pour plus d’informations, voir Format de codage de caractères PCRE.
Configuration d’un modèle de règles de signature
Lorsque vous modifiez une signature, vous pouvez ajouter ou modifier le modèle de règles. Pour ajouter ou modifier les règles de signature, voir Modifier les signatures pour ajouter ou modifier des règles.
-
Type : sélectionnez le type de connexion auquel le modèle est censé correspondre.
- Requête : elle correspond aux éléments ou fonctionnalités de la demande tels que le code SQL injecté, les attaques contre les formulaires Web, les scripts intersites ou les URL inappropriées.
- Réponse : elle correspond aux éléments ou caractéristiques de la réponse tels que les numéros de carte de crédit ou les objets sécurisés.
-
Emplacement - Sélectionnez une zone à examiner à l’aide de ce modèle. La zone décrit les éléments de la requête ou de la réponse HTTP à examiner pour ce modèle. En fonction du type de motif sélectionné, les options apparaissent dans la liste des zones. Elles dépendent du type de motif choisi.
Pour le type de modèle de demande, les éléments relatifs aux requêtes HTTP apparaissent.
- HTTP_N’ IMPORTE QUEL. Toutes les parties de la connexion HTTP.
-
HTTP_COOKIE. Tous les cookies figurant dans les en-têtes de requête HTTP après toute transformation de cookie.
Remarque
Ne recherche pas les en-têtes « Set-Cookie : » de la réponse HTTP.
-
CHAMP HTTP_FORM_FIELD. Les champs de formulaire et leur contenu, après le décodage de l’URL, le pourcentage de décodage et la suppression des espaces blancs excédentaires. Vous pouvez utiliser la
<Location>
balise pour restreindre davantage la liste des noms de champs de formulaire dans lesquels la recherche doit être effectuée. - HTTP_HEADER. Portions de valeur de l’en-tête HTTP après toute transformation de script intersite ou de décodage d’URL.
- HTTP_METHODE. La méthode de requête HTTP.
- URL HTTP. Portion de valeur de l’URL dans les en-têtes HTTP, à l’exclusion de tout port de requête ou de fragment, après conversion au jeu de caractères UTF-*, décodage de l’URL, suppression des espaces et conversion des URL relatives en URL absolues. N’inclut pas le décodage des entités HTML.
- URL D’ORIGINE HTTP. URL d’origine d’un formulaire Web.
- HTTP_POST_BODY. Le corps du message HTTP et les données du formulaire Web qu’il contient.
- HTTP_RAW_COOKIE. Tous les cookie de requête HTTP, y compris la partie du nom « Cookie : ». Remarque : ne recherche pas les en-têtes « Set-Cookie : » des réponses HTTP.
- HTTP_RAW_HEADER. L’en-tête HTTP complet, avec les en-têtes individuels séparés par des caractères de ligne (\ n) ou des chaînes de retour/d’alimentation en ligne (\ r \ n).
Pour le type de réponse, les éléments relatifs aux réponses HTTP apparaissent.
- HTTP_RAW_RESP_HEADER. L’intégralité de l’en-tête de réponse, y compris les parties nom et valeur de l’en-tête de réponse une fois la transformation de l’URL effectuée, et l’état complet de la réponse. Comme pour HTTP_RAW_HEADER, les en-têtes individuels sont séparés par des caractères d’entrée de ligne (\ n) ou des chaînes de retour de carrière/d’alimentation en ligne (\ r \ n).
-
HTTP_RAW_SET_COOKIE. L’intégralité de l’en-tête Set-Cookie après toute transformation d’URL
Remarque
La transformation d’URL peut modifier à la fois les parties de domaine et de chemin de l’en-tête Set-Cookie.
- HTTP_RAW_URL. L’URL complète de la demande avant toute transformation d’URL, y compris les parties de la requête ou du fragment.
- HTTP_RESP_HEADER. La partie valeur des en-têtes de réponse complets après toute transformation d’URL.
- 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. Le code d’état HTTP.
- MESSAGE D’ÉTAT HTTP. Le message d’état HTTP.
Lorsque vous sélectionnez une option dans la liste des zones, les options de la zone sélectionnée sont modifiées de manière dynamique.
- N’importe lequel. Vérifie les noms de champs ou les URL.
- Littéral. Vérifie les noms de champs ou les URL qui contiennent une chaîne littérale. Une fois que vous avez sélectionné Literal, une zone de texte s’affiche. Tapez la chaîne littérale souhaitée dans la zone de texte.
- PCRE. Vérifie les noms de champs ou les URL qui correspondent à une expression régulière au format PCRE. Une fois que vous avez 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 courants au niveau du curseur, ou vous pouvez cliquer sur Regex Editor pour afficher la boîte de dialogue de l’éditeur d’expressions régulières, qui fournit une assistance supplémentaire pour créer l’expression régulière souhaitée.
- Expression : Vérifie les noms de champs ou les URL qui correspondent à une expression par défaut de NetScaler.
-
Motif : un modèle est une chaîne littérale ou une expression régulière au format PCRE qui définit le modèle auquel vous souhaitez faire correspondre. Sélectionnez le type de correspondance dans la liste.
- 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 Pattern sont activés. Ces outils ne sont pas utiles pour la plupart des autres types de motifs.
-
Expression : Une expression dans le langage d’expressions par défaut de NetScaler est le même langage d’expression que celui utilisé pour créer des politiques de Web App Firewall sur l’appliance NetScaler. Bien que le langage d’expressions NetScaler ait été initialement développé pour les règles de politique, il s’agit d’un langage à usage général très flexible qui peut également être utilisé pour définir un modèle de signature.
Lorsque vous choisissez Expression, l’éditeur d’expressions NetScaler apparaît sous la fenêtre Pattern. Pour plus d’informations sur l’éditeur d’expression et des instructions sur son utilisation, reportez-vous à la section Pour ajouter une règle de pare-feu (expression) à l’aide de la boîte de dialogue Ajouter une expression.
-
Injection SQL. Indique au Web App Firewall de rechercher le code SQL injecté à l’emplacement spécifié.
-
Scripting intersite. Demande au Web App Firewall de rechercher des scripts intersites à l’emplacement spécifié.
-
Injection de commandes. Demande au NetScaler Web App Firewall de rechercher toutes les commandes malveillantes injectées à l’emplacement spécifié.
-
Grammaire de l’injection SQL. Demande au NetScaler Web App Firewall de rechercher la grammaire SQL injectée à l’emplacement spécifié. Surtout lorsque des mots couramment utilisés tels que
Select
etFrom
sont utilisés dans une requête HTTP. - Grammaire de l’injection decommandes. Demande au NetScaler Web App Firewall de rechercher la grammaire des commandes malveillantes injectées à l’emplacement spécifié. Surtout lorsqu’un mot couramment utilisé tel que « Exit » est utilisé dans une requête HTTP.
Si vous souhaitez configurer d’autres paramètres, spécifiez les éléments suivants :
- Décalage. Le 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 doivent être examinés pour trouver des correspondances. Ce champ permet de limiter les recherches d’une grande chaîne à un certain nombre de caractères.
- Longueur minimale. La chaîne à rechercher doit avoir au moins le nombre d’octets spécifié. Les chaînes plus courtes ne correspondent pas.
- Longueur maximale. La chaîne à rechercher ne doit pas dépasser le nombre d’octets spécifié. Les chaînes plus longues ne correspondent pas.
-
Méthode de recherche. Une case à cocher étiquetée
fastmatch
. Vous ne pouvez l’activerfastmatch
que pour un modèle littéral, afin d’améliorer les performances.
Remarque
Vos modifications ne sont pas enregistrées tant que vous n’avez pas cliqué sur OK dans le volet Signature Rule Pattern . Ne fermez aucune de ces boîtes de dialogue sans cliquer sur OK, sauf si vous souhaitez annuler vos modifications.