hackweb
appunti di hacking e tecnologia
IT EN
menù principale
menù utente
non sei loggato

Dependency confusion: il pacchetto interno impersonato

6 luglio 2024 · 1 min di lettura · #supply-chain #dependencies #devops

Le aziende usano pacchetti interni (azienda-utils) da un registro privato. La dependency confusion sfrutta come i package manager scelgono dove prenderli.

Il meccanismo

Se un nome interno non è registrato anche sul registro pubblico, l'attaccante lo pubblica lì con una versione più alta. Molti client, cercando in entrambi i registri, scelgono la versione più alta — quella pubblica malevola — ed eseguono il suo codice di install nella build (spesso in CI, con accesso a segreti).

// package.json interno: "azienda-utils": "^1.0.0"
// attaccante pubblica [email protected] su npm pubblico
// npm install prende la 99.0.0 -> preinstall script -> RCE in CI

Ha funzionato contro grandi aziende come dimostrazione (Alex Birsan, 2021).

Difesa

Riserva i nomi interni anche sui registri pubblici (namespace/scope: @azienda/utils). Configura il client per prendere quegli scope solo dal registro privato (scoped registry). Verifica di integrità/lockfile, e blocca gli install script non fidati in CI. Mai lasciare che il registro pubblico vinca su quello privato.


« torna alla home

ultimi post
 
il tuo indirizzo IP:
216.73.216.108
visitatore #0
MOTD:
Ogni astrazione perde da qualche parte.
Qui guardiamo dove.
argomenti