Guía de PoC: Protección de servidores virtuales de puerta de enlace con WAF, Bot y políticas de autenticación avanzada

Información general

Muchos dispositivos Citrix ADC alojan implementaciones de VPN y Citrix Gateway que también proporcionan protección de seguridad a otras aplicaciones web. Esta guía de PoC está diseñada para ayudar a proteger servidores virtuales VPN y Gateway mediante herramientas ya disponibles en el dispositivo Citrix ADC. Esta guía cubre la protección de la página de inicio de sesión del portal con seguridad Bot y la protección del envío de formularios de credenciales con capacidades WAF. Además, las políticas de autenticación avanzadas agregan contexto a los inicios de sesión de los usuarios y permiten la autenticación multifactor.

El flujo de esta configuración se diagrama de la siguiente manera:

Flujo de configuración

Opciones de configuración

Esta guía no proporciona una lista exclusiva de protecciones ni es la única forma de configurarlas. Por ejemplo, es común implementar tanto la reputación de IP como la limitación de velocidad mediante una política de respuesta en un servidor virtual de puerta de enlace. Esta configuración es un método de implementación compatible. Tiene un resultado diferente al descartar o restablecer las conexiones antes de que se muestre la página de inicio de sesión de la puerta de enlace.

Además, el perfil WAF no tiene todas las protecciones habilitadas para evitar configuraciones complejas, ajustes personalizados y posibles problemas. Es posible configurar más el perfil WAF, consulte los enlaces en la sección de referencias para obtener orientación.

Nota:

CAPTCHA no es la opción más segura para un factor adicional, solo se usa para simplificar la explicación. Otras opciones de MFA, como TOTP o PUSH, son mejores opciones; consulte la sección de referencias para obtener enlaces que le ayudarán a implementar estas opciones.

Requisitos previos

Esta guía asume un conocimiento práctico de la implementación de Citrix WAF, la implementación de Bot Security y las directivas de autenticación avanzada (nFactor). Se asume que una puerta de enlace o servidor virtual de autenticación ya está instalado y configurado. A continuación se indican los requisitos para la configuración:

  • Las directivas de autenticación avanzada requieren la versión 12.1 compilación 57.18 o posterior
  • Las protecciones de Firewall de aplicaciones web requieren la versión 12.1 compilación 57.18 o posterior
  • Las protecciones de seguridad de bots requieren la versión 13.0 build 71.40 o posterior
  • La mayoría de las funciones de esta guía requieren una licencia premium.
  • Un servidor o servicio existente que escucha en el puerto 80
  • Una puerta de enlace o servidor virtual de autenticación existente, con una configuración de autenticación avanzada existente (autenticación avanzada o flujo de nFactor)
  • Habilite las siguientes funciones: Citrix Web App Firewall, Citrix Bot Management y Reputation

Protección de bots

Firmas de Bot

En Seguridad > Citrix Bot Management > Firmas, seleccione Firmasde bot predeterminadas y haga clic en el botón Clonar . Aplique un nombre descriptivo y, a continuación, haga clic en crear.

Firmas de perfil de bot

Crear un perfil y una directiva de administración de bots

En Seguridad > Citrix Bot Management > Perfiles, seleccione Agregar para crear un nuevo perfil de administración de bots. Asigne al perfil un nombre descriptivo y seleccione el conjunto de firmas creado previamente.

Perfil de Bot

Seleccione el perfil para modificar la configuración avanzada.

Agregue reputación IP desde la columna derecha y marque la casilla para habilitarla.

Reputación IP del perfil de bot

A continuación, elija ‘Agregar’ en categorías, seleccione IP para el Tipo, marque la casilla Habilitado y establezca la acción en Subir. Por último, marque la casilla de ‘Registrar’ y establezca el mensaje de registro en algo descriptivo.

Reputación IP del perfil de bot 2

Reputación IP del perfil de bot 3

Seleccione Huella digital del dispositivo en la columna derecha, asegúrese de que la casilla de verificación “Habilitado” NO está marcada y haga clic en Actualizar.

Huella digital del dispositivo de perfil de bot

El último ajuste para el perfil de bot es habilitar la limitación de velocidad, seleccione Límite de velocidad en la columna derecha y marque la casilla habilitado. Haga clic en “Agregar” en Configurar recursosy agrega tres enlaces de límite de tasa de tipos de URL para las siguientes URL:

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

