quinta-feira, 7 de julho de 2011

Port Scan Attack Detector (Psad) com Iptables.

Introdução

O administrador de redes dentro de uma empresa vem tornando-se cada vez mais importante e exigido quando falamos no quesito segurança. A necessidade que as empresas possuem de terem acesso as seus dados a qualquer hora e lugar onde o meio geralmente utilizado é a internet é que tornam a questão ainda mais importante e que faz com que os profissionais em redes percam noites sem dormir.

A internet é um meio público onde as informações trafegam livremente e que podem ser interceptadas por qualquer usuário mal intencionado utilizando-se das ferramentas certas.

Notícias sobre invasões de empresas que tiveram seus dados expostos e informações sigilosas roubadas são a cada dia mais frequentes. Diferente de algum tempo atrás onde um usuário (Cracker*) disposto a invadir um sistema necessitava de algumas horas e adquirir um conhecimento sólido de camadas de redes, protocolos e configurações para chegar à porta de um sistema e comprometê-lo, atualmente a facilidade da internet em se obter informações, ferramentas e explicações detalhadas sobre qualquer forma de invasão de um sistema fazem com que usuários (Script *) de fim de semana sem muito esforço consigam descobrir técnicas para varrer sua rede, detectar vulnerabilidades e utilizar o tutorial do “blog do fulano” para comprometer seu sistema causando transtornos e prejuízos inestimáveis.

Com o intuito de prevenir seu sistema de varreduras de usuários mal intencionados a procura vulnerabilidades surgiu entre outras a ferramenta OpenSource PSAD, que estarei abordando aqui a qual pode detectar, alertar e ainda bloquear tentativas de escaneamentos externos a sua rede.

*Hacker diz respeito ao usuário que estuda um sistema ou hardware de computador, procurar entender seu mecanismo e como ele funciona a fim de aperfeiçoa-lo. Ao contrário do que divulga a mídia onde o Hacker é o usuário que invade sistemas e os danifica, ela está se referindo na verdade ao Cracker. Um Hacker pode invadi um sistema a fim de apontar falhas a serem corrigidas no entanto jamais causará prejuízos ou roubo de informações sigilosas.

*Script antigamente denominado de Lamer é o usuário que apesar de não compreender exatamente como um sistema ou mecanismo funciona utiliza-se de ferramentas criadas por outros. Esses causam prejuízos, danificam sistemas com o único intuito de ganhar fama ou dinheiro.


Entendendo o funcionamento

O software Psad trabalha analisando os logs do Iptables em busca de tentativas de varreduras ao seu ip gerando alertas e bloqueando-as.

Abaixo temos uma figura que representa o funcionamento do PSAD:

Adaptado de Cipherdyne 2011.

Instalação e configuração:

Estaremos utilizando para configuração do Psad o sistema Ubuntu 10.10, no entanto ele pode ser instalado em qualquer distribuição bastando para isto executar pequenas alterações.

Para instalar

#apt-get install psad

O arquivo de configuração do Psad fica por padrão em /etc/psad/psad.conf possui muitas opções que podem ser testadas e adequadas as suas necessidades. Abaixo temos algumas que considerei mais importantes:


EMAIL_ADDRESSES itn@localhost;


EMAIL_ADDRESSES: configure aqui o endereço de e-mail para qual irá o aviso de detecção de varreduras. Nesse exemplo os avisos irão para o usuário “itn” da própria máquina local. Caso você possua um servidor de e-mails instalado basta modificar itn@localhost pelo seu e-mail e alterar a opção HOME_NET NOT_USED que evita que você continue a receber e-mails na caixa de entrada do seu usuário “itn”.

