‹ Tutti gli articoli
Sicurezza

Duemila dipendenze, ne conosci tre

30 maggio 2026 · di Angelo Pallanca (Pan) · 2 min di lettura

Apri un progetto moderno, lancia il comando di installazione, e in pochi secondi sul tuo computer atterrano migliaia di pacchetti. Tu ne hai scelti tre. Gli altri millenovecentonovantasette sono dipendenze delle dipendenze, scritte da gente che non conosci, che si fida di gente che non conosce, in una catena che nessuno vede per intero.

Funziona benissimo, finché non funziona. E nel 2026 ha smesso di funzionare con una certa regolarità.

Centosettanta pacchetti in un colpo solo

L'11 maggio 2026 un attacco coordinato ha compromesso oltre 170 pacchetti npm e un paio su PyPI, colpendo in un colpo solo l'ecosistema TanStack, gli SDK di Mistral AI, gli strumenti di UiPath, OpenSearch e altri, con milioni di download settimanali a valle. Non un progetto sfortunato. Un'intera porzione dell'infrastruttura su cui gira mezzo internet.

Il copione è sempre lo stesso. Un payload offuscato dentro un pacchetto legittimo, che si attiva durante l'installazione e va a caccia di token GitHub e npm, segreti di CI/CD, credenziali cloud, chiavi API. Ruba le chiavi, e con le chiavi entra ovunque.

Nel solo 2025 Sonatype ha identificato oltre 454.000 nuovi pacchetti malevoli, portando il totale storico di malware bloccato a più di 1,23 milioni.

La fiducia è l'architettura, e l'architettura è il bersaglio

Il punto scomodo è che non c'è un bug da correggere. La vulnerabilità è il modello stesso: il software moderno è costruito sulla fiducia transitiva. Mi fido di te, tu ti fidi di lui, lui si è fidato di un account che ieri è stato compromesso con una mail di phishing. La catena è lunga quanto serve perché un anello, da qualche parte, ceda.

Più riusiamo il codice, più siamo efficienti, e più siamo esposti. Ogni dipendenza è un risparmio di tempo e un atto di fede. Moltiplicato per migliaia, diventa una superficie d'attacco che nessuno controlla riga per riga, perché controllarla riga per riga vanificherebbe il motivo per cui usiamo le dipendenze.

Perché conta (anche se non scrivi codice)

Per chi sviluppa: "funziona" non è "è sicuro". Bloccare le versioni, verificare le firme, ridurre le dipendenze inutili, isolare cosa gira in fase di installazione. Misure noiose, esattamente quelle che fanno la differenza.

Per chi usa software: dietro l'app che apri ci sono migliaia di mani anonime. Quando un fornitore dice "siamo sicuri", la domanda giusta è: sapete cosa avete davvero installato, e cosa fa quando lo installate?

C'è una vecchia battuta dei sistemisti: il software non è scritto, è assemblato da pezzi trovati per terra. Una volta era una battuta. Oggi è la descrizione esatta di come funziona, e di perché qualcuno, per terra, quei pezzi ce li mette apposta.