Et projekt for at implementere sudo- og su-værktøjerne i Rust

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

Tilføj en kommentar