Melhorando a segurança do Firewall com Bridges usando Snort_Inline no Debian Etch

A segurança é algo preocupante para os administradores de sistema. Estamos acostumados a ver aquele firewall, que está ali na porta de saída da sua rede, apenas servindo de gateway para a internet e deixando trafegar dados sem qualquer controle. Vamos mostrar como melhorar o firewall bridge que criamos no outro artigo utilizando o Snort_Inline.

[ Hits: 36.933 ]

Por: Brivaldo Alves da Silva Jr em 06/06/2007 | Blog: http://blog.bibliotecaunix.org/


Configurando o Snort_Inline



Precisamos agora terminar de configurar nosso Snort para que ele realmente se torne inline, primeiro vamos ao diretório onde compilamos o código:

# cd 2.6.1.4/etc
# cp *.map /etc/snort/rules/
# cp generators *.conf *.config /etc/snort/


E mande sobrescrever todos eles. Crie o diretório para os logs:

# mkdir /var/log/snort

E finalmente para executar o Snort em modo inline:

# iptables -t filter -A FORWARD -j QUEUE
# snort_inline -D -Q -N -c /etc/snort/rules/snort.conf -l /var/log/snort/


Primeiro jogamos todo o tráfego da chain FORWARD da tabela filter para o destino QUEUE no espaço de usuário (user space), onde o snort_inline, vai ficar ''escutando'' e como poderíamos dizer, decidindo se o tráfego deve ou não ser aceito baseado nas regras de configuração contidas no arquivo /etc/snor/snort.conf.

Conclusão

Uma dica importante é a de sempre atualizar as rules (regras) do Snort usando ferramentas como o oinkmaster (que por acaso já tem pacote pré-compilado no Debian Etch), primeiro para melhorar a eficiência e depois para diminuir os falsos-positivos. Vale lembrar que dar uma olhada no arquivo de configuração é realmente importante e que toda regra do iptables que você queira que seja analisada pelo snort_inline, deve ser colocada na QUEUE.

Para acompanhar a vida deste artigo acesse www.debian-ms.org.

Até a próxima.

Página anterior    

Páginas do artigo
   1. Começando
   2. Tirando dúvidas
   3. Pacotes necessários
   4. Compilando através do código fonte
   5. Configurando o Snort_Inline
Outros artigos deste autor

Mantendo seus dados em segurança com o EncFS

Configurando o Stardict com dicionário do Babylon

Controle de banda de domínios virtuais no Debian Etch

Criando um Firewall transparente com Bridges no Debian Etch

Leitura recomendada

Autenticação por desafio e resposta no SSH

Personalizando o HLBR - IPS invisível

Técnicas forenses para identificação da invasão e do invasor em sistemas Unix/Linux através do SSH (parte 1)

Melhorando o nível de segurança com chflags

Nikto - Tutorial básico e avançado

  
Comentários
[1] Comentário enviado por y2h4ck em 06/06/2007 - 09:07h

Na verdade execução de um sistema de IDS executando no mesmo hardware do Firewall é algo um pouco arriscado, afinal um firewall deve ser um host onde não executem outros serviços alem do mesmo. O uso de um IDS pode produzir um uso excessivo dos recursos físico, e, como bem sabemos o Snort o faz.

Em um caso de um ataque massivo e persistente, como por exemplo um atacante realizando um probe em cima de um serviço publicado através deste firewall, o snort geraria uma quantidade de alertas mto grande, e os forks poderiam ocasionar um DoS no serviço de Gateway.

O recomendado e ter uma placa no firewall apenas para uso do IDS, esta placa ficaria no firewall em modo promiscuo, e assim o IDS ligado através de um cabo cross, poderia analisar de forma paralela os pacotes que trafegam na rede.

Como forma de IPS poderiamos utilizar o Iptables utilizando o fwsnort que gera regras para o firewall com base nas regras de Snort, sendo assim assinaturas conhecidas de ataques críticos podem ser rejeitadas antes de atravessar a rede.

