Implementacija sudo i su u Rustu namijenjena je poboljšanju sigurnosti u ovim uslužnim programima.
Prije tri mjeseca podijelili smo ovdje na blogu vijest o stvaranju projekta "Sudo-rs" od strane ISRG-a, koji je osnivač projekta Let's Encrypt i potiče razvoj tehnologija za povećanje sigurnosti na internetu.
U toj publikaciji podijelili smo neke detalje i karakteristike projekta, koji u osnovi ima za cilj stvaranje implementacija SUDO i SU uslužnih programa u Rustu (publikaciju možete pogledati na sljedećoj poveznici ).
Prva stabilna verzija sudo-rs
Razlog spominjanja ovoga je što je nedavno pokrenuta prva stabilna verzija Sudo-rs projekta , u čijem su razvoju sudjelovali inženjeri iz Ferrous Systemsa i Tweede Golfa, a financiranje su osigurali Google, Cisco i Amazon Web Services.
Za one koji nisu upoznati s projektom "Sudo-rs", mogu vam reći da mu je svrha razvoj Rust verzija uslužnih programa SUDO i SU, dizajniranih za izvršavanje naredbi u ime drugih korisnika, budući da je SUDO konzolni uslužni program u Unix-sličnim operativnim sustavima za izvršavanje naredbi s privilegijama drugog korisnika, prema zadanim postavkama 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 Windows biblioteke 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ćuje 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še razine sigurnosti.
Korištenje Rust jezika za razvoj SU i SUDO-a trebalo bi smanjiti rizik od ranjivosti uzrokovanih nesigurnim rukovanjem memorijom i eliminirati pojavu pogrešaka poput pristupa memorijskom području nakon što je oslobođeno i nestanka memorije na granicama međuspremnika.
Nadalje, kako bi se osigurala odgovarajuća razina sigurnosti, projekt je razvio prošireni skup testova koji također omogućuje praćenje održavanja potrebne razine kompatibilnosti s izvornim uslužnim programom sudo. Kako bi se smanjila površina napada i broj potencijalnih ranjivosti u sudo-rs, odlučeno je odustati od implementacije rijetko korištene sudo funkcionalnosti.
Među razlikama u odnosu na SUDO spominje se uključeni zadani način rada use_pty, među temeljno neimplementiranim značajkama su mail_badpass, kao i kompatibilnost sa sendmailom, dok su značajke koje još nisu implementirane, ali će biti dodane u budućnosti: uslužni program sudoedit, načini rada NOEXEC i NOINTERCEPT, podrška za povezivanje "zadanih" konfiguracijskih blokova s pojedinačnim korisnicima i naredbama, mogućnost autentifikacije bez korištenja PAM-a.
Vrijedno je spomenuti da se u ovom mjesecu rujnu očekuje potvrda kvalitete implementacije te da je u planu i neovisna revizija kodne baze sudo-rs.
Osim toga, spominje se da se u drugoj verziji planiraju dodati alati za rad u okruženjima s više korisnika , kao što su NOEXEC način rada, zapisnici revizije, mogućnost mapiranja hostova naredbom sudoers i podrška za do 16 korisničkih grupa. Planirano je da treća verzija bude kompatibilna s konfiguracijom naredbe sudoers koja se koristi u Fedori, a također će dodati uslužni program sudoedit i koristiti mehanizme SELinux i AppArmor za poboljšanje sigurnosti.
Konačno , ako ste zainteresirani saznati više o ovome , detalje možete pronaći na sljedećoj poveznici.