Un projecte per implementar les utilitats sudo i su a Rust

L'ISRG (Internet Security Research Group), que és el fundador del projecte Let's Encrypt i promou HTTPS i el desenvolupament de tecnologies per augmentar la seguretat d'Internet, va presentar el projecte Sudo-rs per crear implementacions de les utilitats sudo i su escrites en Rust que us permet executar ordres en nom d'altres usuaris. Sota les llicències Apache 2.0 i MIT, ja s'ha publicat una versió prèvia al llançament de Sudo-rs, encara no preparada per a l'ús general. El projecte, que va començar a treballar el desembre de 2022, està previst que finalitzi el setembre de 2023.

Actualment, el treball es centra a implementar funcions a Sudo-rs que permeten utilitzar-lo com a substitut transparent de sudo en casos d'ús típics (configuracions de sudoers per defecte a Ubuntu, Fedora i Debian). En el futur, hi ha plans per crear una biblioteca que permeti incrustar la funcionalitat sudo en altres programes i proporcionar un mètode de configuració alternatiu que eviti analitzar la sintaxi del fitxer de configuració sudoers. A partir de la funcionalitat sudo implementada, també es prepararà una variant de la utilitat su. A més, els plans esmenten el suport per a SELinux, AppArmor, LDAP, eines d'auditoria, la capacitat d'autenticar-se sense utilitzar PAM i la implementació de totes les opcions de línia d'ordres sudo.

Segons Microsoft i Google, al voltant del 70% de les vulnerabilitats són causades per una gestió insegura de la memòria. S'espera que l'ús del llenguatge Rust per desenvolupar su i sudo redueixi el risc de vulnerabilitats causades per un maneig insegur de la memòria i s'elimini l'ocurrència d'errors com ara accedir a una àrea de memòria després d'haver estat alliberada i desbordaments de memòria intermèdia. Sudo-rs està sent desenvolupat per enginyers de Ferrous Systems i Tweede Golf amb fons proporcionats per empreses com Google, Cisco, Amazon Web Services.

La seguretat de la memòria es proporciona a Rust en temps de compilació mitjançant la comprovació de referències, el seguiment de la propietat i la vida útil de l'objecte (abast), així com mitjançant l'avaluació de la correcció de l'accés a la memòria durant l'execució del codi. Rust també proporciona protecció contra desbordaments d'enters, requereix la inicialització obligatòria dels valors de les variables abans de l'ús, gestiona millor els errors a la biblioteca estàndard, aplica el concepte de referències i variables immutables per defecte, ofereix una escriptura estàtica forta per minimitzar els errors lògics.

Font: opennet.ru

Afegeix comentari