Guide PoC : Protection des serveurs virtuels de passerelle avec WAF, Bot et stratégies d’authentification avancées

Vue d’ensemble

De nombreuses appliances Citrix ADC hébergent des déploiements VPN et Citrix Gateway qui fournissent également des protections de sécurité à d’autres applications Web. Ce guide de PoC est conçu pour aider à protéger les serveurs virtuels VPN et Gateway à l’aide des outils déjà disponibles sur l’appliance Citrix ADC. Ce guide couvre la protection de la page de connexion du portail avec la sécurité Bot et la protection de la soumission du formulaire d’identification grâce aux fonctionnalités WAF. De plus, les stratégies d’authentification avancées ajoutent du contexte aux ouvertures de session des utilisateurs et permettent l’authentification multifacteur.

Le flux de cette configuration est schématisé comme suit :

Flux de configuration

Options de configuration

Ce guide ne fournit pas de liste exclusive de protections, et ce n’est pas le seul moyen de les configurer. Par exemple, le déploiement de la réputation IP et de la limitation de débit à l’aide d’une stratégie de répondeur sur un serveur virtuel de passerelle est courant. Cette configuration est une méthode de déploiement prise en charge. Le résultat est différent : l’abandon ou la réinitialisation des connexions avant que la page de connexion de la passerelle ne soit affichée.

De plus, toutes les protections du profil WAF ne sont pas activées pour empêcher une configuration complexe, un réglage personnalisé et des problèmes potentiels. Une configuration plus poussée du profil WAF est possible, consultez les liens dans la section Références pour plus d’informations.

Remarque :

CAPTCHA n’est pas l’option la plus sûre pour un facteur supplémentaire, il n’est utilisé que pour des raisons de simplicité. D’autres options MFA telles que TOTP ou PUSH sont de meilleures options. Consultez la section Références pour obtenir des liens qui vous aideront à déployer ces options.

Conditions préalables

Ce guide suppose une connaissance pratique du déploiement Citrix WAF, du déploiement de Bot Security et des stratégies d’authentification avancées (nFactor). Il suppose qu’une passerelle ou un serveur virtuel d’authentification est déjà installé et configuré. Les conditions requises pour la configuration sont les suivantes :

  • Les stratégies d’authentification avancées nécessitent la version 12.1 build 57.18 ou ultérieure
  • Les protections du pare-feu d’applications Web nécessitent la version 12.1 build 57.18 ou ultérieure
  • Les protections de sécurité des robots nécessitent la version 13.0 build 71.40 ou ultérieure
  • La plupart des fonctionnalités de ce guide nécessitent une licence premium
  • Serveur ou service existant à l’écoute sur le port 80
  • Une passerelle ou un serveur virtuel d’authentification existant, avec une configuration d’authentification avancée existante (authentification avancée ou flux NFactor)
  • Activez les fonctionnalités suivantes : Citrix Web App Firewall, Citrix Bot Management et Réputation

Protection des robots

Signatures de bot

Dans Sécurité > Citrix Bot Management > Signatures, sélectionnez les signatures de bot par défaut et cliquez sur le bouton Clone . Appliquez un nom descriptif, puis cliquez sur créer.

Signatures de profil de bot

Créer un profil et une stratégie de gestion des bots

Dans Sécurité > Citrix Bot Management > Profils, sélectionnez Ajouter pour créer un nouveau profil de gestion de bot. Donnez un nom descriptif au profil et sélectionnez le jeu de signatures créé précédemment.

Profil de bot

Sélectionnez le profil pour modifier les paramètres avancés.

Ajoutez la réputation IP à partir de la colonne de droite et cochez la case pour l’activer.

Réputation IP du profil de bot

Ensuite, choisissez « Ajouter » sous catégories, sélectionnez IP pour le Type, cochez la case Activé et définissez l’action sur Drop. Enfin, cochez la case « Log » et définissez le message de journal sur quelque chose de descriptif.

Profil de bot Réputation IP 2

Profil de bot Réputation IP 3

Sélectionnez Empreinte digitale du périphérique dans la colonne de droite, assurez-vous que la case à cocher « Activé » n’est PAS cochée et cliquez sur Mettre à jour.

Empreinte digitale du périphérique de profil

Le dernier paramètre pour le profil de bot est d’activer la limitation de débit, sélectionnez Limite de débit dans la colonne de droite et cochez la case Activé. Cliquez sur « Ajouter » sous Configurer les ressourceset ajoutez trois liaisons de limite de taux de type URL pour les URL suivantes :

  • /logon/LogonPoint/index.html
  • /logon/LogonPoint/tmindex.html
  • /vpn/index.html

Configurez les limites de débit comme suit :

  • Activé
  • Tarif de 5
  • Période de 1000
  • Action de Drop
  • Journal défini sur Activé
  • Message de journal avec un titre de message descriptif.

Limite de débit de profil de bot

Le profil de bot est désormais configuré comme suit :

Profil de bot Final

Créez une stratégie de gestion des bots en accédant à Sécurité > Citrix Bot Management > Stratégies de bot et en choisissant Ajouter. Sélectionnez le profil de bot créé précédemment, avec une expression comme suit :


HTTP.REQ.URL.CONTAINS("/vpn")||HTTP.REQ.URL.CONTAINS("/logon")
<!--NeedCopy-->

Enfin, la stratégie bot est liée en sélectionnant « Policy Manager ». Sélectionnez un point de liaison de ‘Default Global’, sélectionnez « Cliquez pour sélectionner » pour sélectionner la stratégie. Mettez en surbrillance la stratégie créée précédemment et choisissez « Sélectionner ». Sélectionnez « Lier » puis « Faire ».

Liaison de stratégie de bot

Protection WAF

Il n’est pas possible de lier une stratégie WAF directement à une passerelle ou à un serveur virtuel d’authentification. En outre, la liaison globale d’une stratégie WAF avec une expression qui cible les serveurs virtuels de passerelle ou d’authentification ne fonctionnera pas comme prévu. L’ordre de traitement des stratégies est à l’origine de ce dysfonctionnement. Les stratégies WAF sont traitées après les stratégies de passerelle et d’authentification. Reportez-vous à l’image ci-dessous pour obtenir des précisions sur le flux de trafic.

Flux de trafic

La stratégie de protection WAF utilise une légende HTTP pour protéger la page d’ouverture de session et invalider le flux d’authentification si une exception WAF est interceptée. Cette configuration nécessite un jeu de signatures (Patset) qui inclut les URL de connexion, un service factice et un serveur virtuel d’équilibrage de charge, une légende HTTP, ainsi que la stratégie et la configuration WAF.

Jeu de motifs

Accédez à AppExpert > Jeux de motifs et sélectionnez « Ajouter ». Donnez un nom au nouveau jeu de motifs, puis sélectionnez « Insérer » et ajoutez les modèles suivants :

  • /cgi/login (index 1)
  • /nf/auth/doAuthentication.do (index 2)

Jeu de motifs

Vous pouvez également créer le jeu de modèles depuis l’interface de ligne de commande :


add policy patset GW_VPN_Patset
bind policy patset GW_VPN_Patset "/cgi/login" -index 1
bind policy patset GW_VPN_Patset "/nf/auth/doAuthentication.do" -index 2
<!--NeedCopy-->

Serveur virtuel factice et service

L’appel HTTP utilise un serveur virtuel fictif. Ce serveur virtuel n’a pas besoin d’être accessible au public, il peut donc ne pas être adressable. Le serveur virtuel doit être actif, donc le serveur principal doit être opérationnel et répondre sur le port 80. Un nouveau service et un nouveau serveur virtuel sont créés dans ce guide, mais un serveur virtuel préexistant peut être utilisé.

Accédez à Gestion du trafic > Équilibrage de charge > Services et sélectionnez « Add ». Donnez au service un nom descriptif, définissez le protocole sur HTTP et le port sur 80. Entrez l’adresse IP du serveur et cliquez sur OK. Vous pouvez également créer le service avec un serveur existant. Utilisez tous les paramètres par défaut, y compris les moniteurs liés au service.

