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: 4.051 ]

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

Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).

Análise de Atividades Suspeitas com Audit

Leitura recomendada

Análise sobre políticas de segurança da informação

Race Condition

Segurança da Informação no Brasil, qual é nossa realidade?

Detectando vulnerabilidades com o Nessus

Gateway autenticado com Apache, Iptables e CGI em shell

  
Comentários
[1] Comentário enviado por maurixnovatrento 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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts