Deprecated: Creation of dynamic property Timber\Site::$pingback is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Site.php on line 180

Deprecated: Creation of dynamic property Timber\User::$name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/User.php on line 118

Deprecated: Creation of dynamic property Timber\Post::$has_disclaimer is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_lock is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_last is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_meta_box_present is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_send_notification is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_modify_title_and_content is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_notification_custom_heading is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_notification_custom_content is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_category is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_blz_affiliation_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_content_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_speciali is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskw is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_linkdex is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_content_score is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskeywords is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_keywordsynonyms is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_estimated-reading-time-minutes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_wordproof_timestamp is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_metadesc is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_thumbnail_id is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$response_body is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_indexnow_last_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_oembed_f68527f27e38706501ca82d7e66cb590 is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_oembed_time_f68527f27e38706501ca82d7e66cb590 is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_oembed_6968b07e3b0b370b84a03f27723e422a is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_oembed_time_6968b07e3b0b370b84a03f27723e422a is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_date_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$ping_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_password is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$to_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$pinged is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_content_filtered is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$guid is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$menu_order is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_mime_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_count is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$filter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71
Polyfill JS: codice malevolo spunta in decine di migliaia di siti. Scoprite se c'è il vostro (aggiornato)

Polyfill JS: codice malevolo spunta in decine di migliaia di siti. Scoprite se c'è il vostro (aggiornato)

Un gruppo di criminali informatici si impossessa di nomi di dominio famosi, ampiamente utilizzati dagli sviluppatori Web, e provoca il caricamento di codice malevolo.

Nell’ultimo periodo sono aumentati i cosiddetti supply chain attack verso i progetti open source. Si tratta di attacchi che prendono di mira uno o più anelli della catena distributiva di un software conosciuto. L’obiettivo degli aggressori è modificare componenti fidati, facendo leva sulla fiducia riposta su di essi, e utilizzare questo grimaldello su uno specifico gruppo di vittime. Dopo la scoperta della backdoor inserita nelle XZ Utils, questa volta tocca a Polyfill JS e, come vedremo più avanti, ad alcuni famosi servizi CDN (Content Delivery Network).

Polyfill JS è una libreria che fornisce funzionalità non nativamente supportate in alcuni browser. L’obiettivo è colmare le lacune di compatibilità, consentendo agli sviluppatori di utilizzare le più recenti caratteristiche del linguaggio JavaScript e delle API del browser, anche quando gli utenti utilizzano software datati.

Oggi più di 100.000 siti Web utilizzano Polyfill JS, per consentire a tutti i visitatori di utilizzare la stessa base di codice, anche se i loro browser non supportano le caratteristiche dei software più recenti.

Attacco ai siti che usano Polyfill JS

Gli esperti di Sansec hanno scoperto che tutti i siti Web facenti uso di Polyfill JS hanno improvvisamente iniziato a erogare codice malevolo. Il minimo comune denominatore consiste nella presenza di un riferimento a un nome di dominio che “scimmiotta” quello di Google Analytics (ha i caratteri “l” sostituiti con “i”: googie-anaiytics al posto di google-analytics). Il caricamento del codice ospitato su quel nome a dominio provoca il download di malware o l’apertura di pagine Web indesiderate.

Sansec racconta che il codice caricato varia in base al contenuto nelle intestazioni HTTP, integra una protezione specifica contro il reverse engineering e si attiva solo su dispositivi mobili specifici in orari specifici.

Tra le vittime illustri ci sono, ad esempio, il sito del World Economic Forum e quello della libreria digitale JSTOR. Con una semplice query sul sito PublicWWW, si apprende che ad oggi oltre 100.000 siti utilizzano Polyfill JS.

Come avviene l’aggressione

Come può succedere che un componente come Polyfill JS sia sfruttato da un gruppo di aggressori per farsi strada su decine di migliaia di siti Web a livello mondiale? Anche in questo caso, con un attacco alla supply chain.

Pochi si sono infatti accorti che a febbraio 2024 un soggetto cinese ha acquistato il dominio che ospitava il codice di Polyfill JS. Inizialmente ha conservato il contenuto legittimo, poi ha provveduto a modificare i file ospitati inserendo codice JavaScript malevolo.

Tanti sviluppatori, quando utilizzano componenti JavaScript o fogli di stile forniti da terze parti, spesso richiamano in pagina URL remoti. Per evitare di consumare banda locale e sovraccaricare i server, inseriscono i riferimenti ai componenti remoti necessari per il corretto rendering delle loro pagine Web. È ovvio che se il codice ospitato esternamente venisse modificato, ad esempio inserendo istruzioni dannose, il sito Web inizierebbe a caricare gli elementi malevoli. È esattamente quanto accaduto nel caso di Polyfill JS.

