Projekt a sudo és su segédprogramok Rustban való megvalósítására

Az ISRG (Internet Security Research Group), amely a Let's Encrypt projekt alapítója, és a HTTPS-t és az internet biztonságát növelő technológiák fejlesztését népszerűsíti, bemutatta a Sudo-rs projektet, melynek célja a sudo és su segédprogramok megvalósítása. Rozsda, amely lehetővé teszi, hogy parancsokat hajtson végre mások nevében. Az Apache 2.0 és MIT licenc alatt már megjelent a Sudo-rs előzetes kiadása, amely még nem áll készen az általános használatra. A 2022 decemberében megkezdett projekt a tervek szerint 2023 szeptemberében fejeződik be.

A munka jelenleg a Sudo-rs olyan funkcióinak megvalósítására összpontosít, amelyek lehetővé teszik, hogy a sudo átlátszó helyettesítőjeként használható legyen tipikus használati esetekben (alapértelmezett sudoers konfigurációk Ubuntu, Fedora és Debian rendszeren). A jövőben egy olyan könyvtár létrehozását tervezik, amely lehetővé teszi a sudo funkciók beágyazását más programokba, és alternatív konfigurációs módszert kínál, amely elkerüli a sudoers konfigurációs fájl szintaxisának elemzését. A megvalósított sudo funkcionalitás alapján elkészül a su segédprogram egy változata is. Ezen kívül a tervek megemlítik a SELinux, AppArmor, LDAP, audit eszközök támogatását, a PAM használata nélküli hitelesítés lehetőségét, valamint az összes sudo parancssori opció megvalósítását.

A Microsoft és a Google szerint a sérülékenységek mintegy 70%-át a nem biztonságos memóriakezelés okozza. Várhatóan a Rust nyelv használata a su és a sudo fejlesztésére csökkenti a nem biztonságos memóriakezelés által okozott 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 annak felszabadítása után és a puffertúllépések. A Sudo-rs-t a Ferrous Systems és a Tweede Golf mérnökei fejlesztik olyan cégek támogatásával, mint a Google, a Cisco, az Amazon Web Services.

A memóriabiztos kezelést a Rust fordítási időben biztosítja a referenciaellenőrzés, az objektum tulajdonjogának és az objektum élettartamának (hatókörének) nyomon követésével, valamint a kódvégrehajtás során a memória-hozzáférés helyességének értékelésével. A Rust védelmet nyújt az egész számok túlcsordulása ellen is, megköveteli a változó értékek kötelező inicializálását használat előtt, jobban kezeli a hibákat a szabványos könyvtárban, alapértelmezés szerint alkalmazza a megváltoztathatatlan hivatkozások és változók koncepcióját, erős statikus gépelést kínál a logikai hibák minimalizálása érdekében.

Forrás: opennet.ru

Hozzászólás