Implementarea sudo și su în Rust are scopul de a îmbunătăți securitatea acestor utilități.
Acum trei luni, am împărtășit aici, pe blog, vestea creării proiectului „Sudo-rs” de către ISRG, care este fondatorul proiectului Let's Encrypt și promovează dezvoltarea de tehnologii pentru creșterea securității internetului.
În publicația respectivă am prezentat câteva dintre detaliile și caracteristicile proiectului, care vizează în principal crearea de implementări ale utilitarelor SUDO și SU în Rust (puteți consulta publicația la linkul următor ).
Prima versiune stabilă a sudo-rs
Motivul pentru care se menționează acest lucru este că recent a fost lansată prima versiune stabilă a proiectului Sudo-rs , la dezvoltarea căreia au participat ingineri de la Ferrous Systems și Tweede Golf, cu finanțare asigurată de Google, Cisco și Amazon Web Services.
Pentru cei care nu sunt familiarizați cu proiectul „Sudo-rs”, vă pot spune că scopul său este de a dezvolta versiuni Rust ale utilitarelor SUDO și SU, concepute pentru a executa comenzi în numele altor utilizatori, deoarece SUDO este un utilitar de consolă în sistemele de operare de tip Unix pentru a executa comenzi cu privilegiile unui alt utilizator, implicit superutilizatorul root.
Funcțiile `sudo` și `su`, din `sudo-rs`, au fost scrise de la zero în Rust, un limbaj din ce în ce mai utilizat și recomandat în industrie, deoarece a devenit unul dintre principalele limbaje de programare pentru Android și are chiar suport pentru acesta ca limbaj de programare secundar în kernelul Linux. Microsoft, la rândul său, a menționat, de asemenea, în mai multe rânduri, intenția sa de a rescrie kernelul și unele dintre bibliotecile Windows pe care le conține.
Se menționează că utilitarele sunt compatibile cu utilitarele clasice SUDO și SU ori de câte ori este posibil, permițând utilizarea sudo-rs ca înlocuitor transparent pentru SUDO în scenarii tipice care corespund configurației implicite /etc/sudoers în Ubuntu și Debian. Sudo-rs a fost deja implementat în locul pachetului tradițional SUDO în distribuția Wolfi Linux, cu scopul de a oferi cel mai înalt nivel de securitate.
Utilizarea limbajului Rust pentru dezvoltarea SU și SUDO are ca scop reducerea riscului vulnerabilităților cauzate de gestionarea nesigură a memoriei și eliminarea apariției erorilor, cum ar fi accesarea unei zone de memorie după ce aceasta a fost eliberată și epuizarea memoriei la limitele bufferului.
În plus, pentru a asigura nivelul adecvat de securitate, proiectul a dezvoltat o suită extinsă de teste , care permite și monitorizarea menținerii nivelului necesar de compatibilitate cu utilitarul sudo original. Pentru a reduce suprafața de atac și numărul de vulnerabilități potențiale în sudo-rs, s-a decis abandonarea implementării funcționalității sudo, rar utilizată.
Printre diferențele față de SUDO , se menționează că este inclus modul implicit use_pty, printre caracteristicile fundamental neimplementate se numără mail_badpass, precum și compatibilitatea cu sendmail, în timp ce caracteristicile care nu au fost încă implementate, dar vor fi adăugate în viitor, sunt: utilitarul sudoedit, modurile NOEXEC și NOINTERCEPT, suport pentru conectarea blocurilor de configurare „implicite” la utilizatori și comenzi individuale, posibilitatea de autentificare fără a utiliza PAM.
De menționat că în această lună a lunii septembrie se așteaptă să se poată confirma calitatea implementării și că este planificat și un audit independent al bazei de coduri sudor-rs.
În plus, se menționează că a doua versiune este planificată să adauge instrumente pentru lucrul în medii cu mai mulți utilizatori , cum ar fi modul NOEXEC, jurnale de audit, posibilitatea sudoer-ilor de a mapa gazdele și suport pentru până la 16 grupuri de utilizatori. A treia versiune este planificată să fie compatibilă cu configurația sudoer utilizată în Fedora și va adăuga, de asemenea, utilitarul sudoedit și va utiliza mecanismele SELinux și AppArmor pentru a îmbunătăți securitatea.
În cele din urmă , dacă sunteți interesați să aflați mai multe despre acest subiect , puteți găsi detalii la linkul următor.