Il caso del dominio “passato di mano”

Lo sviluppatore del progetto Polyfill JS, Andrew Betts, aveva già messo in allerta gli utenti spiegando di non essere mai stato il proprietario del nome a dominio acquisito a febbraio scorso dal soggetto cinese. Anzi, ha invitato tutti gli utenti di Polyfill JS a rimuovere i riferimenti verso tale dominio dalle loro pagine Web (vedere anche questa discussione su GitHub).

Oggi Betts aggiunge che Polyfill JS dovrebbe comunque essere definitivamente eliminato perché non c’è più ragione di utilizzare le sue funzionalità. “La maggior parte delle funzionalità sono ormai adottate da tutti i principali browser, con alcune eccezioni che generalmente non possono essere comunque essere integrate in Polyfill, come Web Serial e Web Bluetooth“, ha aggiunto lo sviluppatore.

Nel frattempo, Cloudflare e Fastly hanno creato i propri mirror del servizio Polyfill JS in modo che i siti Web facenti ancora uso della libreria non eroghino codice dannoso.

Il problema non riguarda soltanto Polyfill JS ma anche Bootcss, Bootcdn e Staticfile

Confermando il problema, Google ha immediatamente avviato una campagna informativa per segnalare i gestori dei siti Web circa la presenza di codice malevolo sulle loro pagine.

La società di Mountain View rivela inoltre che il problema è molto più grave del previsto perché non sono solo gli utenti di Polyfill JS ad essere presenti di mira, ma anche coloro che si affidano ai servizi CDN di Bootcss, Bootcdn e Staticfile. In tutti i casi, i nomi di dominio sono utilizzati per diffondere codice dannoso.

Abbiamo provato a fare qualche verifica avvalendoci del servizio PublicWWW: sono più di 500.000 i siti che integrano in pagina riferimenti a Bootcss, Bootcdn e Staticfile. A conferma della gravità del problema.

Controllate la presenza dei seguenti nomi di dominio nel sorgente delle vostre pagine Web

Per accedere al sorgente HTML di qualunque pagina, basta premere CTRL+U da browser Web sui sistemi desktop. Utilizzando la combinazione di tasti CTRL+F andate alla ricerca dei seguenti domini:

polyfill.io
bootcss.com
bootcdn.net
staticfile.org

Nel caso in cui doveste rinvenire uno o più riferimenti, rimuoveteli immediatamente.

Potete effettuare una verifica aggiuntiva digitando una query nel sito PublicWWW, ad esempio:

"polyfill.io" depth:all site:nomedelsito.it

L’ultimo riferimento va ovviamente rimpiazzato con il nome del sito oggetto di controllo.

Se siete curiosi, digitate "polyfill.io" site:it e verificate quanti e quali siti italiani richiamano i nomi di dominio passati sotto il controllo dei criminali informatici.

AgID elimina il riferimento a Polyfill JS dal suo sito Web

Sospettiamo che i nuovi assegnatari del dominio polyfill.io, applichino strategie differenti a seconda dei nomi di dominio. Tra i siti che usano Polyfill JS, infatti, c’è c’era (fino alle prime ore del 27 giugno 2024) anche quello dell’Agenzia per l’Italia digitale (AgID).

Polyfill.io AgID

Nel momento in cui scriviamo, il tag script che richiamava polyfill.io è stato rimosso.

Aggiornamento del 27 giugno: Namecheap sospende il dominio e Cloudflare eroga una versione “sana” degli script

Venendo incontro alle molteplici segnalazioni, il registrar Namecheap ha provveduto a sospendere il dominio polyfill.io. Abbiamo infatti verificato che il dominio non è più risolto a livello di record DNS.

Con quest’azione, nessun codice malevolo sarà più servito attraverso le pagine Web che ancora richiamano file ospitati sul dominio polyfill.io.

Dal canto suo, per evitare problemi sulle pagine che ancora si avvalgono del codice di Polyfill JS, Cloudflare ha fatto in modo che i siti facenti uso delle sue funzionalità di proxying eroghino sempre e solo versioni sicure dei file JavaScript. La funzionalità di protezione è attiva anche per gli utenti non paganti ovvero coloro che si avvalgono del piano free di Cloudflare.

Credit immagine in apertura: iStock.com – Olemedia

Ti consigliamo anche

Link copiato negli appunti