¿Cuál es la mejor manera de prevenir los ataques XSS?

Las vulnerabilidades de scripting entre sitios han sido explotadas por los atacantes desde principios de la década de 2000, y XSS ha estado en la lista de los 10 principales riesgos de seguridad críticos para aplicaciones web de OWASP a partir de 2004. Sin embargo, muchos desarrolladores, administradores de sistemas e incluso algunos probadores de penetración aún no lo toman en serio. Para convertirse en un hacker o defensor de aplicaciones web efectivo, debe comprender los conceptos básicos de cómo prevenir los ataques XSS.

Los ataques XSS siguen siendo un problema

El scripting entre sitios es un tipo de vulnerabilidad de aplicación web que permite a los atacantes inyectar y ejecutar código malicioso del lado del cliente en el navegador de la víctima dentro de una aplicación web legítima.

El impacto y la gravedad de los ataques XSS exitosos pueden variar. Los ataques XSS podrían dar lugar a secuestros de sesión, tokens robados, cookies de sesión robadas y ataques de falsificación de solicitudes entre sitios. Estos ataques pueden llevar a que las cuentas de usuario se vean comprometidas.

Un ataque XSS exitoso también puede permitir que un atacante use cookies robadas o falsificadas para hacerse pasar por usuarios válidos. En los casos en que el usuario válido tenga derechos administrativos dentro de la aplicación, el atacante puede usar esos privilegios para alterar páginas o ejecutar código remoto en el lado servidor de la aplicación.

Tipos de ataques XSS

Hay tres tipos de ataques XSS: almacenados, reflejados y basados en el Modelo de Objeto de Documento (DOM).

  1. Un ataque XSS almacenado permite a un atacante incrustar un script malicioso en una página vulnerable, que luego se ejecuta cuando una víctima ve la página. El XSS almacenado se considera el tipo de ataque XSS más dañino. Por ejemplo, cuando un atacante inyecta una carga de JavaScript maliciosa directamente en una aplicación web vulnerable, el navegador web guarda la carga de JavaScript inyectada. Luego, cada vez que la víctima visita ese sitio web o aplicación web, se ejecuta el código malicioso.
  2. Se produce un ataque XSS reflejado cuando la carga útil maliciosa está incrustada en un enlace y se activa solo cuando el usuario hace clic en el enlace. Aquí, la carga útil maliciosa no se almacena, sino que solo se muestra en la página web en forma de URL o datos de PUBLICACIÓN.
  3. Una vulnerabilidad XSS basada en DOM surge cuando el DOM se usa para generar contenido dinámico que contiene entrada de usuario que se puede procesar sin verificar. Este tipo de ataque se lleva a cabo con JavaScript en el navegador de la víctima

Prevención de ataques XSS

Para evitar ataques XSS, los desarrolladores deben validar la entrada del usuario filtrando o escapando caracteres especiales correctamente y, a continuación, codificando la salida para evitar ataques XSS almacenados y ataques XSS reflejados. Los siguientes caracteres especiales siempre deben filtrarse o escaparse para evitar que se exploten maliciosamente:

<

>

«

)

(

&

los Desarrolladores deben validar la entrada del usuario — fuentes — y codificar la salida, fregaderos, para evitar basado en DOM ataques XSS. La propiedad de origen de entrada es desde donde se lee el DOM, y la fuente es desde donde el atacante puede inyectar código malicioso para explotar la vulnerabilidad XSS. Se deben evitar las siguientes propiedades de origen:

  • URL
  • documentURI
  • ubicación
  • href
  • search
  • hash

Los sumideros son los puntos donde el DOM ejecuta los caracteres o código malicioso de la entrada, la fuente, que, a su vez, se envía a la página web. Estos sumideros deben evitarse para evitar ataques XSS basados en denegación de servicio:

  • innerHTML
  • outerHTML
  • write

Si desea comprender y prevenir mejor los ataques XSS, Google ha creado un sitio web de juegos XSS para aprender cómo funcionan estos ataques y cómo prevenirlos mejor. El proyecto Mutillidae 2 de OWASP también ofrece un objetivo de aprendizaje para los profesionales de la seguridad web para mejorar sus defensas de ataque XSS.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.