Citrix ADC

Protection contre le détournement de cookies

La protection contre le détournement de cookies atténue les attaques de pirates informatiques. Dans l’attaque de sécurité, un attaquant prend en charge une session utilisateur pour obtenir un accès non autorisé à une application Web. Lorsqu’un utilisateur navigue sur un site Web, par exemple une application bancaire, le site Web établit une session avec le navigateur. Pendant la session, l’application enregistre les détails de l’utilisateur tels que les informations d’identification de connexion, les visites de page dans un fichier cookie. Le fichier cookie est ensuite envoyé au navigateur client dans la réponse. Le navigateur stocke les cookies pour maintenir les sessions actives. L’attaquant peut voler ces cookies manuellement à partir du magasin de cookies du navigateur ou via une extension de navigateur rouge. L’attaquant utilise ensuite ces cookies pour accéder aux sessions d’application Web de l’utilisateur.

Pour atténuer les attaques de cookies, le pare-feu WAF (Web App Firewall) Citrix ADC remet en question la connexion TLS du client ainsi que la validation de la cohérence des cookies WAF. Pour chaque nouvelle demande client, l’appliance valide la connexion TLS et vérifie également la cohérence des cookies d’application et de session dans la requête. Si un attaquant tente de mélanger et de faire correspondre les cookies d’application et les cookies de session volés à la victime, la validation de la cohérence des cookies échoue et l’action de détournement de cookie configurée est appliquée. Pour plus d’informations sur la cohérence des cookie, consultez la rubrique Vérification de la cohérence des cookies .

Remarque :

La fonction de détournement de cookies prend en charge la journalisation et les interruptions SNMP. Pour plus d’informations sur la journalisation, consultez la rubrique ADM et pour plus d’informations sur la configuration SNMP, consultez la rubrique SNMP.

Limitations

  • JavaScript doit être activé dans le navigateur client.
  • La protection contre le détournement de cookies n’est pas prise en charge sur TLS version 1.3.
  • Prise en charge limitée du navigateur Internet Explorer (IE) car le navigateur ne réutilise pas les connexions SSL. Il en résulte plusieurs redirections envoyées pour une demande, entraînant éventuellement une erreur « REDIRECTIONS MAXIMALES EXCÉDÉES » dans le navigateur IE.

Comment fonctionne la protection contre le détournement de cookies

Les scénarios suivants expliquent comment la protection contre le détournement de cookies fonctionne dans une appliance Citrix ADC.

Cas d'utilisation 1 de l'attaque de détournement de cookies : accès utilisateur sans cookie de session

  1. L’utilisateur tente de s’authentifier dans une application Web et commence à accéder à la première page Web sans aucun cookie de session ADC dans la demande.
  2. Lorsque la demande est reçue, l’appliance crée une session Application Firewall avec un ID de cookie de session.
  3. Cela initie une connexion TLS pour la session. Comme le JavaScript n’est pas envoyé et exécuté sur le navigateur client, l’appliance marque la connexion TLS comme validée et aucune contestation n’est requise.

    Remarque :

    Même si un attaquant tente d’envoyer tous les identifiants de cookies d’application d’une victime sans envoyer le cookie de session, l’appliance détecte le problème et supprime tous les cookies d’application dans la demande avant de transférer la demande au serveur principal. Le serveur back-end considère cette demande sans aucun cookie d’application et prend nécessaire selon sa configuration.

  4. Lorsque le serveur principal envoie une réponse, l’appliance reçoit la réponse et la transmet avec un jeton de session JavaScript et un cookie de démarrage. L’appliance marque ensuite la connexion TLS comme vérifiée.
  5. Lorsque le navigateur client reçoit la réponse, le navigateur exécute le JavaScript et génère un ID de cookie modifié à l’aide du jeton de session et du cookie de démarrage.
  6. Lorsqu’un utilisateur envoie une requête ultérieure via la connexion TLS, l’appliance contourne la validation du cookie morphé. En effet, la connexion TLS est déjà validée.

Cas d'utilisation 2 de l'attaque de détournement de cookies : accès utilisateur via un nouveau TLS avec cookie de session

  1. Lorsqu’un utilisateur envoie une requête HTTP pour des pages successives via une nouvelle connexion TLS, le navigateur envoie l’ID de cookie de session et l’ID de cookie morphed.
  2. Comme il s’agit d’une nouvelle connexion TLS, l’appliance détecte la connexion TLS et défie le client avec une réponse de redirection avec le cookie de démarrage.
  3. À la réception de la réponse de l’ADC, le client calcule le cookie morphé en utilisant le jeton de la session et le nouveau cookie de semence.
  4. Le client envoie ensuite ce cookie morphé nouvellement calculé avec un ID de session.
  5. Si le cookie morphé calculé au sein de l’appliance ADC et celui envoyé via la requête correspond, la connexion TLS est marquée comme vérifiée.
  6. Si le cookie morphé calculé diffère de celui présent dans la demande du client, la validation échoue. Après quoi, l’appliance renvoie le défi au client, pour envoyer un cookie morphé approprié.

Scénario 3 : Un attaquant emprunte d’identité en tant qu’utilisateur non authentifié

Cas d'utilisation 3 de l'attaque de détournement de cookies : un attaquant se fait passer pour un utilisateur non authentifié

  1. Lorsqu’un utilisateur s’authentifie dans l’application Web, l’attaquant utilise différentes techniques pour voler les cookies et les rejouer.
  2. Comme il s’agit d’une nouvelle connexion TLS de l’attaquant, l’ADC envoie un défi de redirection avec un nouveau cookie de démarrage.
  3. Comme l’attaquant n’a pas JavaScript en cours d’exécution, la réponse de l’attaquant pour la demande redirigée ne contient pas le cookie morphé.
  4. Il en résulte un échec de validation des cookies modifiés du côté de l’appliance ADC. L’appliance envoie à nouveau un défi de redirection au client.
  5. Si le nombre de tentatives de validation des cookies modifiés dépasse la limite de seuil, l’appliance signale l’état du détournement de cookies.
  6. Si l’attaquant tente de mélanger et de faire correspondre les cookies d’application et les cookies de session volés à la victime, la vérification de cohérence des cookies échoue et l’appliance applique l’action de détournement de cookies configurée.

Scénario 4 : Un attaquant emprunte d’identité en tant qu’utilisateur authentifié

Cas d'utilisation 4 de l'attaque de détournement de cookies : un attaquant se fait passer pour un utilisateur authentifié

  1. Les attaquants peuvent également tenter de s’authentifier dans une application Web en tant qu’utilisateur authentique et rejouer les cookies de la victime pour accéder à la session Web.
  2. L’appliance ADC détecte également ces attaquants usurpés. Bien qu’une connexion TLS vérifiée soit utilisée par l’attaquant lors de la relecture du cookie d’une victime, l’appliance ADC vérifie toujours si le cookie de session et le cookie d’application dans la requête sont cohérents. L’appliance vérifie la cohérence d’un cookie d’application à l’aide du cookie de session dans la requête. Étant donné que la requête contient un cookie de session d’un attaquant et un cookie d’application de la victime, la validation de cohérence des cookies échoue.
  3. Par conséquent, l’appliance applique l’action de détournement de cookies configurée. Si l’action configurée est définie comme « bloc », l’appliance supprime tous les cookies de l’application et envoie la demande au serveur principal.
  4. Le serveur back-end reçoit une requête sans cookie d’application et répond donc à une réponse d’erreur à l’attaquant, telle que « Utilisateur non connecté ».

Configurer le détournement de cookies à l’aide de l’interface de ligne de commande

Vous pouvez sélectionner un profil de pare-feu d’application spécifique et définir une ou plusieurs actions qui empêchent le détournement de cookies.

À l’invite de commandes, tapez :

set appfw profile <name> [-cookieHijackingAction <action-name> <block | log | stats | none>]

Remarque :

Par défaut, l’action est définie sur « none ».

Exemple :

set appfw profile profile1 - cookieHijackingAction Block

Où, les types d’action sont :

Bloquer : Bloquez les connexions qui ne respectent pas cette vérification de sécurité. Journal : Consigner les violations de cette vérification de sécurité. Statistiques : générez des statistiques pour cette vérification de sécurité. Aucun : désactivez toutes les actions de cette vérification de sécurité.

Configurer le détournement de cookies à l’aide de l’interface graphique Citrix ADC

  1. Accédez à Sécurité > Citrix Web App Firewall > Profils.
  2. Sur la page Profils, sélectionnez un profil et cliquez sur Modifier.
  3. Sur la page Profil du Citrix Web App Firewall, accédez à la section Paramètres avancés et cliquez sur Vérifications de sécurité.

    Configuration du détournement de cookies sur l'interface graphique Citrix ADC

  4. Dans la section Vérifications de sécurité, sélectionnez Détournement de cookies, puis cliquez sur Paramètres d’action.
  5. Dans la page Paramètres de piratage des cookies, sélectionnez une ou plusieurs actions pour empêcher le détournement de cookies.
  6. Cliquez sur OK.

    Configuration des paramètres de piratage des cookies sur l'interface graphique Citrix ADC

Ajouter une règle de relaxation pour la validation de la cohérence des cookies à l’aide de l’interface graphique Citrix ADC

