Biztonság 1 perc olvasás

A Rust 1.100 várakozási idővel szűrné ki a túl friss csomagokat

Nem mindig a legújabb csomagverzió a biztonságos választás: a függőségekbe rejtett kártékony kód gyakran csak percekig vagy órákig marad elérhető. A várhatóan november 12-én érkező Rust 1.100 opcionális várakozási idővel csökkentené annak kockázatát, hogy a Cargo ilyen kiadást telepítsen.

Facebook X LinkedIn
Fejlesztő kezei billentyűzeten, a háttérben kódszerkesztőt mutató monitor.
Fejlesztő kezei billentyűzeten, a háttérben kódszerkesztőt mutató monitor. AI-generált illusztráció

A publikálás óta eltelt idő is számítana

A tervezett Minimum Publish Age funkcióval a Rust-projektek fejlesztői megadhatják, mennyi időnek kell eltelnie egy csomagverzió közzététele után, mielőtt a Cargo kiválaszthatja azt. A korlátot mindenki maga állíthatja be; alapértelmezés szerint nincs minimális kor.

A megoldás a szoftverellátási láncon keresztüli támadások kockázatát mérsékelné. Ezeknél a támadók kártékony kódot tartalmazó csomagokat töltenek fel a tárolókba, vagy meglévőket kompromittálnak. Ha egy projekt ilyen függőséget használ, és automatikusan telepíti az új kiadásokat, a rosszindulatú kód bekerülhet az alkalmazásába. A Rust környezetét is érintik ilyen esetek.

Régebbi változatot választ, vagy hibával megáll

A korhatár a függőségek verzióinak kiválasztásakor lép működésbe. A Cargo figyelmen kívül hagyja a túl friss változatokat, és ugyanabból a csomagból egy megfelelően régi kiadást keres. Kivételt jelentenek azok a verziók, amelyek már szerepelnek a Cargo.lock fájlban.

Ha nincs a feltételeknek megfelelő változat, a kiválasztás hibával megszakad. Az újabb ellenőrzésre csak a következő verziókiválasztáskor kerül sor: az időkorlát lejárta önmagában nem indítja el ezt a műveletet.

A Cargo jelzi, mely csomagokat hagyta ki a beállított minimum miatt. Arról is tájékoztat, ha emiatt más függőségekkel probléma adódik.

Kézzel kapcsolható be, és célzottan felülbírálható

A tervezett funkció használatához a .cargo/config.toml fájlba kell felvenni a korlátot. A bemutatott beállítás: global-min-publish-age = "7 days". Ez választható érték, nem a Rust 1.100 kötelező várakozási ideje.

Kritikus frissítésnél egy adott csomagra azonnali kivétel is adható. A forrás példája erre a CARGO_RESOLVER_INCOMPATIBLE_PUBLISH_AGE=allow cargo update -p foo parancs, amely a foo csomag frissítésénél engedi el a közzétételi korra vonatkozó korlátot.

A cikk mesterséges intelligencia segítségével készült; a szerkesztőség ellenőrizte és jóváhagyta. Impresszum