A implementação de sudo e su em Rust visa melhorar a segurança nesses utilitários.
Faz três meses, Compartilhamos aqui no blog a novidade da criação do projeto “Sudo-rs” pelo ISRG, que é o fundador do projeto Let's Encrypt e que promove o desenvolvimento de tecnologias para aumentar a segurança da Internet.
Na referida publicação compartilhamos alguns dos detalhes e recursos do projeto, que tem basicamente como objetivo a criação de implementações das utilidades SUDO e SU, em Rust (pode consultar a publicação no link a seguir).
Primeira versão estável do sudo-rs
A razão para mencionar isso é que recentemente foi anunciado o lançamento da primeira versão estável do projeto Sudo-rs, no qual engenheiros da Ferrous Systems e Tweede Golf participaram do desenvolvimento com recursos fornecidos pelo Google, Cisco e Amazon Web Services.
Para quem não conhece o projecto "Sudo-rs", posso afirmar que este Seu objetivo é desenvolver versões dos utilitários SUDO e SU, escritos em Rust, projetado para executar comandos em nome de outros usuários, já que SUDO é um utilitário de console em sistemas operacionais do tipo Unix para executar comandos com privilégios de outro usuário, por padrão root.
As funções SUDO e SU, em sudo-rs foram escrito do zero em Rust, que é uma linguagem cada vez mais utilizada e recomendada na indústria, pois se tornou uma das principais linguagens para Android e que até no Kernel Linux já foi implementado o suporte para ela como segunda linguagem de programação. Por sua vez, a Microsoft também mencionou várias vezes a sua intenção de reescrever o kernel e parte das bibliotecas do Windows que ele contém.
É mencionado que os utilitários são compatíveis com os utilitários clássicos SUDO e SU sempre que possível, o que permite que você use o sudo-rs como um substituto transparente para o SUDO em cenários típicos Eles correspondem às configurações padrão de /etc/sudoers no Ubuntu e Debian. sudo-rs já foi implementado em vez do pacote SUDO tradicional na distribuição Wolfi Linux, com o objetivo de fornecer o mais alto nível de segurança.
Se supõe que usar a linguagem Rust para desenvolvimento SU e SUDO reduzirá o risco de vulnerabilidades causado pelo manuseio inseguro da memória e eliminará a ocorrência de erros, como acessar uma área da memória após ela ter sido liberada e ficar sem memória nos limites do buffer.
Além disso, para garantir o nível adequado de segurança, o projeto desenvolveu um conjunto estendido de testes, que também permite controlar a manutenção do nível necessário de compatibilidade com o utilitário sudo original. Para reduzir a superfície de ataque e reduzir o número de vulnerabilidades potenciais no sudo-rs, foi decidido abandonar a implementação da funcionalidade sudo raramente usada.
Das diferenças com o SUDO, é mencionado que inclua o modo use_pty padrão, entre Funções fundamentalmente não implementadas incluem mail_badpass, bem como suporte para sendmail, enquanto recursos que ainda não foram implementados, mas serão adicionados no futuro: utilitário sudoedit, modos NOEXEC e NOINTERCEPT, suporte para vincular blocos de configuração "padrão" a usuários e comandos individuais, a capacidade de autenticar sem usar PAM.
Vale ressaltar que neste mês de setembro se espera poder confirmar a qualidade da implementação e que também está prevista uma auditoria independente da base de código sudo-rs.
Além disso, é mencionado que na segunda versão, está prevista a adição de ferramentas para trabalhar em ambientes multiusuáriocomo o modo NOEXEC, adicionando logs de auditoria, fornecendo aos usuários blusas a capacidade de mapear hosts e implementar suporte para até 16 grupos de usuários. A terceira versão está planejada para suportar a configuração de blusas usado no Fedora, além de adicionar o utilitário transpira e usar os mecanismos SELinux e AppArmor para aumentar a segurança.
Finalmente Se você estiver interessado em saber mais sobre issoou você pode verificar os detalhes no link a seguir.