technology

Dois principais utilitários do tipo Unix, sudo e su, estão sendo reescritos no Rust

.

Chamando os privilégios de outro usuário para <a href="https://xkcd.com/149/">execute um comando</a>.” src=”https://cdn.arstechnica.net/wp-content/uploads/2023/05/GettyImages-958252348-980×653.jpg” width=”980″ height=”653″/><figcaption class=
Prolongar / Chamar os privilégios de outro usuário para executar um comando.

Cavan Images/Getty

Duas das ferramentas mais fundamentais da linha de comando moderna semelhante ao Unix, sudo e su, estão sendo reescritas na linguagem moderna Rust como parte de um esforço mais amplo para substituir peças de infraestrutura críticas, mas antigas, por contrapartes com segurança de memória.

Conforme detalhado na Prossimo, uma equipe conjunta da Ferrous Systems e Tweede Golf, com suporte da Amazon Web Services, está reimplementando sudo e su. Esses utilitários permitem que um usuário execute ações com os privilégios de outro usuário (normalmente um superusuário de nível superior) sem ter que aprender e inserir a senha desse outro usuário. Dada a sua idade e amplo uso, a equipe Prossimo acredita que é hora de um retrabalho.

“O Sudo foi desenvolvido pela primeira vez na década de 1980. Ao longo das décadas, tornou-se uma ferramenta essencial para realizar alterações enquanto minimiza o risco para um sistema operacional”, escreve Josh Aas. “Mas como está escrito em C, o sudo experimentou muitas vulnerabilidades relacionadas a problemas de segurança de memória.”

O comando sudo atende aos critérios de projetos Prossimo para reimplementação “completamente”. Ele é usado em quase todos os servidores e clientes, está em um limite crítico, executa uma função crítica e é escrito em linguagens que não são seguras para memória, como C e asm. O plano de trabalho e os marcos do projeto são publicados e você pode acompanhar o trabalho no GitHub.

O Sudo foi desenvolvido em 1980 por Robber Coggeshall e Cliff Spencer na State University of New York em Buffalo (go Bulls) em um VAX-11/750 rodando 4.1BSD. Coggeshall desenvolveu o sudo na University of Colorado Boulder; a ferramenta acabou se tornando pública e mantida por Todd C. Miller. O comando su fazia parte da versão 1 do Unix.

Um esforço bem financiado para reimplementar um aspecto central de sistemas semelhantes ao Unix, mesmo em uma linguagem bem conceituada como Rust, com certeza vai agitar a comunidade. Embora tenha sido desenvolvido ao longo de décadas e implementado em quase todos os sistemas, o comando sudo não é isento de falhas. Certas versões do sudo eram vulneráveis ​​a um bug de estouro de buffer fornecido pela raiz, conforme relatado em 2019. Novamente, a maioria das vulnerabilidades do sudo não parece relacionada à memória (dependendo da definição de cada um); pode-se certamente codificar novos bugs em um software escrito em uma linguagem segura para a memória.

A página de marcos do grupo Prossimo não explica como a adoção mais ampla de sudo e su baseados em Rust seria promovida. É uma boa aposta que o esforço pode exigir tanto esforço quanto a própria reescrita.

Listagem de imagem por Cavan Images/Getty

.

Mostrar mais

Artigos relacionados

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Botão Voltar ao topo