Contrôle de cohérence des cookies
Le contrôle de cohérence des cookies examine les cookies renvoyés par les utilisateurs, afin de vérifier qu’ils correspondent aux cookies que votre site Web a définis pour cet utilisateur. Si un cookie modifié est détecté, il est supprimé de la demande avant que celle-ci ne soit transmise au serveur Web. Vous pouvez également configurer le contrôle de cohérence des cookies pour transformer tous les cookies du serveur qu’il traite, en cryptant les cookies, en les transmettant par proxy ou en ajoutant des indicateurs aux cookies. Cette vérification s’applique aux demandes et aux réponses.
Un attaquant modifie normalement un cookie pour accéder à des informations privées sensibles en se faisant passer pour un utilisateur préalablement authentifié, ou pour provoquer un dépassement de tampon. La vérification du dépassement de la mémoire tampon protège contre les tentatives visant à provoquer un débordement de la mémoire tampon en utilisant un cookie long. Le contrôle de cohérence des cookies se concentre sur le premier scénario.
Si vous utilisez l’assistant ou l’interface graphique, dans la boîte de dialogue Modifier le contrôle de cohérence des cookies, dans l’onglet Général, vous pouvez activer ou désactiver les actions suivantes :
- Bloquer
- Journal
- Apprendre
- Statistiques
- Transformez. Si elle est activée, l’action Transformer modifie tous les cookies comme indiqué dans les paramètres suivants :
-
Chiffrez les cookies du serveur. Chiffrez les cookies définis par votre serveur Web, à l’exception de ceux figurant dans la liste d’assouplissement du contrôle de cohérence des cookies, avant de transmettre la réponse au client. Les cookies cryptés sont déchiffrés lorsque le client envoie une demande ultérieure, et les cookies déchiffrés sont réinsérés dans la demande avant qu’elle ne soit transmise au serveur Web protégé. Spécifiez l’un des types de chiffrement suivants :
- None. Ne cryptez ni ne déchiffrez les cookies. La valeur par défaut.
- Déchiffrer uniquement. Déchiffrez uniquement les cookies cryptés. Ne cryptez pas les cookies.
- Chiffrez uniquement la session. Chiffrez uniquement les cookies de session. Ne cryptez pas les cookies persistants. Déchiffrez tous les cookies cryptés.
- Chiffrez tout. Chiffrez les cookies de session et les cookies persistants. Déchiffrez tous les cookies cryptés. Remarque : lors du chiffrement des cookies, le Web App Firewall ajoute l’indicateur HttpOnly au cookie. Cet indicateur empêche les scripts d’accéder au cookie et de l’analyser. L’indicateur empêche donc un virus ou un cheval de Troie basé sur un script d’accéder à un cookie déchiffré et d’utiliser ces informations pour enfreindre la sécurité. Cela se fait indépendamment des paramètres des indicateurs à ajouter dans les cookies, qui sont gérés indépendamment des paramètres des cookies du serveur Encrypt.
-
Chiffrez les cookies du serveur. Chiffrez les cookies définis par votre serveur Web, à l’exception de ceux figurant dans la liste d’assouplissement du contrôle de cohérence des cookies, avant de transmettre la réponse au client. Les cookies cryptés sont déchiffrés lorsque le client envoie une demande ultérieure, et les cookies déchiffrés sont réinsérés dans la demande avant qu’elle ne soit transmise au serveur Web protégé. Spécifiez l’un des types de chiffrement suivants :
-
Cookies du serveur proxy. Proxy tous les cookies non persistants (de session) définis par votre serveur Web, à l’exception de ceux figurant dans la liste d’assouplissement du contrôle de cohérence des cookies. Les cookies sont créés par proxy à l’aide du cookie de session Web App Firewall existant. Le Web App Firewall supprime les cookies de session définis par le serveur Web protégé et les enregistre localement avant de transmettre la réponse au client. Lorsque le client envoie une demande ultérieure, le Web App Firewall réinsère les cookies de session dans la demande avant de la transmettre au serveur Web protégé. Spécifiez l’un des paramètres suivants :
- None. N’utilisez pas de cookies proxy. La valeur par défaut.
- Session uniquement. Cookies de session proxy uniquement. Ne pas utiliser de cookies persistants par proxy Remarque : si vous désactivez le proxy de cookie après l’avoir activé (définissez cette valeur sur Aucune après avoir été définie sur Session uniquement), le proxy de cookie est conservé pour les sessions qui ont été établies avant que vous ne le désactiviez. Vous pouvez donc désactiver cette fonctionnalité en toute sécurité pendant que le Web App Firewall traite les sessions utilisateur.
-
Drapeaux à ajouter dans les cookies. Ajoutez des indicateurs aux cookies lors de la transformation. Spécifiez l’un des paramètres suivants :
- None. N’ajoutez pas de drapeaux aux cookies. La valeur par défaut.
- HTTP uniquement. Ajoutez l’indicateur HttpOnly à tous les cookies. Les navigateurs qui prennent en charge l’indicateur HttpOnly n’autorisent pas les scripts à accéder aux cookies pour lesquels cet indicateur est activé.
- Sécurisé. Ajoutez l’indicateur Secure aux cookies qui doivent être envoyés uniquement via une connexion SSL. Les navigateurs qui prennent en charge l’indicateur sécurisé n’envoient pas les cookies marqués via une connexion non sécurisée.
- Tout. Ajoutez l’indicateur HttpOnly à tous les cookies et l’indicateur Secure aux cookies qui doivent être envoyés uniquement via une connexion SSL.
Si vous utilisez l’interface de ligne de commande, vous pouvez entrer les commandes suivantes pour configurer le contrôle de cohérence des cookies :
set appfw profile <name> -cookieConsistencyAction [**block**] [**learn**] [**log**] [**stats**] [**none**]
set appfw profile <name> -cookieTransforms ([**ON**] | [**OFF**])
set appfw profile <name> -cookieEncryption ([**none**] | [**decryptOnly**] | [**encryptSession**] | [**encryptAll**])
set appfw profile <name> -cookieProxying ([**none**] | [**sessionOnly**])
-
set appfw profile <name> -addCookieFlags ([**none**] | [**httpOnly**] | [**secure**] | [**all**]
)
Pour définir des assouplissements pour le contrôle de cohérence des cookies, vous devez utiliser l’interface graphique. Dans l’onglet Contrôles de la boîte de dialogue Modifier le contrôle de cohérence des cookies, cliquez sur Ajouter pour ouvrir la boîte de dialogue Ajouter une relaxation du contrôle de cohérence des cookies, ou sélectionnez une relaxation existante et cliquez sur Ouvrir pour ouvrir la boîte de dialogue Modifier la relaxation du contrôle de cohérence des cookies. L’une ou l’autre des boîtes de dialogue fournit les mêmes options pour configurer une relaxation.
Vous trouverez ci-dessous des exemples d’assouplissements relatifs à la vérification de la cohérence des cookies :
-
Champs de connexion. L’expression suivante exempte tous les noms de cookie commençant par la chaîne logon_ suivie d’une chaîne de lettres ou de chiffres d’au moins deux caractères et d’au plus quinze caractères :
^logon_[0-9A-Za-z]{2,15}$ <!--NeedCopy-->
-
Champs de connexion (caractères spéciaux). L’expression suivante exempte tous les noms de cookie commençant par la chaîne türkçe-logon_ suivie d’une chaîne de lettres ou de chiffres d’au moins deux caractères et d’au plus quinze caractères :
^txC3xBCrkxC3xA7e-logon_[0-9A-Za-z]{2,15}$ <!--NeedCopy-->
-
Chaînes arbitraires. Autorisez les cookies contenant la chaîne sc-item_, suivie de l’identifiant d’un article que l’utilisateur a ajouté à son panier ([0-9a-Za-z] +), d’un second trait de soulignement (_) et enfin du nombre d’articles qu’il souhaite
([1-9][0-9]?)
, à être modifiables par l’utilisateur :^sc-item_[0-9A-Za-z]+_[1-9][0-9]?$ <!--NeedCopy-->
Attention : 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 négligente des caractères génériques, et en particulier de la combinaison de métacaractères/caractères génériques (.*), peut avoir des résultats que vous ne voulez pas ou attendez 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 la cohérence des cookies aurait autrement bloqué.