Análisis del ataque polyfill desde el punto de vista de Akamai
Comentario editorial y adicional de Tricia Howard
Ataque polyfill.io a la cadena de suministro: descripción general
Recientemente, se ha alertado a la comunidad de seguridad en relación con un importante ataque a la cadena de suministro en el que estaba involucrado polyfill.io, un servicio que proporciona polyfills (un fragmento de código JavaScript que permite la funcionalidad moderna en navegadores antiguos que no lo admiten de forma nativa) para aplicaciones web. De acuerdo con los informes detallados, este ataque ha afectado a más de 100 000 sitios web, abusando de la confianza y el uso generalizado del servicio polyfill.io para propagar código malicioso.
En este ataque, un ciberdelincuente, que parece estar ubicado en China, adquirió hace unos meses uno de los proyectos de código abierto de polyfill más populares e infectó el código JavaScript de polyfill inyectando scripts maliciosos en los polyfills distribuidos. El ataque se centró principalmente en los dispositivos móviles, realizando sesiones de muestreo selectivas para pasar inadvertido y ser difícil de detectar. A continuación, el código malicioso se utilizó para un ataque de redireccionamiento, desviando a los usuarios a sitios fraudulentos.
A medida que los desarrolladores integraban estos polyfills vulnerados en sus sitios web, introducían código malicioso en sus aplicaciones sin saberlo. En esta entrada de blog, analizaremos este ataque específico, así como los ataques a la cadena de suministro en general, y los datos exclusivos que hemos observado desde el punto de vista de Akamai Client-Side Protection & Compliance.
¿Qué es un ataque a la cadena de suministro?
Un ataque a la cadena de suministro tiene como objetivo las vulnerabilidades de la cadena de suministro de una organización. En el contexto de las aplicaciones web online, los sitios web modernos cargan decenas de recursos de terceros como parte de la funcionalidad habitual del sitio. Los propietarios de los sitios web confían en estos recursos y normalmente tienen acceso completo a la página, incluido el modelo de objetos de documento (DOM), las cookies y la información confidencial introducida por los usuarios finales.
La supervisión y el seguimiento de estos recursos es extremadamente difícil debido a su número, a los cambios frecuentes y a la falta de visibilidad en el lado del cliente. Los atacantes pueden abusar de esta confianza y utilizar estos servicios de terceros para poner en peligro las aplicaciones web. Estos ataques suelen implicar la inyección de código malicioso en bibliotecas o servicios legítimos de terceros, que posteriormente se distribuyen a los usuarios finales de forma inadvertida.
Según un estudio realizado por el grupo de inteligencia sobre seguridad de Akamai, el 50 % de los recursos JavaScript que se utilizan en sitios web de comercio electrónico proceden de fuentes de terceros. Como promedio, detectamos código de decenas de proveedores externos diferentes en las páginas de pago de nuestros clientes, que ahora deben cumplir con los nuevos requisitos del PCI DSS v4.0 6.4.3 y 11.6.1.
El ataque polyfill desde el punto de vista de Akamai
El ataque polyfill se envía a través del sitio web objetivo como código JavaScript procedente de cdn.polyfill.io. El ataque utiliza el muestreo tanto del lado del servidor como del lado del cliente. En el lado del servidor, examina los encabezados de solicitud, como el agente de usuario, para atacar únicamente a dispositivos móviles con condiciones específicas. En el caso de otros dispositivos, el servidor de polyfill proporciona el código de polyfill original o una respuesta vacía para los navegadores modernos.
El proceso de muestreo no se limita al lado del servidor. Durante la ejecución, el código también verifica el tipo de dispositivo en el lado del cliente mediante su propio JavaScript. Además, selecciona destinos en función del origen de referencia de página y la hora local del dispositivo. Cuando el JavaScript malicioso ejecuta su ataque, se comunica con un servidor de googie-anaiytics[.]com.
Conseguimos supervisar la ejecución de JavaScript malicioso en la página web, incluida su comunicación con su servidor. Cuando se detectaba una actividad sospechosa, se activaba una alerta para los clientes afectados. La clave antes cualquier amenaza es la agilidad; es decir, la capacidad de responder rápidamente es fundamental para limitar el radio de alcance de un ataque.
Se han definido políticas de comportamiento de scripts de Client-Side Protection & Compliance para bloquear esta comunicación, lo que impide que se avance en esta ruta de ataque. La Figura 1 muestra un ejemplo en circulación: la denegación de esta ruta de ataque se produjo en tiempo real, inmediatamente después de activar la directiva.
Tendencias de uso de polyfill.io antes y después del ataque
Observamos que más de 40 clientes tenían recursos cargados desde polyfill.io. En el caso de algunos de estos clientes, decenas de miles de páginas se veían afectadas a diario (Figura 2). Esta cifra incluye a los clientes que utilizaron directamente recursos JavaScript de polyfill.io, a terceros que incluyeron este código como parte de su ejecución y a los recursos que se originaron en las extensiones del navegador de los usuarios finales.
Nuestros datos los obtuvimos de Akamai Client-Side Protection & Compliance, que supervisa y analiza activamente las ejecuciones de JavaScript en tiempo real, lo que permite reducir el tiempo de corrección, tanto si son de fuentes propias como ajenas.
Akamai colabora estrechamente con sus clientes para dar respuesta y mitigar de forma eficaz el impacto del ataque, que incluye una notificación para los clientes pertinentes con un boletín de seguridad sobre el ataque. Este enfoque proactivo se ha traducido en una disminución significativa de los recursos procedentes del nombre de dominio infectado, lo que reduce la exposición al riesgo de los clientes de Akamai.
¿Necesita ayuda con los ataques a la cadena de suministro?
Akamai Client-Side Protection & Compliance se ha diseñado para proteger a los clientes contra ataques del lado del cliente, procedentes tanto de fuentes propias como ajenas, incluidos los ataques a la cadena de suministro.
Esta solución supervisa los recursos JavaScript de las aplicaciones web, analiza su ejecución en tiempo real y determina si se comportan de forma sospechosa. También detecta anomalías en el comportamiento de los scripts, lo que proporciona un análisis detallado de cada recurso JavaScript cargado y ejecutado en aplicaciones web.
Además, Client-Side Protection & Compliance ofrece capacidades de mitigación en tiempo real que evitan la ejecución de scripts maliciosos en cuestión de segundos. Sin necesidad de cambiar el código de la aplicación web para bloquear comportamientos sospechosos, los equipos de seguridad pueden mejorar drásticamente el tiempo de respuesta a un ataque. Esta solución puede detectar el ataque polyfill.io y las sesiones de usuario afectadas y, a continuación, detener la ejecución del ataque.
Ventajas de la detección y la mitigación en el navegador
Este ataque tenía como objetivo solo un pequeño número de sesiones, especialmente mediante el filtrado de sesiones con navegadores de agente de usuario poco comunes. Por ello, las soluciones que solo realizan análisis sintéticos en el sitio web podrían haber pasado por alto este flujo de ataque. Una de las ventajas clave de Akamai Client-Side Protection & Compliance es que se ejecuta dentro del navegador para cada sesión de usuario; detectó ejecuciones de JavaScript maliciosas incluso cuando ya se habían iniciado estas sesiones específicas y, lo que es más importante, evitó la ejecución de ataques en la página una vez que se activó la política de protección (Figura 3).
Conclusión
El ataque polyfill.io a la cadena de suministro pone de relieve las vulnerabilidades críticas inherentes al desarrollo moderno de aplicaciones web. La dependencia de recursos de terceros puede introducir riesgos de seguridad de forma involuntaria, incluso aunque se hayan implementado todas las protecciones adecuadas. Este incidente, que afectó a más de 100 000 sitios web, puso de manifiesto la facilidad con la que los servicios de confianza pueden verse involucrados en la distribución de código malicioso, lo que disminuye la seguridad y la confianza de los usuarios.
El grupo de inteligencia sobre seguridad de Akamai se encarga de supervisar este tipo de amenazas, tanto para nuestros clientes como para la comunidad de seguridad en general. Por nuestra parte, seguiremos observando el ecosistema de amenazas y presentando informes de nuestras observaciones. Para conocer las actualizaciones en tiempo real, síganos en X, anteriormente Twitter, o consulte nuestra página de investigaciones sobre seguridad .