La falsificación de solicitudes entre sitios (CSRF) es una de las formas más antiguas de explotar las vulnerabilidades de un sitio web. Se dirige a conmutadores web del lado del servidor que generalmente requieren autenticaciones como iniciar sesión. Durante un ataque CSRF, un atacante tiene como objetivo obligar a su víctima a realizar una solicitud web maliciosa y no autorizada en su nombre.

Las prácticas de seguridad de sitios web débiles o deficientes y el descuido en la ruta del usuario son algunas de las causas comunes de un ataque CSRF exitoso.

Veamos qué es un ataque CSRF y las posibles formas en que puede evitarlo como desarrollador o como usuario.

¿Cómo le afectan los ataques CSRF?

Un CSRF es un ataque que se utiliza para implementar solicitudes no autorizadas durante acciones web que requieren autenticación o inicio de sesión del usuario. Los ataques CSRF pueden aprovechar las ID de sesión, las cookies y otras vulnerabilidades basadas en el servidor para robar las credenciales de un usuario.

instagram viewer

Por ejemplo, habilitar procedimientos anti-CSRF evita interacciones maliciosas entre dominios.

Una vez que se rompe la barrera, un atacante puede aprovechar rápidamente el ID de sesión del usuario a través de las cookies creadas por el navegador del usuario e incrustar una etiqueta de secuencia de comandos en el sitio web vulnerable.

Al manipular una identificación, el atacante también puede redirigir a los visitantes a otra página web o explotar métodos de ingeniería social como correo electrónico para enviar enlaces, animando a la víctima a descargar software malicioso.

¿Qué es la ingeniería social? Así es como podría ser pirateado

Aprenda cómo la ingeniería social puede afectarlo, además de ejemplos comunes que lo ayudarán a identificar y mantenerse a salvo de estos esquemas.

Una vez que la víctima realiza tales acciones, envía una solicitud HTTP a la página de servicio del usuario y autoriza la acción de solicitud a favor del atacante. Eso puede ser devastador para un usuario desprevenido.

Un ataque CSRF exitoso puede hacer que los usuarios autorizados pierdan sus credenciales de acceso ante un atacante, especialmente durante acciones basadas en el servidor, como solicitudes de cambio de contraseña o nombre de usuario. En el peor de los casos, el atacante se apodera de toda la sesión y actúa en nombre de los usuarios.

CSRF se ha utilizado para secuestrar transacciones de fondos a través de la web, así como para cambiar nombres de usuario y contraseñas, lo que lleva a que los usuarios pierdan el acceso al servicio afectado.

Cómo los atacantes secuestran sus sesiones con CSRF: ejemplos

Los principales objetivos de los ataques CSRF son las acciones web que implican la autenticación de un usuario. Para tener éxito, necesita acciones involuntarias de la víctima.

Durante un ataque CSRF, las acciones GET, DELETE y PUT, así como las solicitudes POST vulnerables, son los principales objetivos de un atacante.

Veamos el significado de esos términos:

  • OBTENER: Una solicitud para recopilar un resultado de la base de datos; por ejemplo, búsqueda de Google.
  • CORREO: Normalmente, para enviar solicitudes a través de formularios web. Una solicitud POST es común durante el registro o inicio de sesión de un usuario, también conocido como autenticación.
  • ELIMINAR: Para eliminar un recurso de la base de datos. Lo hace cada vez que elimina su cuenta de un servicio web en particular.
  • PONER: Una solicitud PUT modifica o actualiza un recurso existente. Un ejemplo es cambiar tu nombre de Facebook.

En la práctica, los atacantes utilizan el secuestro de sesiones para respaldar un ataque CSRF. Al usar esta combinación, el atacante puede usar un secuestro para cambiar la dirección IP de la víctima.

El cambio en la dirección IP luego registra a la víctima en un nuevo sitio web donde el atacante ha insertado un enlace engañoso que envía un formulario replicado o una solicitud de servidor modificada que crearon a través de CSRF.

Un usuario desprevenido cree que la redirección proviene del proveedor de servicios y hace clic en el enlace de la página web del atacante. Una vez que han hecho esto, los piratas informáticos envían un formulario al cargar la página sin su conocimiento.

Ejemplo de un ataque CSRF de solicitud GET

Imagínese tratando de realizar un pago en línea a través de una plataforma de comercio electrónico no segura. Los propietarios de la plataforma utilizan la solicitud GET para procesar su transacción. Esa consulta GET podría verse así:

https://websiteurl/pay? cantidad = $ 10 & empresa = [cuenta de la empresa ABC]

Un secuestrador puede robar su transacción fácilmente cambiando los parámetros de la solicitud GET. Para hacer esto, todo lo que necesitan hacer es cambiar su nombre por el de ellos y, lo que es peor, cambiar la cantidad que pretende pagar. Luego modifican la consulta original a algo como esto:

https://websiteurl/pay? monto = $ 20000 & empresa = [cuenta del atacante]

Una vez que hace clic en un enlace a esa solicitud GET modificada, termina haciendo una transferencia involuntaria a la cuenta del atacante.

La transacción a través de solicitudes GET es una mala práctica y hace que las actividades sean vulnerables a los ataques.

Ejemplo de un ataque CSRF de solicitud POST

Sin embargo, muchos desarrolladores creen que usar la solicitud POST es más seguro para realizar transacciones web. Si bien eso es cierto, desafortunadamente, una solicitud POST también es susceptible a ataques CSRF.

