Citrix ADC

Protección contra el secuestro de cookies

La protección contra el secuestro de cookies mitiga los ataques de robo de cookies de los hackers. En el ataque de seguridad, un atacante se hace cargo de una sesión de usuario para obtener acceso no autorizado a una aplicación web. Cuando un usuario navega por un sitio web, por ejemplo, una aplicación bancaria, el sitio web establece una sesión con el explorador. Durante la sesión, la aplicación guarda los detalles del usuario, como credenciales de inicio de sesión, visitas de página en un archivo de cookies. El archivo cookie se envía a continuación al explorador del cliente en la respuesta. El explorador almacena las cookies para mantener sesiones activas. El atacante puede robar estas cookies manualmente desde la almacén de cookies del explorador o a través de alguna extensión de explorador rouge. A continuación, el atacante utiliza estas cookies para obtener acceso a las sesiones de aplicación web del usuario.

Para mitigar los ataques de cookies, Citrix ADC Web App Firewall (WAF) desafía la conexión TLS del cliente junto con la validación de consistencia de cookies WAF. Para cada nueva solicitud de cliente, el dispositivo valida la conexión TLS y también verifica la coherencia de las cookies de aplicación y sesión en la solicitud. Si un atacante intenta mezclar y hacer coincidir las cookies de aplicación y las cookies de sesión robadas de la víctima, se produce un error en la validación de la coherencia de las cookies y se aplica la acción de secuestro de cookies configurada. Para obtener más información acerca de la coherencia de las cookies, consulte Comprobación de coherencia de cookies el tema.

Nota:

La función de secuestro de cookies admite el registro y las trampas SNMP. Para obtener más información acerca del registro, vea el tema ADM y para obtener más información acerca de la configuración SNMP, vea el tema SNMP.

Limitaciones

  • Java Script debe estar habilitado en el explorador del cliente.
  • La protección de secuestro de cookies no es compatible con TLS versión 1.3.

Cómo funciona la protección contra el secuestro de cookies

En los siguientes casos se explica cómo funciona la protección contra el secuestro de cookies en un dispositivo Citrix ADC.

Caso de uso de ataque de secuestro de cookies 1: Acceso de usuario sin cookie de sesión

  1. El usuario intenta autenticarse en una aplicación web y comienza a acceder a la primera página web sin ninguna cookie de sesión ADC en la solicitud.
  2. Cuando se recibe la solicitud, el dispositivo crea una sesión de Application Firewall con un ID de cookie de sesión.
  3. Esto inicia una conexión TLS para la sesión. Dado que el JavaScript no se envía ni se ejecuta en el explorador del cliente, el dispositivo marca la conexión TLS como validada y no se requiere ningún desafío.

Nota:

Incluso si un atacante intenta enviar todos los ID de cookies de la aplicación desde una víctima sin enviar la cookie de sesión, el dispositivo detecta el problema y elimina todas las cookies de la aplicación en la solicitud antes de reenviar la solicitud al servidor back-end. El servidor back-end considera esta solicitud sin ninguna cookie de aplicación y toma necesaria según su configuración.

  1. Cuando el servidor back-end envía una respuesta, el dispositivo recibe la respuesta y la reenvía con un token de sesión de JavaScript y una cookie inicial. A continuación, el dispositivo marca la conexión TLS como verificada.
  2. Cuando el explorador cliente recibe la respuesta, el explorador ejecuta el JavaScript y genera un ID de cookie transformado mediante el token de sesión y la cookie de semilla.
  3. Cuando un usuario envía una solicitud posterior a través de la conexión TLS, el dispositivo omite la validación de cookies transformada. Esto se debe a que la conexión TLS ya está validada.

Caso de uso de ataque de secuestro de cookies 2: Acceso de usuario a través de nuevo TLS con cookie de sesión

  1. Cuando un usuario envía una solicitud HTTP para páginas sucesivas a través de una nueva conexión TLS, el explorador envía el ID de cookie de sesión y el ID de cookie transformado.
  2. Dado que se trata de una nueva conexión TLS, el dispositivo detecta la conexión TLS y desafía al cliente con respuesta de redirección con cookie de inicio.
  3. El cliente al recibir la respuesta del ADC, calcula la cookie transformada mediante el token de la sesión y la nueva cookie de semilla.
  4. A continuación, el cliente envía esta cookie transformada recién calculada junto con un ID de sesión.
  5. Si la cookie transformada calculada dentro del dispositivo ADC y la que se envía a través de la solicitud coincide, la conexión TLS se marca como verificada.
  6. Si la cookie transformada calculada difiere de la presente en la solicitud del cliente, entonces la validación falla. Después de lo cual, el dispositivo envía el desafío al cliente, para enviar una cookie de transformación adecuada.

Caso 3: Atacante suplantación como usuario no autenticado

Caso de uso del ataque de secuestro de cookies 3: El atacante se hace pasar por usuario no autenticado

  1. Cuando un usuario se autentica en la aplicación web, el atacante utiliza diferentes técnicas para robar las cookies y reproducirlas.
  2. Dado que se trata de una nueva conexión TLS del atacante, el ADC envía un desafío de redirección junto con una nueva cookie semilla.
  3. Dado que el atacante no tiene JavaScript en ejecución, la respuesta del atacante para la solicitud redirigida no contiene la cookie transformada.
  4. Esto da como resultado un error de validación de cookies en el lado del dispositivo ADC. El dispositivo vuelve a enviar un desafío de redirección al cliente.
  5. Si el número de intentos de validación de cookies transformadas supera el límite de umbral, el dispositivo marca el estado como secuestro de cookies.
  6. Si el atacante intenta mezclar y hacer coincidir las cookies de aplicación y las cookies de sesión robadas a la víctima, la comprobación de coherencia de las cookies falla y el dispositivo aplica la acción de secuestro de cookies configurada.

Caso 4: Atacante suplantación como usuario autenticado

Caso de uso del ataque de secuestro de cookies 4: El atacante suplantará como usuario autenticado

  1. Los atacantes también pueden intentar autenticarse en una aplicación web como un usuario genuino y reproducir las cookies de la víctima para obtener acceso a la sesión web.
  2. El dispositivo ADC también detecta a los atacantes suplantados. Aunque el atacante utiliza una conexión TLS verificada para reproducir la cookie de una víctima, el dispositivo ADC sigue verificando si la cookie de sesión y la cookie de aplicación en la solicitud son coherentes. El dispositivo verifica la coherencia de una cookie de aplicación mediante la cookie de sesión en la solicitud. Dado que la solicitud contiene una cookie de sesión de un atacante y una cookie de aplicación de la víctima, la validación de la coherencia de la cookie falla.
  3. Como resultado, el dispositivo aplica la acción de secuestro de cookies configurada. Si la acción configurada se establece como “bloque”, el dispositivo elimina todas las cookies de la aplicación y envía la solicitud al servidor back-end.
  4. El servidor back-end recibe una solicitud sin cookie de aplicación y, por lo tanto, responde una respuesta de error al atacante, como “Usuario no conectado”.

Configurar el secuestro de cookies mediante la CLI

Puede seleccionar un perfil de firewall de aplicación específico y establecer una o más acciones que eviten el secuestro de cookies.

En el símbolo del sistema, escriba:

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

Nota:

De forma predeterminada, la acción se establece en “none”.

Ejemplo:

set appfw profile profile1 - cookieHijackingAction Block

Donde, los tipos de acción son:

Bloquear: Bloquear conexiones que infrinjan esta comprobación de seguridad. Registro: Registrar infracciones de esta comprobación de seguridad. Estadísticas: Generar estadísticas para esta comprobación de seguridad. Ninguno: Inhabilite todas las acciones de esta comprobación de seguridad.

Configurar el secuestro de cookies mediante la GUI de Citrix ADC

  1. Vaya a Seguridad > Citrix Web App Firewall > Perfiles.
  2. En la página Perfiles, seleccione un perfil y haga clic en Modificar.
  3. En la página Perfil de Citrix Web App Firewall, vaya a la sección Configuración avanzada y haga clic en Comprobaciones de seguridad.

Configuración del secuestro de cookies en la GUI de Citrix ADC

  1. En la sección Comprobaciones de seguridad, seleccione Secuestro de cookies y, a continuación, haga clic en Configuración de acciones.
  2. En la página Configuración de secuestro de cookies, seleccione una o más acciones para evitar el secuestro de cookies.
  3. Haga clic en Aceptar.

Configuración de la configuración de secuestro de cookies en la GUI de Citrix ADC

Agregar una regla de relajación para la validación de consistencia de cookies mediante la GUI de Citrix ADC

Para manejar falsos positivos en la validación de consistencia de cookies, puede agregar una regla de relajación para las cookies que pueden quedar exentas de la validación de cookies.

  1. Vaya a Seguridad > Citrix Web App Firewall > Perfiles.
  2. En la página Perfiles, seleccione un perfil y haga clic en Modificar.
  3. En la página Perfil de Citrix Web App Firewall, vaya a la sección Configuración avanzada y haga clic en Reglas de relajación.
  4. En la sección Reglas de relajación, seleccione Consistencia de cookies y haga clic en Acción.

  5. En la página Regla de relajación de coherencia de cookies, establezca los siguientes parámetros.
    1. Habilitado. Seleccione si quiere activar la regla de relajación.
    2. Es el nombre de cookie Regex. Seleccione si el nombre de la cookie es una expresión regular.
    3. Nombre de la cookie. Introduzca el nombre de la cookie que puede quedar exenta de la validación de cookies.
    4. Editor de expresiones regulares. Haga clic en esta opción para proporcionar los detalles de la expresión regular.
    5. Comentarios. Una breve descripción de la cookie.
  6. Haga clic en Crear y cerrar.

Ver estadísticas de tráfico de secuestro de cookies y violaciones mediante la CLI

Vea los detalles del tráfico de seguridad y las infracciones de seguridad en un formato tabular o gráfico.

Para ver estadísticas de seguridad:

En el símbolo del sistema, escriba:

stat appfw profile profile1

Appfw perfil Estadísticas de tráfico Tasa (s) Total
Solicitudes 0 0
Bytes de solicitud 0 0
Respuestas 0 0
Bytes de respuesta 0 0
Aborta 0 0
Redirecciona 0 0
Tiempo de respuesta a largo plazo (ms) 0
Tiempo de respuesta reciente Ave (ms) 0
Estadísticas de violaciones HTML/XML/JSON Tasa (s) Total
URL de inicio 0 0
Denegar URL 0 0
Encabezado de referencia 0 0
Desbordamiento de búfer 0 0
Consistencia de cookies 0 0
Secuestro de cookies 0 0
Etiqueta de formulario CSRF 0 0
Scripting HTML entre sitios 0 0
Inyección HTML SQL 0 0
Formato de campo 0 0
Consistencia de campo 0 0
Tarjeta de crédito 0 0
Objeto seguro 0 0
Violaciones de firma 0 0
Tipo de contenido 0 0
JSON Denegación de Servicio 0 0
Inyección JSON SQL 0 0
Scripting JSON entre sitios 0 0
Tipos de carga de archivos 0 0
Inducir la carga útil XML del tipo de contenido 0 0
Inyección HTML CMD 0 0
Formato XML 0 0
Denegación de servicio XML (XDoS) 0 0
Validación de mensajes XML 0 0
Interoperabilidad de servicios web 0 0
Inyección XML SQL 0 0
Scripting XML entre sitios 0 0
Datos adjuntos XML 0 0
Violaciones de errores SOAP 0 0
Violaciones genéricas de XML 0 0
Total de violaciones 0 0
Estadísticas de registro HTML/XML/JSON Tasa (s) Total
Registros de URL de inicio 0 0
Denegar registros de URL 0 0
Registros de encabezado de referer 0 0
Registros de desbordamiento de 0 0
Registros de desbordamiento de 0 0
Registros de coherencia de cookies 0 0
Registros de secuestro de cookies 0 0
Registros de etiquetas de formulario CSRF 0 0
Registros HTML XSS 0 0
Registros de transformación HTML XSS 0 0
Registros de inyección HTML SQL 0 0
Registros de transformación HTML SQL 0 0
Registros de formato de campo 0 0
Registros de coherencia de campo 0 0
Tarjetas de crédito 0 0
Registro de transformación de tarjetas de crédito 0 0
Registros de objetos seguros 0 0
Registros de firmas 0 0
Registros de tipo de contenido 0 0
Registros de denegación de servicio JSON 0 0
Registros de inyección JSON SQL 0 0
Registros de scripts entre sitios JSON 0 0
Tipos de carga de archivos registros 0 0
Inducir tipo de contenido XML Carga útil L 0 0
Registros de inyección de comandos HTML 0 0
Registros de formato XML 0 0
Registros XML de denegación de servicio (XDoS) 0 0
Registros de validación de mensajes XML 0 0
Registros WSI 0 0
Registros de inyección XML SQL 0 0
Registros XML XSS 0 0
Registro de datos adjuntos XML 0 0
Registros de errores SOAP 0 0
Registros genéricos XML 0 0
Total de mensajes de registro 0 0
Estadísticas de respuesta a errores del servidor Tasa (s) Total
Errores de cliente HTTP (4xx Resp) 0 0
Errores del servidor HTTP (5xx) 0 0

Ver estadísticas de tráfico de secuestro de cookies y violaciones mediante la interfaz gráfica de usuario

  1. Vaya a Seguridad > Citrix Web App Firewall > Perfiles.
  2. En el panel de detalles, seleccione un perfil de Web App Firewall y haga clic en Estadísticas.
  3. La página Estadísticas de Citrix Web App Firewall muestra los detalles del tráfico de secuestro de cookies y la infracción.
  4. Puede seleccionar Vista tabular o cambiar a Vista gráfica para mostrar los datos en formato tabular o gráfico.

Estadísticas de infracciones de secuestro de cookies en la GUI de Citrix ADC