Citrix ADC

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 trouvé, il est supprimé de la demande avant que la demande 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 envoyant par proxy ou en ajoutant des indicateurs aux cookies. Ce contrôle s’applique aux demandes et aux réponses.

Un attaquant modifierait normalement un cookie pour accéder à des informations privées sensibles en se faisant passer pour un utilisateur précédemment authentifié, ou pour provoquer un débordement de tampon. La vérification du débordement de la mémoire tampon protège contre les tentatives de provoquer un débordement de tampon en utilisant un long cookie. La vérification de la 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, sous l’onglet Général, vous pouvez activer ou désactiver les actions suivantes :

  • Bloquer
  • Journal
  • Apprendre
  • Statistiques
  • Transformation. Si elle est activée, l’action Transformer modifie tous les cookies comme spécifié dans les paramètres suivants :
    • Cryptez les cookies du serveur. Cryptez les cookies définis par votre serveur Web, à l’exception de ceux répertoriés dans la liste de relaxation 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écrypté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 :
      • Aucune. Ne cryptez ni ne décryptez les cookies. La valeur par défaut.
      • Décryptage uniquement. Décryptez uniquement les cookies cryptés. Ne cryptez pas les cookies.
      • Crypter la session uniquement. Chiffrez uniquement les cookies de session. Ne cryptez pas les cookies persistants. Décryptez tous les cookies cryptés.
      • Cryptez tout. Cryptez les cookies de session et persistants. Décryptez tous les cookies cryptés. Remarque : Lors du chiffrement des cookies, le Web App Firewall ajoute l’indicateur HttpOnly au cookie. Ce drapeau 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 Indicateurs à ajouter dans les cookies, qui sont gérés indépendamment des paramètres Encrypt Server Cookies.
  • Cookies du serveur proxy. Utilisez un proxy pour tous les cookies non persistants (de session) définis par votre serveur Web, à l’exception de ceux répertoriés dans la liste de relaxation du contrôle de cohérence des cookies. Les cookies sont transmis 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 les transmettre au serveur Web protégé. Spécifiez l’un des paramètres suivants :
    • Aucune. Ne pas utiliser de cookies proxy. La valeur par défaut.
    • Session uniquement. Cookies de session proxy uniquement. Ne pas utiliser de proxy pour les cookies persistants Remarque : Si vous désactivez le proxy des cookie après l’avoir activé (définissez cette valeur sur Aucun après avoir été définie sur Session uniquement), le proxy des cookie est conservé pour les sessions qui ont été établies avant que vous ne l’ayez désactivé. Vous pouvez donc désactiver cette fonctionnalité en toute sécurité pendant que le Web App Firewall traite les sessions utilisateur.
  • Indicateurs à ajouter aux cookies. Ajoutez des indicateurs aux cookies pendant la transformation. Spécifiez l’un des paramètres suivants :
    • Aucune. 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 défini.
    • 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 sur 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 spécifier des relaxations pour la vérification de la cohérence des cookies, vous devez utiliser l’interface graphique. Dans l’onglet Vérifications de la boîte de dialogue Modifier la vérification de la cohérence des cookies, cliquez sur Ajouter pour ouvrir la boîte de dialogue Ajouter la 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.

Voici des exemples d’assouplissement du contrôle de cohérence des cookies :

  • Champs d’ouverture de session. 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 d’ouverture de session (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. Autoriser les cookies contenant la chaîne sc-item_, suivis de l’ID d’un article que l’utilisateur a ajouté à son panier ([0-9a-za-z]+), d’un deuxième soulignement (_) et enfin du nombre de ces articles qu’il souhaite ([1-9][0-9] ?) , pour être modifiable 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é.

Important

Dans la version 10.5.e (dans quelques versions d’amélioration intermédiaires antérieures à la version 59.13xx.e) ainsi que dans la version 11.0 (dans les versions antérieures à 65.x), le traitement de l’en-tête Cookie par le Web App Firewall a été modifié. Dans ces versions, chaque cookie est évalué individuellement, et si la longueur d’un cookie reçu dans l’en-tête Cookie dépasse la valeur BufferOverflowMaxCookieLength configurée, la violation Buffer Overflow est déclenchée. À la suite de cette modification, les demandes qui ont été bloquées dans les versions 10.5 et antérieures peuvent être autorisées, car la longueur de l’en-tête complet du cookie n’est pas calculée pour déterminer la longueur du cookie. Dans certains cas, la taille totale du cookie transmis au serveur peut être supérieure à la valeur acceptée, et le serveur peut répondre par « 400 demandes erronées ».

Notez que cette modification a été annulée. Le comportement dans les versions d’amélioration 10.5.e ->59.13xx.e et 10.5.e ultérieures ainsi que dans la version 65.x 11.0 et les versions ultérieures est maintenant similaire à celui des versions non améliorées de la version 10.5. L’intégralité de l’en-tête Cookie brut est désormais prise en compte lors du calcul de la longueur du cookie. Les espaces environnants et les points-virgules (;) séparant les paires nom-valeur sont également inclus dans la détermination de la longueur du cookie.**

Remarque

Cohérence des cookie sans session : le comportement de cohérence des cookies a changé dans la version 11.0. Dans les versions précédentes, le contrôle de cohérence des cookie invoquait la sessionisation. Les cookies sont enregistrés pendant la session et signés. Un suffixe « wlt_» est ajouté aux cookies transitoires et un suffixe « wlf_ » est ajouté aux cookies persistants avant qu’ils ne soient transmis au client. Même si le client ne renvoie pas ces cookies wlf/wlt signés, le Web App Firewall utilise les cookies stockés dans la session pour effectuer le contrôle de cohérence des cookie.

Dans la version 11.0, le contrôle de cohérence des cookie est sans session. Le Web App Firewall ajoute désormais un cookie qui est un hachage de tous les cookies suivis par le Web App Firewall. Si ce cookie de hachage ou tout autre cookie suivi est manquant ou falsifié, le Web App Firewall supprime les cookies avant de transmettre la demande au serveur principal et déclenche une violation de cohérence des cookies. Le serveur traite la demande comme une nouvelle demande et envoie de nouveaux en-têtes Set-Cookie. Le contrôle de cohérence des cookies dans Citrix ADC versions 13.0, 12.1 et NetScaler 12.0 et 11.1 n’a pas d’option sans session.

Contrôle de cohérence des cookies

Dans cet article