Como detectar e prevenir escalada de privilégios no GNU/Linux

Publicado por Luiz Vieira em 04/02/2010

[ Hits: 9.402 ]

Blog: http://hackproofing.blogspot.com/

 


Como detectar e prevenir escalada de privilégios no GNU/Linux



Atualmente é muito comum a escalada de privilégios em sistemas GNU/Linux devido a diferentes falhas descobertas no kernel Linux. No entanto, existe uma ferramenta chamada NINJA que nos permite bloquear e prevenir este tipo de ataque, monitorando todas as atividades dos processos locais e armazenando um log com a informação de todos os processos executados como root. Além disso, o NINJA pode matar todo aquele processo que tenha sido criado por usuários não autorizados.

Linux: Como detectar e prevenir escalada de privilégios no GNU/Linux Ninja atualmente se encontra na versão 0.1.3 e pode ser instalado a partir dos repositórios das distribuições Debian-like:

# apt-get install ninja

A configuração do NINJA consta de um arquivo de configuração e um arquivo chamado whitelist, onde são armazenados os executáveis do grupo e usuários que poderão executá-los; estes dois arquivos se encontram no diretório /etc/ninja. Adicionalmente devemos criar um arquivo que armazenará o log de nossa ferramenta. Para isso digitamos o seguintes no terminal:

# touch /var/log/ninja.log
# chmod o-rwx /var/log/ninja.log


Agora criamos um grupo chamado ninja (tome nota do GID):

# addgroup ninja

O próximo passo, consiste em agregar nosso usuário e o usuário root ao grupo que acabamos de criar:

# usermod -a -G seu_usuário
# usermod -a -G root
# usermod -a -G messagebus


Editamos o arquivo de configuração:

# vim /etc/ninja/ninja.conf

Procuramos as seguintes linhas e fazemos as respectivas alterações:

group= GID #aqui deve entrar o GID que anotou quando criou o grupo ninja
daemon=yes
interval=0
logfile=/var/log/ninja.log # certifique-se de tirar a "#" do comentário
whitelist=/etc/ninja/whitelist
no_kill = no
no_kill_ppid = no

As linhas abaixo são para o arquivo whitelist, além de apagarmos a linha do SUDO; o arquivo ficaria da seguinte maneira:

/bin/su:users:
/bin/fusermount:users:
/usr/bin/passwd:users:
/usr/bin/pulseaudio:users:
/usr/sbin/hald:haldaemon:
/usr/lib/hal/hald-runner:haldaemon:

Por último, agregamos o ninja ao boot, adicionando a linha seguinte ao arquivo /etc/rc.local:

/usr/sbin/ninja /etc/ninja/ninja.conf

Agora basta reiniciar e verificar se nosso NINJA está funcionando como deveria.

Fazendo uma pequena prova

Depois de reiniciar e ver que o NINJA está sendo executado, faremos um pequeno teste:
Linux: Como detectar e prevenir escalada de privilégios no GNU/Linux
Quando detecta um processo proibido:
Linux: Como detectar e prevenir escalada de privilégios no GNU/Linux
Cabe aqui ressaltar que o fundamental é ler toda a documentação do pacote, já que podem haver configurações para cada situação e sistema. Lembremos que no campo da segurança, não basta apenas instalar a aplicação, pois também é importante personalizar a configuração, quer dizer, evitando a configuração padrão.

Mais informações:
Outras dicas deste autor

TrueCrypt: Open Source para criptografia

BIND: Ataque pode causar Negação de Serviço através do Dynamic Update

Script Ubuntu Perfeito para Ubuntu 9.04 Jaunty Jackalope

Como proteger seus dados no computador e smartphone?

Aprendendo Python

Leitura recomendada

Instalando PostgreSQL no Slackware Linux

Gnome - Personalize seu menu com gDesklets

FreeBSD - Configuração do MRTS

C - Resolvendo problemas com buffers

Montando imagens criadas pelo dd de um dispositivo RAID

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts