Citrix ADC

Comprobación de consistencia de cookies

La comprobación de coherencia de cookies examina las cookies devueltas por los usuarios para verificar que coinciden con las cookies que su sitio web ha configurado para ese usuario. Si se encuentra una cookie modificada, se elimina de la solicitud antes de que la solicitud se reenvíe al servidor web. También puede configurar la comprobación de coherencia de cookies para transformar todas las cookies del servidor que procesa, cifrándolas, reenviándolas mediante proxy o agregando marcas a las cookies. Esta comprobación se aplica a las solicitudes y respuestas.

Un atacante normalmente modificaría una cookie para obtener acceso a información privada confidencial haciéndose pasar por un usuario previamente autenticado, o para provocar un desbordamiento del búfer. La comprobación de desbordamiento de búfer protege contra intentos de provocar un desbordamiento de búfer mediante el uso de una cookie La comprobación de coherencia de cookies se centra en el primer escenario.

Si utiliza el asistente o la GUI, en el cuadro de diálogo Modificar comprobación de coherencia de cookies, en la ficha General, puede habilitar o inhabilitar las siguientes acciones:

  • Bloquear
  • Registro
  • Aprender
  • Estadísticas
  • Transformar. Si se activa, la acción Transformar modifica todas las cookies según se especifica en la siguiente configuración:
    • Cifrar las cookies del servidor. Encripte las cookies establecidas por su servidor web, excepto las que figuran en la lista de relajación de la verificación de coherencia de cookies, antes de reenviar la respuesta al cliente. Las cookies cifradas se descifran cuando el cliente envía una solicitud posterior, y las cookies descifradas se vuelven a insertar en la solicitud antes de que se reenvíen al servidor web protegido. Especifique uno de los siguientes tipos de cifrado:
      • Ninguno. No cifrar ni descifrar las cookies. El valor por defecto.
      • Solo descifrar. Descifrar solo las cookies cifradas. No encripte las cookies.
      • Solo sesión cifrada. Cifrar solo las cookies de sesión. No cifre las cookies persistentes. Descifra las cookies cifradas.
      • Cifrar todo. Encripta tanto las cookies de sesión como las persistentes. Descifra las cookies cifradas. Nota: Al cifrar cookies, Web App Firewall agrega la marca HttpOnly a la cookie. Este indicador evita que los scripts accedan a la cookie y la analice. Por lo tanto, el indicador evita que un virus o troyano basado en scripts acceda a una cookie descifrada y utilice esa información para violar la seguridad. Esto se hace independientemente de la configuración de parámetros Indicadores para agregar en las cookies, que se gestionan independientemente de la configuración del parámetro Cifrar cookies del servidor.
  • Cookies de servidor proxy. Proxy de todas las cookies no persistentes (de sesión) establecidas por su servidor web, excepto las que figuran en la lista de relajación de la verificación de consistencia de cookies. Las cookies se convierten en proxy mediante la cookie de sesión existente de Web App Firewall. Web App Firewall elimina las cookies de sesión establecidas por el servidor web protegido y las guarda localmente antes de reenviar la respuesta al cliente. Cuando el cliente envía una solicitud posterior, Web App Firewall vuelve a insertar las cookies de sesión en la solicitud antes de reenviarla al servidor web protegido. Especifique una de las siguientes configuraciones:
    • Ninguno. No utilice cookies proxy. El valor por defecto.
    • Solo sesión. Solo cookies de sesión proxy. No usar proxy de cookies persistentes Nota: Si inhabilita el proxy de cookie después de haberlo habilitado (establezca este valor en Ninguno después de que se haya establecido en Solo sesión), el proxy de cookie se mantiene para las sesiones que se establecieron antes de inhabilitarlo. Por lo tanto, puede inhabilitar esta función de forma segura mientras Web App Firewall procesa las sesiones de los usuarios.
  • Marcas para agregar en las cookies. Agregue marcas a las cookies durante la transformación. Especifique una de las siguientes configuraciones:
    • Ninguno. No agregue marcas a las cookies. El valor por defecto.
    • Solo HTTP. Agregue la marca HttpOnly a todas las cookies. Los exploradores que admiten la marca HttpOnly no permiten que los scripts accedan a las cookies que tienen esta marca configurada.
    • Segura. Agregue la marca Secure a las cookies que se enviarán solo a través de una conexión SSL. Los exploradores que admiten el indicador Secure no envían las cookies marcadas a través de una conexión insegura.
    • Todas. Agregue la marca HttpOnly a todas las cookies y la marca Secure a las cookies que se enviarán solo a través de una conexión SSL.

Si utiliza la interfaz de línea de comandos, puede introducir los siguientes comandos para configurar la comprobación de coherencia de cookies:

  • set appfw profile <name> -cookieConsistencyAction [**block**] [**learn**] [**log**] [**stats**] [**none**]
  • set appfw profile <name> -cookieTransforms ([**ON**] | [**OFF**])
  • set appfw profile <name> -cookieEncryption ([**none**] | [**decryptOnly**] | [**encryptSession**] | [**encryptAll**])
  • set appfw profile <name> -cookieProxying ([**none**] | [**sessionOnly**])
  • set appfw profile <name> -addCookieFlags ([**none**] | [**httpOnly**] | [**secure**] | [**all**])

