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

Publicado por Luiz Vieira em 04/02/2010

[ Hits: 7.389 ]

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

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

Atualização do conteúdo da certificação LPI I e II

Lista de Livros de Segurança

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

Novo blog sobre segurança da informação

Leitura recomendada

Configurando e trocando IP na platafoma Solaris

Testando um arquivo ISO

Incrementando a segurança com o Firestarter

Como instalar Java JDK e JRE no Ubuntu Server 10.04?

Recebendo torpedo sms (vivo) de um Servidor (Ubuntu Server)

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts