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

Publicado por Luiz Vieira em 04/02/2010

[ Hits: 7.809 ]

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

Análise de memória com Volatility (vídeo)

Aplicações WEB vulneráveis para testes práticos

Linux Hardening

Vídeo da palestra Análise de Malwares com Software Livre

Restaurando o Grub no Ubuntu

Leitura recomendada

Resumo para prova LPI 102

Criando seu próprio repositório do Pypi

Arch Linux no Dell Inspiron 1440

Instalando ícones Faenza no Mageia 4 MATE

Instalação do PostgreSQL 9.1.3 pelo pacote source

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário