Nessus : Um outro tijolo na parede de seguran�a

ArticleCategory: [Choose a category for your article]

System Administration

AuthorImage:[Here we need a little image form you]

[Photo of the Author]

TranslationInfo:[Author + translation history. mailto: or http://homepage]

original in en Georges Tarbouriech

en to en Lorne Bailey

en to pt Bruno Sousa

AboutTheAuthor:[A small biography about the author]

O George � um utilizador de Unix de h� longa data. Ele pensa que a seguran�a dos computadores � um dos maiores desafios do s�culo.

Abstract:[Here you write a little summary]

O um scanner livre, dispon�vel em http://www.nessus.org. O projecto foi come�ado e � mantido por Renaud Deraison. A vers�o est�vel, na altura da redac��o deste artigo � a 1.09 e a experimental a 1.14. O software est� dispon�vel sobre a GPL e muitas pessoas contribuem para o projecto, nomeadamente nos plugins... enquanto que outros beneficiam do trabalho do nessus sem mencionar o nome (mais acerca disto no fim do artigo). O nessus trabalha em muitos clones Unix quer para clientes e servidores e no Win32 como cliente. Demos uma espreitadela neste grande utilit�rio.

.

ArticleIllustration:[This is the title picture for your article]

[illustration]

ArticleBody:[The article body]

Obtendo e instalando o nessus

Indo at� http://www.nessus.org, pode obter este excelente peda�o de software. Visto que o nessus est� dispon�vel como um cliente Win32, n�s obviamente, consideraremos a vers�o Posix neste artigo.
Para utilizar o nessus, precisa de pelo menos do nmap e do Gtk (Gimp Toolkit). As liga��es para os mesmo s�o fornecidos no site da nessus. Contudo pode utilizar o nessus a partir da linha de comandos, sendo o Gtk n�o obrigat�rio.
Pode obter o nessus de tr�s modos diferentes : o bom, o mau, e o "horr�vel".
A Boa maneira � a padr�o, ou seja, faz download dos arquivos a partir de um site de ftp mais perto de si. Tem quatro arquivos: as bibliotecas nessus, as bibliotecas nasl, os core do nessus e os plugins do nessus. Depois de descomprimidos, constr�i-os e instala-os como normalmente : ./configure, make, make install, seguindo a respectiva ordem dos arquivos. Se tiver uma vers�o antiga do nessus instalada na sua m�quina, primeiro tem de a remover. Para tal o nessus fornece uma script de desinstala��o para ser utilizado ap�s o primeiro "./configure" que � o das bibliotecas nessus. Corra esta script antes de digitar "make". Fa�a o mesmo para cada pacote fornecido (excepto se correr a script de desinstala��o) e est� feito.
O modo mau consiste em correr um script de download com o nome de nessus-installer.sh. Depois digitando "sh nessus-installer.sh" instalar� automaticamente o pacote. Os quatro pacotes n�o precisam de ser instalados separadamente. � agora somente um pacote sozinho.
O modo horr�vel : logo que o lynx esteja instalado na sua m�quina e estiver ligado � Internet digite somente "lynx -source http://install.nessus.org | sh" e j� est�. N�O deve ser root para fazer isto.
Obviamente, que o modo recomendado � o "bom" ... bem se faz download do nessus supomos que a seguran�a seja uma preocupa��o ! Visto que estamos a falar de seguran�a n�o se esque�a de fazer download do checksum MD5.
O nessus vem com utilit�rios diferentes (nasl, uma linguagem de scripting, nessus-adduser, nessus-build...). Cada um deste utilit�rios tem a sua p�gina man quer para o cliente quer para o servidor. Mais documenta��o encontra-se dispon�vel na distribui��o (README, INSTALL...) ou no site do nessus.

Configurando e correndo o nessus

Para tornar as coisas mais f�ceis de entender, utilizaremos exemplos do nessus vers�o X11 que � a que utiliza o Gtk.

O servidor nessusd

Para iniciar o nessus, precisa obviamente de correr o dem�nio servidor, nessusd. Ao lan�ar o dem�nio pela primeira vez, tem de declarar o utilizador e a palavra-passe, utilizando o comando nessus-adduser. Se os pacotes das bibliotecas do nessus foram compilados com a op��o "--enable-cipher" (recomendado, para n�o dizer obrigat�rio !), � gerada uma chave privada. Esta chave pode ser protegida com uma frase-passe. Est�o dispon�veis muitas op��es ao lan�ar o servidor poder� encontr�-las na p�gina man do nessusd.
A partir daqui pode criar a base de dados dos utilizadores e as correspondentes regras. Ou seja, a quem � permitido correr o dem�nio do servidor, o que lhe � permitido fazer scan (uma m�quina, uma rede...). As regras s�o na forma de "accept" ou "deny", precedido de um endere�o IP de rede e a sua m�scara.
Por exemplo : accept 192.168.1.0/24, permite ao utilizador testar a rede 192.168.1.
� tamb�m poss�vel, definir um s� utilizador sem nenhuma regra. Se deseja que v�rios utilizadores possam correr o nessusd, ter� de ter muita precau��o com o que lhes permite fazer. N�o pode deixar toda a gente fazer tudo na sua rede, ou pode ?
Po �ltimo, o nessusd assenta num ficheiro de configura��o (normalmente) encontrado em /usr/local/etc/nessus/nessusd.conf. Pode alterar o ficheiro � m�o, desde que saiba o que est� a fazer.

O cliente nessus

Pode ent�o iniciar o cliente nessus para se ligar ao servidor nessusd. Para iniciar o cliente basta digitar "nessus &" numa shell. Isto abre a janela de configura��o e pede a frase passe acima referenciada. Esta janela fornece-lhe 7 tabs.
O primeiro tab chama-se "nessusd host". A partir dele pode ligar-se � m�quina nessusd clicando no bot�o "Log in". Claro que, isto assume que lhe � permitido ligar-se com este utilizador, por outras palavras o seu utilizador tem de estar declarado na base de dados de utilizadores.

nessusd host


O segundo tab diz respeito aos plugins. � aqui que selecciona os deselecciona os plugins a serem utilizados durante o scan. Por exemplo, pode desactivar os plugins perigosos (aqueles capazes de "crashar" a m�quina !). Clicando num plugin, na parte de baixo apresenta-se-lhe informa��o acerca do mesmo.

plugins plugin detail


O terceiro tab permite-lhe definir as prefer�ncias dos plugins. Isto diz respeito ao ping, TCP, FTP ... Aqui pode personalizar o modo em como utilizar� o nessus para fazer scan a uma rede ou m�quina de destino.

preferences


O quarto tab permite-lhe definir as op��es de scan e o scanner de portas a utilizar. Normalmente o nmap � um dos utilizados. Mais acerca do nmap aqui.

scan options


O quinto tab � onde diz ao nessus a m�quina de destino do seu scan. No campo de destino (target) pode escrever o nome de uma m�quina, o nome de diferentes m�quinas separadas por v�rgulas, um ou mais endere�os IP, novamente, separados por v�rgulas, ou um endere�o de rede com a sua m�scara (por exemplo 192.168.1.0/24). Existe tamb�m uma checkBox para fazer a transfer�ncia da zona DNS, ou seja, ligando-se ao servidor de DNS o nessus tentar� obter uma lista de m�quinas no dom�nio.

target selection


O sexto tab permite ao utilizador alterar a sua frase-passe, apagar a sua chave privada, ou adicionar regras.

user


Por �ltimo mas n�o o menos importante, o �ltimo tab abre a janela de cr�ditos, contendo tamb�m o n�mero da vers�o. Ou seja toda a informa��o a fornecer quando se utiliza o nessus num projecto diferente ... Bem, deve ser algo do g�nero !

credits


Pode ter um oitavo tab se compilou o nessus com a op��o de configura��o "--enable-save-kb". O kb � sin�nimo de "knowledge base". Isto � uma caracter�stica experimental que lhe permite adicionar resultados de testes anteriores. Esta caracter�stica estar� por omiss�o na vers�o do nessus 1.1.0. Mais acerca do kb em www.nessus.org/doc/kb_saving.html.
Ap�s cada tab ter sido visitado pode correr o "monstro" ("beast"). Bastando clicar no bot�o de "Start". O que � que acontece, ent�o ?

O Nessus no trabalho

Mal inicia o scan, o nessus abre a janela apresentando o estado de scan. Por exemplo, digamos que est� a tentar uma rede inteira, chamada 192.168.1.0/24. Oito m�quinas ser�o apresentadas de uma s� vez, mostrando o plugin que est� a ser utilizado para m�quina, para al�m de uma barra de progresso. Eis como se parece :

scan status


Como pode ver, o teste completo pode ser interrompido em qualquer altura.
Obviamente, que se fizer um teste a toda uma rede com muitas m�quinas, o teste demorar� um pouco de tempo. Depender� dos SOs, da velocidade da rede, das regras das m�quinas (mais ou menos portas abertas), o n�mero de plugins activos, etc.
Pode tamb�m, testar de dois modos diferentes : os scans imparciais ou scans diferenciais. Este �ltimo assume que configurou o nessus com a op��o de configura��o, acima mencionada, "--enable-save-kb". O modo imparcial, permite-lhe correr os testes em background enquanto que os diferenciais s� lhe mostram a diferen�a entre dois scans.
Encontrar� mais informa��o acerca disto indo at� documenta��o do nessus (www.nessus.org/doc).
Claro que, o mais importante � o resultado que obt�m no fim do scan. Uma das grandes especifica��es do nessus � que lhe fornece relat�rios.

report


Estes relat�rios s�o bastante detalhados e muitas vezes sugerem uma solu��o para a vulnerabilidade detectada. E, ainda por cima s�o verdadeiras. Se uma vulnerabilidade n�o for real, o nessus dir-lhe-� que pode ser uma vulnerabilidade positiva mas falsa. Isto pode acontecer, por exemplo, com vers�es de upgrade (patches) de alguns dem�nios. Uma vulnerabilidade recentemente corrigida pode ser detectada como um potencial risco, mas para este tipo de coisas, os plugins s�o actualizados rapidamente.
Um outro pequeno erro pode vir do nmap (2.53) ao identificar a vers�o do S.O.. Mas isto � realmente de pouco interesse. Pessoalmente, n�o me importo se o NotTerminated 4.0 com SP6a � identificado como NotTerminated 4.0 com SP5, ou se o kernel Linux 2.2.19 � detectado como 2.2.14. Tamb�m n�o me queixo de SOs "ex�ticos" como o AmigaOS ou BeOS sejam identificados como uma impressora ou router. Falo a s�rio. N�o me consigo imaginar a enviar um mail ao Fyodor (autor nmap) a dizer-lhe tal. Quem � que utiliza tais S.O. numa rede, hoje ? Para o AmigaOS, eu diria 5 pessoas ... no mundo inteiro :-(
Outros S.O. n�o s�o identificados perfeitamente, mas, ou s�o "novos" ou n�o s�o utilizados. Isto � verdade para o MacOS X ou QNX. Mas, novamente, isto n�o � assim t�o importante e at� j� pode estar resolvido na nova vers�o 2.54beta do nmap (al�m disso, esta nova vers�o fornece um porto para o MacOS X ).
De qualquer modo, o principal ponto � que o nessus d�-lhe toneladas de informa��o, permitindo-lhe corrigir vulnerabilidades das suas m�quinas ou fraquezas da sua rede local.
Estes relat�rios podem ser guardados como texto, NSR, HTML ou HTML com gr�ficos ... permitindo assim a compara��o entre dois scans. Pode parecer �bvio, mas o estado de uma rede numa dada altura pode ser um pouco diferente do que aqui a 30 minutos mais tarde. Porqu� ? Uma rede est� viva ! Isto � uma das principais raz�es porque a seguran�a de uma rede n�o � assim t�o f�cil : as coisas alteram-se a toda a hora. Se se est� a questionar acerca da necessidade de utilit�rios como o nessus e o nmap eis aqui a resposta.
Se est� curioso acerca do modo como o nessus trabalha observe os logs do sistema, ou se utilizar o snort, observe os logs do snort. Um outro local onde encontrar informa��o � em /usr/local/var/nessus.
A partir de aqui, ter�, provavelmente, algum trabalho para reduzir as fraquezas de muitas m�quinas na sua rede. Quanto mais proteger uma m�quina melhor. Para o ajudar nesta grande tarefa, o nessus (e tamb�m o nmap) s�o utilit�rios com os quais n�o pode deixar de viver.

Plugins

Os Plugins s�o o "cora��o" do nessus. S�o testes de seguran�a - ou seja programas de teste para descobrir uma dada vulnerabilidade. A linguagem recomendada para escrever os testes de seguran�a � a NASL (Nessus Attack Scripting Language). Encontrar� imensa informa��o acerca do NASL neste URL : http://www.nessus.org/doc/nasl.html.
Assim, se quiser contribuir para o projecto nessus escrevendo plugins, � aqui que encontrar� a informa��o correcta. Na altura de edi��o deste artigo existem 756 plugins na base de dados do nessus !
Existem, praticamente 20 familias de plugins : as backdoors, a nega��o de servi�o (denial of service), adquirir autoridade root remotamente (gain root remotely)... Como j� mencionado cada plugin reporta informa��o. Diz-lhe o que est� incorrecto e o que deve fazer para corrigir o problema.
N�o podemos falar de plugins sem mencionar o CVE (Common Vulnerabilities and Exposures). Existe dispon�vel uma base de dados com tal informa��o dispon�vel em http://cve.mitre.org. Aqui encontrar� tudo acerca dos mais conhecidos riscos de seguran�a. Um outro s�tio excelente para partilhar conhecimento. Um site deste tipo � um refer�ncia absoluta a visitar.
Claro, que existe demasiada informa��o a dizer relativamente aos plugins mas um livro n�o seria suficiente. Um bom modo de entender o seu funcionamento e o modo como s�o escritos � l�-los a partir do direct�rio /usr/local/lib/nessus/plugins directory. Obrigado, novamente a Renaud Deraison e contribuintes pelo excelente trabalho.

E agora algo completamente diferente ....

Mesmo que este t�tulo vos soe a Monty Python, infelizmente, n�o h� humor nele. As terceiras pessoas que le�m os meus artigos conhecem as minhas frases fora do contexto (off-topic) : desta vez � uma sec��o inteira ! Mas, � mesmo fora de contexto? Bem, mas isto � outra hist�ria, continuemos.
Visto que eu sou muito interessado em seguran�a de computadores, muito frequentemente, visito os sites dedicados. Pode ser para aprender algo sobre as novas vulnerabilidades ou para descobrir novos utilit�rios de seguran�a. Acidentalmente, encontrei alguns produtos baseados num servi�o online de scan. De facto intitulam-se (pelo menos por agora) ASP (Application Service Provider). Se for um pouco mais longe rapidamente descobre que o motor por detr�s do servi�o � o nessus. At� agora tudo bem. Contudo ao tentar encontrar a informa��o expl�cita, n�o consegui ver a palavra "nessus". Foi aqui que fiquei ferido !
Muitas pessoas que trabalham na comunidade de software livre, fazem o seu trabalho de gra�a e n�o para viver. O �nico pagamento que obt�m chama-se : cr�dito. O nessus � apresentado sobre a GPL. Ou seja, toda a gente pode utilizar o produto, modific�-lo, adapt�-lo... desde que o(s) autor(es) seja(m) mencionado(s). Claro que a licen�a diz mais que isto. Se n�o conhece a GPL, d� uma vista de olhos aqui.
Para mim, isto parece-me um roubo. Falo a s�rio, eu nem sequer preciso de uma licen�a para dar cr�dito ao trabalho de outr�m. Tenho muito respeito pelas pessoas a trabalharem de gra�a (na maioria das vezes), partilhando com a comunidade. Merecem o reconhecimento por parte dessa comunidade. Isto aplica-se de um modo especial quando as pessoas tentam fazer dinheiro com o trabalho dos outros. Pode chamar a isto respeito, reconhecimento, n�o importa o qu�. O facto � que estas palavras parecem ter perdido o seu significado. Podemos afirmar com certeza que a GPL � a causa de tal comportamento. Com o ASP n�o se considere que voc� esteja a vender software. Segundo o Pa�s a GPL pode n�o ter nenhum valor legal.
A solu��o podia passar por os utilizadores dos tais ASPs pedirem o nome do motor de scan que faz o verdadeiro trabalho. A resposta dada dir� pelo menos, se as pessoas fornecendo o servi�o s�o "honestas". Se n�o respondem ou se disserem que inventaram tal motor (o qual identificou como sendo o nessus), simplesmente n�o o use ! Em vez disso instale o nessus (o verdadeiro) sendo mais seguro de qualquer modo.
Mas novamente, precisamos n�s de uma licen�a para "dizer obrigado" �s pessoas que fizeram um grande e excelente trabalho ? E j� agora o Renaud Deraison n�o quer alterar a licen�a do nessus, o nessus ficar� como GPL.
Desculpem-me por esta longa digress�o. mas acredito que isto tinha de ser dito.

E � tudo!

� parte da �ltima sec��o, o que h� a reter deste artigo � a alta qualidade do nessus. � um software deveras, impressionante. Utilizado em conjunto com o nmap torna-se obrigat�rio quando a seguran�a � uma preocupa��o. � um utilit�rio fi�vel, melhorado cada dia que passa. O meu agradecimento a Renaud e amigos pelas actualiza��es constantes dos plugins.
Hoje, um administrador de sistema, n�o pode trabalhar sem o nessus e o nmap. Este utilit�rios s�o capazes de encontrar vulnerabilidades que j� pensava resolvidas. Isto aplica-se a muitos SO encontrados na sua rede. E quando voc� sabe que alguns S.O. s�o como crivos o nessus permite-lhe descontrair um pouco.
Para al�m disto o nessus pode ajud�-lo a entender o modo como uma rede (ou m�quina) pode estar comprometida.
Se ler cuidadosamente os relat�rios fornecidos, tome-os em conta e aplique as necess�rias correc��es, melhorando, assim largamente a seguran�a da rede (ou m�quina). Novamente, eu disse "melhorar" a sua rede n�o est� 100% segura s� porque correu o nessus. A entrada para a seguran�a � um longo caminho a percorrer e n�s estamos muito longe do seu fim.
Uma vez mais, obrigado � comunidade de software livre, pelo excelente trabalho que tem feito em rela��o � seguran�a.
Respeitante aquelas simp�ticas pessoas que tentam ganhar dinheiro com o trabalho de membros da comunidade de software livre, gostava de acrescentar algo. Dizer "obrigado" n�o � um vergonha. Ser honesto n�o � assim t�o detest�vel, ou � ? Se este tipo de comportamento se expande, o risco � o fim da comunidade ou uma grande altera��o nas licen�as (e provavelmente mais e mais patentes !) Em ambos os casos, estar� � sua merc� e as coisas ser�o mais complicadas para si. E infelizmente, n�o ser� capaz de utilizar o software livre mais alguma vez. Mas isto n�o significa que n�o consiga vender o seu. Pense nisto !
N�o estamos a viver num tempo excelente ?