Gli hacker riempiono GitHub con progetti che nascondono codice dannoso.
Cybercriminali mascherano codice dannoso con “simboli invisibili” Unicode
Nuove ricerche di Aikido Security hanno mostrato che all’inizio di marzo su GitHub sono comparsi 151 progetti contenenti codice spionistico nascosto. I pacchetti malevoli utilizzano caratteri Unicode che per l’uomo sembrano spazi o righe vuote, ma quando si esegue normalmente JavaScript si trasformano in byte‑code eseguibile e vengono inseriti nella funzione `eval()`.
Come appare l’attacco
1. Nomi delle librerie
I pacchetti sono chiamati come soluzioni commerciali note (ad esempio “React” o “Node.js”). Ciò induce gli sviluppatori a considerarle sicure per errore e a includerle nei loro progetti.
2. Codice “leggibile” + frammenti nascosti
La maggior parte del codice appare come un programma normale, facilmente leggibile. All’interno si trovano blocchi riempiti di caratteri “invisibili”. Durante la revisione manuale scompaiono, ma quando vengono eseguiti si attivano.
3. Repository di prova
Questi pacchetti malevoli sono già stati scoperti non solo su GitHub, ma anche su NPM, Open VSX e sul marketplace Visual Studio Code.
Perché è difficile notarlo
- Le modifiche ai progetti sembrano ordinarie: aggiornamento versione, correzioni di bug, refactoring.
- Gli aggressori, secondo gli esperti, usano grandi modelli linguistici AI per automatizzare la falsificazione del codice. Ciò consente di preparare rapidamente oltre 150 progetti senza lavoro manuale.
Storia dei caratteri
I caratteri Unicode che corrispondono alle lettere latine sono stati aggiunti al sistema decenni fa. Dal 2024 vengono usati dagli hacker per mascherare richieste dannose ai chatbot e codice nei repository. Gli strumenti tradizionali di analisi statica non li rilevano; solo durante l’esecuzione di JavaScript piccoli decoder rivelano il vero byte‑code.
Cosa fare gli sviluppatori
1. Verificare le dipendenze – prima di collegare librerie esterne esaminare attentamente il loro codice sorgente e la cronologia delle modifiche.
2. Controlli automatici – usare lint, scanner per “caratteri invisibili” e strumenti di analisi del comportamento dinamico.
3. Aggiornare – monitorare che i pacchetti non vengano rimossi dopo il download; ciò può indicare una minaccia nascosta.
Prospettive
Se le ipotesi sull’uso dell’IA in questo schema si confermano, rilevare e rimuovere tali attacchi diventerà sempre più difficile. Tuttavia, un approccio consapevole alla verifica del codice sorgente e delle dipendenze rimane la migliore difesa contro queste minacce.
Commenti (0)
Condividi la tua opinione — per favore, sii cortese e resta in tema.
Accedi per commentare