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

Publicado por Luiz Vieira em 04/02/2010

[ Hits: 9.670 ]

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 malware com Pyew

Vídeos da palestra sobre Forense Computacional

Curso gratuito online de Python

Extensões do Firefox para auditorias de segurança

Curso online de Linux

Leitura recomendada

Instalando o Adobe Flash Player no Opera

Instalação da impressora Brother MFC-8480DN pela rede no Debian

Instalando o IBwebadmin

Boot mais rápido no Slackware

ArchLinux - Uma breve análise

  

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