Service d'équilibrage de charge

Ensuite, créez le serveur virtuel d’équilibrage de charge en allant dans Gestion du trafic > Équilibrage de charge > Serveurs virtuels et sélectionnez « Add ». Donnez un nom descriptif au serveur, définissez le protocole sur HTTP et définissez le type d’adresse IP sur Non adressable. Liez le service précédemment créé à ce serveur virtuel en sélectionnant « No Load Balancing Virtual Server Service Liaison », puis « Cliquez pour sélectionner » et en sélectionnant le service. Il y a maintenant 1 service lié au serveur virtuel et l’état est ‘UP’.

Serveur virtuel d'équilibrage de charge

Légende HTTP

Accédez à AppExpert > Légendes HTTP et sélectionnez « Ajouter ». Donnez un nom descriptif à la légende HTTP, sélectionnez « Serveur virtuel » pour recevoir la demande de légende et sélectionnez le serveur virtuel fictif. Dans la demande d’envoi au serveur, sélectionnez le type Expression, définissez le schéma sur « HTTP » et définissez l’expression complète sur ce qui suit :


HTTP.REQ.FULL_HEADER.BEFORE_STR("\r\n\r\n")+"\r\nGW_VPN-WAF_Callout:abc\r\n\r\n"+HTTP.REQ.BODY(2048)
<!--NeedCopy-->

Remarque :

Le nom de l’en-tête ici est « GW_VPN-WAF_Callout » - l’expression de filtrage du pare-feu d’application l’utilisera ultérieurement. Si le nom est modifié ici, changez également l’expression d’en-tête WAF.

Dans la section Réponse du serveur, définissez le type de retour sur BOOL et définissez l’expression sur « vrai ».

Légende HTTP

Vous pouvez également créer l’appel HTTP à partir de l’interface de ligne de commande :


add policy httpCallout GW_VPN_WAF_Callout -vServer dummy-vserver-here -returnType BOOL -fullReqExpr HTTP.REQ.FULL_HEADER.BEFORE_STR("\r\n\r\n")+"\r\nGW_VPN-WAF_Callout:abc\r\n\r\n"+HTTP.REQ.BODY(2048) -scheme http -resultExpr true
<!--NeedCopy-->

Stratégie d’authentification

Modifiez une stratégie d’authentification LDAP existante pour utiliser l’appel HTTP. Ouvrez la stratégie d’authentification existante en accédant à Sécurité > Trafic des applications AAA > Stratégies > Authentification > Stratégies avancées > Stratégie, sélectionnez la stratégie existante et choisissez « Modifier ». Modifiez l’expression existante comme suit :


HTTP.REQ.URL.CONTAINS_ANY("GW_VPN_Patset") && SYS.HTTP_CALLOUT(GW_VPN_WAF_Callout)
<!--NeedCopy-->

Stratégie d'authentification Liaison WAF

Remarque :

Utilisez cette expression avec toute stratégie d’authentification dans laquelle vous souhaitez protéger les champs de formulaire sur la page d’ouverture de session.

Profil et stratégie WAF

Pour créer le profil WAF, accédez à Sécurité > Citrix Web Application Firewall > Profils et choisissez « Add ». Donnez un nom descriptif au profil et sélectionnez Application Web (HTML) et Paramètres par défaut de base. Ouvrez le profil nouvellement créé en choisissant « Modifier » puis sélectionnez « Vérification de sécurité » dans la colonne de droite.

Activez les contrôles de sécurité suivants (désactivez tous les autres paramètres) :

  • Dépassement de tampon - Journal, Statistiques
  • Post Body Limit - Bloc, Journal, Statistiques
  • HTML Intersite Scripting - Bloc, Journal, Statistiques
  • HTML SQL Injection - Bloc, Journal, Statistiques

Vérifications de sécurité WAF

Ensuite, sélectionnez « Paramètres du profil » dans la colonne de droite et définissez la réponse par défaut sur :


application/octet-stream
<!--NeedCopy-->

Cochez ensuite la case Enregistrer chaque accès de stratégie.

Paramètres du profil WAF

Ensuite, configurez la stratégie WAF en accédant à Sécurité > Citrix Web Application Firewall > Stratégies > Pare-feu et choisissez « Add ». Donnez un nom descriptif à la stratégie et sélectionnez le profil créé à l’étape précédente. Pour l’expression, entrez ce qui suit :


HTTP.REQ.HEADER("GW_VPN-WAF_Callout").EXISTS
<!--NeedCopy-->

Remarque :

Le nom de l’en-tête ici doit correspondre à l’en-tête de la légende HTTP créée précédemment.

Enfin, liez la stratégie WAF au serveur virtuel d’équilibrage de charge fictif créé précédemment en accédant à Gestion du trafic > Équilibrage de charge > Serveurs virtuels. Sélectionnez le serveur virtuel, puis choisissez « Modifier ».

Dans la colonne de droite, sélectionnez « Stratégies », puis cliquez sur « + » plus pour ajouter une stratégie. Sélectionnez la stratégie Application Pare-feu et tapez Demande. Sélectionnez la stratégie créée précédemment, puis sélectionnez « Lier » et « Faire ».

Liaison de la stratégie WAF

Vous pouvez également créer la configuration WAF à l’aide de la CLI comme suit :


add appfw profile demo_appfw_profile -startURLAction none -denyURLAction none -fieldFormatAction none -bufferOverflowAction log stats -responseContentType "application/octet-stream" -logEveryPolicyHit ON -fileUploadTypesAction none

add appfw policy demo_appfw_policy "HTTP.REQ.HEADER("GW_VPN-WAF_Callout").EXISTS" demo_appfw_profile

bind lb vserver dummy-vserver-here -policyName gw_appfw_policy -priority 100 -gotoPriorityExpression END -type REQUEST
<!--NeedCopy-->

Paramètres d’authentification avancés

Il existe deux configurations liées à l’authentification : chiffrer les informations d’identification de l’utilisateur du client vers l’ADC dans NFactor et MFA basé sur la réputation IP.

Chiffrement des informations d’identification utilisateur

Le paramètre suivant permet à l’ADC de chiffrer le jeu d’informations d’identification lorsque l’utilisateur soumet les données de formulaire à l’aide d’algorithmes ECDHE. Pour activer ce paramètre, accédez à Citrix Gateway > Paramètres globaux > Paramètres d’authentification > Modifier les paramètres AAA d’authentification et définissez le chiffrement de connexion sur ACTIVÉ.

Authentification de connexion

Vous pouvez également modifier ce paramètre depuis l’interface de ligne de commande comme suit :


set aaa parameter -loginEncryption ENABLED
<!--NeedCopy-->

MFA basé sur la réputation IP

Utilisez la réputation IP avec authentification avancée pour demander à l’utilisateur un facteur supplémentaire si la base de données inclut l’adresse source. Créez également un ensemble de données d’adresses géré manuellement.

Important :

L’exemple de configuration suivant utilise CAPTCHA comme moyen de fournir un autre facteur d’authentification, mais n’importe quel autre outil MFA peut être utilisé. Comme pour toutes les configurations nFactor, les stratégies, les schémas et les étiquettes de stratégie présentés ici ne sont que des exemples simples. Ajoutez une configuration supplémentaire pour répondre à tout cas d’utilisation de connexion spécifique.

Reportez-vous à la section Références pour plus d’informations sur la configuration de TOTP PUSH en tant que facteur et des configurations CAPTCHA supplémentaires.

Créez un ensemble de données en allant dans AppExpert > Ensembles de données et en sélectionnant « Ajouter ». Créez un ensemble de données avec un nom descriptif, un type de « ipv4 » et cliquez sur « Créer ».

Jeu de données IP malveillantes

Ensuite, deux stratégies d’authentification avancées doivent être créées en accédant à Sécurité > AAA - Trafic des applications > Stratégies > Authentification > Stratégies avancées > Stratégie et sélectionnez « Add ».

