Archivo de la etiqueta: CSRF

Ejemplo de CSRF

Cross Site Request Forgery – CSRF

En seguridad informática, al igual que en la mayoría de parcelas técnicas, se intenta dar nombres concretos a todas y cada una de las técnicas, tanto defensivas como atacantes, que van apareciendo y evolucionando para así, con una categorización clara, poder analizar cada caso y evolución. En este artículo veremos una evolución de los ataques XSS: la Cross Site Request Forgery (CSRF).

Estos ataques están muy ligados a la facilidad de la mayoría de navegadores modernos para gestionar diferentes recursos web, generalmente utilizando pestañas, y de memorizar las claves de acceso y sesión a los servicios web para facilitar al máximo la comodidad del usuario. La mayoría de usuarios se han acostumbrado a acceder a muchos servicios web (correo electrónico, redes sociales, foros, etc.) y que el navegador ya se autentique de forma automática sin que le pida las claves de acceso. Una vez hemos accedido a un servicio web el navegador gestiona una cookie de sesión que nos identificará frente al servicio web hasta que cerremos la sesión.

Con este entorno un atacante podría generar una página web, que podría facilitar a la víctima por ingeniería social, especialmente diseñada para que realizase una acción sobre una segunda página web que, al estar previamente autenticado, se llevaría a cabo.

Ejemplo de CSRF

Ejemplo de CSRF. Fuente imagen: IT College.ee

Ejemplo de CSRF. Fuente imagen: IT College.ee

Intentaremos ilustrar este tipo de ataque con un ejemplo simple si bien no es difícil imaginar situaciones más delicadas.

La víctima suele participar en un foro web (www.forovictima.com) por lo que generalmente abre una pestaña del navegador con ese foro. Una vez hecho esto, probablemente a primera hora de la mañana, se ha establecido una cookie de sesión que el navegador utilizar para autenticarse con el foro hasta que se cierre la sesión (que puede ser al finalizar su horario laboral).

Conociendo este comportamiento (que será muy similar al de la gran mayoría de usuarios activos en ese foro) un atacante prepara una página web maliciosa que tras una apariencia inocente en realidad lanza una petición del tipo www.forovictima.com/perfil?accion=baja

Cuando el navegador ejecuta esa llamada utilizará la cookie de sesión previamente almacenada para autenticarse en el foro y realizar la consulta pedida. En nuestro ejemplo (accion=baja) el resultado podría ser la baja del usuario en el foro.

En este ejemplo se trata de una simple baja de un foro pero este tipo de ataque podría, por ejemplo, obligar a un usuario a comprar un producto en una tienda por lo que no hay que descuidarlo.

Protección frente CSRF

Por parte de los usuarios los consejos que protegerían frente a CSRF sería básicamente cerrar sesión cada vez que terminemos de utilizar un servicio e impedir que el navegador almacene nuestras contraseñas de acceso. Así sólo nos autenticaríamos de forma consciente.

Otro consejo para los usuarios sería utilizar navegadores diferentes para acceder a las aplicaciones de ocio y a las críticas. De esta forma, al no compartirse sesiones entre navegadores diferentes, sería imposible que acceder a una web maliciosa enlazada en un foro afectase a nuestra cuenta bancaria.

Existen librerías que facilitan el desarrollo de aplicaciones seguras. Fuente imagen: Bkcore.com

Existen librerías que facilitan el desarrollo de aplicaciones seguras. Fuente imagen: Bkcore.com

Por parte de los desarrolladores de aplicaciones web hay que tener en cuenta qué acciones son críticas para su sistema, y sus clientes, y reforzar su realización mediante sistemas que obliguen a la interacción con el usuario (captchas, segundos factores de autenticación, identificaciones únicos de peticiones, tokens, etc.).