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

Publicado por Luiz Vieira em 04/02/2010

[ Hits: 9.621 ]

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

Novo blog sobre segurança da informação

Slides da palestra: Segurança nos Ciclos de Desenvolvimento de Software

Lançada a edição de número 3 da Revista Espírito Livre

Como checar se há rootkits em seu sistema

Como burlar um proxy corporativo

Leitura recomendada

Desabilitar o sininho (bell) no terminal

Assistente para converter pacotes .tar em .deb

Bloqueando Skype em definitivo no IPtables

Criação de 1° super usuário no PostgreSQL

Como tocar rádio online com Firefox no BRLix

  

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