ADC

Protection contre le détournement de cookies

La protection contre le piratage de cookies atténue les attaques de vol de cookies par des pirates informatiques. Lors d’une attaque de sécurité, un attaquant prend le contrôle d’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. Au cours de la session, l’application enregistre les informations de l’utilisateur telles que les informations de connexion et les visites de pages dans un fichier cookie. Le fichier cookie est ensuite envoyé au navigateur du client dans la réponse. Le navigateur enregistre les cookies pour maintenir les sessions actives. L’attaquant peut voler ces cookies soit manuellement à partir de la banque de cookie du navigateur, soit via une extension de navigateur rouge. L’attaquant utilise ensuite ces cookies pour accéder aux sessions de l’application Web de l’utilisateur.

Pour atténuer les attaques par cookie, le Citrix ADC Web App Firewall (WAF) conteste la connexion TLS du client ainsi que la validation de la cohérence des cookie 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 fonctionnalité de piratage de cookies prend en charge la journalisation et les pièges 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 fonctionne la protection contre le piratage de cookie 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 de pare-feu d’applications avec un identifiant de cookie de session.
  3. Cela initie une connexion TLS pour la session. Comme le code JavaScript n’est pas envoyé et exécuté sur le navigateur client, l’appliance marque la connexion TLS comme validée et aucune vérification n’est requise.

    Remarque :

    Même si un attaquant essaie d’envoyer tous les identifiants de cookies d’application d’une victime sans envoyer de cookie de session, l’appliance détecte le problème et supprime tous les cookies d’application de la demande avant de la transmettre au serveur principal. Le serveur principal considère cette demande sans aucun cookie d’application et prend les mesures nécessaires conformément à sa configuration.

  4. Lorsque le serveur principal envoie une réponse, l’appliance reçoit la réponse et la transmet à l’aide d’un jeton de session JavaScript et d’un cookie de départ. L’appliance marque ensuite la connexion TLS comme étant vérifiée.
  5. Lorsque le navigateur client reçoit la réponse, il exécute le code JavaScript et génère un identifiant de cookie transformé à l’aide du jeton de session et du cookie de départ.
  6. Lorsqu’un utilisateur envoie une demande ultérieure via la connexion TLS, l’appliance contourne la validation du cookie transformé. Cela est dû au fait que 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 demande HTTP pour des pages successives via une nouvelle connexion TLS, le navigateur envoie un identifiant de cookie de session et un identifiant de cookie transformé.
  2. Comme il s’agit d’une nouvelle connexion TLS, l’appliance détecte la connexion TLS et demande au client de lui envoyer une réponse de redirection à l’aide d’un cookie de départ.
  3. À la réception de la réponse de l’ADC, le client calcule le cookie transformé à l’aide du jeton de session et du nouveau cookie de départ.
  4. Le client envoie ensuite ce cookie transformé nouvellement calculé avec un identifiant de session.
  5. Si le cookie transformé calculé dans l’appliance ADC et celui envoyé via la demande correspondent, la connexion TLS est marquée comme vérifiée.
  6. Si le cookie transformé calculé est différent de celui présent dans la demande du client, la validation échoue. Ensuite, l’appliance renvoie le défi au client, pour qu’il envoie un cookie correctement transformé.

Scénario 3 : Un attaquant se fait passer pour un 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 provenant de l’attaquant, l’ADC envoie un défi de redirection avec un nouveau cookie de départ.
  3. Comme l’attaquant n’exécute pas JavaScript, la réponse de l’attaquant à la demande redirigée ne contient pas le cookie transformé.
  4. Cela entraîne un échec de validation des cookie morphed 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 de cookie transformés dépasse le seuil, l’appliance signale le statut comme étant un piratage de cookie.
  6. Si l’attaquant essaie de combiner des cookies d’application et des cookies de session volés à la victime, le contrôle de cohérence des cookie échoue et l’appliance applique l’action de piratage de cookie configurée.

Scénario 4 : Un attaquant se fait passer pour un 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 de rejouer les cookies de la victime pour accéder à la session Web.
  2. L’appliance ADC détecte également ces attaquants usurpés d’identité. Bien qu’une connexion TLS vérifiée soit utilisée par l’attaquant pour rejouer le cookie d’une victime, l’appliance ADC vérifie quand même si le cookie de session et le cookie d’application contenus dans la demande sont cohérents. L’appliance vérifie la cohérence d’un cookie d’application à l’aide du cookie de session contenu dans la demande. Étant donné que la demande contient un cookie de session de l’attaquant et un cookie d’application de la victime, la validation de cohérence des cookie échoue.
  3. Par conséquent, l’appliance applique l’action de piratage de cookie configurée. Si l’action configurée est définie sur « bloquer », l’appliance supprime tous les cookies de l’application et envoie la demande au serveur principal.
  4. Le serveur principal reçoit une demande sans cookie d’application et répond donc à une réponse d’erreur à l’attaquant, telle que « Utilisateur non connecté ».

Vous pouvez sélectionner un profil de pare-feu d’application spécifique et définir une ou plusieurs actions pour empêcher le piratage de cookie.

À 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 « aucune ».

Exemple :

set appfw profile profile1 - cookieHijackingAction Block

Où, les types d’actions sont les suivants :

Bloquer : bloquez les connexions qui enfreignent ce contrôle de sécurité. Journal : consignez les violations de ce contrôle de sécurité. Statistiques : générez des statistiques pour ce contrôle de sécurité. Aucune : désactivez toutes les actions pour ce contrôle de sécurité.

  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 de Citrix Web App Firewall, accédez à la section Paramètres avancés et cliquez sur Contrôles de sécurité.
  4. Dans la section Contrôles de sécurité, sélectionnez Piratage de cookies, puis cliquez sur les paramètres Action.
  5. Sur la page Paramètres de piratage des cookie, sélectionnez une ou plusieurs actions pour empêcher le piratage de cookies.
  6. Cliquez sur OK.

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

  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 du profil de Citrix Web App Firewall, accédez à la section Paramètres avancés et cliquez sur Règles d’assouplissement.
  4. Dans la section Règles d’assouplissement, sélectionnez Cohérence des cookies et cliquez sur Action.

  5. Sur la page Règle d’assouplissement de la cohérence des cookies, définissez les paramètres suivants.
    1. Activé. Sélectionnez si vous souhaitez activer la règle de relaxation.
    2. Le nom du cookie est-il 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 cookie.
    4. Éditeur Regex. Cliquez sur cette option pour fournir les détails de l’expression régulière.
    5. Commentaires. Brève description du cookie.
  6. Cliquez sur Créer et Fermer.

Afficher les statistiques de trafic et de violation des cookies à l’aide de l’interface de ligne de commande

Consultez les détails du trafic de sécurité et des violations de sécurité sous forme de tableau ou de graphique.

Pour consulter 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
Bytes de requête 0 0
Réponses 0 0
octets de réponse 0 0
Abandons 0 0
Redirections 0 0
Temps de réponse moyen à long terme (ms) 0
Temps de réponse de l’avenue récente (ms) 0
Statistiques sur les violations HTML/XML/JSON Taux (/s) Total
URL de démarrage 0 0
Refuser URL 0 0
En-tête de référence 0 0
débordement de tampon 0 0
Cohérence des cookies 0 0
Détournement de cookies 0 0
Balise de formulaire CSRF 0 0
Script intersite HTML 0 0
Injection HTML SQL 0 0
Format de champ 0 0
cohérence sur le terrain 0 0
Carte de crédit 0 0
Objet sûr 0 0
Violations de signature 0 0
Type de contenu 0 0
Déni de service JSON 0 0
Injection SQL JSON 0 0
Script intersite JSON 0 0
Types de téléchargement de fichiers 0 0
Déduire la charge utile XML du type de contenu 0 0
Injection de 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 0 0
Injection SQL XML 0 0
Script intersite XML 0 0
Pièce jointe XML 0 0
Violations d’erreur SOAP 0 0
Violations génériques XML 0 0
Nombre total de violations 0 0
Statistiques des journaux HTML/XML/JSON Taux (/s) Total
Journaux d’URL de démarrage 0 0
Journaux d’URL refusées 0 0
Journaux d’en-tête Referer 0 0
Logs de débordement 0 0
Logs de débordement 0 0
Journaux de cohérence des cookies 0 0
Journaux de détournement de cookies 0 0
Journaux des balises de formulaire CSRF 0 0
Journaux de script intersite HTML 0 0
Journaux de transformation de script intersite HTML 0 0
Journaux d’injection HTML SQL 0 0
Journaux de transformation HTML SQL 0 0
Journaux de format de champ 0 0
Journaux de cohérence des champs 0 0
Cartes de crédit 0 0
Journaux de transformation des cartes de crédit 0 0
Journaux des objets sécurisés 0 0
Journaux de signature 0 0
Journaux du type de contenu 0 0
Journaux de déni de service JSON 0 0
Journaux d’injection JSON SQL 0 0
Journaux de script intersite JSON 0 0
Journaux des types de téléchargement de fichiers 0 0
Déduire la charge utile XML du type de contenu L 0 0
Journaux d’injection de commandes HTML 0 0
Journaux au 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 intersite XML 0 0
Journaux des pièces jointes XML 0 0
Journaux d’erreurs SOAP 0 0
Journaux génériques XML 0 0
Nombre total de messages journaux 0 0
Statistiques de réponse aux erreurs du serveur Taux (/s) Total
Erreurs du client HTTP (4xx Resp) 0 0
Erreurs du serveur HTTP (5xx) 0 0

Afficher les statistiques sur le trafic et les violations des cookies à l’aide de l’interface graphique

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

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