Por Ndeye Maty K. - Experto en ciberseguridad
Desde la actualización a la versión 80 de Google Chrome en febrero de 2020, hemos recibido notificaciones de clientes que han detectado errores en las aplicaciones relacionados con el uso de Google Chrome y las medidas de seguridad implementadas (aplicación del atributo SameSite de las cookies en Chrome 80).
Errores en las aplicaciones
Hemos observado que la implementación de la actualización presentaba dificultades con la cookie de persistencia de nuestras direcciones IP virtuales alojadas en nuestros BIG-IP (F5). Nuestros usuarios recibían el siguiente error:
«Aplicación del atributo SameSite de las cookies en Chrome 80».
Google ha reforzado las normas relacionadas con la seguridad y la privacidad de su navegador, especialmente en lo que respecta al uso de cookies. Su objetivo: reducir los ataques CSRF (Cross Site Request Forgery) verificando el atributo «SameSite» en las cookies, de conformidad con el RFC: rfc6265bis. Este atributo determina cómo debe el navegador enviar las cookies a dominios de terceros (third party domain).
Consecuencia : si el servidor que genera la cookie no especifica el atributo « SameSite » en la cookie, el navegador impone un comportamiento predeterminado.
En el caso de Chrome, el comportamiento predeterminado es « SameSite = Lax ».
La comprobación de este atributo en las cookies también se está generalizando en otros navegadores, como Firefox y Edge, y, con el tiempo, estos navegadores impondrán un comportamiento predeterminado al igual que Chrome:
- Firefox está probando este comportamiento a partir de la versión 69
- Edge está probando este comportamiento a partir de la versión 80
Recapitula los valores posibles para el atributo «SameSite», así como sus casos de uso:
| De origen propio cookie | Se crea a partir de los sitios web que visita un usuario y se utiliza para almacenar datos como los artículos de la cesta, la información de inicio de sesión (por ejemplo, cookies de autenticación) y otros análisis. |
| De segunda parte cookie de terceros | Técnicamente es lo mismo que una cookie de origen. La diferencia radica en que los datos se comparten con un tercero a través de un acuerdo de colaboración en materia de datos. |
| De terceros cookie de terceros | Instalado por un dominio distinto al que el usuario ha visitado de forma explícita y se utiliza principalmente para el seguimiento (por ejemplo, los botones «Me gusta»), el servicio AD y los chats en directo. |
SameSite puede tener tres valores:
| Valor del atributo | Comportamiento | Valor | Especificación de atributos |
| Lax | Las cookies solo se enviarán automáticamente en un contexto «de origen» y con solicitudes HTTP GET. Las cookies SameSite se rechazarán en las subconsultas entre sitios (cross-site), como las llamadas para cargar imágenes o IFRAMES, pero se enviarán cuando un usuario navegue hacia la URL desde un sitio externo, por ejemplo, al seguir un enlace. | Por defecto | Set-Cookie: clave=valor; SameSite=Lax |
| Estrictamente | El navegador solo enviará las cookies para las solicitudes de contexto «first-party» (solicitudes procedentes del sitio web que define la cookie). Si la solicitud procede de una URL diferente a la de la ubicación actual, no se envía ninguna de las cookies marcadas con el atributo Strict. | Opcional | Set-Cookie: clave=valor; SameSite=Strict |
| Ninguno | Las cookies se envían tanto en el contexto «first-party» como « » en las solicitudes «cross-origin» (solicitudes entre dominios). Sin embargo, el valor debe establecerse explícitamente en None y todas las solicitudes del navegador deben seguir el protocolo HTTPS e incluir el atributo Secure, que requiere una conexión cifrada. Las cookies que no cumplan este requisito serán rechazadas. Ambos atributos son obligatorios. Si solo se especifica None sin Secure o si no se utiliza el protocolo HTTPS, la cookie de terceros será rechazada. | Opcional, pero si se define, se requiere el protocolo HTTPS. | Set-Cookie: clave=valor; SameSite=None; Secure |
El uso del componente OPEN AM
Utilizamos un componente OPEN AM para la autenticación mediante cookies en modo transparente. Y son los equilibradores de carga F5 los que gestionan el acceso a las aplicaciones a través de las direcciones VIP configuradas.
El sistema de seguridad bloquea la cookie de autenticación VIP (considerada como un sitio de terceros) de todas las cookies que no procedan de la misma URL (las de los servidores de aplicaciones y la de la autenticación VIP).
Por lo tanto, la cookie de autenticación VIP, creada por el propio F5, obliga al navegador a volver al mismo servidor de aplicaciones, lo que plantea un problema.
De hecho, no existe ese atributo «SameSite» » en la cookie y el comportamiento predeterminado de Chrome es « SameSite = Lax » (autorización solo de origen propio). Por lo tanto, Chrome bloquea la solicitud, ya que se trata de un uso «entre sitios».
Por lo tanto, es necesario que nuestras aplicaciones entre sitios definan el atributo « SameSite = None; Secure ».
Solución: la implantación de una norma
En Devcentral,una irule (script F5) permite tener en cuenta las diferentes versiones de los navegadores y el uso o la adición del atributo SameSite:

Tras varias conversaciones con los equipos de soporte, hemos implementado la regla propuesta por F5, que era la solución alternativa más adecuada para nuestro caso, a la espera de actualizar todos nuestros BIG-IP ASM a la versión 15.
En la actualidad,sSolo el módulo ASM a partir de la versión 13.1.0 permite especificar el atributo SameSite sin necesidad de utilizar una regla iRule, pero se ha registrado un error: N.º de incidencia 879841: A la opción «same-site» de las cookies de dominio le falta el valor «None» en la interfaz gráfica de usuario y en REST :
Versiones afectadas conocidas: 15.1.0, 15.1.0.1, 15.1.0.2, 15.1.0.3, 15.1.0.4
Corregido en: 16.0.0Conclusión
Al igual que Chrome, las versiones recientes de los navegadores optan por el valor «Lax» como valor predeterminado para mitigar los riesgos asociados a los ataques de tipo CSRF (falsificación de solicitudes entre sitios).
Por lo tanto, a nivel del navegador, es necesario este mecanismo de protección que consiste en no permitir que una cookie (utilizada para la autenticación) responda a una solicitud procedente de otro lugar (cookies del mismo sitio), y a nivel del servidor hay que actuar de manera que solo se responda a las solicitudes legítimas.
A raíz de los comentarios de los clientes, F5 BIG IP lleva trabajando desde el año pasado (2020) en la implementación de esta opción de gestión del atributo SameSite de las cookies.
En los BIG IP ASM de las versiones 13, 14, 15 y 16, ahora es posible gestionar la inserción del atributo Samesite con el valor deseado sin necesidad de configurar una irule.
Fuentes:
https://support.f5.com/csp/article/K03346798https://www.chromium.org/updates/same-site/faq