Configure los límites de tarifas de la siguiente manera:

  • Habilitado
  • Tasa de 5
  • Periodo de 1000
  • Acción de Drop
  • Registro establecido en habilitado
  • Registrar mensaje con un título de mensaje descriptivo.

Límite de velocidad de perfil de bot

El perfil de bot ahora está configurado de la siguiente manera:

Final de perfil de bot

Cree una directiva de administración de bots en Seguridad > Citrix Bot Management > Directivas de bots y elija Agregar. Seleccione el perfil de bot creado anteriormente, con una expresión de la siguiente manera:


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

Finalmente, la directiva de bot está vinculada seleccionando ‘Administrador de directivas’. Seleccione un punto de enlace de ‘Predeterminado global’, seleccione ‘Haga clic para seleccionar’ para seleccionar la directiva. Resalte la directiva creada anteriormente y elija ‘Seleccionar’. Seleccione “Vincular” y luego “Hice”.

Enlace de directivas de bot

Protección WAF

No es posible vincular una política WAF directamente a una puerta de enlace o servidor virtual de autenticación. Además, vincular una política de WAF de forma global con una expresión dirigida a servidores virtuales de autenticación o de puerta de enlace no funcionará como se esperaba. El orden de procesamiento de la directiva provoca este mal funcionamiento: las directivas WAF se procesan después de las directivas Gateway y autenticación. Consulte la imagen siguiente para obtener una aclaración sobre el flujo de tráfico.

Flujo de tráfico

La directiva de protección WAF utiliza una llamada HTTP para proteger la página de inicio de sesión e invalidar el flujo de autenticación si se detecta una excepción WAF. Esta configuración requiere un conjunto de patrones (Patset) que incluye las URL de inicio de sesión, un servidor virtual de equilibrio de carga y servicio ficticio, una llamada HTTP y la política y configuración de WAF.

Conjunto de patrones

Vaya a AppExpert > Conjuntos de patrones y seleccione ‘Agregar ‘. Asigne un nombre al nuevo conjunto de patrones, luego seleccione ‘Insertar’ y agregue los siguientes patrones:

  • /cgi/login (índice 1)
  • /nf/auth/doauthentication.do (índice 2)

Conjunto de patrones

También puede crear el conjunto de patrones desde la CLI:


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

Servicio y servidor virtual ficticio

La llamada HTTP utiliza un servidor virtual ficticio. No es necesario que este servidor virtual esté disponible públicamente, por lo que puede no ser direccionable. El servidor virtual SÍ necesita estar activo, por lo que el servidor back-end debe estar activo y responder en el puerto 80. En esta guía se crean un servicio y un servidor virtual nuevos, pero se puede usar un servidor virtual preexistente.

Vaya a Administración del tráfico > Equilibrio de carga > Servicios y seleccione “Agregar”. Asigne al servicio un nombre descriptivo, establezca el protocolo en HTTP y puerto 80. Introduzca la dirección IP del servidor y haga clic en Aceptar. También puede crear el servicio con un servidor existente. Utilice todos los ajustes predeterminados, incluidos los monitores enlazados al servicio.

Servicio de equilibrio de carga

A continuación, cree el servidor virtual de equilibrio de carga yendo a Administración de tráfico > Equilibrio de carga > Servidores virtuales y seleccione “Agregar”. Asigne al servidor un nombre descriptivo, establezca el protocolo en HTTP y establezca el tipo de dirección IP en No direccionable. Enlazar el servicio creado anteriormente a este servidor virtual seleccionando “Sin enlace de servicio de servidor virtual de equilibrio de carga”, a continuación, ‘Haga clic para seleccionar’ y seleccione el servicio. Ahora hay 1 servicio vinculado al servidor virtual y el estado es ‘UP’.

Servidor virtual de equilibrio de carga

Llamada HTTP

Vaya a AppExpert > Llamadas HTTP y seleccione ‘Agregar’. Asigne a la llamada HTTP un nombre descriptivo, seleccione ‘Virtual Server’ para recibir la solicitud de llamada y seleccione el servidor virtual ficticio. En la Solicitud para enviar al servidor, seleccione el tipo como Basado en la expresión, establezca el esquema en ‘HTTP’ y establezca la expresión completa en lo siguiente:


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

Nota:

El nombre del encabezado aquí es ‘GW_VPN-WAF_Callout’; la expresión de filtrado del cortafuegos de aplicaciones lo utiliza más adelante. Si el nombre se cambia aquí, cambie también la expresión del encabezado WAF.

