ENES

CSRF

Un ataque que hace que tu navegador mande, en tu nombre, un pedido que nunca quisiste.

Un usuario con la sesión abierta en su banco entra a una página maliciosa; un formulario oculto en esa página hace que el navegador mande un pedido de transferencia al banco con la cookie de sesión del usuario

CSRF viene de cross-site request forgery, algo así como falsificación de pedidos entre sitios. Aprovecha una costumbre de todo navegador: cuando una página le manda un pedido a un sitio, el navegador le pega solo las cookies de ese sitio, incluida la cookie de sesión que dice que estás logueado. Entonces, si tenés el home banking abierto en una pestaña y entrás a una página maliciosa en otra, esa página puede enviar en silencio un formulario al banco, y el banco ve un pedido normalísimo que viene de vos.

El ejemplo clásico: la página maliciosa tiene un formulario oculto que apunta a https://bank.example/transfer con la cuenta del atacante como destino, y una línea de JavaScript que lo envía apenas carga. Vos no ves nada. El atacante nunca ve tu contraseña ni tu cookie, y tampoco puede leer lo que responde el banco: el ataque funciona a ciegas. Esa es la diferencia con el cross-site scripting, donde el atacante logra ejecutar código adentro del sitio. Al CSRF le alcanza con que la acción sea predecible: cambiar el mail, cambiar la contraseña, hacer un pago.

Las defensas se combinan. Los sitios ponen en cada formulario un token CSRF, un secreto aleatorio, y rechazan los pedidos que no lo traen; una página ajena no lo puede adivinar. Las cookies se pueden marcar SameSite=Lax o Strict para que el navegador no las mande en pedidos que arrancan en otros sitios, y los navegadores modernos ya vienen con algo parecido por defecto. El servidor también puede revisar el encabezado Origin y pedir la contraseña de nuevo antes de cambios delicados. Casi todos los frameworks web traen protección contra CSRF de fábrica; los agujeros suelen aparecer cuando alguien la apaga o hace una acción importante con un simple link GET.

Para quedarse

Para seguir leyendo

Términos relacionados

Más de Seguridad