Para especificar relajaciones para la comprobación de coherencia de cookies, debe utilizar la interfaz gráfica de usuario. En la ficha Comprobaciones del cuadro de diálogo Modificar comprobación de coherencia de cookies, haga clic en Agregar para abrir el cuadro de diálogo Agregar relajación de comprobación de coherencia de cookies, o seleccione una relajación existente y haga clic en Abrir para abrir el cuadro de diálogo Modificar relajación de comprobación de coherencia de cookies. Cualquiera de los dos cuadros de diálogo proporciona las mismas opciones para configurar una relajación.

A continuación se presentan ejemplos de relajaciones de verificación de consistencia de cookies:

  • Campos de inicio de sesión. La siguiente expresión exime a todos los nombres de cookie que comiencen por la cadena logon_ seguida de una cadena de letras o números que tenga al menos dos caracteres y no más de quince caracteres:

     ^logon_[0-9A-Za-z]{2,15}$
     <!--NeedCopy-->
    
  • Campos de inicio de sesión (caracteres especiales). La siguiente expresión exime a todos los nombres de cookie que comiencen por la cadena türkçe-logon_ seguida de una cadena de letras o números que tenga al menos dos caracteres y no más de quince caracteres:

     ^txC3xBCrkxC3xA7e-logon_[0-9A-Za-z]{2,15}$
     <!--NeedCopy-->
    
  • Cadenas arbitrarias. Permitir cookies que contengan la cadena sc-item_, seguidas del ID de un artículo que el usuario ha agregado a su carrito de la compra ([0-9a-za-z]+), un segundo guión bajo (_) y, finalmente, el número de estos elementos que quiere ([1-9][0-9]?) , para que sea modificable por el usuario:

     ^sc-item_[0-9A-Za-z]+_[1-9][0-9]?$
     <!--NeedCopy-->
    

Precaución: Las expresiones regulares son potentes. Especialmente si no está familiarizado con las expresiones regulares en formato PCRE, compruebe las expresiones regulares que escriba. Asegúrese de que definen exactamente la URL que quiere agregar como excepción y nada más. El uso descuidado de comodines, y especialmente de la combinación de metacaracteres/comodín punto-asterisco (.*), puede tener resultados que no quiere o espera, como bloquear el acceso a contenido web que no tenía intención de bloquear o permitir un ataque que la comprobación de consistencia de cookies tendría de otro modo bloqueado.

Importante

En la versión 10.5.e (en algunas compilaciones de mejoras provisionales anteriores a la compilación 59.13xx.e), así como en la versión 11.0 (en compilaciones anteriores a la 65.x), se modificó el procesamiento del encabezado de la cookie por Web App Firewall. En esas versiones, cada cookie se evalúa individualmente, y si la longitud de cualquier cookie recibida en el encabezado Cookie excede la configuración de BufferOverflowMaxCookieLength, se desencadena la infracción de desbordamiento de búfer. Como resultado de este cambio, es posible que se permitan las solicitudes que se bloquearon en versiones 10.5 y anteriores, porque la longitud de todo el encabezado de la cookie no se calcula para determinar la longitud de la cookie. En algunas situaciones, el tamaño total de las cookie reenviadas al servidor puede ser mayor que el valor aceptado y el servidor puede responder con “400 solicitudes incorrectas”.

Tenga en cuenta que este cambio se ha revertido. El comportamiento en las compilaciones 10.5.e ->59.13xx.e y posteriores de la mejora 10.5.e, así como en la versión 11.0 65.x y en las compilaciones posteriores, ahora es similar al de las compilaciones sin mejora de la versión 10.5. Ahora se tiene en cuenta todo el encabezado de Cookie sin procesar al calcular la longitud de la cookie. Los espacios circundantes y los caracteres de punto y coma (;) que separan los pares nombre-valor también se incluyen para determinar la longitud de la cookie.**

Nota

Consistencia de cookie sin sesión: El comportamiento de coherencia de cookies cambió en la versión 11.0. En versiones anteriores, la comprobación de coherencia de cookie invoca la sesión. Las cookies se almacenan en la sesión y se firman. Se agrega un sufijo “wlt_” a las cookies transitorias y se añade un sufijo “wlf_” a las cookies persistentes antes de que se reenvíen al cliente. Incluso si el cliente no devuelve estas cookies wlf/wlt firmadas, Web App Firewall utiliza las cookies almacenadas en la sesión para realizar la comprobación de la coherencia de las cookie.

En la versión 11.0, la comprobación de coherencia de cookie no tiene sesión. Web App Firewall ahora agrega una cookie que es un hash de todas las cookies rastreadas por Web App Firewall. Si esta cookie hash o cualquier otra cookie rastreada falta o se altera, Web App Firewall elimina las cookies antes de reenviar la solicitud al servidor back-end y desencadena una violación de la consistencia de las cookies. El servidor trata la solicitud como una nueva solicitud y envía nuevos encabezados Set-Cookie. La comprobación de coherencia de cookies en Citrix ADC versión 13.0, 12.1 y NetScaler 12.0 y 11.1 no tiene la opción sin sesión.

Comprobación de consistencia de cookies

En este artículo