segunda-feira, 30 de janeiro de 2012

Introdução ao Snort - Serie Snortando (Parte 1)

        Muitas vezes vejo pessoas seguindo receitas de bolo de como instalar o snort (não somente o snort mas varias ferramentas) sem ao menos saber exato o funcionamento do mesmo. Quando pensei na serie Snortando meu intuito é explicar como funciona o Snort no geral bem como explicar mais em detalhes funcionalidades especificas. Já me falaram para escrever um livro sobre snort mas infelizmente não acho que o snort tem evoluido muito rapidamente e o livro quando lançado estarei totalmente desatualizado, ou seja, fazendo algo online acredito ser a melhor opção visto que posso atualizar os post das partes atualizadas bem como adicionar capitulos =)

O que é o Snort ?

         É um sistema de detecção de Intrusos de Redes ( NIDS - Network Intrusion Detection System) no qual ele visa monitora seu tráfego da rede em algum segmento especifico ou geral . O snort foi criado por Marty Roesch em 1998/1999 e desde então com o apoio da comunidade sempre teve grande crescimento. Atualmente a Sourcefire é quem realmente desenvolve, empresa criada pelo Roesch onde possui "versões comerciais do snort".

        O funcionamento do snort bem resumidamente é dividido fases, essas quais teremos os post que voce pode ver a agenda http://spookerlabs.blogspot.com/2012/01/agenda-da-serie-snortando.html .

A figura abaixo ilustra o fluxo da aquisição da informação até a geração ou não de um alerta:



- Caputra de Pacotes
         Atualmente o snort utiliza para aquisição de pacotes o DAQ (que iremos falar no próximo post da série) . Em resumo existem algumas formas de replicar o tráfego da sua rede como Network Tap , Port Mirror e Inline . Comentarei melhor sobre eles e como funcionam no post do DAQ. É importante salientar que onde se coloca o IDS e aquisição dos pacotes é o primeiro passo para o sucesso da implantação da ferramenta.
 
- Pré-Processadores
 
          Os pre – processadores sao responsáveis por remontar os pacotes, ver possiveis codificacoes como unicode , entre outras tarefas. O Snort possui dezenas deles (por volta de 22 atualmente) como http_inspec, stream5, frag3, dcerpc2, ip_reputation entre outros diversos. Por exemplo se fizermos ums requisicao com \\ ou com os famosos ataques de unicode , ou algo do genero, para tentar “enganar” o ids, esses pre processadores remontam o pacote da maneira correta, para diminuir falso-negativos na hora da comparacao com as assinaturas,e dar mais confiabilidade ao IDS.
 
Falso-negativo – é quando um pacote passa sem ser notificado pelo IDS , o IDS pensaque o pacote é fluxo normal, na minha opinião pior que os falsos-positivos.
 
Falso-positivo – é quando o pacote é notificado como intrusivo, mas na verdade ésomente um falso alerta, alarme falso. O grande problema de muito falso positivo é a ferramenta perder a credibilidade, é a velha história do alarme do carro que dispara muito e quando realmente for um furto voce nao vai acreditar que estão levando seu carro .


- Sistema de Deteção / Assinaturas
        
        Aqui é onde entram as regras que compramos, baixamos ou criamos. Nessa parte o payload já estara separado do resto do pacote e normalizado para comparar com as regras. Teremos bastante posts e laboratorios durante a serie na parte de criação de regras mas como citado temos que fazer o payload chegar corretamente ao Engine de Detecção para evitar os falsos-negativos em especial por isso a importancia da configuração de forma correta do snort.

- Plugins de Saída (Output)

        Os plugins de saida sao ferramentas que podem ser utilizadas para gerar alertas, logs
ou para tomar algumas medidas em imediato.
 
Em resumo esse é o funcinoamento do snort de um modo bem resumido e que iremos explorar de modo bem especifico cada parte durante nossa serie.
Esse post é bem introdutório visto que a idéia da seria Snortando é atingir desde usuários que nunca usaram o snort bem como usuário avançados que certamente so aproveitarão mais os posts futuros.

Mais informações existem um post no blog da SegInfo bem mais detalhado que voce podera ler em http://www.seginfo.com.br/sistemas-de-deteccao-de-intrusoes-ids-intrusion-detection-systems-usando-unicamente-softwares-open-source/

Happy Snorting!

Rodrigo "Sp0oKeR" Montoro

6 comentários:

Anônimo disse...

SpOoKeR qual o melhor lugar de se colocar um IDS no perimetro da rede, era interassante um post sobre esse assunto, muitos sysadmin tem essa dúvida, e o que seria um ids/ips inline?

Rodrigo Sp0oKeR Montoro disse...

No próximo post sobre o DAQ eu comentarei sobre posicionamentos , pelo menos o básico que acho que já ajudara bastante =)!

Anônimo disse...

Vc vai usar nos labs VM's, para prova de conceito, se sim, quais? E se vai te um post com a instalação do Snort. Quero montar para replicar os ambientes.

Gustavo Roberto disse...

Fazendo adendo a pergunta acima do Anônimo, quais as ferramentas que vai usar para prova de conceito e fazer a provar do IDS e mitigação de falsos positivos. E sobre a instalação do snort, qual SO vai usar?

Muito didático a explicação, parabéns.

Fagner Alex disse...

Ótimo trabalho, espero que continue. Estarei acompanhando e fazer os laboratorios.

Bruno Linhares disse...

Muito bacana. Devidamente didático.
Já que vai ser um conteúdo detalhista mas não vai virar livro, seria possível disponibilizar em PDF também, a cada postagem?