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

  1. Prompt → allucinazione – Uno sviluppatore chiede aiuto a un'IA. Il modello, addestrato su dati internet rumorosi, inventa un nome di pacchetto che sembra plausibile.
  2. 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.
  3. 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.