
In questo articolo, Aaron Rose, Office of the CTO di Check Point Software, spiega come la crescente diffusione della codifica basata su intelligenza artificiale stia generando un fenomeno noto come “allucinazioni”, ovvero suggerimenti di pacchetti software inesistenti. Negli ultimi anni, queste anomalie sono aumentate in modo preoccupante, creando vulnerabilità che attirano l’attenzione dei criminali informatici.
Una delle minacce più insidiose legate a queste vulnerabilità è lo Slopsquatting. Scopriamo come funziona e perché rappresenta un rischio crescente per la sicurezza.
Buona lettura!
La minaccia nascosta dell’AI che genera pacchetti software con “allucinazioni”: lo Slopsquattiong attacca la supply chain
Gli assistenti di codifica alimentati dall’intelligenza artificiale, come Copilot di GitHub, Cursor AI e ChatGPT, sono passati rapidamente da gadget intriganti a compagni indispensabili per gli sviluppatori moderni. Una recente ricerca di Stack Overflow ha rivelato che oltre il 76% degli sviluppatori si affida a questi assistenti e più dell’80% ha dichiarato di aver ottenuto significativi miglioramenti della produttività grazie all’uso di generatori di codice AI ed editor di codice aumentati. Questi “compagni di squadra virtuali” semplificano compiti complessi, snelliscono i flussi di lavoro di sviluppo e accelerano in modo significativo le tempistiche dei progetti.
Ogni innovazione porta con sé anche nuovi rischi. Gli assistenti di codifica AI generano occasionalmente le cosiddette “allucinazioni”, ovvero raccomandazioni per pacchetti software che semplicemente non esistono. Un recente studio condotto da ricercatori dell’Università del Texas a San Antonio, dell’Università dell’Oklahoma e della Virginia Tech ha rilevato che gli LLM open-source hanno generato pacchetti “allucinati” a percentuali allarmanti – circa il 21,7% in media – rispetto ai modelli commerciali che hanno registrato una media del 5,2%. I ricercatori hanno documentato oltre 200.000 nomi unici di pacchetti “allucinati” in questo solo studio, illustrando quanto questo problema sia davvero pervasivo e pericoloso. Non si tratta di errori evidenti: spesso assomigliano molto ai pacchetti software autentici, ingannando anche gli sviluppatori più esperti.
Inoltre, siamo anche in presenza di un’interessante dimensione interlinguistica in queste “allucinazioni”. I ricercatori hanno scoperto che i modelli di generazione di codice specifici per Python spesso “allucinavano” i pacchetti JavaScript: uno scenario inquietante, vista la potenziale confusione e i rischi che potrebbe creare negli ecosistemi software.
Gli attaccanti informatici hanno rapidamente sfruttato questa vulnerabilità, introducendo una nuova forma di attacco alla supply chain chiamata slopsquatting. A differenza del typosquatting tradizionale, che sfrutta gli errori di battitura dell’uomo, lo slopsquatting sfrutta le allucinazioni dell’intelligenza artificiale. Gli aggressori monitorano i nomi dei pacchetti suggeriti dall’intelligenza artificiale, registrando rapidamente queste dipendenze immaginarie su repository popolari come npm o PyPI. Quando gli sviluppatori ignari si fidano delle raccomandazioni dell’intelligenza artificiale e installano questi pacchetti, portano inavvertitamente codice dannoso nei loro ambienti.
Si consideri l’incidente “huggingface-cli” della fine del 2023. Dopo aver notato che l’AI suggeriva ripetutamente questo pacchetto inesistente, un ricercatore di sicurezza lo ha registrato su PyPI come test innocuo. Nel giro di pochi giorni, migliaia di sviluppatori, compresi i team di Alibaba, hanno inconsapevolmente adottato questo pacchetto fittizio nei loro progetti critici. Sebbene questo incidente sia stato benigno, ha dimostrato quanto rapidamente e facilmente gli aggressori possano sfruttare le vulnerabilità generate dall’intelligenza artificiale.
Se immaginiamo uno scenario in cui gli attaccanti utilizzino questa tattica su una scala più ampia e più malevola, rischiamo che una singola raccomandazione diffusa potrebbe compromettere rapidamente i sistemi di tutto il mondo, causando significative violazioni dei dati, backdoor persistenti o gravi interruzioni. La natura automatizzata della gestione delle dipendenze nelle moderne pipeline CI/CD amplifica questa minaccia, consentendo al codice dannoso di diffondersi rapidamente dagli ambienti di sviluppo ai sistemi di produzione.
Le pratiche di sicurezza tradizionali spesso non riescono a contrastare queste minacce emergenti, in quanto molti scanner di dipendenze dipendono dai dati storici di reputazione e non sono in grado di individuare i nuovi pacchetti malevoli registrati. Ciò sottolinea l’urgente necessità di strategie innovative e proattive, studiate su misura per rilevare e mitigare le vulnerabilità guidate dall’intelligenza artificiale.
I team di sviluppo e sicurezza devono adottare pratiche rigorose per contrastare efficacemente lo slopsquatting. In primo luogo, trattare i suggerimenti generati dall’AI con scetticismo: non fidarsi mai ciecamente delle dipendenze suggerite. È fondamentale, implementare processi di verifica rigorosi, verificando manualmente i nomi dei pacchetti sconosciuti e utilizzando in modo coerente i lockfile, le versioni pinnate e la verifica degli hash crittografici. Inoltre, il mantenimento di mirror interni o di elenchi di pacchetti affidabili può ridurre drasticamente l’esposizione ai nuovi malintenzionati arrivati.
I ricercatori hanno testato diversi approcci per ridurre le “allucinazioni”, in particolare la retrieval augmented generation (RAG) e la messa a punto supervisionata. Se da un lato queste tecniche hanno ridotto drasticamente le allucinazioni (fino all’85%), dall’altro hanno introdotto un compromesso critico, influenzando negativamente la qualità complessiva del codice. Ciò sottolinea la necessità di soluzioni di sicurezza complete in grado di identificare in modo proattivo le minacce senza sacrificare l’efficienza dello sviluppo.
Anche l’educazione e la consapevolezza svolgono un ruolo cruciale. Politiche chiare dovrebbero imporre un maggiore controllo e una revisione tra pari per tutte le dipendenze generate dall’intelligenza artificiale. Promuovendo una cultura organizzativa che metta in discussione le raccomandazioni dell’IA non familiari, i team rafforzano in modo significativo la propria sicurezza complessiva informatica.
di Aaron Rose, Office of the CTO di Check Point Software