Un proxecto para implementar as utilidades sudo e su en Rust

O ISRG (Internet Security Research Group), que é o fundador do proxecto Let's Encrypt e promove o HTTPS e o desenvolvemento de tecnoloxías para aumentar a seguridade de Internet, presentou o proxecto Sudo-rs para crear implementacións das utilidades sudo e su escritas en Rust que che permite executar comandos en nome doutros usuarios. Baixo as licenzas Apache 2.0 e MIT, xa se publicou unha versión previa ao lanzamento de Sudo-rs, aínda non lista para o seu uso xeral. O proxecto, que comezou a traballar en decembro de 2022, está previsto que estea rematado en setembro de 2023.

Actualmente o traballo céntrase na implementación de funcións en Sudo-rs que permiten empregalo como substituto transparente de sudo en casos de uso típicos (configuracións de sudoers predeterminadas en Ubuntu, Fedora e Debian). No futuro, hai plans para crear unha biblioteca que permita incorporar a funcionalidade sudo noutros programas e proporcionar un método de configuración alternativo que evite analizar a sintaxe do ficheiro de configuración de sudoers. En función da funcionalidade sudo implementada, tamén se preparará unha variante da utilidade su. Ademais, os plans mencionan soporte para SELinux, AppArmor, LDAP, ferramentas de auditoría, a capacidade de autenticarse sen usar PAM e a implementación de todas as opcións de liña de comandos sudo.

Segundo Microsoft e Google, preto do 70% das vulnerabilidades son causadas por unha xestión insegura da memoria. Espérase que o uso da linguaxe Rust para desenvolver su e sudo reducirá o risco de vulnerabilidades causadas por un manexo inseguro da memoria e eliminará a aparición de erros como o acceso a unha área de memoria despois de liberarse e os excesos de memoria intermedia. Sudo-rs está a ser desenvolvido por enxeñeiros de Ferrous Systems e Tweede Golf con fondos proporcionados por empresas como Google, Cisco, Amazon Web Services.

O manexo seguro para a memoria ofrécese en Rust no momento da compilación mediante a comprobación de referencias, o seguimento da propiedade do obxecto e a súa vida útil (alcance), así como a través da avaliación da corrección do acceso á memoria durante a execución do código. Rust tamén ofrece protección contra desbordamentos de enteiros, require a inicialización obrigatoria dos valores variables antes do seu uso, manexa mellor os erros na biblioteca estándar, aplica o concepto de referencias e variables inmutables por defecto, ofrece unha forte escritura estática para minimizar os erros lóxicos.

Fonte: opennet.ru

Engadir un comentario