Para secuestrar con éxito una solicitud POST, todo lo que un atacante necesita es su ID de sesión actual, algunas formas invisibles replicadas y, a veces, un poco de ingeniería social.

Por ejemplo, un formulario de solicitud POST podría tener este aspecto:







Sin embargo, un atacante puede intercambiar su credencial creando una nueva página y modificando el formulario anterior en esto:









En la forma manipulada, el atacante establece el valor del campo de cantidad en "30000", intercambia el el número de cuenta del destinatario al de ellos, envía el formulario al cargar la página y también oculta los campos del formulario de el usuario.

Una vez que secuestran esa sesión actual, su página de transacciones inicia una redirección a la página del atacante, lo que le pide que haga clic en un enlace que saben que es más probable que visite.

Al hacer clic aquí, se carga el envío del formulario replicado, que transfiere sus fondos a la cuenta del atacante. Eso significa que no necesita hacer clic en botones como "enviar" para que se realice la transacción, ya que JavaScript lo hace automáticamente al cargar la siguiente página web.

Alternativamente, un atacante también puede redactar un correo electrónico incrustado en HTML que le pide que haga clic en un enlace para realizar el mismo envío de formulario de carga de página.

Otra acción que es vulnerable a un ataque CSRF es un cambio de nombre de usuario o contraseña, un ejemplo de una solicitud PUT. Un atacante replica su formulario de solicitud y reemplaza su dirección de correo electrónico con la de ellos.

Luego roban tu sesión y te redirigen a una página o te envían un correo electrónico que te pide que hagas clic en un enlace atractivo.

Luego envía un formulario manipulado que envía el enlace de restablecimiento de contraseña a la dirección de correo electrónico del pirata informático en lugar de la suya. De esa manera, el pirata informático cambia su contraseña y lo desconecta de su cuenta.

Cómo prevenir ataques CSRF como desarrollador

Uno de los mejores métodos para evitar un CSRF es utilizar tokens que cambian con frecuencia en lugar de depender de las cookies de sesión para ejecutar un cambio de estado en el servidor.

Relacionado: Guías gratuitas para comprender la seguridad digital y proteger su privacidad

Muchos marcos de backend modernos ofrecen seguridad contra CSRF. Entonces, si desea evitar los tecnicismos de reforzar contra CSRF usted mismo, puede abordarlo fácilmente utilizando marcos del lado del servidor que vienen con tokens anti-CSRF incorporados.

Cuando utiliza un token anti-CSRF, las solicitudes basadas en el servidor generan cadenas aleatorias en lugar de las cookies de sesión vulnerables más estáticas. De esa manera, puede proteger su sesión para que el secuestrador no adivine.

La implementación de un sistema de autenticación de dos factores (2FA) para ejecutar transacciones en su aplicación web también reduce las posibilidades de un CSRF.

Es posible iniciar un CSRF a través de secuencias de comandos entre sitios (XSS), que implica la inyección de secuencias de comandos en los campos del usuario, como los formularios de comentarios. Para evitar esto, es una buena práctica habilitar el escape automático de HTML en todos los campos de formulario de usuario en su sitio web. Esa acción evita que los campos de formulario interpreten elementos HTML.

Cómo prevenir ataques CSRF como usuario

Como usuario de un servicio web que implica autenticación, usted tiene un papel que desempeñar para evitar que los atacantes roben sus credenciales y sesiones también a través de CSRF.

Asegúrese de utilizar servicios web confiables durante las actividades que involucran transferencias de fondos.

Además de esto, use navegadores web seguros que protegen a los usuarios de la exposición de la sesión, así como motores de búsqueda seguros que protegen contra fugas de datos de búsqueda.

Relacionado: Los mejores motores de búsqueda privados que respetan sus datos

Como usuario, también puede depender de autenticadores de terceros como Autenticador de Google o sus alternativas para verificar su identidad en la web.

Aunque puede sentirse impotente para evitar que un atacante se apropie de su sesión, aún puede ayudar evitar esto asegurándose de que su navegador no almacene información como contraseñas y otros datos de inicio de sesión detalles.

Refuerce su seguridad web

Los desarrolladores deben probar con regularidad las aplicaciones web en busca de violaciones de seguridad durante el desarrollo y la implementación.

Sin embargo, es común introducir otras vulnerabilidades al intentar prevenir otras. Por lo tanto, asegúrese de no haber violado otros parámetros de seguridad al intentar bloquear un CSRF.

Correo electrónico
5 herramientas de contraseña para crear contraseñas seguras y actualizar su seguridad

Cree una contraseña segura que pueda recordar más tarde. Utilice estas aplicaciones para actualizar su seguridad con nuevas contraseñas seguras hoy.

Temas relacionados
  • Seguridad
  • Seguridad en línea
Sobre el Autor
Idowu Omisola (46 Artículos publicados)

Idowu es un apasionado de la tecnología inteligente y la productividad. En su tiempo libre, juega con la codificación y cambia al tablero de ajedrez cuando está aburrido, pero también le encanta romper con la rutina de vez en cuando. Su pasión por mostrarle a la gente el camino en torno a la tecnología moderna lo motiva a escribir más.

Más de Idowu Omisola

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Un paso más…!

Confirme su dirección de correo electrónico en el correo electrónico que le acabamos de enviar.

.