Cargo è il gestore dei pacchetti e strumento di build di Rust. Scarica i crate, risolve le versioni delle dipendenze, compila il codice sorgente, esegue i test e produce i binari finali. In pratica, Cargo è il punto di ingresso per la maggior parte dello sviluppo in Rust, quindi controlla gran parte di ciò che accade prima ancora che un'applicazione venga eseguita.
Questo è importante dal punto di vista della sicurezza perché Cargo può anche eseguire script di build, come build.rs, durante la compilazione. Una dipendenza malevola o compromessa può usare questa fase per ispezionare le variabili d'ambiente, leggere i file del workspace o attivare attività di rete all'interno di un runner CI o di una macchina di sviluppo. I difensori trattano quindi le build Cargo come parte della superficie d'attacco: esaminano le modifiche alle dipendenze, limitano i segreti sugli host di build, isolano l'automazione e monitorano comportamenti inattesi durante la compilazione.


