Segurança no Linux: procurando RootKit e configurando o firewall

Regularmente, procuro a existência de rootkits no meu Linux. Para isso utilizo o chkrootkit.

Porque procurar rootkit em seu Linux? Porque rootkits são indicativos de que seu Linux foi invadido, estando com a segurança comprometida e seus arquivos e informações estão correndo perigo.

Veja a definição de rootkit pelo Hugo Dória em um artigo no Viva o Linux:
Rootkits são ferramentas utilizadas, geralmente, com o objetivo de ocultar a presença de invasores nas máquinas. Com essas ferramentas alguém não-autorizado, mas que já conseguiu entrar na máquina, pode ter controle sobre a máquina e nem ser notado.

Muitos rootkits acompanham uma gama de binários (como o ls, ps, who, find etc) modificados para que os processos rodados pelo invasor não possam ser vistos pelo administrador da máquina. Além disso, muitos vírus atuais utilizam rootkits.

Assim, seguindo o tutorial do Hugo Doria, instalei e executei o rkhunter.

Os passos são:

  • Instalar ele através do programa de instalação de sua distribuição, via synaptic no caso do meu Ubuntu, caso não esteja instalado ainda.
  • Atualizar a base de propriedades dos arquivos

rkhunter --propupd

  • Atualizar a base do rkhunter

rkhunter --update

  • Executar o rkhunter, como root

rkhunter -c
ou
rkhunter --check

O rkhunter vai listar suas ações no terminal e algumas vezes vai pedir para teclar ENTER.

Agora basta prestar atenção as mensagens de WARNING na cor vermelha, analisando a ocorrência. O log final ficará no arquivo /var/log/rkhunter.log.

Abra este arquivo como root com seu editor de textos favorito. Aqui foi:
sudo gvim /var/log/rkhunter.log

Se houver algum comprometimento da máquina, pesquise na internet para procurar algum método de limpeza ou então reinstale o seu Linux.

No meu caso, tive alguns WARNING. Pesquisando descobri que eram apenas falso-positivos que podem ocorrer. Normalmente eles aparecem no final da checagem e do log.
Veja o exemplo abaixo:
[23:24:29] Warning: Suspicious file types found in /dev:
[23:24:29] /dev/shm/pulse-shm-1746895747: data
[23:24:30] Checking for hidden files and directories [ Warning ]
[23:24:30] Warning: Hidden directory found: /etc/.java
[23:24:30] Warning: Hidden directory found: /dev/.static
[23:24:30] Warning: Hidden directory found: /dev/.udev
[23:24:30] Warning: Hidden directory found: /dev/.initramfs

Estes falso-positivos são conhecidos, estando inclusive já mencionados no arquivo de configuração do rkhunter que está em /etc/rkhunter.conf. Mas estas referências vem por padrão comentadas. Para acabar com os falso-positivos, como root, abra este arquivo com o seu editor de texto favorito e descomente as linhas que fazem referência a eles.

Para as referências Hidden directory found, procure a seção abaixo:

# Allow the specified hidden directories.
# One directory per line (use multiple ALLOWHIDDENDIR lines).
#
ALLOWHIDDENDIR=/etc/.java
ALLOWHIDDENDIR=/dev/.udev
#ALLOWHIDDENDIR=/dev/.udevdb
#ALLOWHIDDENDIR=/dev/.udev.tdb
ALLOWHIDDENDIR=/dev/.static
ALLOWHIDDENDIR=/dev/.initramfs
#ALLOWHIDDENDIR=/dev/.SRC-unix

Para a referência ao pulse, procure a seção abaixo:

# Allow the specified files to be present in the /dev directory,
# and not regarded as suspicious. One file per line (use multiple
# ALLOWDEVFILE lines).
#
#ALLOWDEVFILE=/dev/abc
ALLOWDEVFILE=/dev/shm/pulse-shm-*

Feito isto, os falso-positivos desaparecerão. Agora, se aparecer algum WARNING, então é um rootkit.

Feito a verificação e não constatando nenhum rootkit instalado, é hora de ter certeza que o firewall está dando conta do trabalho de evitar invasões.

Para isso, a melhor ferramenta que conheço é o guarddog. Entenda melhor neste contexto como a mais fácil

Para a configuração do Guarddog, segui este tutorial, com algumas modificações:

Abra o guarddog:
sudo guarddog

Configure no assistente dele, na aba Protocol, o seguinte:

  • chat – habilitar os serviços que você usar – msn, irc, jabber, etc;
  • data serve – habilite cddb e freedb (para consultar dicionários online), ntp se seu Linux atualiza a hora do computador pela internet;
  • file transfer – imprescindível habilitar https e http (cuidado aqui para não deixar de habilitar se não você não tem internet) e todos os serviços de troca de arquivo que você usar como bittorrent, edonkey, fasttrack, ftp, gnutella;
  • games – habilite as opções se você for um jogador e escolha o game do tipo quake, etc…;
  • interactive session – só habilite o ipp, se você precisa usar o cups (pois é pré-requisito para poder usá-lo);
  • mail – habilite pop3 e smtp (para receber e enviar e-mails), apenas se usar o email do provedor. Se usar apenas webmail (gmail, hotmail, etc), não precisa;
  • media – marcar ambos por padrão (caso você precise usar);
  • miscellaneous – habilite o pgp key server para a autenticação de chaves criptográficas;
  • network – habilite o dns para ter acesso a internet;
  • user defined – deixe em branco, a não ser que você defina alguma regra particular que você irá criar;

Pronto, seu Linux está limpo e seguro.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s