IDS com Snort + Guardian + Debian Lenny

Implementação de IDS com bloqueio automático de tentativas de invasão utilizando o Snort + Guardian em Debian Lenny com uma interface web para acompanhamento dos alertas gerados pelo IDS.

[ Hits: 110.396 ]

Por: Douglas Q. dos Santos em 15/03/2010 | Blog: http://wiki.douglasqsantos.com.br


O que é o Snort



O SNORT é uma ferramenta NIDS desenvolvida por Martin Roesch open source bastante popular por sua flexibilidade nas configurações de regras e constante atualização frente às novas ferramentas de invasão . Outro ponto forte desta ferramenta é o fato de ter o maior cadastro de assinaturas, ser leve, pequeno, fazer escaneamento do micro e verificar anomalias dentro de toda a rede ao qual seu computador pertence.

O código fonte é otimizado, desenvolvido em módulos utilizando linguagem de programação C e, junto, com a documentação, são de domínio público.

O Snort conta ainda, com o permanente desenvolvimento e atualização, que são feitos diariamente, tanto em relação ao código propriamente dito, como das regras de detecção. Os padrões utilizados na construção das regras de detecção das subversões são introduzidos no sistema de configuração, tão rápido quando são enviados os alertas originados pelos órgãos responsáveis, como por exemplo o CERT, Bugtraq (lista de discussão), entre outros.

Por ser uma ferramenta peso leve, a utilização do Snort é indicada para monitorar redes TCP/IP pequenas, onde pode detectar uma grande variedade do tráfego suspeito, assim como ataques externos e então, fornece argumento para as decisões dos administradores.

Os módulos que compõe o Snort são ferramentas poderosas, capazes de produzir uma grande quantidade de informação sobre os ataques monitorados, dado que é possível avaliar tanto o cabeçalho quanto o conteúdo dos pacotes, além de disponibilizar, por exemplo, a opção de capturar uma sessão inteira.

O Snort monitora o tráfego de pacotes em redes IP, realizando análises em tempo real sobre diversos protocolos (nível de rede e aplicação) e sobre o conteúdo (hexa e ASCII). Outro ponto positivo desse software é o grande número de possibilidades de tratamento dos alertas gerados. O subsistema de registro e alerta é selecionado em tempo de execução através de argumentos na linha de comando, são três opções de registro e cinco de alerta. O registro pode ser configurado para armazenar pacotes decodificados e legíveis em uma estrutura de diretório baseada em IP, ou no formato binário do tcpdump em um único arquivo. Para um incremento de desempenho, o registro pode ser desligado completamente, permanecendo os alertas. Já os alertas podem, ser enviados ao syslog, registrados num arquivo de texto puro em dois formatos diferentes, ou ser enviados como mensagens WinPopup usando o smbclient.

Os alertas podem ser enviados para arquivo texto de forma completa e o alerta rápido. O alerta completo escreve a mensagem de alerta associada à regra e a informação do cabeçalho do pacote até o protocolo de camada de transporte. A opção de alerta rápido escreve um subconjunto condensado de informação do cabeçalho alerta.

Por fim, uma última opção desabilita os alertas completamente.Existe também, a possibilidade de utilizar métodos como o Database Plug-in por exemplo, para registrar pacotes em uma variedade de bases de dados diferentes (MySQL, PostgreSQL, entre outros), as quais contam com recursos próprios para efetuar consultas, correlações e dispõem de mecanismos de visualização para analisar dados.

O Snort deve trabalhar em todos os lugares que o libpcap trabalha, e o mesmo foi compilado com sucesso nas seguintes plataformas:

i386     Sparc  M68k/PPC  Alpha  Other
X        X      X         X      X     Linux
X        X      X         -      -    OpenBSD
X        -      -         X      -    FreeBSD
X        -      X         -      -    NetBSD
X        X      -         -      -    Solaris
-        X      -         -      -    SunOS 4.1.x
-        -      -         -      X    HP-UX
-        -      -         -      X    AIX
-        -      -         -      X    IRIX
-        -      -         X      -    Tru64
-        -      X         -      -    MacOS X Server
         -      -         -      -    Win32 - (win9x-/NT/2000)

O Snort poderá assumir três modalidades a seguir:
  • Sniffer: Esta modalidade simplesmente captura os pacotes e imprime continuamente no console.
  • Packet logger: Registra os pacotes capturados no disco rígido.
  • Network intrusion detection system: Esta modalidade é a mais complexa e versátil, permitindo que o Snort analise o tráfego da rede de encontro a regras definidas pelo usuário, executando diversas ações baseadas em suas regras.

IDS - Virtudes do SNORT

Extremamente flexível:
  • Algoritmos de inspeção baseados em regras.
  • Sem falsos positivos inerentes.
  • Controle total do refinamento das regras.

Metodologias de detecção multi-dimensional:
  • Assinaturas (impressões digitais) do ataque.
  • Anomalias no protocolo.
  • Anomalias no comportamento.

Imensa adoção (comunidade SNORT):
  • Dezenas de milhares de instalações (42 mil).
  • Algumas das maiores empresas do mundo (Microsoft, Intel, PWC)
  • Milhares de contribuidores fazendo regras para novas vulnerabilidades.

Infra-estrutura de suporte da comunidade open source:
  • Rápida respostas às ameaças.
  • Velocidade de inovação.
  • Velocidade de refinamento.

IDS - Fraquezas do SNORT

Performance modesta:
  • Menos de 30mbps, para redes de até 10Mbps.

Interface gráfica limitada:
  • Configuração do sensor.
  • Gerenciamento de regras.
  • Implementação lenta e cansativa (pelo menos 10 dias).
  • Capacidade analítica limitada.

Sem suporte comercial:
  • Dependência de pessoas "capacitadas", nem sempre estáveis...
  • Gastos significativos com recursos humanos.

Referência: http://www.snort.com.br/snort.asp

Página anterior     Próxima página

Páginas do artigo
   1. O que é IDS
   2. O que é o Snort
   3. A arquitetura e o funcionamento do Snort
   4. Instalação do pré-requisitos para a instalação do Snort
   5. Instalação do Snort
   6. Arquivo de configuração snort.conf
   7. Instalação e configuração do Basic Analysis and Security Engine (BASE)
   8. Instalando e configurando o Guardian
   9. Considerações finais
Outros artigos deste autor

Alta disponibilidade com Debian Lenny + Heartbeat + DRBD8 + OCFS2 + MONIT + LVS

Um pouco sobre IPtables

Apache em chroot + MySQL + PHP + mod_security + mod_evasive + vsftpd + Fail2ban + Debian Squeeze

Debian + Postfix + MySQL + PostfixAdmin + MailScanner + Webmail + Quotas

Debian Lenny com Kernel 2.6.28 + Layer7 + Firewall

Leitura recomendada

Cliente "automágico" Linux logando no domínio NT/Samba

Computação de alto desempenho

Metasploit Adobe Exploit

Encriptando suas senhas de forma (mais) segura no Pidgin

ClamAV, o kit de ferramentas antivírus

  
Comentários
[1] Comentário enviado por douglas_dksh em 15/03/2010 - 18:44h

Olá.

Se tiverem problemas na instalação dos pacotes do PEAR, pode ser feito como abaixo.

#pear upgrade PEAR
#pear install Image_Canvas-alpha
#pear install Image_Graph-alpha --alldeps
#pear install Mail Mail_Mime Image_Color Log Numbers_Roman
#pear install Numbers_Words-0.16.1

Pois os pacotes possuem ordem de instalação.


Douglas.

[2] Comentário enviado por leandrojpg em 16/03/2010 - 11:24h

