Ett projekt för att implementera sudo- och su-verktygen i Rust

ISRG (Internet Security Research Group), som är grundaren av Let's Encrypt-projektet och främjar HTTPS och utvecklingen av tekniker för att öka säkerheten på Internet, presenterade Sudo-rs-projektet för att skapa implementeringar av sudo- och su-verktyg skrivna i Rust som låter dig utföra kommandon på uppdrag av andra användare. Under Apache 2.0- och MIT-licenserna har en pre-release-version av Sudo-rs redan publicerats, ännu inte klar för allmän användning. Projektet, som påbörjades i december 2022, beräknas vara klart i september 2023.

Arbetet är för närvarande fokuserat på att implementera funktioner i Sudo-rs som gör att det kan användas som en transparent ersättning för sudo i typiska användningsfall (standard sudoers-konfigurationer på Ubuntu, Fedora och Debian). I framtiden finns det planer på att skapa ett bibliotek som gör det möjligt att bädda in sudo-funktionalitet i andra program och tillhandahålla en alternativ konfigurationsmetod som undviker att analysera syntaxen för sudoers-konfigurationsfilen. Baserat på den implementerade sudo-funktionaliteten kommer även en variant av su-verktyget att förberedas. Dessutom nämner planerna stöd för SELinux, AppArmor, LDAP, revisionsverktyg, möjligheten att autentisera utan att använda PAM och implementeringen av alla sudo kommandoradsalternativ.

Enligt Microsoft och Google orsakas cirka 70 % av sårbarheterna av osäker minneshantering. Att använda Rust-språket för att utveckla su och sudo ska minska risken för sårbarheter orsakade av osäker minneshantering och eliminera fel som att komma åt ett minnesområde efter att det har frigjorts och buffertöverskridanden. Sudo-rs utvecklas av ingenjörer från Ferrous Systems och Tweede Golf med medel från företag som Google, Cisco, Amazon Web Services.

Minnessäkerhet tillhandahålls i Rust vid kompileringstillfället genom referenskontroll, hålla reda på objektägande och objektlivslängd (scope), samt genom utvärdering av korrektheten av minnesåtkomst under kodexekvering. Rust ger också skydd mot heltalsspill, kräver obligatorisk initiering av variabelvärden innan användning, hanterar fel bättre i standardbiblioteket, tillämpar konceptet med oföränderliga referenser och variabler som standard, erbjuder stark statisk typning för att minimera logiska fel.

Källa: opennet.ru

Lägg en kommentar