VULNERABILIDADES DE APLICACIONES WEB: CROSS-SITE REQUEST FORGERY (CSRF ó XSRF)

04.10.2018 07:06
 
 
Lamentablemente muchas veces se considera esta vulnerabilidad como algo del pasado, ya superado. Esa es una forma peligrosa de pensar y puede resultar en perjuicios muy graves para los ususarios de la aplicación web que estamos protegiendo o probando e incluso para el administrador de un sitio web. Un pirata informático persistente o un grupo de atacantes decididos buscarán superar las medidas de protección que hoy por hoy se adoptan. Esas medidas fueron un gran progreso pero menospreciar a un delincuente informático puede resultar caro. 
 
El CSRF es un ataque que engaña a la víctima para que envíe una solicitud maliciosa sin que la misma sepa que lo está haciendo. Hereda y aprovecha la identidad y los privilegios de la víctima para realizar en su nombre algo que la misma no desea hacer. Para la mayoría de los sitios las solicitudes del navegador incluyen automáticamente cualquier credencial asociada con el sitio como, por ejemplo, la cookie de sesión del usuario. Por ende si el usuario está actualmente autenticado en el sitio, en principio el sitio no tendrá forma de distinguir entre la solicitud falsificada enviada por la víctima (sin saber que lo está haciendo) y una solicitud legítima enviada por la misma. Por ejemplo, si recibimos un correo electrónico con el siguiente enlace
 
https://pasajesyboletos.com/ingreso.php?clave=mnbvcxz&repetirclave=mnbvcxz&submit=enviar
 
y cliqueamos en el mientras estamos autenticados en https://pasajesyboletos.com, nuestra clave de acceso será cambiada. ¿Por qué haríamos clic en el enlace? La "ingeniería social" - grotesco eufemismo para la manipulación y el engaño - intentará que lo hagamos.
 
Como vemos el CSRF ataca la funcionalidad de destino que causa un cambio de estado en el servidor: puede cambiar la dirección de correo electrónico o la contraseña de la víctima, borrar alguna información de la misma, comprar algo y hasta transferir dinero en su nombre. A veces es posible almacenar el ataque CSRF en el propio sitio vulnerable. Tales vulnerabilidades se llaman "fallas CSRF almacenadas" y son más riesgosas que las comunes.
 
En otro artículo veremos algunas medidas que se implementan para hacer frente a los ataques descriptos arriba.