Eu sou suspeito para falar, pois tenho seguido os tutoriais do douglas a algum tempo e asseguro que são bons demais.
Esse ai do Snort eu implementei, e funcioba bem legal, mas tem que quer fazer linha a linha,importante ler o material para entender bem o snort.

[3] Comentário enviado por douglas_dksh em 16/03/2010 - 11:45h

Obrigado.

[4] Comentário enviado por macvitor em 10/08/2010 - 11:44h

Como podemos saber se o Snort está rodando e funcionando perfeitamente? Em http://localhost/snort está tudo zerado(TCP, UDP, etc.) e ao usar o comando ps auwx |grep snort não retorna nada.

[5] Comentário enviado por epresman em 19/10/2010 - 15:39h

uso a distribuicao brasilfw e estoun com dificuldades para inslatar o snort
como e quem poderia me ajudar?

[6] Comentário enviado por removido em 21/10/2010 - 17:58h

Não consigo entrar na interface WEB do BASE, quando digito o endereço o navegador me dá opção de fazer o download:

Arquivo: PHTML
Site: 192.168.0.146

Esse endereço IP é o da minha eth0. Na instalação não surgiu nenhum erro. Foi tudo certinho. O apache está rodando perfeitamente. Podem me ajudar?

[7] Comentário enviado por douglas_dksh em 26/10/2010 - 15:28h

Mande instalar este pacote para corrigir o erro que acontece quando é enviado o email.

# pear install Net_SMTP
# pear install --alldeps mail




Douglas

[8] Comentário enviado por bvcoelho em 10/11/2010 - 10:31h

Estou com o mesmo problema do m1n3ro, quando eu entro no site "http://ip_servidor/snort " em vez de entrar na página de configuração ele manda salvar a pasta do snort.
Todos os outros passos foram seguidos sem nenhum erro. Sera que alguem pode da uma luz?

[9] Comentário enviado por bvcoelho em 10/11/2010 - 10:41h

Opa problema resolvido nada como um reboot system. :)

[10] Comentário enviado por analistaslack em 29/11/2010 - 19:26h

Show de bola o tutorial, está rodando perfeitamente no meu Ubuntu 10.04 Server 64 bits. Valeu pelo tutorial!!!!

[11] Comentário enviado por fabriciorodrigo em 25/02/2011 - 16:51h

Estou querendo implementar um ips .. porém, gostaria de saber se existem outros além do snort/guardian ...
achei o guardian descontinuado ... (pode ter sido impressão)
Pesquisando encontrei o HLBR ... pórem não consegui definir qual a melhor solução ...

Gostaria de ter sua opnião sobre ...


Desde já agradeço.
Parabéns pelo artigo.

[12] Comentário enviado por douglas_dksh em 25/02/2011 - 17:06h

OpenVas, Fail2ban dai vc tem que ver qual vai se adptar melhor ao seu ambiente.
O guardian so faz os bloqueios.
o que vc pode fazer é ler os arquivos de log do snort com algum script e ir bloqueando ou desbloqueando ips e por ai vai.

[13] Comentário enviado por clebioms em 31/03/2011 - 17:47h

Ola, bem seguindo seu tutorial na parte que segue

# pear upgrade PEAR
# pear install Mail Mail_Mime Image_Color Log Numbers_Roman
# pear install channel://pear.php.net/Numbers_Words-0.16.1
# pear install Image_Graph-alpha
# pear install Image_Canvas-alpha

quando digito o comando pear install Image_Canvas-alpha recebe o mensagem abaixo:

pear/Image_Canvas is already installed and is the same as the released version 0.3.3
install failed

Poderia me ajudar

Cordialmente.

Clebio

[14] Comentário enviado por ulisses.santos em 26/05/2011 - 17:14h

amigo estou com um erro parecido aqui quando colocao o ip 192.168.7.222/snort
aparece abrir ou salvar um arquivo, instalei o
pear install Net_SMTP

mas o outro da este erro
pear install --alldeps mail
pear/mail is already installed and is the same as the released version 1.2.0
install failed


