|
O Snort é um aplicativo que habilita a placa de rede
do computador onde foi configurado, para modo promíscuo,
ou seja, permite que todos os pacotes que trafegam pelo segmento
de rede daquela máquina sejam capturados.
Através de regras que são as assinaturas conhecidas
dos ataques, é possível descobrir uma variedade
de ataques e sondagens, como buffer overflow , port scans,
ataques CGI (Common Gateway Interface), verificação
de SMB (Server Message Block).O Snort com capacidade de alerta
em tempo real, pode enviar os alertas a um arquivo de alerta
individual ou a um meio externo como o WinPopUp (utilitário
responsável por mandar mensagens de uma máquina
para outra em uma rede).
A engenharia de detecção é programada
usando um idioma simples que descreve a programação
de testes de pacote e ações. A facilidade de
uso simplifica e agiliza o desenvolvimento de regras de descoberta
de novos ataques. A arquitetura do Snort enfoca o desempenho,
simplicidade e flexibilidade. Há três subsistemas
primários que o compõem:
Estes subsistemas são desenvolvidos sobre a biblioteca
Libpcap [J+91]. Esta biblioteca oferece uma API (Aplication
Program Interface) independente do sistema operacional que
permite as aplicações capturarem pacotes de
uma rede para gravá-los em um arquivo, e também
ler arquivos contendo capturas gravadas. A configuração
do programa, analise do arquivo de regras e geração
dos dados estruturados acontece antes da seção
de captura ser inicializada.
O decodificador
de pacotes
A arquitetura de decodificação é organizada
ao redor das camadas da pilha protocolar presentes e suportadas
pelo protocolo TCP/IP. Estas rotinas de decodificação
são chamadas ordenadamente pela pilha protocolar, do
nível de dados, subindo para o nível de transporte
terminando finalmente no nível de aplicação.
A velocidade é enfatizada, e a maioria das funcionalidades
do decodificador consistem na colocação de ponteiros
nos pacotes de dados, para mais tarde serem analisados pela
arquitetura de detecção. A ferramenta Snort
provê capacidades para decodificar pacotes em redes
Ethernet, SLIP (Serial Line Internet Protocol), PPP (Point
to Point Protocol), sendo que o suporte a ATM (Asynchronous
Transfer Mode) está sendo desenvolvido.
A arquitetura
de detecção
A ferramenta Snort mantém suas regras de descoberta
de intrusão em duas listas denominadas Chain Headers
(Cabeçalho da Regra) e Chain Options (Cabeçalho
de Opções). Chain Headers contém os atributos
comuns de uma regra, e Chain Options armazena os padrões
de ataque que serão pesquisados dentro dos pacotes
capturados e as ações que serão tomadas
caso um ataque seja diagnosticado.
Arquitetura de armazenamento de regras
A 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
especifica definida na regra é disparada.
Uma revisão da arquitetura de descoberta está
atualmente em planejamento e em fase de desenvolvimento. A
próxima versão da arquitetura incluirá
a capacidade para que os usuários possam escrever e
distribuir módulos compatíveis com as palavras
chaves da linguagem da arquitetura de detecção.
Isto permitirá a customização do programa
para situações específicas.
O subsistema de
login/alerta
O subsistema de login e alerta é selecionado em tempo
real com comandos condicionais de interrupção.
Há atualmente três opções de login
e cinco de alerta As opções de login podem ser
fixadas para armazenar pacotes decodificados, em formato legível
para o ser humano.
O formato decodificado de login permite análise rápida
de dados armazenados pelo sistema. Os login podem ser deixados
parcialmente incompletos para agilizar a performance. O administrador
pode ser avisado de novos alertas através do envio
de mensagem ao syslog (programa responsável por gerar
e armazenar logs no Linux/Unix) ou armazenar em um arquivo
texto que pode ser utilizado em multi-plataformas.
Existem três opções disponíveis
para criação de arquivos de alerta. A primeira
opção possibilita a criação de
um arquivo texto com informações completas do
alerta, registrando a mensagem de alerta e a informação
de cabeçalho de pacote fornecido pelo protocolo do
nível de transporte. A segunda opção
cria um arquivo que registra um subconjunto condensado de
informações, permitindo maior desempenho que
a primeira opção. A última opção
é utilizada para desconsiderar alertas e é extremamente
útil quando os registros são desnecessários
ou impróprios. Esta situação ocorre quando
a rede está passando por testes de penetração.
|