original in en Georges Tarbouriech
en to pt Bruno Sousa
O George � j� um utilizador do Unix de h� longa data. Acredita que a
seguran�a dos computadores � um dos maiores desafios deste s�culo.
O Psionic portsentry faz parte do conjunto de utilit�rios do projecto Abacus (al�m do portsentry, o conjunto tamb�m oferece o logcheck e o hostsentry). � um IDS (Sistema de Detec��o de Intrusos) dedicado � detec��o de portos e defesa activa. Trabalha em muitos sabores do Unix incluindo o Mac OS X. A principal caracter�stica de um IDS � a de informar o administrador de sistema acerca da tentativa de intrus�o. A Portsentry vai ainda mais longe visto que pode mesmo reagir a um ataque. A �ltima vers�o deste utilit�rio (1.1) est� dispon�vel em http://www.psionic.com, e al�m disso, a vers�o 1.0 j� faz parte da maioria das distribui��es de Linux (Debian, RedHat...).
Durante a �ltima d�cada, as redes cresceram a uma velocidade
incr�vel. O objectivo era o de permitir a comunica��o entre m�quinas usando
diferentes Sistemas Operativos. Al�m disso os sistemas propriet�rios de
redes foram lentamente, substitu�dos pelo TCP/IP. A Internet fez o resto !
Hoje muitas das redes assentam no TCP/IP e o TCP/IP assenta em portos. Para
ser breve, os portos est�o associados a programas (clientes ou servidores).
O servidor escuta at� que um cliente o contacte para estabelecer uma
liga��o. Os servi�os (programas acima referenciados) s�o mapeados para uma
porto espec�fico. Nos Sistemas Unix, o mapa com este sistema encontra-se no
ficheiro /etc/services. Ou seja, toda a gente sabe a correspond�ncia entre
as portos e os servi�os. Se toda a gente sabe, os piratas ainda o sabem
melhor ! Se considerarmos um porto como uma porta, quando um porto est�
aberto (� escuta), � como uma porta destrancada. E como � que entra dentro
de casa ? Normalmente atrav�s da porta (a n�o ser que prefira a janela, mas
isso � consigo !). E os de "chap�u preto" fazem o mesmo para entrar dentro
do seu computador...
A primeira coisa a fazer para reduzir o risco � fechar o m�ximo de
portos quanto poss�vel, ou seja parar os servi�os. Quanto menos melhor. Mas
muito dificilmente consegue fechar todas as portos numa m�quina em rede : a
mesma n�o comunicaria mais, o que seria uma pena !
Como limitar o n�mero de servi�os activos ou como fechar as portos est�
para al�m do alcance deste artigo. Encontrar� muita informa��o acerca do
assunto, se for por exemplo at� ao Linux Documentation Project ou procurando
atrav�s das edi��es da LinuxFocus (por exemplo, Bastille Linux ou Utilit�rios de Seguran�a).
Ent�o para os diferentes modos de proteger uma m�quina, uma rede aplica-se
o mesmo. No Linux considere de refer�ncia obrigat�ria Bastille Linux.
E � aqui que o portsentry entra. O Portsentry pode monitorizar portos e
� capaz de bloque�-los se lhe pedir para o fazer. Providencia-lhe
diferentes modos de opera��o, alguns espec�ficos de alguns SO. Por acaso,
SO significam Linux aqui.
O Portsentry � capaz de beneficiar da filtragem de pacotes feita pelo
ipfwadm, ipchains ou iptables segundo o Kernel de Linux que possuir. Isto
tamb�m � verdade para outros sabores de Unix usando diferentes utilit�rios
(falaremos disto mais tarde). Aqui estamos : o portsentry possui,
uma caracter�stica essencial � "auto-bloqueador".
Como � que ele consegue ? Onde vamos n�s !
O Portsentry vem como um pequeno ficheiro tar. Depois de descomprimir o arquivo,
voc� obt�m o c�digo fonte, os v�rios ficheiros de configura��o e os
ficheiros README. Obviamente que � recomend�vel l�-los. Visto que estamos a
falar de seguran�a, n�o se esque�a de obter os ficheiros PGP (assinatura e
chave).
A instala��o do portsentry � �bvia: make (o vosso sistema) e make
install. Mas, antes da instala��o, deve prepar�-la. Ou seja, deve ler a
documenta��o, alterar o ficheiro portsentry.conf para satisfazer as suas
necessidades e verificar o Makefile bem como o ficheiro portsentry.h.
Para o portsentry ser mais eficaz, precisa de, pelo menos, TCPWrappers.
Pelo menos, porque a sua utiliza��o em conjunto seria melhor como
utilit�rio de filtragem de pacotes. Claro, que se utiliza o Linux, j� tem
tudo o que precisa. E acerca dos outros Unices ?
Como test�mos o portsentry em plataformas diferentes, falemos dos
requisitos.
No MAC OS X, � como o Linux : est� tudo l�. Voc� tem TCPWrappers, e
ipfw (a vers�o BSD). Ent�o digitando "make osx" far� a instala��o.
No Solaris 2.6 (SPARC), n�o tem TCPWrappers. Pode obt�-lo a partir de ftp://ftp.porcupine.org/pub/security.
Pode, tamb�m tentar o IPFilter dispon�vel em ftp://coombs.anu.edu.au/pub/net/ip-filter/ip-fil3.4.9.tar.gz
(mas s� se tiver um compilador Solaris !!!).
No Irix 6.5, tamb�m n�o tem TCPWrappers. Pode obt�-lo como um pacote a
partir de http://freeware.sgi.com/index-by-alpha.html
Para a filtragem de pacotes voc� tem o ipfilterd, que vem com o Irix mas
n�o instalado por omiss�o.
Por �ltimo, mas n�o o menos importante, a n�o ser que encontre um vsnprintf()
a trabalhar n�o conseguir� instalar o portsentry no pr�ximo passo... e eu
n�o encontrei nenhum !
Contudo, mais uma vez, voc� devia configurar o portsentry antes do
instalar. Bem, mas � consigo, mas seria melhor entender a sua filosofia
antes de fazer todo o resto... mas � s� uma opini�o !
Muito bem, obrigado !
Mais seriamente, o portsentry assenta em ficheiros de configura��o. O mais
importante � o ficheiro portsentry.conf. Este diz ao portsentry como reagir
contra os seus advers�rios.
Antes de lidar com este ficheiro, voc� precisa de conhecer os diferentes
modos de opera��o que existem e o que s�o.
O Portsentry pode utilizar seis modos diferentes, segundo a op��o que d� ao
arranque.
- A primeira � a "-tcp" e � o modo b�sico. Com esta op��o o portsentry
restringir� os portos TCP encontrados no ficheiro de configura��o na sec��o
de "configura��o de portos". Pode restringir at� um limite de 64 portos.
- A segunda � a "-udp" e faz o mesmo que anterior mas para os portos UDP.
- A terceira � a "-stcp", o "s" significa stealth (dif�cil de detectar). A
op��o e as pr�ximas s� est�o dispon�veis para Linux. Com a op��o "-stcp", o portsentry utiliza
sockets para monitorizar os pacotes de entrada, ou seja os portos n�o est�o
reservados para nada.
- A quarta � a "-sudp" e faz o mesmo que a anterior mas para os portos UDP.
- A quinta e sexta s�o "-atcp" e "-audp". S�o as op��es mais eficazes ("a"
significa avan�ado). Utilizando estas op��es o portsentry faz uma lista dos
portos que est�o � escuta, TCP e UDP, se seleccionar ambos ele bloqueia a
m�quina que se ligar a estes portos, excepto se a m�quina est� presente no
ficheiro portsentry.ignore.
Isto est� mais bem explicado nos ficheiros README que v�m com o portsentry.
Assim, n�o queremos reinventar a roda, ao rescrever a documenta��o. A
leitura dos ficheiros README � obrigat�ria (como habitualmente, sejamos um
pouco fascistas !).
� �bvio, que o portsentry pode criar logs. Se � do tipo de administrador de
sistema que n�o l� os logs (azar o seu!), pode utilizar o logcheck em
conjunto com o portsentry. Deste modo, o portsentry envia um email para o
informar acerca de uma tentativa de intrus�o.
Ele pode utilizar o ficheiro /etc/hosts.deny para escrever as m�quinas de
destino, para utilizar com os TCPWrappers.
A m�quina local � capaz de rotear o tr�fego da rede para uma m�quina
"morta".
Por �ltimo, a m�quina local pode "eliminar" os pacotes atrav�s de um
utilit�rio de filtragem local.
Agora sabe mais um pouco acerca da filosofia do portsentry, pode ent�o,
come�ar a escrever o ficheiro portsentry.conf.
- A primeira sec��o do ficheiro de configura��o diz respeito aos portos. Aqui
pode escolher os portos a que quer proteger. Lembre-se, que isto � ignorado
quando utiliza os modos avan�ados para o Linux. Tenha cuidado com os portos
que n�o quer proteger (n�o protega o porto 6000 se utilizar o X, por
exemplo).
- A pr�xima sec��o, � para op��es avan�ados de detec��o. Por omiss�o s�o
monitorizadas todas os portos abaixo de 1024, quer TCP e UDP. Aqui, pode
tamb�m excluir os portos que quer ignorar. Isto � bastante importante para
evitar falsos alarmes e obviamente a cria��o de logs grandes, especialmente
se utilizar m�quinas Windos na sua rede. Por exemplo, proteger o porto
111 quando o portmap � utilizado e as m�quinas n�o est�o discriminadas no
ficheiro portsentry.ignore, seria, obviamente, loucura, pois o portmap tem
por significado servidores RPC, como o NFS, mas foi avisado. Ou seja, o NFS
n�o � assim t�o seguro nas m�quinas Unix ent�o imagine-se nas m�quinas
Windos.
Aqui vem, normalmente a sec��o fora de contexto: quando escrevo "Windos",
n�o � um tipo : � s� para insistir no facto de que o Windows � um ambiente
por cima do Dos (D de dirty ? -sujo)... e � menos um caracter a digitar (que
maluco eu sou !). Desculpem a digress�o.
- A sec��o dos ficheiros de configura��o diz respeito aos ficheiros
utilizados pelo portsentry para definir o seu hist�rico ou para definir as
m�quinas a ignorar. Se fizer uma instala��o por omiss�o, n�o altere isto.
- A sec��o de configura��o "miscellaneous" permite-lhe activar, desactivar as procuras
por DNS.
- A sec��o com as op��es de resposta � o cora��o da configura��o. � aqui
que define como � que o portsentry reagir�.
Primeiro, as op��es a ignorar. Pode escolher para bloquear ou n�o bloquear
os "scans" ou para correr um comando externo.
A seguir, na sec��o de routeamento, diz ao portsentry como eliminar o
routeamento ou como beneficiar de um utilit�rio de filtragem utilizado na
sua m�quina. H� muitos exemplos para variadas plataformas. Escolha uma (e
s� uma !) que se adeq�e �s suas necessidades.
- A sec��o dos TCPWrappers indica se quer escrever para o ficheiro /etc/hosts.deny.
- A sec��o dos comandos externos permite-lhes definir o comando a correr
quando uma m�quina se liga.
- A sec��o de valor do "scan trigger" permite-lhe definir o tempo de
reac��o. Por omiss�o � "0" sendo o mais r�pido logo que � enviado uma
alarme na primeira tentativa de liga��o.
- A �ltima sec��o � apresentar uma mensagem no caso da tentativa de
intrus�o. N�o trabalha com os modos "stealth".
Quando terminar com esta parte, est� j� quase tudo feito. De novo para
evitar falsos alarmes ou logs enormes, verifique o ficheiro
portsentry.ignore. Adiciona aqui o endere�o da sua rede local com a
respectiva m�scara, ou os endere�os IP de algumas m�quinas.
E � isto! Pode agora fazer "make yoursystem" e "make install". A script de
instala��o faz todo o trabalho visto que d� permiss�es restritivas ao
direct�rio e aos ficheiros. Agora, � o suficiente para correr o portsentry
com as op��es da sua escolha. Verifique os logs para ver o que acontece. Se
tudo correu bem o portsentry come�ou a correr tornando mais segura a
m�quina.
Utilizando o nmap, voc� pode simular um scan a um porto da sua nova m�quina segura. (Mais acerca do nmap aqui). Esta � a resposta que obt�m :
Definitivamente N�O ! Existem imensos IDS, livres ou n�o. Muitos deles s�o
bastante bons. Mencionemos o bem conhecido snort, dispon�vel em
http://www.snort.org.
Normalmente, estes IDSes s�o passivos. Ou seja, s�o utilizados para o
informar acerca da intrus�o. Foram desenhados para tal. Por exemplo, o
snort � muito sofisticado, visto que se rege em regras de scripts,
permitindo-lhe escrever as suas pr�prias regras. O website da snort fornece
tamb�m uma base de dados com regras. E al�m disso, se n�o tiver medo de
logs enormes, pode correr quer o portsentry e o snort. N�o � assim t�o
est�pido !
Contudo, a for�a do portsentry � que um IDS activo. O modo como pode
reagir e de cortar a respira��o. Combin�-lo com um utilit�rio de filtragem
de pacotes � obrigat�rio. Podemos formular a quest�o : Ser� o portsentry o
complemento de um utilit�rio de filtragem de pacotes ou vice-versa ?
De qualquer modo, existe ainda muito por dizer acerca do portsentry. Por
exemplo, deve ter bastante cuidado com o modo avan�ado scan de detec��o
UDP. Leia a documenta��o (novamente!) para entender os problemas
relacionados ao UDP. Os Solaris podem tamb�m causar alguns problemas,
visto utilizar intervalos de portos (32700) muito elevados (quer TCP e
UDP). Mas este artigo � s� uma breve revis�o e n�o uma completa revis�o de
este grande peda�o de software.
A seguran�a de computador � uma preocupa��o, e n�o s� para os
administradores de sistema. O crescimento inacredit�vel da Internet ainda
complica mais as coisas. Ou seja, o perigo de intrus�o � cada dia maior. A
comunidade de software livre fornece utilit�rios excelentes : o portsentry
� um deles. N�o os deixe de lado ! Mas lembre-se que estes utilit�rios s�
reduzem o risco e n�o lhe fornecem de qualquer modo um sistema 100% seguro.
Isto � outra raz�o para investigar na �rea de utilit�rios de seguran�a.
Por �ltimo, mas n�o o menos importante, as pessoas no Psionic est�o a
trabalhar num produto comercial dizendo-nos que n�o ficaremos
"desapontados". Espere e veja, depois !
Entretanto, v� e obtenha o 1.1, n�o ficar� desapontado tamb�m. As pessoas
no Psionic est�o a fazer um trabalho excelente. Al�m disso o hostentry �
digno de ser testado... e utilizado.
Estamos a viver num tempo excelente, n�o estamos ?
Os websites que se seguem s�o refer�ncias obrigat�rias quando se trata de
seguran�a. E, eles conduzem-no a mais websites, e estes a mais... Voc�
sabe, os recenseamentos Russos ? O �nico problema � que s os quiser ler todos n�o
viver� tempo suficiente !!!
http://www.linuxsecurity.com
http://www.sans.org
http://www.infosyssec.org
http://www.securityfocus.com
http://www.cs.purdue.edu/coast/hotlist/