alguma luz, desde ja agradeço e um dos melhores tutoriais que achei para ids.

[15] Comentário enviado por douglas_dksh em 26/05/2011 - 17:25h

Cara quando acontece a primeira situação é quando o apache ainda não encontrou o módulo do php, como a página do base é em php ele te da a opção de abrir ou salvar o arquivo por que o apache ainda não consegue enterpretar o php.
Então para resolver isso só reinicie o seu apache, e se continuar tente abrir em outro navegador.
O segundo erro a resposta esta na saída dele o per/mail já esta instalado, por isso que apareceu a mensagem.

To colocando os materiais agora atualizados no meu site www.gmsecurity.com.br dai la vou conseguir atualizar quando precisar algo.

Douglas.


[16] Comentário enviado por jpfontoura em 28/06/2011 - 17:18h

Amigo instalei tudo conforme o tutorial, mas o base não mostra nada fica tudo zero, mas no log do snort tem as tentativas, pode me dar uma ajuda?

[17] Comentário enviado por renatotec em 01/07/2011 - 10:55h

Bom dia Douglas...parabéns pelo TUTO!

Estou com uma dificuldade, tá tudo funcionando, só que o snort não está mais gravando informações no /var/log/snort/alert, grava apenas na base de dados, sendo assim o guardin não funciona.

[18] Comentário enviado por tiagotrindade em 09/12/2011 - 08:58h

Estou com o mesmo problema do renato...

o Guardian não ta bloqueando nada :|

[19] Comentário enviado por douglas_dksh em 09/12/2011 - 10:28h

E ai galera.

Os logs do snort mudaram nas novas versões com isso o guardian não consegue ler mais o tipo de log.

o que pode ser feito é um script para ler os logs do banco de dados e gerar as regras.

Olhe em http://www.douglas.wiki.br/doku.php?id=snort_barnyard2_snorby_debian_squeeze a implementação do Snort mudou.

Até o momento eu não achei nenhuma ferramenta para efetuar o bloqueio, com isso tive que desenvolver a minha propria.

Douglas.

[20] Comentário enviado por alex_arantes8 em 23/04/2012 - 16:43h

Ola, bem seguindo seu tutorial na parte que segue

# pear upgrade PEAR
# pear install Mail Mail_Mime Image_Color Log Numbers_Roman
# pear install channel://pear.php.net/Numbers_Words-0.16.1
# pear install Image_Graph-alpha
# pear install Image_Canvas-alpha

quando digito o comando pear install Image_Canvas-alpha recebe o mensagem abaixo:

pear/Image_Canvas is already installed and is the same as the released version 0.3.3
install failed

Isso tem PROBLEMA esse erro acima como resolver.grato
alexarantesti@gmail.com

[21] Comentário enviado por berneira em 17/10/2012 - 13:37h


Estou com esse problema ao Abrir o Base


Warning: strftime() [function.strftime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/Sao_Paulo' for 'BRT/-3.0/no DST' instead in /var/www/snort/base_main.php on line 271
Queried on : Wed October 17, 2012 13:36:09
Database: snort@localhost (Schema Version: 107)
Time Window: no alerts detected

[22] Comentário enviado por andyblessing em 14/09/2014 - 12:19h

Olá
muito bom tutorial
estou com um problema na parte de configurar acessei

http://192.168.0.1/snort/base-1.4.5/setup/setup2.php?action=check

coloco as configuraçoes e minha senha mas aparece o seguinte erro
Database connection failed!
Please try again!

Pode me ajudar
agradeço

[23] Comentário enviado por jmsb em 19/06/2015 - 18:58h

ola , vc poderia ajudar com o guardian , ele não esta executando da essa mensagem, com isso não gera as logs
OS shows Linux
Warning! Logfile is not writeable! Engaging debug mode, output to STDOUT
eth3 address and interface are: 192.168.2.201
Loaded 1 addresses from /etc/guardian.ignore
Running in debug mode..


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts