Siendo una de las amenazas de ciberseguridad más comunes, el cross-site scripting (XSS) atacó casi 75% de las grandes empresas en 2019. Además, casi el 40% de todos los ciberataques se realizaron para atacar vulnerabilidades XSS.
Las secuencias de comandos entre sitios han afectado a los sitios web administrados por gigantes de la web como eBay, Google, Facebook y Twitter. Pero las secuencias de comandos entre sitios no son una nueva ciberamenaza. De hecho, los ataques XSS han existido casi desde los albores de la web.
Para ayudarlo a prevenir ataques XSS, esta guía se enfoca en todo lo que necesita saber acerca de las secuencias de comandos entre sitios. Después de leer esta guía, obtendrá una mejor idea de cómo funciona la secuencia de comandos entre sitios y cómo puede proteger su sitio web de WordPress.
¿Qué es Cross-site Scripting (XSS)?
La secuencia de comandos entre sitios (XSS) se refiere al tipo de ciberataques en los que se inyectan secuencias de comandos maliciosas en sitios web que de otro modo serían creíbles y confiables.
Los ataques de secuencias de comandos entre sitios son posibles en HTML, Flash, ActiveX y CSS. Sin embargo, JavaScript es el objetivo más común de los ciberdelincuentes porque es fundamental para la mayoría de las experiencias de navegación.
JavaScript es un lenguaje de programación que le permite implementar funciones complejas en su sitio web. La mayoría de los sitios web de la web que son grandes e interactivos se crearon con JavaScript. «Puede desarrollar funciones interactivas en el sitio, juegos o agregar funcionalidad adicional para comercializar mejor sus productos», según Domantas Gudeliauskas, gerente de marketing de Zyro proyecto.
JavaScript es tan popular entre la comunidad web porque le permite hacer prácticamente cualquier cosa en una página web. Y ahí es cuando se vuelve problemático. Los ciberdelincuentes pueden usar JavaScript para iniciar sesión en la parte posterior de sus páginas web e insertar scripts maliciosos.
¿Cómo funciona la secuencia de comandos entre sitios?
Hay dos formas en que los ciberdelincuentes realizan ataques XSS en sitios web de WordPress. Pueden explotar la entrada del usuario o eludir las políticas del mismo origen. Echemos un vistazo a ambos métodos para comprender mejor las secuencias de comandos entre sitios.
Manipulación de la entrada del usuario
La forma más común en que los ciberdelincuentes realizan ataques XSS es explotando las entradas de los usuarios. La mayoría de los sitios web de WordPress tienen campos de entrada del usuario, como barras de búsqueda, formularios de comentarios, páginas de inicio de sesión y formularios de contacto. El campo de entrada generalmente está habilitado por un complemento o tema de WordPress con JavaScript activo en su sitio web.
El problema es que no todos los complementos y temas de WordPress son 100% seguros y muchos de ellos, de hecho, tienen vulnerabilidades XSS. Lo que esto significa para usted es que los ciberdelincuentes pueden utilizar las vulnerabilidades de WordPress en los campos de entrada para ejecutar actividades maliciosas.
Idealmente, una barra de búsqueda del sitio (o cualquier otro campo de entrada del usuario) solo debería aceptar texto sin formato, no comandos, como entrada. Sin embargo, WordPress tiene una vulnerabilidad de entrada del usuario, que permite a los piratas informáticos ingresar un código ejecutivo en el campo de entrada y enviarlo a la base de datos.
Eludir las políticas del mismo origen
La política del mismo origen restringe una página para recuperar información de otras páginas web. Según la política, los navegadores web permiten que los scripts contenidos en la primera página web accedan a los datos de una segunda página web solo si comparten el mismo origen. Esto ayuda a garantizar que no se realicen solicitudes entre sitios.
La política establece que si tiene su página de Facebook y su banca en línea abiertas en el mismo navegador, los dos sitios web no pueden compartir información entre sí. Sin embargo, si tiene varias pestañas de Facebook (que comparten el mismo origen) abiertas, pueden intercambiar secuencias de comandos y otros datos entre sí.
A pesar de la política del mismo origen y otras medidas de seguridad tomadas para evitar solicitudes entre sitios, los ciberdelincuentes han encontrado una forma de evitar la política utilizando cookies de sesión. Esto funciona porque cada vez que abre un navegador, genera una cookie de sesión para validarlo como usuario del sitio web y ayudarlo a pasar de una página a otra sin problemas.
Las cookies de sesión almacenan credenciales de inicio de sesión (incluso para su sitio de WordPress), información de tarjetas de crédito, detalles de envío y otros datos confidenciales. Así es como funciona. Digamos que desea iniciar sesión en su cuenta bancaria en línea. Cuando abre el sitio web, se genera una cookie de sesión. Si no fuera por las cookies de sesión, tendría que iniciar sesión en su cuenta bancaria en línea cada vez que desee cambiar de página.
No es raro que los navegadores de los usuarios tengan vulnerabilidades. Y si los hay, los ciberdelincuentes usan el código que inyectaron en la entrada del usuario para robar las cookies de sesión. De esta forma, los piratas informáticos pueden robar cookies de todos los sitios web abiertos en el navegador del usuario. Luego, estas cookies se pueden utilizar para iniciar sesión en las cuentas de los usuarios para hacerse pasar por ellos y robar datos financieros.
¿Por qué son peligrosas las secuencias de comandos entre sitios?
La secuencia de comandos entre sitios es una de las vulnerabilidades de WordPress de alto riesgo más comunes. Los ataques XSS son tan comunes porque, a diferencia de otras vulnerabilidades de seguridad, son muy complejos de abordar. Incluso cuando tiene protección incorporada, es muy fácil cometer errores que permiten la creación de secuencias de comandos entre sitios. Solo un error en el código HTML o JavaScript de su página web puede hacer que su sitio web sea vulnerable a ataques de secuencias de comandos entre sitios.
Cuando los atacantes encuentran una manera de explotar las vulnerabilidades XSS, pueden robar credenciales de cuentas, datos financieros y facilitar estafas de phishing. También pueden propagar gusanos informáticos u obtener acceso a las computadoras de los usuarios de forma remota. Además, los ataques XSS permiten a los piratas informáticos realizar lo siguiente:
- Secuestrar cuentas de usuario
- Difundir malware
- Controlar la computadora del usuario de forma remota
- Escanear y explotar aplicaciones de intranet
Los ataques XSS generalmente se consideran menos peligrosos que las inyecciones de SQL. Sin embargo, cuando se combina con la ingeniería social, las secuencias de comandos entre sitios permiten a los ciberdelincuentes realizar ataques avanzados y extremadamente peligrosos, que incluyen la instalación de troyanos, el registro de teclas, el phishing, el robo de identidad y la falsificación de solicitudes entre sitios.
Para combatir los ataques XSS, las grandes empresas de TI lanzan programas especiales de recompensa por errores. Estos programas son implementados por muchas organizaciones y ofrecen compensación o reconocimiento a los usuarios que reportan vulnerabilidades XSS en scripts. De esta manera, las empresas están invirtiendo en ciberseguridad al hacer que otros desarrolladores identifiquen sus errores. Google incluso lanzó un juego donde puede ejercitarse en el envío de errores XSS.
Tipos de ataques XSS
Hay tres tipos principales de ataques de secuencias de comandos entre sitios: XSS reflejado, almacenado y basado en DOM. Para tener una mejor perspectiva de cómo funciona XSS, echemos un vistazo a cada tipo de vulnerabilidades XSS.
Secuencias de comandos almacenadas entre sitios
Una vulnerabilidad XSS almacenada (también conocida como Persistente o Tipo I) tiene lugar cuando la entrada del usuario se almacena en una base de datos, campo de comentarios, registro de visitantes u otros servidores de destino. Y luego una víctima puede recuperar los datos almacenados (que no se han hecho seguros para representar en el navegador) desde la aplicación web. De esta manera, cuando un pirata informático realiza un ataque, la carga útil no es visible para el filtro XSS del navegador y las víctimas pueden activar accidentalmente la carga útil si visitan la página afectada.
Secuencias de comandos entre sitios reflejadas
Una vulnerabilidad XSS reflejada (también conocida como No persistente o Tipo II) tiene lugar cuando una aplicación web devuelve inmediatamente la entrada del usuario en un resultado de búsqueda, mensaje de error o cualquier otra respuesta. En este caso, los datos de entrada del usuario se reflejan sin almacenarse, lo que permite a los piratas informáticos inyectar scripts XSS maliciosos. A diferencia del XSS almacenado, el XSS reflejado se dirige al sitio web en sí en lugar de a los visitantes del sitio web.
XSS basado en DOM
TA La vulnerabilidad XSS basada en DOM (también conocida como Tipo 0) ocurre en DOM (Modelo de objeto de documento) en lugar de en la parte de HTML. La fuente donde se lee el código malicioso puede ser una URL o un elemento particular del HTML.
¿Cómo prevenir ataques de secuencias de comandos entre sitios?
Ahora que ha cubierto los fundamentos de XSS, echemos un vistazo a las formas comprobadas de prevenir ataques XSS.
Hay varias formas de proteger su sitio web de WordPress de los ataques XSS. Si tiene experiencia técnica avanzada, puede agregar fragmentos de código para validar y desinfectar las entradas del usuario. Sin embargo, si no está familiarizado con la parte técnica de WordPress, es mejor delegar el trabajo a su equipo técnico o contratar a un profesional que pueda tomar estas medidas por usted.
Mientras tanto, hay dos cosas que puede hacer para evitar ataques de secuencias de comandos entre sitios.
Instalar un complemento de seguridad
La instalación de un complemento de seguridad de WordPress es el primer paso hacia la máxima seguridad de su sitio web de WordPress. Al elegir un complemento de seguridad, utilice esta lista de verificación como referencia para asegurarse de que el complemento tenga la funcionalidad necesaria para mantener su sitio web seguro.
- Un complemento escanea regularmente su sitio web en busca de malware.
- Un complemento utiliza cortafuegos para bloquear cualquier tráfico que parezca malicioso.
- Un complemento es capaz de implementar medidas de refuerzo de WordPress.
- Un complemento le permite administrar todas las actualizaciones de WordPress.
- Un complemento hace una copia de seguridad de su sitio web de WordPress, por lo que, en caso de ataque, puede restaurar su sitio web.
Instalar un complemento dedicado
La instalación de un complemento anti-XSS es otra forma de evitar las secuencias de comandos entre sitios. Los complementos Anti-XSS funcionan bloqueando los parámetros que se usan comúnmente en los ataques de secuencias de comandos entre sitios. Por ejemplo, estos complementos pueden proteger los campos de entrada del usuario, como los formularios de comentarios, los campos de inicio de sesión o las barras de búsqueda de su sitio web.
La línea de fondo – 39% de todas las vulnerabilidades de WordPress están relacionados con los problemas de secuencias de comandos entre sitios. Las empresas pierden millones de dólares tratando de luchar contra las consecuencias de los ataques de secuencias de comandos entre sitios. Para evitar ataques XSS dirigidos a su sitio web, es importante comprender qué es la secuencia de comandos entre sitios y tomar medidas preventivas.
Para mantener su sitio web a salvo de secuencias de comandos entre sitios, debe validar y desinfectar sus campos de entrada. Además, puede instalar complementos de seguridad y anti-XSS dedicados que lo ayudarán a mantener seguro su sitio web de WordPress.