Agora que já ficou claro sobre o que é um IDS, falarei sobre um IDS em específico, apresento aqui... o
SNORT!
Ferramenta do tipo
NIDS, ou seja, é um IDS que opera na rede, é open source, leve possui o maior registro de assinaturas dentre os demais IDS. O código fonte do programa é otimizado, feito em módulos na linguagem de programação C. Sua documentação é de domínio público, sofre atualizações constantemente, opera em redes TCP/IP e se manifesta de 3 formas distintas:
- Sniffer: simplesmente captura os pacotes e os mostra na tela.
- Packet Logger: este módulo registra os pacotes capturados no disco rígido.
- Network Intrusion Detection System: esta ação consegue analisar o tráfego mais as regras definidas pelo usuário e tomar atitudes de acordo com a conveniência e as regras estipuladas.
Cito aqui os pontos fortes 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.
Cito agora os pontos fracos.
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.
O Snort habilita a placa de rede para o módulo promíscuo, aceitando todas os pacotes e capturando-os, sua arquitetura funciona em 3 etapas que são:
- decodificador de pacotes, que é organizado em torno da arquitetura de protocolos.
- arquitetura de detecção, basicamente formada pelo Chain Headers (Cabeçalho de Regra) e Chain Options (Cabeçalho de Opções). O Chain Headers possui os atributos normais a uma regra e o Chain Options contém os padrões de ataques a serem analisados nos pacotes capturados.
- arquitetura de armazenamento de regras - é examinada pela arquitetura de detecção de forma recursiva, para cada pacote de dados capturado. Quando o cabeçalho da regra for idêntico ao cabeçalho do pacote capturado, os dados contidos no pacote são comparados com o cabeçalho das opções da regra. Se a ocorrência de um ataque for identificada, uma ação específica definida na regra é disparada.
O Snort é compatível com praticamente todos os sistemas operacionais mais conhecidos, segue a lista:
Linux, OpenBSD, FreeBSD, NetBSD, Solaris, SunOS, HP-UX, AIX, IRIX, Tru64, MACOS, Win32.
O Snort tem suporte a redes Ethernet, SLIP, PPP (Point to Point Protocol) e está sendo desenvolvido o módulo ATM (Assinchronous Transfer Mode). Foi desenvolvido a partir da biblioteca Libpcap.
O log que o Snort gera é de difícil compreensão e alguns usuários tem dificuldade em entendê-lo, por esse motivo criaram uma ferramenta com interface gráfica via GUI para facilitar para o usuário. Estas ferramentas são baixadas separadamente e algumas delas podem ser encontradas no
site do Snort.
Confiram a seguir alguns comandos do Snort.