sudo-rs um projeto para implementar sudo e su em Rust

sudo

A implementação de sudo e su no Rust visa melhorar a segurança nesses utilitários.

Recentemente foi divulgada a notícia de que o ISRG (Internet Security Research Group), que é o fundador do projeto Let's Encrypt e promove o HTTPS e o desenvolvimento de tecnologias para aumentar a segurança na Internet, introduziu o projeto sudo-rs.

sudo-rs está posicionado como um projeto para criar implementações dos utilitários sudo e su, escrito em linguagem de programação Ferrugem e isso permite que você execute comandos em nome de outros usuários.

Atualmente a, o trabalho se concentra na implementação funções em sudo-rs que permitem que ele seja usado como um substituto transparente para sudo em casos de uso típicos (configurações padrão de sudoers no Ubuntu, Fedora e Debian).

O Sudo foi desenvolvido pela primeira vez na década de 1980. Ao longo das décadas, tornou-se uma ferramenta essencial para fazer alterações e minimizar os riscos de um sistema operacional. Mas como está escrito em C, o sudo experimentou muitas vulnerabilidades relacionadas a problemas de segurança de memória.

No futuro, há planos para criar uma biblioteca que permita que a funcionalidade do sudo seja incorporada a outros programas. e forneça um método de configuração alternativo que evite analisar a sintaxe do arquivo de configuração dos sudoers. Dependendo da funcionalidade sudo implementada, uma variante do utilitário su também será preparada. Além disso, os planos mencionam suporte para SELinux, AppArmor, LDAP, ferramentas de auditoria, capacidade de autenticação sem usar PAM e implementação de todas as opções de linha de comando sudo.

Segundo a Microsoft e o Google, cerca de 70% das vulnerabilidades são causadas por gerenciamento de memória inseguro.. Espera-se que usar a linguagem Rust para criar su e sudo reduza o risco de vulnerabilidades causados ​​pelo manuseio inseguro da memória e eliminam a ocorrência de erros como acesso a uma área de memória depois de liberada e estouro de buffer.

Sudo-rs está sendo desenvolvido por engenheiros da Ferrous Systems e Tweede Golf com financiamento fornecido por empresas como Google, Cisco, Amazon Web Services.

Quando pensamos em qual software queremos investir, pensamos principalmente em quatro critérios de risco:

Amplamente utilizado (quase todos os servidores e/ou clientes)
em um limite crítico
Desempenhando um papel crítico
Escrito em linguagens que não são seguras para memória (por exemplo, C, C++, asm)
Sudo se encaixa perfeitamente neste critério de risco. É importante protegermos nosso software mais crítico, especialmente contra vulnerabilidades de segurança de memória. É difícil imaginar um software muito mais crítico do que sudo e su.

O manuseio seguro da memória é fornecido no Rust no tempo de compilação, verificando a referência, rastreando a propriedade do objeto e o tempo de vida do objeto (escopo), bem como avaliando o acesso à memória para correção durante a execução do código. Rust também fornece proteção contra estouro de inteiros, requer inicialização obrigatória dos valores das variáveis ​​antes do uso, trata melhor os erros na biblioteca padrão, reforça o conceito de variáveis ​​e referências imutáveis ​​por padrão, oferece forte tipagem estática para minimizar erros lógicos.

Vale ressaltar que o sudo-rs já está em desenvolvimento ativo. e não é adequado para qualquer ambiente de produção. O uso de sudo-rs é recomendado apenas para fins de desenvolvimento e teste, por isso é mencionado que, para produção e desenvolvimento, se o sudo-rs for implementado, é quase certo que seja qualquer sistema que seja facilmente quebrado e não seguro.

sudo-rs está licenciado sob as licenças Apache 2.0 e MIT, e como mencionado, uma versão prévia do sudo-rs já foi lançada, que ainda não está pronta para uso geral. O projeto, que começou a funcionar em dezembro de 2022, tem término previsto para setembro de 2023.

Por fim, se você tiver interesse em saber mais sobre o assunto, pode consultar os detalhes no link a seguir.