A sudo és su Rust-ban való megvalósítása ezen segédprogramok biztonságának javítását szolgálja.
Három hónappal ezelőtt itt a blogon megosztottuk a hírt a "Sudo-rs" projekt létrehozásáról az ISRG által, amely a Let's Encrypt projekt alapítója, és az internetes biztonságot növelő technológiák fejlesztését szorgalmazza.
Ebben a kiadványban megosztottuk a projekt néhány részletét és jellemzőjét , amelynek alapvető célja a SUDO és SU segédprogramok Rustban történő implementációjának létrehozása (a kiadványt a következő linken tekintheti meg ).
A sudo-rs első stabil verziója
Ennek említésének az az oka, hogy a Sudo-rs projekt első stabil verziója nemrégiben jelent meg , melynek fejlesztésében a Ferrous Systems és a Tweede Golf mérnökei vettek részt a Google, a Cisco és az Amazon Web Services finanszírozásával.
Azoknak, akik nem ismerik a "Sudo-rs" projektet, elmondhatom, hogy a célja a SUDO és SU segédprogramok Rust verzióinak fejlesztése, amelyek célja parancsok végrehajtása más felhasználók nevében, mivel a SUDO egy konzol segédprogram Unix-szerű operációs rendszerekben, parancsok végrehajtására egy másik felhasználó, alapértelmezés szerint a root superuser jogosultságaival.
A `sudo-rs`-ben található `sudo` és `su` függvényeket a nulláról írták Rustban, egy olyan programozási nyelven, amelyet az iparágban egyre inkább használnak és ajánlanak, mivel ez az Android egyik fő programozási nyelvévé vált, sőt, a Linux kernel másodlagos programozási nyelvként is támogatja. A Microsoft a maga részéről többször is említette szándékát, hogy újraírja a kernelt és a benne található néhány Windows könyvtárat.
Megemlítik, hogy a segédprogramok, amikor csak lehetséges, kompatibilisek a klasszikus SUDO és SU segédprogramokkal , lehetővé téve a sudo-rs transzparens SUDO helyettesítését tipikus esetekben, amelyek megfelelnek az Ubuntu és a Debian alapértelmezett /etc/sudoers konfigurációjának. A Sudo-rs már implementálva van a hagyományos SUDO csomag helyett a Wolfi Linux disztribúcióban, a legmagasabb szintű biztonság biztosítása érdekében.
A Rust nyelv használata az SU és a SUDO fejlesztéséhez állítólag csökkenti a nem biztonságos memóriakezelés okozta sebezhetőségek kockázatát , és kiküszöböli az olyan hibák előfordulását, mint például a memóriaterület elérése a felszabadítás után, és a memória elfogyása a pufferhatároknál.
Továbbá a megfelelő biztonsági szint biztosítása érdekében a projekt kibővített tesztcsomagot fejlesztett ki , amely lehetővé teszi az eredeti sudo segédprogrammal való kompatibilitás szükséges szintjének fenntartásának monitorozását is. A támadási felület és a sudo-rs potenciális sebezhetőségeinek számának csökkentése érdekében úgy döntöttek, hogy elhagyják a ritkán használt sudo funkció megvalósítását.
A SUDO-tól való különbségek között említik az alapértelmezett use_pty módot, az alapvetően nem implementált funkciók között szerepel a mail_badpass, valamint a sendmail-lel való kompatibilitás, míg a még nem implementált, de a jövőben hozzáadandó funkciók közé tartozik a sudoedit segédprogram, a NOEXEC és NOINTERCEPT módok, az „alapértelmezett” konfigurációs blokkok egyes felhasználókhoz és parancsokhoz való csatolásának támogatása, valamint a PAM használata nélküli hitelesítés lehetősége.
Érdemes megemlíteni, hogy ebben a szeptemberben várhatóan meg lehet erősíteni a megvalósítás minőségét, és a sudo-rs kódbázis független auditálását is tervezik.
Ezenkívül megemlítik, hogy a második verzió tervek szerint olyan eszközöket is tartalmaz majd, amelyekkel többfelhasználós környezetben is lehet dolgozni , mint például a NOEXEC mód, az auditnaplók, a sudoerek képessége a gazdagépek leképezésére, valamint akár 16 felhasználói csoport támogatása. A harmadik verzió várhatóan kompatibilis lesz a Fedorában használt sudoers konfigurációval , és hozzáadja a sudoedit segédprogramot , valamint az SELinux és az AppArmor mechanizmusait használja a biztonság fokozása érdekében.
Végül , ha többet szeretnél megtudni erről , a részleteket az alábbi linken találod .