Pour gérer les faux positifs dans la validation de la cohérence des cookies, vous pouvez ajouter une règle de relaxation pour les cookies qui peuvent être exemptés de la validation des cookies.

  1. Accédez à Sécurité > Citrix Web App Firewall > Profils.
  2. Sur la page Profils, sélectionnez un profil et cliquez sur Modifier.
  3. Sur la page Profil du Citrix Web App Firewall, accédez à la section Paramètres avancés et cliquez sur Règles de relaxation.
  4. Dans la section Règles de relaxation, sélectionnez Cohérence des cookies et cliquez sur Action.

  5. Dans la page Règle de relaxation de cohérence des cookies, définissez les paramètres suivants.
    1. Activé. Sélectionnez si vous souhaitez activer la règle de relaxation.
    2. C’est le nom de cookie Regex. Sélectionnez si le nom du cookie est une expression régulière.
    3. Nom du cookie. Entrez le nom du cookie qui peut être exempté de la validation des cookies.
    4. Éditeur de regex. Cliquez sur cette option pour fournir les détails de l’expression régulière.
    5. Commentaires. Une brève description du cookie.
  6. Cliquez sur Créer et Fermer.

Afficher les statistiques de trafic de détournement de cookies et de violations à l’aide de l’interface de ligne de commande

Affichez les détails du trafic de sécurité et des violations de sécurité dans un format tabulaire ou graphique.

Pour afficher les statistiques de sécurité :

À l’invite de commandes, tapez :

stat appfw profile profile1

Statistiques de trafic du profil Appfw Taux (/s) Total :
Demandes 0 0
Octets des demandes 0 0
Réponses 0 0
Octets des réponses 0 0
Abandonner 0 0
Redirections 0 0
Temps de réponse moyen à long terme (ms) 0
Temps de réponse moyen récent (ms) 0
Statistiques de violation HTML/XML/JSON Taux (/s) Total :
URL de démarrage 0 0
Refuser URL 0 0
En-tête Référer 0 0
Dépassement de tampon 0 0
Cohérence des cookies 0 0
Détournement de cookies 0 0
Balise de formulaire CSRF 0 0
Script inter-sites HTML 0 0
Injection SQL HTML 0 0
Format de champ 0 0
Cohérence des champs 0 0
Carte de crédit 0 0
Objet sécurisé 0 0
Violations des 0 0
Type de contenu 0 0
Déni de service JSON 0 0
Injection JSON SQL 0 0
Script inter-site JSON 0 0
Types de téléchargement de fichiers 0 0
Induire Type de contenu Charge utile XML 0 0
Injection CMD HTML 0 0
Format XML 0 0
Déni de service XML (xDoS) 0 0
Validation des messages XML 0 0
Interopérabilité des services Web 0 0
Injection SQL XML 0 0
Script multisite XML 0 0
Pièce jointe XML 0 0
Violations de pannes SOAP 0 0
Violations génériques XML 0 0
Total des violations 0 0
Statistiques du journal HTML/XML/JSON Taux (/s) Total :
Journaux des URL de démarrage 0 0
Journaux des URL refusées 0 0
Journaux d’en-tête référer 0 0
Journaux de débordement de 0 0
Journaux de débordement de 0 0
journaux de cohérence des cookies 0 0
Bûches de détournement de cookies 0 0
Journaux des balises de formulaire CSRF 0 0
Journaux de script inter-sites HTML 0 0
Journaux de transformation de script inter-site HTML 0 0
Journaux d’injection SQL HTML 0 0
Journaux de transformation HTML SQL 0 0
Journaux de format de 0 0
Journaux d’uniformité 0 0
Cartes de crédit 0 0
Logs de transformation des cartes de crédit 0 0
Journaux d’objets sûrs 0 0
Journaux signature 0 0
Journaux types de contenu 0 0
JSON Journaux de déni de service 0 0
Journaux d’injection JSON SQL 0 0
JSON Journaux de script inter-sites 0 0
Journaux des types de téléchargement 0 0
Induire le type de contenu XML Charge utile L 0 0
Journaux d’injection de commandes HTML 0 0
Journaux de format XML 0 0
Journaux de déni de service XML (XDoS) 0 0
Journaux de validation des messages XML 0 0
Journaux WSI 0 0
Journaux d’injection SQL XML 0 0
Journaux de script inter-sites XML 0 0
journaux des pièces jointes XML 0 0
Journaux des défaillances SOAP 0 0
Journaux génériques XML 0 0
Nombre total de messages du journal 0 0
Statistiques de réponse aux erreurs du serveur Taux (/s) Total :
Erreurs client HTTP (4xx resp) 0 0
Erreurs du serveur HTTP (5xx) 0 0

Afficher les statistiques de trafic de détournement de cookies et de violations à l’aide de l’interface graphique

  1. Accédez à Sécurité > Citrix Web App Firewall > Profils.
  2. Dans le volet d’informations, sélectionnez un profil Web App Firewall et cliquez sur Statistiques.
  3. La page Statistiques du Citrix Web App Firewall affiche le trafic de piratage de cookies et les détails de violation.
  4. Vous pouvez sélectionner Vue tabulaire ou passer à la vue graphique pour afficher les données sous forme de tableau ou graphique.

Statistiques de violation de piratage de cookies sur l'interface graphique Citrix ADC