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 web. Durante la sesión, la aplicación guarda los detalles del usuario, como las credenciales de inicio de sesión y las visitas a la página, en un archivo de cookies. El archivo de cookies se envía entonces al explorador web del cliente en la respuesta. El explorador web almacena las cookies para mantener las sesiones activas. El atacante puede robar estas cookies manualmente desde el almacén de cookies del explorador web o a través de alguna extensión del explorador web Rouge. A continuación, el atacante utiliza estas cookies para acceder a las sesiones de la aplicación web del usuario.

Para mitigar los ataques de cookies, el Web App Firewall (WAF) de NetScaler ADC desafía la conexión TLS del cliente junto con la validación de la coherencia de las cookies de 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 sobre la coherencia de cookie, consulte el tema Comprobación de coherencia de cookies.

Nota:

La función de secuestro de cookies admite el registro y las capturas de SNMP. Para obtener más información sobre el registro, consulte el tema ADM y, para obtener más información sobre la configuración de SNMP, consulte el tema SNMP.

Limitaciones

  • JavaScript debe estar habilitado en el explorador del cliente.
  • La protección de secuestro de cookies no es compatible con TLS versión 1.3.
  • Compatibilidad limitada para el explorador Internet Explorer (IE) porque el explorador no reutiliza las conexiones SSL. Resulta que se envían varios redireccionamientos para una solicitud que eventualmente provocan un error “MAX REDIRECTS EXCEDEDEDED” en el explorador IE.

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

Los siguientes casos explican cómo funciona la protección contra el secuestro de cookies en un dispositivo NetScaler ADC.

Caso de uso del 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 de ADC en la solicitud.
  2. Cuando se recibe la solicitud, el dispositivo crea una sesión de Application Firewall con un ID de cookies 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 web 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 identificadores de cookies de la aplicación de una víctima sin enviar la cookie de sesión, el dispositivo detecta el problema y elimina todas las cookies de la aplicación de la solicitud antes de reenviarla al servidor del back-end. El servidor de fondo considera esta solicitud sin ninguna cookie de aplicación y toma las medidas necesarias según su configuración.

  4. Cuando el servidor del 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 de inicialización. A continuación, el dispositivo marca la conexión TLS como verificada.
  5. Cuando el explorador web del cliente recibe la respuesta, ejecuta el JavaScript y genera un ID de cookies transformado mediante el token de sesión y la cookie inicial.
  6. Cuando un usuario envía una solicitud posterior a través de la conexión TLS, el dispositivo omite la validación de la cookie transformada. Esto se debe a que la conexión TLS ya está validada.

Caso de uso del ataque de secuestro de cookies 2: acceso del usuario a través de un 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 web envía el ID de cookies de sesión y el ID de cookies transformado.
  2. Como se trata de una conexión TLS nueva, el dispositivo detecta la conexión TLS y desafía al cliente con una respuesta de redirección con una cookie de inicialización.
  3. Al recibir la respuesta del ADC, el cliente calcula la cookie transformada utilizando el token de la sesión y la nueva cookie de inicialización.
  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 en el dispositivo ADC y la que se envió a través de la solicitud coinciden, la conexión TLS se marca como verificada.
  6. Si la cookie transformada calculada difiere de la presente en la solicitud del cliente, la validación fallará. Después de lo cual, el dispositivo envía el desafío de vuelta al cliente para enviar una cookie con la transformación adecuada.

Caso 3: Atacante que se hace pasar por un usuario no autenticado

Caso de uso 3 del ataque de secuestro de cookies: 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. Como 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 de inicialización.
  3. Como el atacante no tiene JavaScript en ejecución, la respuesta del atacante a la solicitud redirigida no contiene la cookie transformada.
  4. Esto provoca un error de validación de cookies transformadas en el 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, el dispositivo marca el estado como secuestro de cookies.
  6. Si el atacante intenta combinar las cookies de aplicación y las cookies de sesión robadas a la víctima, se produce un error en la comprobación de la coherencia de las cookies y el dispositivo aplica la acción de secuestro de cookies configurada.

Caso 4: Atacante que se hace pasar por usuario autenticado

Caso de uso 4 del ataque de secuestro de cookies: el atacante se hace pasar por 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 acceder a la sesión web.
  2. El dispositivo ADC también detecta estos atacantes suplantados. Aunque el atacante utiliza una conexión TLS verificada para reproducir la cookie de la víctima, el dispositivo ADC sigue verificando si la cookie de sesión y la cookie de aplicación de la solicitud son coherentes. El dispositivo verifica la coherencia de una cookie de aplicación mediante la cookie de sesión de la solicitud. Dado que la solicitud contiene una cookie de sesión del atacante y una cookie de aplicación de la víctima, la validación de la coherencia de las cookies falla.
  3. Como resultado, el dispositivo aplica la acción de secuestro de cookies configurada. Si la acción configurada se establece como “bloquear”, el dispositivo elimina todas las cookies de la aplicación y envía la solicitud al servidor del back-end.
  4. El servidor del back-end recibe una solicitud sin cookie de aplicación, por lo que responde a una respuesta de error al atacante, como “El usuario no ha iniciado sesión”.