Créez la première stratégie avec un nom descriptif, un type d’action NO_AUTHNet l’expression définie sur « true ».

Stratégie avancée Adresse IP correcte

Créez la deuxième stratégie avec un nom descriptif, un type d’action NO_AUTHNet une expression comme suit :


CLIENT.IP.SRC.IPREP_IS_MALICIOUS || CLIENT.IP.SRC.TYPECAST_TEXT_T.CONTAINS_ANY("suspicious_ips")
<!--NeedCopy-->

Remarque :

Utilisez le nom de l’ensemble de données créé précédemment ici.

Ensuite, un profil de schéma de connexion CAPTCHA est créé en allant dans Sécurité > AAA - Trafic des applications > Schéma de connexion > Onglet Profils et en sélectionnant « Add ». Donnez un nom descriptif au profil puis modifiez le schéma d’authentification en sélectionnant l’icône d’édition « crayon ». Accédez au répertoire LoginSchema, mettez en surbrillance SingleAuthCaptcha.xmlet choisissez Select.

Schéma de connexion Captcha

Ensuite, créez une étiquette de stratégie d’authentification pour le schéma Captcha en accédant à Sécurité > AAA - Trafic des applications > Stratégies > Authentification > Stratégies avancées > Étiquette de stratégie et en sélectionnant « Add ». Donnez un nom descriptif au PL et sélectionnez le schéma de connexion captcha créé précédemment. Liez la stratégie d’action LDAP requise.

Remarque :

Cet exemple réutilise une action d’authentification LDAP précédemment créée.

Étiquette de stratégie Captcha

Créez une autre étiquette de stratégie en sélectionnant « Add ». Donnez un nom descriptif à cette PL et définissez le schéma de connexion sur LSCHEMA_INT. Ensuite, liez les deux stratégies d’authentification NO_AUTHN précédemment créées.

Étiquette de stratégie de vérification IP

Enfin, définissez le facteur suivant de la stratégie d’authentification créée précédemment en tant qu’étiquette de stratégie de vérification de réputation IP. Il est déjà lié à un serveur virtuel d’authentification ou de passerelle. Mettez en surbrillance la stratégie d’authentification, sélectionnez « Modifier la connexion », puis définissez le nouveau libellé de stratégie comme champ « Sélectionner le facteur suivant ».

Stratégie d'authentification finale

Résumé

Citrix ADC fournit de nombreuses protections de sécurité intégrées qui protègent les serveurs virtuels de passerelle ou d’authentification exécutés sur la même appliance. Ces protections n’ont aucun impact sur les utilisateurs typiques lorsqu’ils tentent de se connecter à Citrix Gateway.

Références

Pour plus d’informations et pour connaître les options de configuration, consultez les articles suivants :

Présentation de Citrix Web Application Firewall - Documentation sur les produits Citrix : Présentation de Citrix Web Application Firewall

Citrix Web Application Firewall PoC Guide - Guide de déploiement de preuve de concept pour Citrix Web Application Firewall

Formation Citrix sur la mise à disposition et la sécurité des applications - Formation Citrix Education à la mise à disposition et à la sécurité

Premiers pas avec Citrix ADC - Documentation sur les produits Citrix : Premiers pas avec Citrix ADC - Packet Flow

Réputation IP - Documentation sur les produits Citrix : Réputation IP

Gestion des robots - Documentation sur les produits Citrix : Gestion des robots

Détection des robots - Documentation sur les produits Citrix : Détection des robots

Authentification nFactor - Documentation sur les produits Citrix : Authentification nFactor

Citrix ADC - Aide-mémoire de base de nFactor - Citrix Tech Zone : diagrammes et affiches Citrix ADC - Aide-mémoire sur les bases de nFactor

CTX216091 - prise en charge de re-captcha avec nFactor

nFactor for Citrix Gateway with Push Token - guide de déploiement de preuve de concept pour les jetons push TOTP pour Citrix Gateway

Guide PoC : Protection des serveurs virtuels de passerelle avec WAF, Bot et stratégies d’authentification avancées