Enter

Paso a paso / 13 min de lectura

Ataques de cross-site scripting (XSS) en WordPress: cómo proteger tu sitio.

Los ataques de cross-site scripting (XSS) son una de las amenazas de seguridad de WordPress más comunes que enfrentan tanto los administradores como los usuarios, principalmente porque las fallas que permiten que ocurran están ampliamente distribuidas a través de sitios web, temas y plugins.

Este artículo explorará lo siguiente: 

  • Qué son los ataques XSS.
  • Qué obtienen los hackers de los ataques XSS.
  • Los tipos de ataques XSS.
  • Cuán común es la amenaza de los ataques XSS para los sitios de WordPress.
  • Medidas de seguridad que podés tomar para proteger tu sitio de WordPress de ellos.

Esta será una introducción a los ataques XSS y cómo podés minimizar las posibilidades de sufrir uno. Vamos a ello.

¿Qué son los ataques de cross-site scripting (XSS)?

XSS es un ataque de malware donde una tercera parte inyecta scripts maliciosos en sitios de WordPress que, de otro modo, serían inofensivos pero vulnerables. Los scripts inyectados pueden rastrear e imitar usuarios legítimos, robar datos sensibles, redirigir un sitio web, y más.

Los ataques de cross-site scripting no se limitan al ecosistema de WordPress. Sin embargo, muchos plugins, temas y elementos de sitios contienen vulnerabilidades que los hackers pueden explotar para inyectar código malicioso.

Debido al alto número de puntos de entrada vulnerables, los ataques XSS son una de las formas más comunes en las que los hackers ingresan en sitios de WordPress, y se han vuelto aún más comunes en los últimos años. Los administradores y usuarios deben estar al tanto de los ataques XSS y saber cómo prevenirlos.

¿Cómo funcionan los ataques XSS en WordPress?

Pantalla de código

Los ataques XSS pueden ser difíciles de comprender para usuarios y administradores que no son muy técnicos, por lo que es esencial tomarse un tiempo para conocer los fundamentos.

Scripts

En el desarrollo de software, un script es una secuencia de instrucciones ejecutadas por un programa de computadora, como un sitio web de escritorio o una aplicación móvil.

Podés crear scripts simples e inofensivos que sumen y multipliquen números, pero también podés crear scripts más complejos y dañinos que monitoreen y roben datos. Los atacantes de XSS utilizan scripts dañinos.

Cómo los atacantes XSS utilizan scripts maliciosos

En los ataques XSS, los hackers utilizan uno o varios de los campos de entrada del sitio web (comentarios, secciones de reseñas, barras de búsqueda, formularios de información personal, etc.) para inyectar scripts maliciosos, generalmente escritos en JavaScript. Por ejemplo, un hacker podría acceder a un sitio web y dejar el siguiente comentario en la sección de comentarios de una publicación de blog:

<script src=“información_de_codigo_malicioso”><script>

En “información_de_codigo_malicioso”, el hacker dejaría información (dirección IP, número de puerto, etc.) que conduce a un servidor al que tienen acceso. Si un sitio web no tiene protecciones para defenderse de estas tácticas, el script malicioso se incrustará en la página web donde fue inyectado, permitiendo a los hackers monitorear los datos del usuario.

La raíz de la vulnerabilidad es a menudo que el sitio web no valida o codifica los datos del usuario. Esto significa que no verifican las entradas de datos para detectar secuencias inválidas o maliciosas ni imponen un formato específico al transmitir datos. Al explotar estas fallas, los hackers introducen código malicioso en sitios web en los que los usuarios confían y no esperarían ser hackeados.

¿Qué ganan los hackers con los ataques XSS a sitios de WordPress?

Candado sobre un teclado

Los ataques XSS son a menudo puertas de entrada para futuros ataques porque establecen acceso no autorizado al backend. Desde allí, los hackers pueden ejecutar software malicioso adicional, permitiéndoles robar datos y credenciales de usuarios y administradores que pueden usar más tarde o vender para obtener ganancias.

A través de un ataque XSS, los hackers pueden:

  • Redireccionar a los usuarios a sitios de phishing o páginas de inicio de sesión falsas donde roban credenciales del usuario.
  • Ejecutar scripts adicionales, como enviar ventanas emergentes falsas que solicitan y recolectan información personal, como el usuario y la contraseña de Facebook o Google. También pueden recolectar direcciones de email, direcciones IP, datos de tarjetas de crédito, y otra información que los usuarios comparten con sitios comprometidos.
  • Robar las cookies de los usuarios, permitiéndoles acceder a otras aplicaciones web con esas credenciales.
  • Difundir más malware en el sitio, configurar anuncios no autorizados de los cuales pueden lucrar, llevar a cabo ataques de spam SEO, redirigir el tráfico a sus propios dominios web, o realizar un ataque de ransomware.
  • Instalar keyloggers, programas que registran y recolectan cada pulsación de tecla del usuario, registrando efectivamente todo lo que escriben en el sitio.
  • Secuestrar el sitio con fines puramente maliciosos.

Tipos de ataques XSS

XSS reflejado

También conocido como ataques XSS no persistentes o de Tipo I, este tipo de ataque XSS “refleja” código malicioso de un sitio web hacia el navegador del usuario. La mayoría de las veces, los ataques XSS reflejados funcionan de la siguiente manera:

  1. El hacker crea un enlace malicioso agregando campos con código malicioso a una URL que de otro modo sería inofensiva, formulario de relleno, resultado de búsqueda, o mensaje de error (como una página 404).
  2. El usuario del sitio es engañado para que haga clic en el enlace. Al hacerlo, el usuario solicita contenido malicioso del servidor del sitio web.
  3. El servidor del sitio web devuelve los recursos solicitados, incluido el código malicioso inyectado por el hacker. Esta es la parte del ataque de donde proviene el nombre “reflejado”.
  4. El navegador recibe y ejecuta el script malicioso como cualquier otro elemento legítimo de la página.
  5. El script roba información personal del usuario.

Este tipo de ataque XSS generalmente requiere algún grado de ingeniería social, es decir, engañar al usuario para que haga clic en un enlace que asume que es seguro para robar sus datos. Esto puede suceder a través de un correo electrónico, mensaje emergente, o cualquier otra interacción web donde el usuario deba hacer clic en un enlace para avanzar.

A diferencia del siguiente tipo de ataque XSS, en los ataques reflejados, el código malicioso nunca se almacena en el servidor a largo plazo.

XSS almacenado

También conocido como ataques XSS “persistentes” o “de Tipo II”, este tipo de ataque efectivamente “planta” malware en el sitio web objetivo. El ejemplo anterior sobre dejar un comentario con código malicioso es un ejemplo de un ataque XSS almacenado.

En estos ataques, los hackers introducen un script que se almacena (de ahí el nombre) en el servidor del sitio objetivo dejando un comentario, reseña, publicación en un foro, etc., en el sitio. El script puede permanecer en el servidor a largo plazo o incluso permanentemente si no se detecta. 

Los usuarios que interactúan con la ubicación del script malicioso son vulnerables a perder información personal. Los hackers pueden configurar el script para que los visitantes comprometan sus credenciales simplemente haciendo clic o pasando el cursor sobre un elemento de página específico. También pueden programar el script para que se ejecute tan pronto como se cargue la página.

Debido a su naturaleza, los XSS almacenados pueden ser difíciles de detectar y causar todo tipo de estragos mientras tanto.

XSS basado en DOM

También conocido como ataque “Tipo 0”, este tipo de ataque XSS es único en el sentido de que no hay interacción directa con el servidor del sitio web. En los ataques XSS reflejados y almacenados, el código malicioso siempre interactúa con el servidor de alguna manera, ya sea siendo almacenado en él o enviado subrepticiamente al usuario cuando responde a una solicitud.

Los ataques XSS basados en DOM se basan en manipular el Modelo de Objetos del Documento (DOM) del navegador web, una representación jerárquica de los elementos de una página web. Los hackers pueden modificar el DOM del navegador con JavaScript para inyectar código malicioso.

Uno de los principales problemas que dejan la puerta abierta a este ataque es que muchos sitios web usan muy poco HTML y, en cambio, se basan en mucho código JavaScript para manejar las interacciones del usuario con la página web. Esta es una excelente manera de minimizar la carga del servidor porque la mayoría de las interacciones se manejan en el navegador del usuario en lugar de consumir recursos del servidor, pero también expone a los sitios web a muchas vulnerabilidades.

Los ataques XSS basados en DOM ocurren cuando el código JavaScript acepta la entrada del usuario (fuente) y la pasa como parte de una función insegura que se muestra de vuelta en la página (hundidor). Las funciones “inseguras” no realizan verificaciones de seguridad en la entrada antes de mostrarla en la página.

Cuando una entrada no se verifica en busca de código malicioso, los hackers pueden ejecutar prácticamente lo que quieran, incluidos scripts que monitorean y recopilan datos del usuario.

¿Qué tan comunes son los ataques XSS en WordPress?

Hombre luchando con su computadora

Los ataques XSS son uno de los métodos más comunes que los hackers utilizan para violar la seguridad de los sitios web porque muchos elementos de los sitios contienen vulnerabilidades que permiten a terceros introducir scripts maliciosos.

Según el informe de seguridad de 2022 de Wordfence, los ataques XSS fueron la categoría de vulnerabilidad más común divulgada durante 2022, representando casi la mitad de todas las vulnerabilidades divulgadas ese año.

Uno de los principales problemas con los ataques XSS es que pueden estar presentes en cualquier sitio web, popular o no. En su informe de 2021, Sucuri determinó que el plugin Astra Starter Templates era uno de los diez plugins más vulnerables basado en su popularidad. Con más de un millón de instalaciones, las vulnerabilidades XSS de este plugin representaban una amenaza significativa para muchos usuarios y sitios de WordPress.

¿Cómo prevenir los ataques XSS en WordPress? 7 maneras de proteger tu sitio de WordPress

Podés tomar múltiples medidas para reducir las posibilidades de que los hackers exploten vulnerabilidades en WordPress. Las siguientes son las más significativas.

Actualizar plugins y temas

Mantener plugins y temas actualizados es una de las mejores formas de evitar las vulnerabilidades de versiones anteriores.

Cuando los desarrolladores lanzan una actualización de seguridad, revelan las vulnerabilidades que encontraron y que corrigieron para la versión más reciente. Una vez que las vulnerabilidades pasadas se hacen públicas, los sitios web que usan versiones anteriores de esos plugins y temas se convierten en un objetivo para los hackers que explotan fallas de seguridad.

Instalar cortafuegos de aplicaciones web (WAF)

Los WAF son evoluciones de los cortafuegos de hardware tradicionales que controlan el flujo de datos a nivel de dirección IP y protocolo de transporte. El WAF puede filtrar ataques realizados a nivel de aplicación, donde las aplicaciones ejecutan código y realizan funciones en el servidor web. Aquí es donde se realizan los ataques XSS.

Los WAF pueden detectar entradas inusuales en los cuadros de texto del sitio para prevenir inyecciones SQL, ataques XSS y más. Invertir en un plugin que proporcione servicios de WAF aumentará la seguridad de tu sitio web y prevendrá ataques XSS.

Instalar un plugin de seguridad confiable.

Explorá el mercado para encontrar un plugin de seguridad que detecte ataques de malware como el XSS. Los plugins de seguridad de alta calidad realizan escaneos regulares y detectan actividad inusual. Algunos de los beneficios incluyen:

  • Protección de información confidencial.
  • Detener otras amenazas de seguridad, como ataques de fuerza bruta.
  • Proteger tus rankings SEO al repeler intentos de hackeo.
  • Filtro de spam.
  • Autenticación de dos factores en los inicios de sesión.

Sanitizar entradas de usuario

Como explicamos antes, una de las principales vulnerabilidades que los ataques XSS explotan es la falta de validación y sanitización de entradas que sufren algunos sitios web. “Sanitizar” significa eliminar caracteres no seguros de la entrada del usuario, y validar aplica a formatos y tipos específicos de datos.

Dado que muchos ataques XSS dependen de prácticas deficientes de monitoreo de entradas, esta medida protegerá significativamente tu sitio web.

Implementar endurecimiento de WordPress

El endurecimiento de WordPress es una serie de medidas de seguridad que aumentan la seguridad total de tu sitio. Algunas de esas medidas incluyen las ya mencionadas, como instalar un plugin de seguridad.

Estas son algunas acciones de endurecimiento de WordPress que podés tomar para proteger tu sitio web de ataques XSS y ciberataques en general:

  • Usar y requerir contraseñas fuertes, no permitiendo contraseñas que sean fáciles de descifrar.
  • Instalar certificados SSL.
  • Aplicar autenticación de dos factores.
  • Limitar intentos de inicio de sesión.
  • Cerrar automáticamente usuarios inactivos después de un cierto periodo.
  • Instalar un registro de auditoría para registrar cada acción que los usuarios realicen en tu sitio.
  • Deshabilitar el editor de archivos para prevenir que usuarios no autorizados cambien el diseño de tu sitio.

Realizar copias de seguridad frecuentes

Ya sea a través de un plugin de respaldo o tu proveedor de alojamiento web, realizar copias de seguridad con frecuencia te puede ayudar a recuperar tu sitio en caso de emergencia.

Limitar los permisos de administrador al mínimo necesario.

Si múltiples administradores utilizan tu sitio diariamente, deberías limitar sus permisos a lo estrictamente necesario para su rol. Si un ataque XSS obtiene credenciales de administrador, los cambios que puedan realizar están limitados a los permisos del usuario que han secuestrado.

Mantener los permisos restringidos a lo estrictamente necesario ayuda a minimizar las brechas si las credenciales de administrador son comprometidas.

Conclusión

Los administradores y usuarios de WordPress deben estar al tanto de que los ataques XSS son uno de los más comunes. Son difíciles de defender debido a que muchos componentes de software contienen vulnerabilidades que permiten a los hackers inyectar malware en un sitio.

Debido a lo generalizadas que están estas fallas de seguridad, es un desafío proteger tu sitio al 100% de los ataques XSS. Sin embargo, tomar las medidas descritas puede protegerte de los métodos de ingreso más comunes.

Al leer este artículo, ahora estás más consciente de las vulnerabilidades que los hackers explotan al desplegar ataques XSS y podés comenzar a tomar medidas para prevenirlos.

Si encontraste útil este artículo, visitá nuestro blog para más información, guías y consejos sobre WordPress.