Un proiect de implementare a utilităților sudo și su în Rust

Organizația ISRG (Internet Security Research Group), care este fondatoarea proiectului Let's Encrypt și promovează HTTPS și dezvoltarea de tehnologii pentru creșterea securității Internetului, a prezentat proiectul Sudo-rs pentru a crea implementări ale utilitaților sudo și su scris în limbajul Rust, permițându-vă să executați comenzi în numele altor utilizatori. O versiune preliminară a Sudo-rs a fost deja publicată sub licențele Apache 2.0 și MIT, dar nu este încă pregătită pentru utilizare pe scară largă. Proiectul, la care lucrările au început în decembrie 2022, este programat să fie finalizat în septembrie 2023.

În prezent, munca se concentrează pe implementarea caracteristicilor în Sudo-rs care îi permit să fie folosit ca înlocuitor transparent pentru sudo în cazuri de utilizare obișnuite (configurații implicite sudoers pe Ubuntu, Fedora și Debian). În viitor, există planuri de a crea o bibliotecă care să permită încorporarea funcționalității sudo în alte programe și de a oferi o metodă alternativă de configurare care elimină nevoia de a analiza sintaxa fișierului de configurare sudoers. Pe baza funcționalității sudo implementate, va fi pregătită și o versiune a utilitarului su. În plus, planurile menționează suport pentru SELinux, AppArmor, LDAP, instrumente de audit, capacitatea de a se autentifica fără a utiliza PAM și implementarea tuturor opțiunilor de linie de comandă sudo.

Potrivit Microsoft și Google, aproximativ 70% dintre vulnerabilități sunt cauzate de manipularea nesigură a memoriei. Este de așteptat ca utilizarea limbajului Rust pentru a dezvolta su și sudo va reduce riscul de vulnerabilități cauzate de lucrul nesigur cu memoria și va elimina apariția erorilor, cum ar fi accesarea unei zone de memorie după ce aceasta a fost eliberată și depășirea memoriei tampon. Dezvoltarea Sudo-rs este realizată de ingineri de la Ferrous Systems și Tweede Golf cu fonduri furnizate de companii precum Google, Cisco, Amazon Web Services.

Siguranța memoriei este asigurată în Rust în timpul compilării prin verificarea referințelor, urmărirea proprietății obiectului și a duratei de viață a obiectului (sfera de aplicare), precum și prin evaluarea corectitudinii accesului la memorie în timpul execuției codului. Rust oferă, de asemenea, protecție împotriva depășirilor de numere întregi, necesită inițializarea obligatorie a valorilor variabilelor înainte de utilizare, gestionează mai bine erorile în biblioteca standard, aplică implicit conceptul de referințe imuabile și variabile, oferă tastare statică puternică pentru a minimiza erorile logice.

Sursa: opennet.ru

Adauga un comentariu