En la sección Respuesta del servidor, establezca el tipo de retorno en BOOL y establezca la expresión en ‘verdadero’.

Llamada HTTP

También puede crear la llamada HTTP desde la CLI:


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

Política de autenticación

Modifique una directiva de autenticación LDAP existente para usar la llamada HTTP. Abra la directiva de autenticación existente. Para ello, vaya a Seguridad > Tráfico de aplicaciones AAA > Directivas > Autenticación > Directivas avanzadas > Directiva, seleccione la directiva existente y elija ‘Modificar’. Modifique la expresión existente a lo siguiente:


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

Enlace WAF de directiva de autenticación

Nota:

Utilice esta expresión con cualquier directiva de autenticación en la que desee proteger los campos del formulario en la página de inicio de sesión.

Perfil y directiva WAF

Para crear el perfil WAF, vaya a Seguridad > Citrix Web Application Firewall > Perfiles y elija “Agregar”. Asigne al perfil un nombre descriptivo y seleccione Aplicación Web (HTML) y Valores predeterminados básicos. Abra el perfil recién creado seleccionando ‘Modificar’ y, a continuación, seleccione ‘Verificación de seguridad’ en la columna de la derecha.

Active las siguientes comprobaciones de seguridad (desactive el resto de configuraciones):

  • Desbordamiento de búfer - Registro, Estadísticas
  • Límite de Post Body - Bloqueo, Registro, Estadísticas
  • HTML Cross-Site Scripting - Bloquear, Registro, Estadísticas
  • HTML SQL Injection - Bloque, Registro, Estadísticas

Comprobaciones de seguridad WAF

A continuación, selecciona “Configuración de perfil” en la columna de la derecha y establece la respuesta predeterminada en:


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

A continuación, marque la casilla Registrar cada resultado de directiva.

Configuración de perfil WAF

A continuación, configure la directiva WAF yendo a Seguridad > Citrix Web Application Firewall > Directivas > Firewall y seleccione “Agregar”. Asigne a la directiva un nombre descriptivo y seleccione el perfil creado en el paso anterior. Para la expresión, escriba lo siguiente:


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

Nota:

El nombre del encabezado aquí debe coincidir con el encabezado de la llamada HTTP creada anteriormente.

Por último, vincule la directiva WAF al servidor virtual de equilibrio de carga ficticio creado anteriormente; para ello, vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales. Seleccione el servidor virtual y, a continuación, seleccione “Modificar”.

En la columna de la derecha, seleccione ‘Directivas’ y luego haga clic en ‘+’ más para agregar una directiva. Seleccione la directiva Firewall de aplicaciones y escriba Solicitud. Seleccione la directiva creada anteriormente y, a continuación, seleccione “Enlazar” y “Hice”.

Vinculación de directivas WAF

Como alternativa, cree la configuración de WAF mediante la CLI de la siguiente manera:


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

Configuración avanzada de autenticación

Hay dos configuraciones relacionadas con la autenticación: Cifrar las credenciales de usuario desde el cliente al ADC dentro de NFactor y MFA basada en reputación IP.

Cifrado de credenciales de usuario

La siguiente configuración permite al ADC cifrar el conjunto de credenciales cuando el usuario envía los datos del formulario mediante algoritmos ECDHE. Para habilitar esta configuración, vaya a Citrix Gateway > Configuración global > Configuración de autenticación > Cambiar la configuración AAA de autenticación y establezca el cifrado de inicio de sesión en HABILITADO.

Encriptación de inicio de

También puede cambiar esta configuración desde la CLI de la siguiente manera:


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

MFA basada en la reputación de IP

Utilice la reputación de IP con autenticación avanzada para solicitar al usuario un factor adicional si la base de datos incluye la dirección de origen. Además, cree un conjunto de datos de direcciones mantenido manualmente.

Importante:

El siguiente ejemplo de configuración utiliza CAPTCHA como medio para proporcionar otro factor de autenticación, pero se puede utilizar cualquier otra herramienta de MFA. Al igual que con todas las configuraciones de nFactor, las políticas, los esquemas y las etiquetas de políticas que se muestran aquí son ejemplos simples: agregue una configuración adicional para cumplir con cualquier caso de uso de inicio de sesión específico.

Consulte la sección de referencias para obtener más detalles sobre la configuración de TOTP PUSH como factor y configuraciones CAPTCHA adicionales.

