ISRG (Internet Security Research Group), som er grundlæggeren af Let's Encrypt-projektet og fremmer HTTPS og udviklingen af teknologier til at øge sikkerheden på internettet, præsenterede Sudo-rs-projektet for at skabe implementeringer af sudo- og su-værktøjer skrevet i Rust, der giver dig mulighed for at udføre kommandoer på vegne af andre brugere. Under Apache 2.0- og MIT-licenserne er der allerede udgivet en pre-release-version af Sudo-rs, som endnu ikke er klar til generel brug. Projektet, der begyndte arbejdet i december 2022, er planlagt til at være afsluttet i september 2023.
Arbejdet er i øjeblikket fokuseret på at implementere funktioner i Sudo-rs, der gør det muligt at bruge det som en gennemsigtig erstatning for sudo i typiske tilfælde (standard sudoers-konfigurationer på Ubuntu, Fedora og Debian). I fremtiden er der planer om at skabe et bibliotek, der tillader indlejring af sudo-funktionalitet i andre programmer og giver en alternativ konfigurationsmetode, der undgår at parse syntaksen for sudoers-konfigurationsfilen. Baseret på den implementerede sudo-funktionalitet vil der også blive udarbejdet en variant af su-værktøjet. Derudover nævner planerne understøttelse af SELinux, AppArmor, LDAP, revisionsværktøjer, muligheden for at autentificere uden brug af PAM og implementeringen af alle sudo kommandolinjeindstillinger.
Ifølge Microsoft og Google er omkring 70 % af sårbarhederne forårsaget af usikker hukommelseshåndtering. Det forventes, at brug af Rust-sproget til at udvikle su og sudo vil reducere risikoen for sårbarheder forårsaget af usikker hukommelseshåndtering og eliminere forekomsten af fejl, såsom adgang til et hukommelsesområde, efter det er blevet frigivet, og bufferoverløb. Sudo-rs udvikles af ingeniører fra Ferrous Systems og Tweede Golf med midler leveret af virksomheder som Google, Cisco, Amazon Web Services.
Hukommelsessikker håndtering leveres i Rust på kompileringstidspunktet gennem referencekontrol, holde styr på objektejerskab og objektlevetid (scope), samt gennem evaluering af korrektheden af hukommelsesadgang under kodeudførelse. Rust giver også beskyttelse mod heltalsoverløb, kræver obligatorisk initialisering af variabelværdier før brug, håndterer fejl bedre i standardbiblioteket, anvender konceptet med uforanderlige referencer og variabler som standard, tilbyder stærk statisk skrivning for at minimere logiske fejl.
Kilde: opennet.ru