Dica: Se você estiver utilizando um servidor Linux, por exemplo, sem o X instalado você pode instalar o cliente de e-mails para o terminal mutt (#apt-get install mutt) e utilizar o comando mutt –z para ler os e-mails recebidos do Psad.


DANGER_LEVEL1 5; ### Number of packets.

DANGER_LEVEL2 15;

DANGER_LEVEL3 150;

DANGER_LEVEL4 1500;

DANGER_LEVEL5 10000;

DANGER LEVEL: É dividido em 5 níveis que representam a quantidade de pacotes enviado de terminado Ip dentro de um período de tempo. Por exemplo o valor 150 do nível 3 diz para o Psad que quando a quantidade de pacotes atingirem esse limite ele deve considerar como uma tentativa de varredura externa.


CHECK_INTERVAL 5;

CHEK_INTERVAL: representa o tempo em segundos em que os logs do iptables serão verificados em busca de varreduras.

Dica: Tenha bastante cuidado em configurar o DANGER_LEVEL uma vez que configurar para o Psad bloquear ou reportar tentativas de varreduras em LEVEL baixos como 1 e 2 podem causar problemas de conexões dos clientes reais uma vez que pacotes de dados são trocados constantemente entre clientes e servidores. Aconselho


IGNORE_PORTS tcp/3389, udp/53, tcp/22;

#IGNORE_PORTS NONE;

IGNORE_PORTS: uma das opções chaves para um bom funcionamento do Psad uma vez que você pode configura-lo para ignorar o tráfego de pacotes em determinadas portas. Imaginamos que você possui um servidor onde a porta 3389 possui um tráfego de pacotes relativamente alto. Esse simples fato poderia vir a causar falsos positivos ao Psad que poderia entender essa troca de pacotes intensa como uma tentativa de varredura ou invasão a sua rede. No entanto se você não precisa disponibilizar nenhuma porta aberta para acesso externo você pode utilizar tranquilamente a opção: IGNORE_PORTS NONE;

Você pode estar se perguntando. É para liberar as principais portas que utilizo do monitoramento do Psad, então qual o objetivo de utiliza-lo para monitorar minha rede? Resposta: As varreduras a redes são realizadas com software que enviam uma quantidade enorme de pacotes em diversas portas e em um curto espaço de tempo. Então o fato de você liberar algumas portas do monitoramento do Psad não irá impedi-lo de executar seu serviço, além de lhe dar uma proteção adicional contra falsos positivos.


IGNORE_INTERFACES eth1;


IGNORE_INTERFACES: opção bastante interessante para quem utiliza uma máquina que possui mais de uma interface de rede onde apenas delas está diretamente ligada a internet. Assim você pode configurar de quais placas os Psad irá monitorar o tráfego.



MIN_DANGER_LEVEL 4;

EMAIL_ALERT_DANGER_LEVEL 5;


MIN_DANGER_LEVEL, EMAIL_ALERT_DANGER_LEVEL: essas duas opções estão diretamente ligadas à opção DANGER LEVEL, a opção MIN_DANGER_LEVEL representa o nível mínimo que deve ser atingido para um arquivo de e-mail ser gerado e EMAIL_ALERT_DANGER_LEVEL é quando esse arquivo será efetivamente enviado.



ENABLE_AUTO_IDS Y;

AUTO_IDS_DANGER_LEVEL 4;

IPTABLES_BLOCK_METHOD Y;

AUTO_BLOCK_TIMEOUT 3600;

ENABLE_AUTO_IDS, AUTO_IDS_DANGER_LEVEL, IPTABLES_B LOCK_METHOD: opções chaves do Psad e que são um dos principais objetivos desse artigo. Com essas opções definidas como Y (ativadas), o nível determinado (4 no exemplo) o Psad irá bloquear todo o acesso do Ip que está executando a varredura em sua rede pelo tempo determinado em segundos (3600 segundos no exemplo.



Configurando o log do Iptables.


Precisamos configurar o Iptables para escrever em um log o movimento dos pacotes que estão passando pelo firewall. Para isso adicionamos os seguintes comandos no script do firewall:



iptables -A INPUT -j LOG

iptables -A FORWARD -j LOG



Edite o arquivo /etc/rsyslog.conf e adicione a seguinte linha ao final:


kern.info | /var/lib/psad/psadfifo



Liberando Ips do monitoramento do Psad.


Um outro arquivo de configuração interessante do Psad é o /etc/psad/auto_dl nele você pode definir quais Ips estão liberados do monitoramento do Psad bem como níveis para diferentes para ips específicos. Essa opção se torna muito útil no caso de você querer evitar bloqueios errôneos de Ips que fazem parte de um grupo confiável que acessa seu servidor.

Exemplo:


200.139.34.1 5;

200.139.34.2 3 tcp;

200.139.34.3 3 tcp/1-1024;

200.193.34.4 0;


No primeiro exemplo dizemos que o ip 200.139.34.1 deve ser tratado com o nível máximo (5) de atenção. No segundo exemplo o ip 200.193.34.2 é tratado com o nível 3 no entanto apenas para tráfego utilizando o protocolo tcp. Já o ip 200.193.34.3 apenas para o tráfego tcp entre as portas 1 e 1024. No último exemplo o ip 200.193.34.4 será excluído do monitoramento do Psad sendo isso representado pelo nível 0.


Conclusões

O Psad é um ferramenta de muito poderosa que pode evitar grandes dores de cabeça inibindo ataque diversos a sua rede e evitando que seu sistema seja comprometido. No entanto o Psad não elimina de maneira alguma a necessidade de um boa configuração de firewall, ele apenas adiciona mais uma camada de proteção e monitoramento ao sistema. Monitore continuamente as mensagens do Psad e implemente sempre atualizações e novas proteções ao seu firewall.

Espero que aproveitem o artigo. Sugestões pelo e-mail itnp@msn.com.


REFERÊNCIAS:


PSAD (Linux) detectar e bloquear ataques port scan em tempo real. Disponível em: < http://segurancalinux.com/artigo/PSAD-%28Linux%29-detectar-e-bloquear-ataques-port-scan-em-tempo-real > Acesso em: 05 jun. 2011.


PSAD: Intrusion Detection and Log Analysis with iptables. Disponivel em: < http://cipherdyne.org/psad/ > Acesso em: 05 jun. 2011.





Nenhum comentário:

Postar um comentário