Cree un conjunto de datos yendo a AppExpert > Conjuntos de datos y seleccionando “Agregar”. Cree un conjunto de datos con un nombre descriptivo, un tipo de ‘ipv4’ y haga clic en ‘Crear’.

Conjunto de datos IP malintencionados

A continuación, se deben crear dos directivas de autenticación avanzadas yendo a Seguridad > AAA - Tráfico de aplicaciones > Directivas > Autenticación > Directivas avanzadas > Directiva y seleccione “Agregar”.

Cree la primera política con un nombre descriptivo, un tipo de acción NO_AUTHNy la expresión establecida en “true”.

Directiva avanzada Buena IP

Cree la segunda política con un nombre descriptivo, un tipo de acción NO_AUTHNy una expresión como se indica a continuación:


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

Nota:

Utilice aquí el nombre del conjunto de datos creado anteriormente.

A continuación, se crea un perfil de esquema de inicio de sesión CAPTCHA yendo a Seguridad > AAA - Tráfico de aplicaciones > Esquema de inicio de sesión > Ficha Perfiles y seleccionando ‘Agregar ‘. Asigne al perfil un nombre descriptivo y, a continuación, modifique el Esquema de autenticación seleccionando el icono de edición “lápiz”. Vaya al directorio LoginSchema, resalte SingleAuthCaptcha.xmly elija Select.

Esquema de inicio de sesión de Captcha

A continuación, cree una etiqueta de directiva de autenticación para el esquema Captcha. Para ello, vaya a Seguridad > AAA - Tráfico de aplicaciones > Directivas > Autenticación > Directivas avanzadas > Etiqueta de directiva y seleccione “Agregar”. Asigne al PL un nombre descriptivo y seleccione el esquema de inicio de sesión captcha creado previamente. Enlazar la directiva de acción LDAP requerida.

Nota:

En este ejemplo se reutiliza una acción de autenticación LDAP creada anteriormente.

Etiqueta de directiva Captcha

Cree otra etiqueta de directiva seleccionando “Agregar”. Asigne a este PL un nombre descriptivo y establezca el esquema de inicio de sesión en LSCHEMA_INT. A continuación, enlazar las dos directivas de autenticación NO_AUTHN creadas anteriormente.

Etiqueta de directiva de comprobación IP

Por último, establezca el siguiente factor de la directiva de autenticación creada anteriormente como esta etiqueta de directiva de verificación de reputación de IP. Ya está enlazado a un servidor virtual de autenticación o Gateway. Resalte la directiva de autenticación, seleccione “modificar enlace” y, a continuación, establezca la nueva etiqueta de directiva como el campo ‘Seleccionar siguiente factor’.

Directiva de autenticación final

Resumen

Citrix ADC proporciona muchas protecciones de seguridad integradas que protegen los servidores virtuales de Gateway o Autenticación que se ejecutan en el mismo dispositivo. Estas protecciones no afectan a los usuarios típicos cuando intentan iniciar sesión en Citrix Gateway.

Referencias

Para obtener información adicional y opciones de configuración, consulte los siguientes artículos:

Introducción a Citrix Web Application Firewall - Documentación de productos Citrix: Introducción a Citrix Web Application Firewall

GuíaPoC de Citrix Web Application Firewall: guía de implementación de prueba de concepto para Citrix Web Application Firewall

Capacitación de Citrix sobre entrega y seguridad de aplicaciones - Capacitación de Citrix Education para entrega y seguridad de aplicaciones

Introducción a Citrix ADC - Documentos de productos Citrix: Introducción a Citrix ADC - Flujo de paquetes

Reputación de IP - Documentación de productos Citrix: Reputación de IP

Administración de bots - Documentación de productos Citrix: Administración de bots

Detección de bots - Documentos de productos Citrix: Detección de bots

Autenticación nFactor - Documentos de productos Citrix: Autenticación nFactor

Citrix ADC - Hoja de referencia de nFactor Basics - Citrix Tech Zone: Diagramas y carteles Citrix ADC - Hoja de referencia de nFactor Basics

CTX216091 : soporte para Re-captcha con nFactor

nFactor for Citrix Gateway with Push Token : guía de implementación de prueba de concepto para tokens push TOTP para Citrix Gateway

Guía de PoC: Protección de servidores virtuales de puerta de enlace con WAF, Bot y políticas de autenticación avanzada