Segurança - Instalando o Rkhunter e o Chkrootkit no Ubuntu 20.04¶
O tkhunter
e o chkrootkit
são aplicações de segurança que verificam o sistema e tentam localizar rootkits, backdoors e possíveis explorações locais. Para instalar estas aplicações podemos utilizar o comando:
Comando :
sudo apt install rkhunter chkrootkit unhide wget lynx
Configurando e testando o rkhunter¶
Depois de instalar o rkhunter, precisamos editar o arquivo /etc/rkhunter.conf
para realizar alguns ajustes.
Comando :
sudo nano /etc/rkhunter.conf
A seguir temos as linhas que precisamos ajustar:
Configuração :
UPDATE_MIRRORS=1
MIRRORS_MODE=0
MAIL-ON-WARNING=root
WEB_CMD=""
O próximo passo será realizar a atualização as assinaturas utilizadas pelo rkhunter
:
Comando :
sudo rkhunter --update
Localizando processos ocultos no sistema¶
Depois de ajustar o rkhunter
, podemos utilizar o comando unhide
para verificar a existência de processos ocultos no sistema:
Inicialmente realizaremos uma busca na pasta /proc
, onde o sistema armazena as informações sobre os processos.
Comando :
sudo unhide proc
Caso o sistema não possua processos ocultos, a saída do comando anterior deve ser semelhante à:
Saída :
Unhide 20130526
Copyright © 2013 Yago Jesus & Patrick Gouin
License GPLv3+ : GNU GPL version 3 or later
http://www.unhide-forensics.info
NOTE : This version of unhide is for systems using Linux >= 2.6
Used options:
[*]Searching for Hidden processes through /proc stat scanning
Em seguida realizaremos uma busca comparando as informações geradas pelo comando /bin/ps
com as informações obtidas via system calls
Comando :
sudo unhide sys
Caso o sistema não esteja comprometido, ou seja não tenha sido invadido, a saída do comando anterior deve ser semelhantes à:
Saída :
UUnhide 20130526
Copyright © 2013 Yago Jesus & Patrick Gouin
License GPLv3+ : GNU GPL version 3 or later
http://www.unhide-forensics.info
NOTE : This version of unhide is for systems using Linux >= 2.6
Used options:
[*]Searching for Hidden processes through getpriority() scanning
[*]Searching for Hidden processes through getpgid() scanning
[*]Searching for Hidden processes through getsid() scanning
[*]Searching for Hidden processes through sched_getaffinity() scanning
[*]Searching for Hidden processes through sched_getparam() scanning
[*]Searching for Hidden processes through sched_getscheduler() scanning
[*]Searching for Hidden processes through sched_rr_get_interval() scanning
[*]Searching for Hidden processes through kill(..,0) scanning
[*]Searching for Hidden processes through comparison of results of system calls
Criando e testando o script de carga do rkhunter¶
Uma vez que realizamos uma verificação inicial do sistema, podemos criar o script que será utilizado para executar periodicamente o rkhunter
.
Primeiro devemos criar a pasta onde ficarão os scripts:
Comando :
sudo mkdir -p /root/scripts/
Em seguida devemos criar o arquivo root/scripts/rkhunter.sh
, contendo as seguintes linhas:
Configurações :
#!/bin/bash
# Scripts que verifica rootkist e alterações nos arquivos do sistema
# Atualização das assinaturas
/usr/bin/rkhunter --update
# Fazendo a varredura
/usr/bin/rkhunter -c --cronjob --noappend-log --rwo > /var/log/rkhunter.mail
# Enviando email caso seja encontrado algum problema
if [[ -s /var/log/rkhunter.mail ]]
then
cat /var/log/rkhunter.mail | mail -s "[rkhunter] Warnings found for $HOSTNAME" seu_email@gmail.com
fi
# Apagando os arquivos criados
rm -f /var/log/rkhunter.mail /var/log/rkhunter.log /var/log/rkhunter.log.old
Depois de criar o script devemos ajustar as permissões do arquivo
Comando :
sudo chmod 750 /root/scripts/rkhunter.sh
Para finalizar o processo vamos testar o funcionamento do script:
Comando :
sudo /root/scripts/rkhunter.sh
Quando o script tiver terminado de executar será enviado uma mensagem para o endereço de e-mail informando no script (seu_email@gmail.com
)
Criando e testando o script de carga do chkrootkit¶
Assim como ocorreu com o rkhunter, criaremos um script (/root/scripts/chkrootkit.sh
) para executar o `chkrootkit. Neste arquivo devemos adicionar as seguintes linhas:
Configurações :
#!/bin/bash
/usr/sbin/chkrootkit 2>&1 | egrep "INFECTED|Vulnerable" | grep -v -f "/root/scripts/falsos_positivos" > /tmp/chkrootkit.txt
#envia um e-mail com os arquivos "infectados" somente se o arquivo de log possuir conteudo (tamanho nao for zero)
if [[ -s /tmp/chkrootkit.txt ]]
then
mail -s "[chkrootkit] $HOSTNAME" seu_email@gmail.com < /tmp/chkrootkit.txt
#echo tem!
fi
rm -f /tmp/chkrootkit.txt
Depois de criar o script devemos ajustar as permissões do arquivo
Comando :
sudo chmod 750 /root/scripts/chkrootkit.sh
Antes de finalizar devemos criar o arquivo /root/scripts/falsos_positivos
, que inicialmente deve estar vazio. Neste arquivo adicionaremos as informações sobre os falsos positivos gerados pelo chkrootkit
Comando :
sudo touch /root/scripts/falsos_positivos
Para finalizar o processo vamos testar o funcionamento do script:
Comando :
sudo /root/scripts/chkrootkit.sh
Incluindo os scripts na crontab do root¶
Para adicionar os scripts ao crontab
do usuário root
devemos utilizar o comando:
Comando :
sudo crontab -e
No final do arquivo devemos adicionar as seguintes linhas
Configurações :
##
# chkrootkit/rkhunter
###
0 5 * * * /root/scripts/chkrootkit.sh
55 15 * * * /root/scripts/rkhunter.sh
Com isto finalizamos o processo de instalação e configuração do rkhunter e do chkrootkit, assim como agendamos a execução dos scripts.