Protection des serveurs virtuels de passerelle avec des stratégies d’authentification WAF, bot et avancées

Aperçu

De nombreux déploiements VPN et Citrix Gateway sont hébergés par des appliances Citrix ADC 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. En outre, des stratégies d’authentification avancées sont utilisées pour ajouter du contexte aux ouvertures de session des utilisateurs et ajouter une 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 n’est pas le seul moyen de les configurer. Par exemple, la réputation IP et la limitation de débit peuvent être déployées à l’aide d’une stratégie de répondeur sur un serveur virtuel de passerelle. Cette configuration est une méthode de déploiement prise en charge mais a un résultat différent : suppression ou réinitialisation des connexions avant le rendu de la page de connexion de la passerelle.

En outre, toutes les protections du profil WAF ne sont pas activées. Ceci est fait pour éviter la configuration complexe, le réglage personnalisé et les 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.

En ce qui concerne l’authentification, CAPTCHA n’est pas l’option la plus sûre pour un facteur supplémentaire, elle n’a été utilisée que pour simplifier l’explication. D’autres options MFA telles que TOTP ou PUSH sont recommandées. Consultez la section des références pour obtenir des liens permettant de 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 majorité des fonctionnalités de ce guide requièrent 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)
  • Les fonctionnalités suivantes doivent être activées : Citrix Web App Firewall, Citrix Bot Management et Reputation

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

Une fois le profil créé, sélectionnez-le pour modifier les paramètres avancés du profil.

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 ressources et 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

Ces limites de débit sont activées, avec un taux de 5, une période de 1000, une action de Drop, un jeu de journaux à activer et un message de journal avec un titre de message descriptif.

Limite de débit de profil de bot

Le profil de bot est maintenant 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 à un serveur virtuel de passerelle ou 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 probablement pas comme prévu. Cela est dû à l’ordre dans lequel les stratégies sont traitées - les stratégies WAF étant traitées après la passerelle et les stratégies d’authentification.

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 ensemble de modèles (Patset) contenant 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

Alternativement, le jeu de motifs peut être créé à partir de 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

Un serveur virtuel factice est utilisé pour la légende HTTP. Ce serveur virtuel n’a pas besoin d’être accessible au public, il peut donc être non adressable. Le serveur virtuel DOIT être en place, donc le serveur back-end doit être en place et répondre sur le port 80. Un nouveau service et un nouveau serveur virtuel seront 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 choisissez OK. Vous pouvez également utiliser un serveur existant pour créer le service. Tous les paramètres par défaut peuvent être utilisés, 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’ - cela sera utilisé plus tard dans l’expression de filtrage du pare-feu de l’application. Si elle est modifiée, elle doit également être modifiée dans 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

Alternativement, la légende HTTP peut être créée à 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

Une stratégie d’authentification LDAP existante sera modifiée pour utiliser la légende 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 :

Cette expression peut être utilisée avec n’importe quelle stratégie d’authentification dans laquelle vous souhaitez protéger les champs de formulaire sur la page d’ouverture de session.

Profil et politique 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.

Assurez-vous que seules les vérifications de sécurité suivantes sont activées (toutes les autres ne sont pas cochées) :

  • 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 de profil » dans la colonne de droite et assurez-vous que la réponse par défaut est définie 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 fictive créé précédemment en accédant à Gestion du trafic > Équilibrage de charge > Serveurs virtuels et en sélectionnant le serveur virtuel puis en choisissant « Modifier ».

Dans la colonne de droite, sélectionnez « Politiques », puis cliquez sur « + » plus pour ajouter une politique. 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 ».

Reliure de la politique WAF

Sinon, la configuration WAF peut être créée à l’aide de l’interface de ligne de commande 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

Alternativement, cela peut être fait à partir de l’interface de ligne de commande comme suit :


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

MFA basé sur la réputation IP

La réputation IP peut être intégrée au flux d’authentification avancé pour inviter l’utilisateur à indiquer un facteur supplémentaire si l’adresse source est signalée dans la base de données de réputation IP. Un jeu de données d’adresses géré manuellement sera également créé.

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, schémas et étiquettes de stratégie présentés ici sont des exemples simples - une configuration supplémentaire peut être ajoutée pour répondre à n’importe quel 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.

Un jeu de données doit être créé 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_AUTHN et l’expression définie sur « vrai ».

Politique avancée Bonne IP

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


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

Remarque :

Le nom de l’ensemble de données précédemment créé est utilisé 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.xml et choisissez Sélectionner.

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 créée précédemment.

É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, cette étiquette de stratégie de vérification de réputation IP doit être définie comme facteur suivant de la stratégie d’authentification précédemment créée qui est déjà liée à 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 peuvent être appliquées pour protéger les serveurs virtuels Gateway ou Authentication 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 options de configuration, reportez-vous aux articles suivants :

CTX216091 - prise en charge de Re-captcha avec nFactor

Guide de programme du pare-feu Citrix Web Application — Guide de déploiement de la validation de concept pour Citrix Web Application Firewall

NFactor pour Citrix Gateway avec jeton Push - Guide de déploiement de preuve de concept pour les jetons push TOTP pour Citrix Gateway

Protection des serveurs virtuels de passerelle avec des stratégies d’authentification WAF, bot et avancées