Gli assistenti di programmazione basati su IA stanno generando nomi di pacchetti inesistenti, e gli attaccanti stanno trasformando queste allucinazioni in veri rischi per la supply chain.
Quando il ricercatore di sicurezza Bar Lanyado di Lasso Security ha chiesto a uno strumento di coding basato su IA un client Python, il modello ha suggerito di installare huggingface-cli. Il pacchetto è un fantasma; la libreria legittima esiste sotto il nome huggingface_hub. Per dimostrare il pericolo, Lanyado ha registrato il nome falso sul Python Package Index (PyPI) come un segnaposto vuoto. Entro tre mesi, il segnaposto ha accumulato oltre 30.000 download, è apparso nella documentazione pubblica e persino in esempi di codice estratti dai repository di Alibaba.
Come un pacchetto fantasma diventa una minaccia reale
- Prompt → allucinazione – Uno sviluppatore chiede aiuto a un'IA. Il modello, addestrato su dati internet rumorosi, inventa un nome di pacchetto che sembra plausibile.
- Copia-incolla → documentazione – Il suggerimento finisce in un README, in una risposta su Stack Overflow o in un wiki interno. Una volta scritto, il nome si diffonde all'interno della community.
- Integrazione del codice – Lo sviluppatore, fidandosi dell'IA, aggiunge il nome a un file requirements e lo carica in produzione.
Perché le difese esistenti non colgono il problema
Gli strumenti di analisi statica e gli scanner di vulnerabilità cercano CVE noti e librerie con una cronologia di rilascio. Un pacchetto appena pubblicato con zero download prima del suggerimento dell'IA non ha CVE, non ha reputazione e quindi appare pulito. Il controllo standard "la versione è vulnerabile?" restituisce falso, dando agli sviluppatori un falso senso di sicurezza.
Cosa dimostra l'esperimento
- I nomi inventati dall'IA raggiungono la produzione – Gli oltre 30.000 download dimostrano che gli sviluppatori stanno effettivamente scaricando questi pacchetti fantasma.
- Le allucinazioni diventano documentazione – Una volta che un nome falso appare in una guida pubblica, può persistere indefinitamente, propagando l'errore.
- La registrazione è banale – Pubblicare un pacchetto su PyPI non costa nulla e richiede pochi minuti, abbassando la barriera per l'abuso della supply chain.
Passaggi difensivi che funzionano davvero
- Valida ogni dipendenza – Prima di aggiungere un nuovo requisito, cerca nell'indice dei pacchetti e conferma che il nome corrisponda a una libreria esistente e documentata.
- Verifica con fonti ufficiali – Confronta il nome suggerito con il repository del fornitore o con la guida ufficiale all'installazione.
- Tratta i nuovi pacchetti con scarso utilizzo come ad alto rischio – Segnala per una revisione manuale qualsiasi dipendenza che abbia meno di una manciata di download o una data di rilascio molto recente.
Cosa monitorare in futuro
La lezione è semplice: un suggerimento dell'IA non è una garanzia. Tratta ogni nuova dipendenza come un componente di terze parti non verificato, controllane la provenienza e tieni d'occhio la supply chain prima di permettere a un pacchetto fantasma di scivolare in produzione.