Configurar el secuestro de cookies mediante la CLI

Puede seleccionar un perfil de firewall de aplicación específico y configurar una o más acciones para evitar el secuestro de cookies.

En la línea de comandos, escriba:

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

Nota:

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

Ejemplo:

set appfw profile profile1 - cookieHijackingAction Block

Donde los tipos de acción son:

Bloquear: Bloquea las conexiones que infrinjan este control de seguridad. Registro: Registra las infracciones de esta comprobación de seguridad. Estadísticas: Genere estadísticas para este control de seguridad. Ninguna: Inhabilita todas las acciones de esta comprobación de seguridad.

Configurar el secuestro de cookies mediante la GUI de NetScaler 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.
  4. En la sección Controles de seguridad, seleccione Secuestro de cookies y, a continuación, haga clic en Configuración de acciones.
  5. En la página Parámetros de secuestro de cookies, seleccione una o más acciones para evitar el secuestro de cookies.
  6. Haga clic en Aceptar.

Agregar una regla de relajación para la validación de la coherencia de las cookies mediante la GUI de NetScaler ADC

Para gestionar los falsos positivos en la validación de la coherencia de las cookies, puede agregar una regla de relajación para las cookies que pueden estar 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 Parámetros avanzados y haga clic en Reglas de relajación.
  4. En la sección Reglas de relajación, seleccione Coherencia de cookies y haga clic en Acción.

  5. En la página Regla de relajación de la coherencia de las cookies, establezca los siguientes parámetros.
    1. Habilitada. Seleccione si quiere habilitar la regla de relajación.
    2. Is Cookie Name 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 estar 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.

Consulte las estadísticas de tráfico e infracciones de secuestro de cookies mediante la CLI

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

Para ver las estadísticas de seguridad:

En la línea de comandos, escriba:

stat appfw profile profile1

Estadísticas de tráfico del perfil Appfw Tasa (/s) Total
Solicitudes 0 0
Bytes de solicitud 0 0
Respuestas 0 0
Bytes de respuesta 0 0
Aborta 0 0
Redireccionamientos 0 0
Tiempo de respuesta promedio a largo plazo (ms) 0
Tiempo de respuesta promedio reciente (ms) 0
Estadística de infracciones de HTML/XML/JSON Tasa (/s) Total
URL de inicio 0 0
Denegar URL 0 0
Encabezado referer 0 0
Desbordamiento de búfer 0 0
Consistencia de cookies 0 0
Secuestro de cookies 0 0
Etiqueta de formulario CSRF 0 0
Scripts HTML entre sitios 0 0
Inyección HTML SQL 0 0
Formato de campo 0 0
Coherencia de 0 0
Tarjeta de crédito 0 0
Objeto seguro 0 0
Infracciones de firma 0 0
Tipo de contenido 0 0
Denegación de servicio JSON 0 0
Inyección JSON SQL 0 0
Scripting entre sitios JSON 0 0
Tipos de carga de archivos 0 0
Deducir carga útil XML del tipo de contenido 0 0
Inyección de 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 entre sitios XML 0 0
Datos adjuntos XML 0 0
Infracciones de errores de 0 0
Infracciones genéricas XML 0 0
Infracciones totales 0 0
Estadísticas de registro HTML/XML/J Tasa (/s) Total
Iniciar registros de URL 0 0
Denegar registros de URL 0 0
Registros de encabezado de referencia 0 0
Registros de desbordamiento 0 0
Registros de desbordamiento 0 0
Registros de consistencia de cookies 0 0
Registros de secuestro de cookies 0 0
Registros de etiquetas de formulario CSRF 0 0
Registros de scripts HTML entre sitios 0 0
Registros de transformación de scripting de sitios HTML 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
Registros de transformación de tarjetas de crédito 0 0
Registros de objetos seguros 0 0
Registros de firmas 0 0
Registros de tipos de contenido 0 0
Registros de denegación de servicio JSON 0 0
Registros de inyección JSON SQL 0 0
Registros de scripts JSON entre sitios 0 0
Registros de tipos de carga de archivos 0 0
Deducir carga útil XML del tipo de contenido L 0 0
Registros de inyección de comandos HTML 0 0
Registros en formato XML 0 0
Registros de denegación de servicio (XDoS) XML 0 0
Registros de validación de mensajes XML 0 0
Registros de WSI 0 0
Registros de inyección XML SQL 0 0
Registros de scripts XML entre sitios 0 0
Registros de datos adjuntos XML 0 0
Registros de errores SOAP 0 0
Registros genéricos XML 0 0
Mensajes de registro totales 0 0
Estadísticas de respuesta a errores del servidor Tasa (/s) Total
Errores del cliente HTTP (4xx Resp) 0 0
Errores del servidor HTTP (5xx) 0 0

Consulte las estadísticas de tráfico e infracciones de secuestro de cookies 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 las infracciones.
  4. Puede seleccionar Vista tabular o cambiar a Vista gráfica para mostrar los datos en formato tabular o gráfico.

Estadísticas de infracción de secuestro de cookies en la GUI de NetScaler ADC