Abraços.

Anderson

[2] Comentário enviado por condector em 08/06/2007 - 17:13h

É por isso que não usamos um IDS e sim um IPS... concordo contigo, mas a idéia deste artigo é integrar o snort_inline ao nosso firewall por bridges, ou seja, invisível na rede, o que torna um ataque em cima do firewall impossível, pois ele não tem IP na rede.

E é exatamente isso que estou dizendo no artigo... usando um firewall bridge como descrevi é possível usar o snort para bloquear os ataques muito antes de chegarem na rede... acho que você não uniu este artigo ao meu anterior sobre firewall bridge. Mesmo assim, se for pensar somente em IDS você está correto, mas no que eu proponho fazer, acredito que você tenha confundido algumas coisas.

Abraços,
Brivaldo Jr

[3] Comentário enviado por condector em 08/06/2007 - 17:13h

Ta bom vai, impossível é d+ pra quem conhece redes e softwares em geral, mas pelo menos improvável.

[4] Comentário enviado por y2h4ck em 09/06/2007 - 13:03h

Veja o seguinte, supomos que o atacante faça um packte injection na sua rede enviando fora do header do pacote, um local onde é considerado um uso-abusivo em protocolos de transporte convencionais, uma string do tipo:

"exe?+-+-+-+-+-+-+-+-+-+-+-+-+-+-+",

Seu IPS vai disparar um alerta contra o host e vai bloquá-lo certo ? Interessante, porém como sabemos um protocolo de camada mais baixo como por exemplo transporte, pode ser encapsulado facilmente dentro de um protocolo de camada mais alta "Aplicação" neste caso específico, sendo assim, poderiamos encapsular um DoS usando por exemplo o Velho UDP/Pong, onde enviamos um UDP na porta 65335 e um na 1024, fazendo seu IPS achar que se trata de um Scan Nmap usando o método de Varredura UDP.

Se colocarmos isto dentro de um packet generator como o yersinia ou nemesis por exemplo, podemos gerar uma repetição de forma que, seu IPS irá gerar 3 alertas diferentes para o mesmo pacote.
- 1 para o valor do payload onde setamos o string malicioso
- 1 para o "Nmap Scan"
- 1 para o Undefined UDP Packet (pacote UDP com conteúdo indefinido).


Agora imagine esta repetição acontecendo por meia hora seguida, com um link "generoso" de 512 kbps eu conseguiria gerar em torno de 16.000 alertas por segundo no seu firewall, e minha experiencia com o Snort diz que ... com um fluxo alto assim de pacotes nos pre-processadores ele aumenta consideravelmente o uso de recursos do Sistema.


Pensando pelo ambito que você está tratando de uma integração de seu host com o Iptables posso citar mais uma infinidade de falhas de segurança que podem ocorrer deste derivado de IDS + Firewall, porém não vem ao caso.

Não me confundi não, conheço muito bem oque é um IDS e um IPS :)

Não estou desmerecendo sua solução, apenas estou apontando um ponto falho que deve ser considerado no momento que se implementa algo deste tipo :)

Abraços e boa sorte.

[5] Comentário enviado por condector em 06/09/2007 - 11:29h

Bem, vendo por esse lado realmente você está correto. Quando falei da confusão foi porque a sua primeira resposta me deixou confuso no que você queria dizer.

A idéia de usar um IPS num bridge transparente evita em parte este problema que você falou pois você não sabe que tem um firewall no meio do caminho pois nem IP ele possui... sendo assim fica MUITO improvável porque você teria que conhecer a estrutura antes de ataca-lá. Seu pacote malicioso seria bloqueado e você não saberia porque, até porque nem o NMAP conseguiria definir quem ou quando foi bloqueado.

Este artigo como disse é um completemento ao firewall bridge invisível que descrevi em outro artigo aqui no VOL

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

Não Conheço Muito o SNORT mas Ajudou muito este Artigo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts