Tehnologie

Ubuntu 26.04 adoptă Rust sudo ca implicit, încheind 46 de ani de vulnerabilități C

Adrian Kessler

Ubuntu 26.04 LTS, lansat în aprilie 2026, face din sudo-rs implementarea implicită a instrumentului care controlează accesul la nivel de sistem pe Linux. Atunci când un utilizator sau un proces are nevoie de privilegii ridicate – pentru a instala software, a modifica fișiere de sistem, a rula un serviciu ca root – sudo este portarul. Originalul a fost scris în C. sudo-rs este o reimplementare completă în Rust și acum este versiunea care vine implicit pe cea mai utilizată distribuție Linux din lume.

Originalul sudo a fost scris în 1980. În acest timp, baza de cod C a acumulat, pe lângă funcționalități, și o clasă de vulnerabilități de gestionare a memoriei pe care Rust le elimină la nivel de compilator. Cea mai semnificativă a fost CVE-2021-3156, denumită Baron Samedit. Vulnerabilitatea a rămas nedetectată timp de aproximativ zece ani, permițând escaladarea locală de privilegii pe fiecare distribuție majoră Linux. Un atacator local cu un cont de shell non-root putea deveni root. Canonical a corectat-o în 24 de ore de la dezvăluire. Condiția arhitecturală care a permis-o – gestionarea manuală a memoriei în C – nu a fost corectată.

Ceea ce schimbă Rust nu este modul în care este scris codul, ci ce clase de bug-uri pot exista în el. Depășirile de buffer, erorile de tip use-after-free și dereferențierile de pointer nul sunt o categorie de vulnerabilități pe care Rust le elimină la compilare – compilatorul respinge codul cu aceste modele înainte ca acesta să poată rula. Pentru un software care gestionează escaladarea de privilegii, aceasta este o constrângere semnificativă de eliminat din modelul de amenințări.

sudo-rs a finalizat un audit independent complet de securitate în 2023. Proiectul a atins paritatea de performanță cu implementarea în C. Canonical a început să îl includă ca opțiune în versiunile anterioare de Ubuntu înainte de a-l face implicit în 26.04. Abordarea etapizată reflectă prudența necesară la înlocuirea unui instrument care, dacă eșuează, poate fie să blocheze utilizatorii din accesul la sistem, fie să escaladeze atacatorii la root.

Ubuntu 26.04 include, de asemenea, uutils coreutils – rescrieri în Rust ale instrumentelor fundamentale, inclusiv ls, cat și mv. Dar cp, mv și rm rămân pe implementările GNU C pentru această lansare. Raționamentul Canonical: condițiile de cursă TOCTOU în acele implementări Rust prezintă un risc de distrugere a datelor pe care echipa l-a considerat prea mare pentru o lansare LTS. Implementarea treptată dezvăluie ceva onest despre abordarea „rescrie totul în Rust”: uneltele există, dar migrarea necesită o analiză de siguranță caz cu caz, nu o comutare generală.

Kernelul Linux a început să accepte cod de driver în Rust în 2022. Echipa Android folosește Rust pentru codul de sistem nou din 2021. Microsoft a rescris în Rust componente sensibile la memorie din Windows. Decizia Ubuntu de a face sudo-rs implicită este o piatră de hotar semnificativă, deoarece nu este un experiment cu un nou driver sau o componentă opțională – este stratul de autentificare pentru accesul la sistem, livrat implicit fiecărei instalări noi Ubuntu.

Modelul CVE care a produs Baron Samedit se încheie pentru utilizatorii Ubuntu sub această configurație. Dacă și alte distribuții majore – Debian, Red Hat, Fedora, Arch – vor urma mutarea Ubuntu de a face sudo-rs implicită este întrebarea care determină amploarea schimbării. sudo-rs este disponibil pentru toate. Canonical a decis că rezultatele auditului sunt suficiente. Următoarea decizie aparține celorlalți întreținători.

Etichete: , , , , ,

Discuție

Există 0 comentarii.