Diminua os vetores de exploração, conheça o DOAS

Conforme o passar do tempo as vulnerabilidades em relação ao sudo tem aumentado consideravelmente, com isso a busca por outras alternativas seguras em um mercado que o sudo reina absoluto parecia inexistente,agora você pode contar com o DOAS.

[ Hits: 2.264 ]

Por: Clandestine em 12/12/2021


O projeto



DOAS, originalmente criado para o OpenBSD e portado para outros sabores *nix, funciona semelhante ao sudo, porém muito mais simples sua administração. Vamos instalar em um openSUSE e ver seu funcionamento, para outras distribuições é mais fácil ainda.

Obs.: escolhi o openSUSE porque não existia até então compatibilidade com o mesmo, eu criei e submeti para o mantenedor do DOAS, ele já se encontra no GitHub do projeto.

[1] https://github.com/slicer69/doas

Instalando dependências

1. Instalação dos pré-requisitos:

# zypper in gcc gcc-c++ make flex bison pam-devel byacc git

2. Clonando o projeto:

# cd /opt
# git clone https://github.com/slicer69/doas

3. Compilando:

# cd doas
# make
# make install

4. Copiando o conteúdo do pam.d/sudo para o DOAS:

# cp -a /usr/etc/pam.d/sudo /etc/pam.d/doas

5. Criando o diretório:

# mkdir /usr/local/etc/
# cd /usr/local/etc/

6. Criando e adicionando conteúdo no doas.conf:

# cat <<EOF > doas.conf
permit user as root
#permit :wheel
permit nopass :wheel
EOF

7. Removendo o sudo com doas:

# su - user
doas zypper remove sudo

Funcionamento

Conforme expliquei no início do artigo, o DOAS é bem semelhante ao sudo, porém bem mais simples e enxuto de administrar. Segue abaixo algumas funcionalidades.

Modus operante do DOAS é igual o sudo:

doas comando

Permitir que todos usuários do grupo wheel executem qualquer comando como root, basta somente editar o doas.conf e inserir o comando abaixo.

permit :wheel

Negar um usuário de executar algum comando:

deny clandestine cmd fdisk

Permitir que um usuário ou grupo execute comandos sem senha, o famoso NOPASSWD do sudo:

permit nopass :wheel

Não pedir senha para os usuários do grupo wheel por cinco minutos:

permit persist :wheel

Permitir que um usuário execute o comando reboot sem senha:

permit nopass clandestine cmd reboot

Ou seja, muito mais fácil que o sudo. O DOAS permite você inserir por usuário ou grupo, tanto faz, mas você deve estar se perguntando como faz para virar root:

doas su -

Lembra do visudo? No doas é vidoas, simples assim.

Estatísticas de Vulnerabilidades do Sudo

Abaixo seguem gráficos das últimas vulnerabilidades encontradas no sudo.

Finalizando

DOAS é uma boa dica para evitar vetores de exploração em ambiente Unix/Linux, uso e indico, até hoje foi reportado apenas uma vulnerabilidade para o DOAS que afetava somente distros FreeBSD.

Segue abaixo material de referência.

[1] https://man.openbsd.org/doas
[2] https://wiki.gentoo.org/wiki/Doas
[3] https://github.com/slicer69/doas/releases/tag/6.1
[4] https://vuxml.freebsd.org/freebsd/7f7d6412-bae5-11e9-be92-3085a9a95629.html
[5] https://www.tenable.com/plugins/nessus/127548

   

Páginas do artigo
   1. O projeto
Outros artigos deste autor

Análise de Atividades Suspeitas com Audit

Leitura recomendada

Auditorias Teste de Invasão para Proteção de Redes Corporativas

Matriz <-> Filial com o OpenVPN

Entenda o que é Hardening

Instalação do Fail2Ban no CentOS 7

Configurando Proxy Reverso NGINX com SSL e Apache em Virtual Hosts no Debian

  
Comentários
[1] Comentário enviado por mauricio123 em 16/12/2021 - 23:12h


Bem legal essa ferramenta.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

[2] Comentário enviado por cizordj em 23/12/2021 - 21:56h

Muito bom ver gente disseminando o uso do DOAS, essa ferramenta é maravilhosa porque ela segue a filosofia Unix e eu sempre instalo ela nas máquinas que eu uso, seja Linux ou BSD.

[3] Comentário enviado por anabianca em 11/02/2022 - 21:47h

Evite usar programas que executam comandos como outros usuários, como o root por exemplo. Um doas, um sudo mal configurado ou qualquer outro code com setuid(0) que receba parâmetros do sistema, ou do usuário que seja, é um vetor de exploração. Uma altenativa:
"$ su -l root -c 'your stuff'".


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts