Sei sulla pagina 1di 9

Usando o Nessus

O Nessus uma ferramenta de auditoria muito usada para detectar e corrigir vulnerabilidades nos PCs da rede local. Ele realiza uma varredura de portas, detectando servidores ativos e simulando invases para detectar vulnerabilidades. Uma caracterstica importante que o Nessus procura por servidores ativos no apenas nas portas padro, mas em todas as portas TCP. Ele capaz de detectar uma vulnerabilidade em um servidor Apache escondido na porta 46580, por exemplo.

At a verso 2.2.8, o Nessus era um aplicativo open-source. Os desenvolvedores trabalham na rea de segurana, prestando consultoria e vendendo verses personalizadas do Nessus, com plugins e recursos adicionais. O problema que outras empresas de segurana passaram a se aproveitar disso para incorporar recursos do Nessus em seus produtos proprietrios e a desenvolver verses modificadas, que competiam diretamente com as solues oferecidas por eles.

Isso criou um clima crescente de tenso at que os desenvolvedores decidiram mudar a licena, mudana que entrou em vigor a partir da verso 3.0. O Nessus continua sendo de uso gratuito, mas o cdigo fonte passou a ser fechado, para evitar a concorrncia predatria de outras empresas. Voc pode baixar a verso mais recente na seo de downloads do http://www.nessus.org. Para baixar, voc precisa fornecer um endereo de e-mail vlido, para onde enviado um cdigo de ativao. Existem verses do Nessus para diversos sistemas, incluindo o Linux, Windows, FreeBSD e MacOS X. Ao usar a verso Windows, recomendvel que voc utilize o Windows 2003 ou outra verso server do sistema. O Windows XP no adequado para rodar o Nessus, pois a partir do SP2 o sistema inclui polticas de segurana que limitam o nmero de conexes TCP simultneas e outros recursos utilizados por ele. As protees foram includas como uma forma de reduzir o potencial nocivo de malwares, mas acabaram dificultando o trabalho do Nessus.

Ao usar o Windows XP, o ideal que voc baixe apenas o cliente Nessus e o utilize para se conectar a uma mquina Linux da rede rodando o componente servidor. Nesse caso, a mquina Linux faz o trabalho pesado e o Windows XP roda apenas a interface do programa.

Com relao verso Linux, esto disponveis pacotes para diversas distribuies, entre eles um pacote .deb para as distribuies derivadas do Debian e pacotes .rpm para o Fedora, Red Hat e SuSE. Voc precisa baixar tanto o Nessus propriamente dito, quanto o "NessusClient", disponvel na mesma pgina:

Instale o pacote baixado usando o comando "dpkg -i" (no caso do pacote .deb), ou "rpm -Uvh" (para os pacotes .rpm), como em:

# dpkg -i Nessus-3.0.3-debian3_i386.deb

O Nessus utiliza o Nmap como portscan, por isso necessrio que ele tambm esteja instalado. O Nmap faz a primeira rodada de testes, detectando as portas abertas e o Nessus usa as informaes fornecidas por ele como ponto de partida para executar uma rodada adicional de testes, que permitem devolver um relatrio bastante detalhado das vulnerabilidades encontradas.

Depois de instalar, voc precisa criar um login de usurio para utilizar o Nessus. Isso necessrio pois ele dividido em dois componentes: um servidor (que quem faz todo o trabalho pesado) e um cliente, que funciona como uma interface segura para ele. Isso permite que voc instale o servidor em uma mquina que faa parte da rede que vai ser escaneada e use seu notebook para apenas rodar o cliente, o que pode ser feito at mesmo remotamente.

Com isso, seu notebook fica livre durante o teste, permitindo que voc execute testes adicionais ou pesquise sobre as vulnerabilidades na web enquanto o teste realizado. Naturalmente, voc pode rodar ambos os componentes na mesma mquina, o nico pr-requisito usar uma mquina relativamente rpida, com pelo menos 256 MB de RAM livres (ou seja, descontando a memria usada pelo sistema e outros programas). Este login no uma conta de usurio vlida no sistema. Ele vlido apenas para o Nessus, onde usado para fazer a autenticao no mdulo servidor. Para cri-lo, use o comando "/opt/nessus/sbin/nessus-add-first-user". Ele pedir o login e senha, o tipo de autenticao (escolha "pass") e permitir que voc adicione regras para o usurio (User Rules). Se voc quiser apenas criar o usurio usando as regras default, basta pressionar "Ctrl+D". Ele pedir uma ltima confirmao, basta responder "y": # /opt/nessus/sbin/nessus-add-first-user

Using /var/tmp as a temporary file holder Add a new nessusd user ----------------------

Login : tux Authentication (pass/cert) [pass] : pass Login password : ******** Login password (again) : ********

User rules ---------nessusd has a rules system which allows you to restrict the hosts that tux has the right to test. For instance, you may want him to be able to scan his own host only. Please see the nessus-adduser(8) man page for the rules syntax Enter the rules for this user, and hit ctrl-D once you are done: (the user can have an empty rules set) ^D

Login : tux Password : *********** DN : Rules : Is that ok? (y/n) [y] y

Uma vez instalado, voc pode iniciar o servidor Nessus usando o comando: # /etc/init.d/nessusd start ou: # /opt/nessus/sbin/nessusd -D Em ambos os casos ele roda em background, sem obstruir o terminal. Para fech-lo, use o comando "killall nessusd". Isto conclui a instalao do servidor. O prximo passo instalar o pacote do cliente. No site voc pode baixar tanto o cliente Linux, quanto o NessusWx, que roda em mquinas Windows.

No meu caso, tive um pouquinho de trabalho para instalar o cliente Linux, pois, no momento em que escrevi este tpico, ainda no estava disponvel uma verso do cliente para o Debian, de forma que precisei baixar o pacote para o Fedora, convert-lo usando o alien e criar dois links simblicos para bibliotecas com nomes diferentes nos dois sistemas.

O primeiro passo foi instalar o alien via apt-get e us-lo para converter o pacote baixado do site:

# apt-get install alien # alien NessusClient-1.0.0.RC5-fc5.i386.rpm

O alien gera um pacote .deb com o mesmo nome do pacote original, que pode ser instalado usando o dpkg, como em:

# dpkg -i nessusclient_1.0.0.RC5-1_i386.deb O NessusClient aberto usando o comando "NessusClient" (que voc executa usando sua conta de usurio e no como root). Entretanto, por instalar uma verso para outra distribuio, ele reclamou da falta das bibliotecas "libssl.so.6" e "libcrypto.so.6". Na verdade, ambas estavam disponveis, porm com nomes diferentes. Acessando o diretrio "/usr/lib" vi que existiam os " libssl.so.0.9.8" e " libcrypto.so.0.9.8", de forma que precisei apenas criar dois links, apontando para eles: # cd /usr/lib # ln -s libcrypto.so.0.9.8 libcrypto.so.6 # ln -s libssl.so.0.9.8 libssl.so.6

A partir da, o NessusClient passou a abrir corretamente:

$ NessusClient

A interface desta verso bem diferente da usada no cliente que acompanhava o Nessus 2.x, mas o funcionamento basicamente o mesmo. Comece clicando no boto "Connect" para abrir a conexo com o servidor. Se estiver rodando-o na mesma mquina, use "localhost" como endereo, caso contrrio, fornea o IP correto da mquina onde o servidor est ativo:

Da primeira vez que se conectar, ele perguntar sobre o certificado do servidor. Ele (certificado) permite que voc verifique a autenticidade do servidor onde est se conectando, evitando a possibilidade de que algum o tenha substitudo por outra mquina.

Ao usar servidores Nessus remotos, voc pode usar certificados de autenticidade para melhorar a segurana. Nesse caso, use o comando nessus-mkcert-client (no servidor):

# /opt/nessus/bin/nessus-mkcert-client

Ao terminar o processo, ele salva o certificado gerado em uma pasta temporria, como em:

Your client certificates are in /tmp/nessus-mkcert.9904 You will have to copy them by hand

Dentro da pasta, voc encontra um arquivo ".pem" com o nome do usurio criado, como em "cert_nessuswx_joao.pem". Para usar este certificado, voc deve copi-lo para a pasta "/opt/nessus/com/nessus/CA/" (do cliente). Na hora de se conectar usando o NessusClient, marque a opo "Autentication by certificate" e indique a localizao do arquivo.

Note que o uso do certificado apenas melhora a segurana da comunicao entre o servidor Nessus e o cliente. uma medida saudvel para os paranicos de planto. :)

Uma vez conectado ao servidor Nessus, voc pode definir diversas opes dentro da aba "Global Settings". Dentro dela, algumas opes interessantes (disponveis dentro da aba "General") so: Port range: O default do Nessus escanear apenas as portas de 1 a 1024, o que resulta em testes relativamente rpidos, mas que deixam passar servios escondidos em portas altas. Para que ele escaneie todas as portas, mude para "1-65535". Note que isso torna o teste muito mais demorado, pois ele precisa enviar um pacote TCP e outro UDP para cada uma das portas, para s ento executar os testes adicionais nas portas abertas. Number of hosts to test at the same time: Esta opo determina o nmero de hosts que sero verificados simultaneamente durante o teste. O default para esta opo so 20 hosts, o que adequado para situaes onde voc use um micro de configurao modesta para executar o teste dentro da rede local. Aumentar o nmero faz com que o Nessus consuma mais recursos do servidor e mais banda da rede, o que no muito interessante caso o teste seja realizado durante o expediente. Number of checks to perform at the same time: Esta opo determina o nmero de testes simultneos em cada um dos micros escaneados. Muitos dos testes realizados pelo Nessus so demorados, porm, geram pouco trfego de rede. Aumentar o nmero de testes simultneos uma boa forma de acelerar o teste caso sua rede tenha poucos micros. Note que aberta uma instncia do scanner para cada host e para cada teste. Ou seja, com 100 hosts e 4 testes simultneos em cada um, podem ser abertas at 400 instncias, o que consumir quase 500 MB de memria do servidor. Se voc est rodando o servidor em uma mquina de configurao modesta, ou est usando sua mquina de trabalho e no deseja que ela fique muito lenta durante o teste, reduza os nmeros. Optimize the test: Esta opo torna o teste do Nessus mais "inteligente". Baseado em informaes de testes anteriores, o scanner evita usar testes demorados, que tenham baixa probabilidade de revelar novas vulnerabilidades. Ativar esta opo, torna o teste muito mais rpido, se executado repetidamente, mas abre uma pequena possibilidade de algumas vulnerabilidades mais incomuns no serem descobertas. Safe checks: Alguns sistemas antigos possuem brechas de segurana que podem causar travamentos. Mquinas com o Windows 95 sem atualizaes de segurana, por exemplo, so vulnerveis ao famoso "ping da morte", um pacote ICMP defeituoso, que trava o sistema. Ativando esta opo, o Nessus deixa de realizar os testes que podem levar a travamentos das mquinas, ou de outros dispositivos da rede, como roteadores e modems ADSL. Designate hosts by their MAC address: Ativando esta opo, os hosts so identificados pelo endereo MAC no relatrio do teste, ao invs de pelo endereo IP. Isso pode ser til em redes onde os clientes so configurados via DHCP. Na aba "Plugins" voc tem acesso configurao dos plugins, que so scripts responsveis por detectar vulnerabilidades especficas. Por exemplo, ao detectar que a porta "45234" est aberta, o Nessus primeiro tenta identificar qual servidor est ativo, executando um conjunto de testes. Se for detectado um servidor Apache, por exemplo, sero usados os plugins que detectam vulnerabilidades em servidores web. O Nessus inclui um nmero assustador de plugins, divididos em categorias. Ao marcar a opo "Safe checks" (na aba general), so automaticamente desativados os plugins potencialmente perigosos, mas voc pode reativar todos clicando no "Enable all".

Naturalmente, novas brechas de segurana so descobertas todos os dias, por isso necessrio atualizar os plugins periodicamente. Para isso, use o comando "/opt/nessus/bin/nessus-fetch", informando o cdigo fornecido no e-mail de confirmao do registro, como em:

# /opt/nessus/bin/nessus-fetch --register FFBB-382E-3990-D3DA-2BFC

A partir da, os plugins so atualizados automaticamente, uma vez por dia. Se preferir desativar a atualizao automtica, edite o arquivo "/opt/nessus/etc/nessus/nessusd.conf", substituindo a linha "auto_update = yes" por "auto_update = no".

Os plugins so os componentes mais importantes do Nessus. So eles que o diferenciam de um portscan genrico, como o Nmap. O portscan detecta que uma determinada porta est aberta e qual servidor est sendo usado, mas so os plugins que informam que est sendo usada uma verso com a vulnerabilidade X, que pode ser corrigida com a atualizao Y.

As atualizaes gratuitas so fornecidas com um delay de 7 dias, o que dificulta seu uso profissional (7 dias dentro do ramo de segurana um tempo muito longo, durante o qual brechas so corrigidas e novas surgem). Para ter acesso s atualizaes em tempo real, voc precisa assinar o plano comercial.

Depois de ajustar as opes gerais, clique na opo "File > Scan Assistant" para definir a faixa de endereos que ser escaneada. A primeira tarefa definir nomes de identificao do teste nas abas "Task" e "Scope".

Depois vem o que interessa, a definio dos alvos na aba "Targets". Voc pode tanto lanar o teste contra um IP isolado quanto contra uma faixa inteira de endereos. Neste caso, indique o endereo da rede seguido pela mscara, como em "192.168.1.0/24" (o 24 indica a mscara de sub-rede, no padro CIDR), ou um intervalo de endereos, como em "192.168.1.2253". Clicando no "Executar" o teste finalmente lanado:

Uma novidade em relao s verses anteriores que agora voc pode definir vrias faixas diferentes e criar uma configurao independente para cada uma. Voc pode, por exemplo, ter uma configurao para o teste contra hosts da rede local e outra j engatilhada para testar periodicamente o servidor que hospeda seu site, por exemplo. Cada uma permite definir faixas de portas e configuraes diferentes. Para lanar um teste j pr-configurado, selecione-o na lista da esquerda e clique no "Scope > Executar".

Como comentei, o teste do Nessus feito em duas partes. A primeira o portscan, onde ele utiliza o Nmap, combinado com alguns testes adicionais para descobrir quais portas esto abertas em cada host. A partir da, entram em ao os plugins, que testam cada porta em busca de vulnerabilidades conhecidas.

Concludo o teste, ele exibe uma lista com as vulnerabilidades encontradas em cada PC. Existem trs nveis de alerta; o primeiro e mais grave tem o smbolo de uma luz vermelha e indica uma brecha de segurana em um servidor ativo na mquina. No screenshot, por exemplo, temos uma instalao bastante desatualizada do Windows XP, com diversas brechas de segurana, entre elas uma vulnerabilidade no protocolo SMB (responsvel pelo compartilhamento de arquivos), que permite travar a mquina remotamente e duas vulnerabilidades graves, que permitem executar cdigo e obter acesso mquina:

Veja que, alm de apontar o problema, o Nessus oferece uma descrio detalhada da vulnerabilidade e aponta uma soluo. Na maioria dos casos, o problema corrigido simplesmente instalando as atualizaes de segurana ou atualizando para a verso mais recente. Em casos em que o problema gerado por erros de configurao, ele quase sempre fornece dicas de como corrigilo.

O teste do Nessus permite tambm identificar servios indesejados, que podem ser desativados ou ter suas portas bloqueadas no firewall, alm de avisar sobre qualquer backdoor que tenha sido instalado sem seu conhecimento.

Continuando, o segundo nvel um alerta de que um servio potencialmente inseguro est ativo em uma determinada porta do sistema, como, por exemplo, um servidor Telnet ou XDMCP. Neste caso, no foi encontrada nenhuma vulnerabilidade especfica, mas o fato de o servio ser fundamentalmente inseguro j representa uma brecha de segurana. Tanto o Telnet quanto o XDMCP transmitem dados de forma no encriptada, o que permite que algum mal intencionado possa sniffar a rede, capturando os dados transmitidos (incluindo as senhas dos usurios). Ambos devem ser usados apenas dentro da rede local.

O terceiro nvel de alerta tem o smbolo de uma luz. Estes so apenas lembretes de que existe um servidor ativo na porta indicada, mas sem que fosse detectada qualquer brecha de segurana.

Como disse, em muitos casos o Nessus ajuda tambm a detectar erros de configurao, que podem ser perigosos. Por exemplo, este um aviso de segurana, que mostra um servidor dedicado com o servidor DNS aberto para consultas a outros domnios:

Todo servidor web trabalha em conjunto com um servidor DNS, que responde pelos domnios dos sites hospedados. Embora no seja por si s uma brecha de segurana, esta configurao faz com que o DNS se transforme em um servidor "pblico", que faz a resoluo de qualquer domnio solicitado, assim como os servidores DNS dos provedores de acesso. Isso abre brecha para ataques de "DNS poisoning", onde um cliente externo insere uma entrada invlida no cache do DNS, fazendo com que ele responda a algumas das consultas com endereos IPs incorretos, alm de abrir uma pequena possibilidade de que o servidor seja usado como auxiliar em ataques DoS contra outros servidores. O prprio Nessus d a dica de como corrigir o problema. Pesquisando no Google sobre a opo "allow-recursion" que ele sugere, voc chega facilmente artigos que sugerem a incluso das quatro linhas abaixo no final do arquivo "/etc/bind/named.conf": options { directory "/var/named"; recursion no; };

Elas fazem com que o servidor DNS responda apenas pelos domnios sobre os quais tem autoridade (ou seja, os domnios dos sites hospedados no servidor), corrigindo o problema. Executando o teste novamente, o Nessus continua detectando que a porta 53 est aberta, mas no acusa mais a falha.

Concluindo, os relatrios gerados pelo Nessus podem ser salvos em diversos formatos, incluindo html, latex e PDF, um recurso extremamente interessante na hora de apresentar os resultados e explicar os problemas para outras pessoas.

Para isso, selecione o relatrio que ser exportado no menu da esquerda e use a opo "Report > Export". Para que o suporte gerao de arquivos PDF funcione, voc deve ter instalado o pacote "htmldoc", disponvel via apt-get:

# apt-get install htmldoc

Naturalmente, assim como voc pode utilizar o Nessus para detectar e tapar brechas de segurana, outras pessoas podem utiliz-lo para detectar vulnerabilidades na sua rede e lanar ataques. Hoje em dia, a variedade de scripts e ferramentas grficas prontas que exploram vulnerabilidades to grande que voc pode encontrar algum exploit fcil de usar para praticamente qualquer vulnerabilidade que voc possa encontrar. Basta saber fazer pesquisas no Google.

Estes exploits prontos so o grande perigo, pois no requerem nenhum tipo de prtica ou habilidade para serem usados. Basta indicar o IP a ser atacado e pronto. Ou seja, aquele garoto com quem voc brigou no chat pode muito bem fazer um estrago na sua rede caso algum servio ativo no seu servidor possua alguma vulnerabilidade grave. importante resolver o problema antes que algum o faa por voc. Gerar o relatrio do Nessus s o primeiro passo. Se voc administra um servidor, importante acompanhar sites especializados em notcias relacionadas segurana, como o http://lwn.net e o http://www.linuxsecurity.com. A maioria das distribuies oferecem boletins por e-mail que avisam quando novas atualizaes de segurana esto disponveis. Lembre-se de que, apesar das notcias de brechas e atualizaes serem sempre muito freqentes, voc s precisa se preocupar com os servidores que voc mantm ativos na sua mquina. Se voc mantm apenas o SSH e o FreeNX, por exemplo, no precisa se preocupar com as atualizaes do Apache e do Sendmail.

Alm dos servidores, clientes de e-mail e navegadores (entre outras categorias de programas) tambm costumam receber atualizaes de segurana com uma certa freqncia. Estes programas clientes no podem ser atacados diretamente, ou seja, ningum poder explorar um buffer overflow no Firefox (por exemplo) apenas por ele estar instalado; seria necessrio que voc acessasse alguma pgina contendo o script malicioso. a que entram os ataques de engenharia social, como no caso dos emails com textos que tentam lev-lo a clicar em um link ou ao executar um arquivo anexado.

Potrebbero piacerti anche