Implementeringen av sudo och su i Rust syftar till att förbättra säkerheten i dessa verktyg
För tre månader sedan delade vi här på bloggen nyheten om skapandet av projektet "Sudo-rs" av ISRG, som är grundare av Let's Encrypt-projektet och främjar utvecklingen av teknik för att öka internetsäkerheten.
I den publikationen delade vi några av detaljerna och egenskaperna hos projektet, vilket i grunden syftar till att skapa implementeringar av SUDO- och SU-verktygen i Rust (du kan läsa publikationen på följande länk ).
Första stabila versionen av sudo-rs
Anledningen till att detta nämns är att den första stabila versionen av Sudo-rs-projektet nyligen lanserades , där ingenjörer från Ferrous Systems och Tweede Golf deltog i utvecklingen med finansiering från Google, Cisco och Amazon Web Services.
För er som inte känner till projektet "Sudo-rs" kan jag berätta att dess syfte är att utveckla Rust-versioner av SUDO och SU-verktygen, utformade för att utföra kommandon åt andra användare, eftersom SUDO är ett konsolverktyg i Unix-liknande operativsystem för att utföra kommandon med en annan användares privilegier, som standard root-superanvändaren.
Funktionerna `sudo` och `su`, i `sudo-rs`, skrevs från grunden i Rust, ett språk som används och rekommenderas alltmer i branschen, eftersom det har blivit ett av huvudspråken för Android och till och med har stöd för det som ett sekundärt programmeringsspråk i Linuxkärnan. Microsoft har å sin sida också vid flera tillfällen nämnt sin avsikt att skriva om kärnan och några av de Windows-bibliotek den innehåller.
Det nämns att verktygen är kompatibla med de klassiska SUDO- och SU-verktygen när det är möjligt, vilket gör att sudo-rs kan användas som en transparent ersättning för SUDO i typiska scenarier som matchar standardkonfigurationen /etc/sudoers i Ubuntu och Debian. Sudo-rs har redan implementerats istället för det traditionella SUDO-paketet i Wolfi Linux-distributionen, med syftet att ge högsta möjliga säkerhetsnivå.
Användningen av Rust-språket för utveckling av SU och SUDO är tänkt att minska risken för sårbarheter orsakade av osäker minneshantering och eliminera förekomsten av fel, såsom åtkomst till ett minnesområde efter att det har frigjorts och att minnet får slut på minne vid buffertgränser.
För att säkerställa lämplig säkerhetsnivå har projektet dessutom utvecklat en utökad uppsättning tester , som också möjliggör övervakning av upprätthållandet av den erforderliga kompatibilitetsnivån med det ursprungliga sudo-verktyget. För att minska attackytan och antalet potentiella sårbarheter i sudo-rs beslutades det att överge implementeringen av den sällan använda sudo-funktionen.
Bland skillnaderna med SUDO nämns att standardläget use_pty ingår, bland de fundamentalt oimplementerade funktionerna finns mail_badpass, samt kompatibilitet med sendmail, medan funktioner som ännu inte har implementerats, men som kommer att läggas till i framtiden: sudoedit-verktyget, NOEXEC- och NOINTERCEPT-lägen, stöd för att länka "standard"-konfigurationsblock till enskilda användare och kommandon, möjligheten att autentisera utan att använda PAM.
Det är värt att nämna att den här september månad förväntas bekräfta kvaliteten på implementeringen och att en oberoende granskning av sudo-rs kodbas också planeras.
Dessutom nämns det att den andra versionen planeras lägga till verktyg för att arbeta i fleranvändarmiljöer , såsom NOEXEC-läge, revisionsloggar, möjligheten för sudoers att mappa värdar och stöd för upp till 16 användargrupper. Den tredje versionen planeras att vara kompatibel med sudoers -konfigurationen som används i Fedora, och kommer också att lägga till verktyget sudoedit och använda SELinux- och AppArmor-mekanismer för att förbättra säkerheten.
Slutligen , om du är intresserad av att lära dig mer om detta , kan du hitta detaljerna på följande länk.