Para quem não leu postamos na Parte 1 da Serie Snortando (
http://spookerlabs.blogspot.com/2012/01/introducao-ao-snort-serie-snortando.html ) a introdução ao Snort, como ele funciona . A primeira parte para o bom funcionamento do mesmo iniciasse com a aquisicão de dados e é aqui que entra o DAQ ( Data AcQuisition library ).
O DAQ foi adicionado ao Snort a partir da versão 2.9, ou seja, é algo relativamente novo. Um dos pontos importantes para melhor aquisição de dados é o posicionamento do seu Sensor e por isso antes de falar do DAQ comentarei o básico de posicionamento de um sensor.
Inicialmente temos que fazer algumas perguntas para visualizar melhor o tráfego:
1-) O que quero monitorar ?
Essa pergunta parece lógica mas muita gente não sabe o que realmente quer proteger ou monitorar. É de extrema importancia saber o que queremos, um sensor dificilmente conseguira monitar TUDO que voce quer, ou seja, se não tem opção para multiplos sensores foque no que achar importante (se não sabe exatamente melhor entender mais da sua rede =) ).
2-) Qual a vazão da minha rede ?
Outro questionamento importante é o tipo de tráfego que quer monitorar para saber escolher melhor um hardware. Não existe resposta pronta para a famosa pergunta "Uma maquina com X de memoria, N CPUs e Disco Rigido de Y Bytes é suficiente?" . Logicamente em um hardware convencional voce nunca conseguira a performance de appliance dedicados, um snort bem configurado em uma boa máquina e com tuning bem feito dificilmente conseguira monitrar 1 gbps .
Na parte que falaremos do pre-processador de performance ensinaremos como analisar se esta dropando pacotes etc etc =).
3-) Quais protocolos quero monitorar ?
É muito importante saber os protocolos que passam e são importantes monitorar para não desperdiçar ciclos do snort com algo que não precisara monitorar ou carregar em memoria regras que não serão utilizadas. Lembre-se que nem sempre quanto mais regras melhor é, isso pode ser totalmente inverso =)
4-) Quero uma proteção imediata ou somente monitoramento ?
Aqui entra a parte do posicionamento . Existem os dois tipos ou sopinha de letras mais clássico que seriam:
IDS -Intrusion Detection System no qual é um sistema passivo recebendo copia do tráfego e fazendo analise. Na pratica se o cara precisa de somente 1 pacote para exploitar uma falha por exemplo esse sistema te alertara mas a maquina já tera sido exploitada. Logicamente voce pode ter uma reação ao ataque com sistemas que monitoram os logs do snort (OSSEC por exemplo) bem como o proprio snort enviar pacotes para encerramento da conexão (entraremos em detalhes em posts futuros na parte de escrita de regras).
OBS: imagem meramente ilustrativa e simplificada
IPS - Intrusion Prevention System no qual é um sistema ativo. Ele fica Inline na rede, dropando os pacotes em tempo real antes dos mesmo chegarem a maquina alvo. A vantagem é que ele protege mais visto que nao deixara o pacote malicioso chegar na maquina porem como esse tipo de sistema tende a gerar falsos-positivos voce podera bloquear muitas conexões validas que pode ser clientes .
OBS: imagem meramente ilustrativa e simplificada
5-) Meus equipamentos atuais me possibilitam fazer o que quero ?
Existem alguns meios de se copiar o tráfego da rede para o seu sensor nos quais os mais conhecidos:
- Sensor Inline
Inline não quer dizer que voce está bloqueando o tráfego, voce pode colocar a maquina inline na sua rede mas usá-la no modo passivo (IDS). Um exemplo simples seria uma maquina com duas placas de rede em bridge com o snort monitorando as interfaces. Veja a imagem do IPS acima, o posicionamento seria igual porém sem interferir no tráfego.
- Port Mirroring (Espelhamento de Portas) Switch
Nem todo switch tem essa opção mas a grande maioria tem que nada mais é que copiar o tráfego de todas as portas para uma porta de espelhamento no qual voce plugara seu sensor. Eu não sou um grande fã de utilizar esse tipo de solução visto que muitas vezes ela sobrecarrega a CPU do switch bem como essa função é "desabilitada" quando o switch tambem fica com alto consumo de CPU por algum motivo.
Como podem ver na imagem de forma BEM resumida todo o tráfego é replicado para a porta espelhada (no caso porta 1 da imagem - fonte: http://www.planex.net ).
- Network TAP
Pra mim é a melhor solução quando vamos implementar um sensor. Existem dezenas de tipos de Netwrok Tap bem como varios preços. Os mais simples apenas copiam o tráfego (vide imagem ) até soluções mais avançadas que voce já filtra o que quer enviar para as portas monitoradas ou com diversas portas onde voce pode colocar outros devices que precisam da copia do tráfego. Abaixo uma imagem para ilustrar o que seria um TAP (retirado do site da barracuda, imagem simples e facil entendimento). Um bom site com vários modelos e que totalmente recomendo (
http://netoptics.com/ )
6-) Quantos sensores terei na rede ?
Como citado antes é importante saber qual será seu budget pois voce TEM que saber FOCAR nas proteções que atendam sua necessidade e não por um sensor para ser uma maquina de gerar alertas e achar que como gera alertas é a oitava maravilha do mundo . Planejamento mesmo que for iniciar com um só mas se pretende aumentar é essencial. Pense tambem num gerenciamento centralizado dos alertas, onde estará sua base de dados (e como ira protege-la tambem) . Outro ponto é performance, lembre que se sua rede tem uma vazão muito grande talvez para um unico segmento tera que colocar mais de 1 sensor com diferentes regras.
Em resumo pense nas questões acimas e muitas outras coisas que pode ser importante antes de instalar seu snort ou mesmo comprar um appliance de alguns milhares de dolares =).
O DAQ, como ele funciona ?
O DAQ foi adicionado no snort 2.9 . Uma das grandes vantagens é a facilidade de migrar seu sensor de modo passivo (IDS) para modo ativo/intrusivo (IPS) sem a necessidade de recompilar o snort como se havia antes. Para utilizá-lo voce deve instalar o tarball do mesmo .
O pessoal do VRT fez um ótimo post dando alguns detalhes de como funciona, como instalar e configurar o mesmo no seu blog (
http://vrt-blog.snort.org/2010/08/snort-29-essentials-daq.html ) e não vejo necessidade de reinventar a roda e escrever o que já está lá. Caso tenha alguma dúvida fique a vontade para postar nos comentários =)
O que vale frisar que o DAQ sendo uma evolução de aquisição de pacotes de nada terá proveito se o posicionamento do sensor for erroneo.
Mais informações leia o README.daq dentro do docs/ do tarball do snort.
Até a parte 3 que virá provavelmente após o Carnaval (Se o Carnaval não estiver dos melhores durante o carnaval eu faço e publico hehehe)
Dúvidas, sugestões , criticas e elogios podem usar os comentários =)!
Happy Snorting!
Rodrigo "Sp0oKeR" Montoro