De geheugenveiligheid van Rust voorkomt buffer-overflows en geheugenlekken in gecompileerde productiecode. Tijdens het bouwproces biedt pakketbeheerder Cargo echter volledige systeemtoegang aan build.rs-scripts en procedurele macro's (proc-macro) van elke transitieve afhankelijkheid in de Cargo.lock-boomstructuur.
Hoe Kwaadaardige Code Wordt Uitgevoerd Tijdens Cargo Check
Zodra een ontwikkelaar cargo build of cargo check uitvoert — of wanneer een IDE-extensie zoals rust-analyzer een project opent — compileert en start Cargo automatisch het bijbehorende build-script-build-binaire bestand van externe crates. Dit gebeurt nog voordat de eigen applicatiecode wordt gecompileerd.
| Aanvalsvector in Cargo | Activeringsmoment | Gecompileerd Artefact op Schijf | Forensische Detectiemethode |
|---|---|---|---|
build.rs-compilatiescript | cargo check, cargo build en IDE-indexering | target/debug/build/<crate>-<hash>/build-script-build | ELF/PE-importtabelanalyse in Ghidra en strace-systeemaanroepmonitoring |
proc-macro-bibliotheek | AST-expansie binnen het rustc-proces | Gedeelde bibliotheek (.so / .dll) geladen in compilergeheugen | Statische decompilatie van geëxporteerde macro-functies en netwerk-socketcontrole |
| Typosquatting & Tarball-manipulatie | Resolutie van crates.io-afhankelijkheden | Versleutelde byte-arrays via include_bytes! | Cryptografische vergelijking tussen de crates.io-tarball en de Git-broncode |
Forensische Decompilatie van Gecompileerde Build-Scripts
Tijdens forensisch onderzoek door DigitalSpying blijkt dat aanvallers zelden leesbare URL's of shell-commando's in de gepubliceerde Rust-broncode plaatsen. In plaats daarvan worden byte-buffers tijdens de compilatie via XOR-sleutels gedecodeerd om gevoelige omgevingsvariabelen (zoals AWS_SECRET_ACCESS_KEY, GITHUB_TOKEN en lokale SSH-sleutels) heimelijk te exfiltreren.
Indicatoren van Compromittering (IoC's) in ELF- en PE-Binaries
Een legitiem build.rs-script schrijft uitsluitend configuratiebestanden naar de map OUT_DIR en communiceert via cargo:rustc-*-regels op standaarduitvoer. Wanneer binaire analyse netwerkaanroepen (connect, getaddrinfo) of procescreatie (execve, CreateProcessW) in een build-script blootlegt, wijst dit direct op een actieve toeleveringsketen-aanval.
cargo vet en cargo-auditable om externe crates te verifiëren, vergrendel Cargo.lock in versiebeheer en voer cargo build uit binnen een netwerk-geïsoleerde sandbox zonder toegang tot productiesleutels.