Regularmente, procuro a existência de rootkits no meu Linux. Para isso utilizo o chkrootkit. No entanto, ontem, encontrei um artigo no blog do Corvolino fazendo referência a um outro programa, chamado rkhunter, que o Hugo Dória, usuário experiente em segurança e Linux, defendeu como sendo melhor que 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
ourkhunter --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.
Leia mais no post original:
https://zoltral.wordpress.com/tag/chkrootkit/