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::$os_meta 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::$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::$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_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::$_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::$_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::$os_previous_publish_date 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::$os_notification_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::$_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_064f8b1f50a341d6db39fdeb05c3f2a3 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_064f8b1f50a341d6db39fdeb05c3f2a3 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

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
Il trucco del codice invisibile che ha colpito centinaia di repository GitHub

Il trucco del codice invisibile che ha colpito centinaia di repository GitHub

Una nuova campagna di attacchi alla supply chain usa caratteri Unicode invisibili per nascondere codice malevolo nei repository GitHub e nei pacchetti open source, rendendo inefficaci molte revisioni manuali del codice.

Un attacco alla catena di distribuzione del software ha colpito numerosi repository pubblici introducendo una tecnica particolarmente insidiosa: codice malevolo nascosto in caratteri Unicode invisibili. Il meccanismo sfrutta una caratteristica poco utilizzata dello standard Unicode per mascherare istruzioni dannose che risultano indistinguibili da semplici spazi nei normali editor di codice. Il risultato è un attacco che aggira i controlli manuali di revisione e si inserisce con facilità nei progetti open source ospitati su piattaforme come GitHub.

L’episodio (segnalato da Aikido Security) si inserisce in una fase storica in cui la sicurezza della catena software è diventata uno dei punti più critici per l’industria. L’infrastruttura moderna del software dipende da milioni di librerie open source e pacchetti distribuiti tramite registri pubblici.

Un singolo componente compromesso può propagare codice malevolo a centinaia o migliaia di progetti derivati. Analisi recenti mostrano come gli attacchi alla distribuzione software abbiano registrato una crescita significativa negli ultimi anni, con campagne capaci di colpire centinaia di repository, sottraendo credenziali e segreti da ambienti di sviluppo e da processi di integrazione continua (CI).

La tecnica del codice invisibile basata su Unicode

Il punto centrale dell’attacco riguarda l’utilizzo della Unicode Private Use Area, un insieme di intervalli del sistema di codifica Unicode progettati per usi personalizzati. Alcuni di questi caratteri possono essere interpretati dai sistemi come sequenze prive di rappresentazione visiva. Quando inseriti nel codice sorgente, appaiono come spazi vuoti negli editor, nei terminali e nei diff generati dai sistemi di versionamento.

Gli aggressori hanno sfruttato in particolare caratteri appartenenti a intervalli come 0xFE00-0xFE0F e 0xE0100-0xE01EF. Sono sequenze interpretate da molti ambienti come modificatori o variazioni tipografiche e spesso non producono alcun simbolo visibile. Inserendo tali caratteri all’interno di funzioni o stringhe, è tuttavia possibile alterare il comportamento del codice senza che la modifica risulti evidente durante una revisione manuale.

Il risultato è una forma di offuscamento che non richiede tecniche crittografiche o strumenti sofisticati. L’istruzione malevola resta perfettamente valida per il compilatore o l’interprete ma appare inesistente all’occhio umano. In contesti come le pull request di GitHub o i diff di commit, le modifiche risultano spesso invisibili.

Attivazione del payload malevolo nei repository compromessi

Le analisi condotte dai ricercatori di sicurezza indicano che il codice nascosto contiene routine incaricate di decodificare ed eseguire istruzioni aggiuntive. In diversi casi il payload utilizza meccanismi dinamici come eval() o funzioni equivalenti per trasformare sequenze apparentemente innocue in codice eseguibile.

Una volta attivato, il componente malevolo recupera ulteriori script da infrastrutture esterne. Alcune campagne hanno utilizzato reti decentralizzate come la blockchain Solana per ospitare i payload secondari. Una scelta che rende più complesso interrompere l’operazione, poiché i dati registrati su blockchain non possono essere modificati o rimossi facilmente.

Il codice scaricato nelle fasi successive può eseguire numerose operazioni: raccolta di token di autenticazione, esfiltrazione di chiavi API, accesso ai segreti memorizzati negli ambienti CI/CD e distribuzione di componenti per accesso remoto.

In alcune analisi sono stati osservati moduli capaci di installare proxy SOCKS o server VNC nascosti per consentire il controllo remoto dei sistemi compromessi.

Diffusione dell’attacco e repository coinvolti

Le indagini indicano che almeno 150 repository pubblici GitHub sono stati compromessi in pochi giorni tramite commit apparentemente innocui.

Gli aggressori hanno introdotto modifiche minime, spesso camuffate come aggiornamenti di versione o refactoring minori. Il codice malevolo risultava incorporato nelle modifiche sotto forma di sequenze Unicode invisibili.

Il fenomeno non si limita ai repository GitHub. Alcuni pacchetti malevoli risultano pubblicati anche nei registri npm e nel marketplace delle estensioni per editor di sviluppo come Visual Studio Code. La presenza simultanea su più piattaforme suggerisce una strategia mirata alla diffusione capillare del payload all’interno degli ambienti di sviluppo.

Secondo gli analisti, la scala delle modifiche suggerisce l’utilizzo di strumenti automatizzati. Alcuni ricercatori ipotizzano che modelli linguistici avanzati possano aver assistito nella generazione di commit credibili e nella distribuzione coordinata del codice modificato.

Una singola modifica quasi impercettibile può trasformarsi in un vettore di compromissione su larga scala. In un contesto in cui milioni di progetti condividono componenti comuni, la capacità di individuare anomalie nei repository pubblici diventa sempre più cruciale per mantenere l’integrità del software distribuito.

In un altro articolo abbiamo visto come l’uso dei caratteri Unicode possa rendere un nome di dominio malevolo indistinguibile da uno legittimo.

Ti consigliamo anche

Link copiato negli appunti