CROSS SITE REQUEST FORGERY

También conocido como XSRF este tipo de ataque se aprovecha de la confianza que tiene un sitio web con el usuario esto puede ser con el acceso desde cookies o cuando el usuario no finaliza la sesión que tiene abierta de algún sitio de confianza y sigue navegando por otros sitios web.

 

Como funciona

El usuario pepito tiene su administración bancario por medio de la banca electrónica ya que no le da tiempo de ir al banco y aprovecha la tecnología, pepito al momento de ingresar a la página del banco le pide que se identifique y pepito ingresa su usuario y contraseña y algunos otros datos que el banco pide para tener más seguridad y confiar que es en verdad pepito.

Suponiendo que el banco no tiene identificado el problema de XSRF y no lo previene, pepito termina de hacer sus transacciones y decide navegar un rato por Google buscando algunas pantallas de segunda mano, Por mala suerte pepito llega a una página maliciosa que se va aprovechar de su autentificación verdadera en el banco.

La página maliciosa tiene programado en su HTML una liga que está apuntando al banco de donde pepito ya está registrado, este HTML tiene anexado una trasferencia a una cuanta en la que se depositara una suma de dinero a nombre de pepito, ya que esta liga está aprovechando de que pepito aún sigue autentificado con la página y cualquier transición que el realice el banco la tomara como autentificada

 

Prevenir ataques CSRF en aplicaciones ASP .NET

 

El Framework de .NET nos incluye los Anti-Forgery tokens que es una estrategia para la prevención de los ataques por CSRF estos se generan por cada sesión de usuario y son enviados al servidor permitiendo tener una validación, estos son los atributos que incluye el Framework de .NET para la mitigación de estos ataques.

 

  • EnableViewStateMac
  • ViewStateUserKey

 

Estos atributos están disponibles desde la versión 4.5.2 del Framework aun que aun así existe diferentes plugins que pueden tener más opciones para poder mitigar este ataque desde nuestro desarrollo en .NET

 

Share: