Implementacija sudo i su u Rust ima za cilj da poboljša sigurnost u ovim uslužnim programima.
Prije tri mjeseca, ovdje na blogu smo podijelili vijest o stvaranju projekta "Sudo-rs" od strane ISRG-a, koji je osnivač projekta Let's Encrypt i promovira razvoj tehnologija za povećanje sigurnosti na internetu.
U toj publikaciji smo podijelili neke od detalja i karakteristika projekta, koji u osnovi ima za cilj kreiranje implementacija SUDO i SU uslužnih programa u Rustu (publikaciju možete pogledati na sljedećem linku ).
Prva stabilna verzija sudo-rs
Razlog za spominjanje ovoga je taj što je nedavno pokrenuta prva stabilna verzija Sudo-rs projekta , u čijem su razvoju učestvovali inženjeri iz Ferrous Systemsa i Tweede Golfa, a finansiranje su obezbijedili Google, Cisco i Amazon Web Services.
Za one koji nisu upoznati s projektom "Sudo-rs", mogu vam reći da je njegova svrha razvoj Rust verzija SUDO i SU uslužnih programa, dizajniranih za izvršavanje naredbi u ime drugih korisnika, budući da je SUDO konzolni uslužni program u Unix-sličnim operativnim sistemima za izvršavanje naredbi s privilegijama drugog korisnika, po defaultu root superkorisnika.
Funkcije `sudo` i `su`, u `sudo-rs`, napisane su od nule u Rustu, jeziku koji se sve više koristi i preporučuje u industriji, budući da je postao jedan od glavnih jezika za Android, pa čak ima i podršku za njega kao sekundarni programski jezik u Linux kernelu. Microsoft je, sa svoje strane, također u nekoliko navrata spomenuo svoju namjeru da prepiše kernel i neke od Windows biblioteka koje on sadrži.
Spominje se da su uslužni programi kompatibilni s klasičnim SUDO i SU uslužnim programima kad god je to moguće, što omogućava korištenje sudo-rs kao transparentne zamjene za SUDO u tipičnim scenarijima koji odgovaraju zadanoj konfiguraciji /etc/sudoers u Ubuntuu i Debianu. Sudo-rs je već implementiran umjesto tradicionalnog SUDO paketa u Wolfi Linux distribuciji, s ciljem pružanja najvišeg nivoa sigurnosti.
Korištenje Rust jezika za razvoj SU i SUDO-a trebalo bi smanjiti rizik od ranjivosti uzrokovanih nesigurnim rukovanjem memorijom i eliminirati pojavu grešaka poput pristupa memorijskom području nakon što je oslobođeno i nestanka memorije na granicama bafera.
Nadalje, kako bi se osigurao odgovarajući nivo sigurnosti, projekat je razvio prošireni skup testova , koji također omogućava praćenje održavanja potrebnog nivoa kompatibilnosti s originalnim sudo uslužnim programom. Kako bi se smanjila površina napada i broj potencijalnih ranjivosti u sudo-rs, odlučeno je da se odustane od implementacije rijetko korištene sudo funkcionalnosti.
Među razlikama u odnosu na SUDO , spominje se da je uključen podrazumijevani use_pty mod, među fundamentalno neimplementiranim funkcijama su mail_badpass, kao i kompatibilnost sa sendmailom, dok su funkcije koje još nisu implementirane, ali će biti dodane u budućnosti: uslužni program sudoedit, NOEXEC i NOINTERCEPT modovi, podrška za povezivanje "podrazumijevanih" konfiguracijskih blokova s pojedinačnim korisnicima i naredbama, mogućnost autentifikacije bez korištenja PAM-a.
Vrijedi napomenuti da se u ovom mjesecu septembru očekuje potvrda kvaliteta implementacije i da je u planu i nezavisna revizija sudo-rs kodne baze.
Osim toga, spominje se da se planira da druga verzija doda alate za rad u okruženjima s više korisnika , kao što su NOEXEC način rada, zapisnici revizije, mogućnost mapiranja hostova pomoću sudoersa i podrška za do 16 korisničkih grupa. Planirano je da treća verzija bude kompatibilna s konfiguracijom sudoersa koja se koristi u Fedori, a također će dodati uslužni program sudoedit i koristiti mehanizme SELinuxa i AppArmora za poboljšanje sigurnosti.
Konačno , ako ste zainteresirani da saznate više o ovome , detalje možete pronaći na sljedećem linku.