Neste tutorial vou descrever como criar uma solução de verificação de vulnerabilidades em servidores, roteadores, switchs, sistema operacional Microsoft Windows, sistema operacional FreeBSD, entre outros.
Devido ao custo elevado de soluções proprietárias que realizam a verificação de vulnerabilidades e a criação de relatórios de forma automática (html), estarei explicando de forma simples como instalar, configurar e automatizar o
Nessus. Todo o processo será descrito para um computador com o
Linux Debian previamente instalado.
Nessus é uma ferramenta para verificação de vulnerabilidades, em alguns casos durante sua utilização equipamentos podem ficar inoperantes ou lentos devido ao grande número de testes (através de portas) que este aplicativo realiza. Segundo alguns sites ou textos, o computador que for alvo de testes com o Nessus pode até mesmo chegar a travar, requerendo um famoso reboot (reinicialização).
Segundo o
wikipedia do Nessus, ele é um programa de verificação de falhas/vulnerabilidades de segurança (portas, vulnerabilidades, exploits). Ele é composto por um cliente e servidor, sendo que o scan propriamente dito é feito pelo servidor. O nessusd (servidor Nessus) faz um port scan ao computador alvo, depois disso vários scripts (escritos em NASL, Nessus Attack Scripting Language) ligam-se a cada porta aberta para verificar problemas de segurança. O Nessus ajuda a identificar e resolver alguns problemas de vulnerabilidades. A parte Servidor executa os testes enquanto a parte cliente permite a configuração e emissão de relatórios.
Instalação dos programas (pacotes) necessários
Os pacotes devem ser instalados conforme abaixo:
# apt-get install nessus nessusd nessus-plugins
Instalação do servidor web que armazenará as páginas de verificação de vulnerabilidades:
# apt-get install apache2
Com isso concluímos a instalação dos pacotes necessários para o funcionamento do Nessus. Vale ressaltar que o Nessus roda como um servidor e alguns de seus plugins podem danificar ou travar algum equipamento ou aplicativo.
Configurações iniciais
Como descrito na introdução, o Nessus é um aplicativo cliente servidor. Precisamos inicializar o Nessus como servidor(nessusd):
# nessusd -D
Para a utilização do Nessus faz-se necessário criar um usuário para logar no nessusd (servidor Nessus), execute o comando abaixo como root:
# nessus-adduser
O programa irá pedir os dados do novo usuário tais como login, senha, senha em texto plano (padrão) ou encriptada.
Será necessário registrar e atualizar o seu Nessus, acesse o
site do Nessus e faça o registro como "HomeFeed". Será enviado para o seu e-mail o código de ativação:
# nessus-fetch --register <código_de_ativação>
# nessus-fetch --check
# nessus-fetch --plugins
Nessus modo texto
O Nessus possui uma interface gráfica muito simples de ser utilizada, o objetivo deste tutorial não é descrever a parte gráfica e sim criar uma estrutura que verifique vulnerabilidades e crie relatórios automaticamente.
O Nessus possui uma estrutura simples de comando conforme descrito abaixo:
nessus <servidor> <porta> <usuario> <senha_do_usuario> <alvos> <resultados>
Onde:
- Servidor: servidor onde o nessusd está rodando
- Porta: padrão é 1241
- Usuário: usuário que criamos no passo anterior
- senha_do_usuario: senha que criamos no passo anterior
- Alvos: arquivo contento os IPs ou nome das máquinas a serem scaneadas (separados por vírgulas exemplo: 10.12.4.15, 10.12.4.20)
- Resultados: arquivo onde serão armazenados os resultados.
Automatizando a execução e criação de relatórios do nessus
Criação de diretórios, execute os comandos como root:
# mkdir /scripts
# mkdir /var/www/nessus
# chown www-data:www-data /var/www/nessus
# chmod 655 /scripts
# chmod 744 /var/www/nessus
Vamos criar um arquivo com os IPs a serem verificados, vamos chamar de /scripts/alvos.txt, utilizando seu editor de texto favorito adicione as seguintes linhas:
<IP1>
<IP2>
<IP3>
<IP4>
<IPn>
Vamos criar um script e chamar de /scripts/nessus.sh, utilizando seu editor de texto favorito adicione as seguintes linhas:
#!/bin/bash
#
MES=`date +%B`
nessus -T html -q 127.0.0.1 1241 <Usuario> <senha_do_usuario> /scripts/alvos.txt /var/www/nessus/resultado${MES}.html -V
chmod 655 /var/www/nessus/resultado${MES}.html
chowh www-data:www-data /var/www/nessus/resultado${MES}.html
Alterar a permissão do arquivo criado, execute o comando como root:
# chmod -R 600 /scripts
Para gerar os relatórios automaticamente, vamos agendar as suas tarefas, execute o seguinte comando como root:
# crontab -e
Adicione as linhas abaixo no crontab (os relatórios serão gerados todo dia 1 a 1 hora da manhã):
0 1 1 * * /scripts/nessus.sh
Para acessar os relatórios mensais (agendados através do cron), acesse através de qualquer browser:
http://seu.enderedo.rede.ip/nessus/
Conclusão
O Nessus realmente conseguiu suprir todas as necessidades de nossa empresa. Afinal testamos algumas soluções proprietárias, mas no final das contas as respostas eram idênticas ou muito próximas ao nessus.
Concluímos que a ferramenta é simples de ser instalada, confiável e livre.
Viva a liberdade...