O Site do SNORT
http://www.snort.org, está de cara nova.
A versão mais atual do Snort é v2.3.3 e você pode fazer o download em
http://www.snort.org/dl/ e sua documentação encontra-se em http://www.snort.org/docs/.
Snort é uma ferramenta grátis distribuído sob regulamentos do
GNU (GPL - General Public License). O Snort é considerado uma ferramenta avançada para IDS (Intrusion Detection System) capaz de fazer análise de trafego em tempo real. Ele também faz análise de protocolos, examina o payload dos pacotes recolhidos da rede, procura por palavras chaves e pode ser usado para detectar uma grande variedade de ataques e problemas de redes tais como: buffer overflow, sthealth port scans, CGI ataques, SMB probes, tentativas de OS fingerprinting e outros.
Hoje o SNORT está disponível tanto para Linux como para Windows (necessitando para isso instalar o WinPcap v3.0), por tanto é uma excelente ferramenta de segurança para se ter no computador.
Para quem não sabe o que é um IDS e como funciona. Existem diversos tipos de ferramentas IDS para diferentes plataformas, porém as ferramentas IDS trabalham basicamente de modo parecido, ou seja, analisando os pacotes que trafegam na rede e comparando-os com assinaturas já prontas de ataques, identificando-os de forma fácil e precisa qualquer tipo de anomalia ou ataque que possa vir a ocorrer em sua rede/computador.
Uma ferramenta IDS serve basicamente para nos trazer informações sobre nossa rede, informações como:
- Quantas tentativas de ataques sofremos por dia;
- Qual tipo de ataque foi usado;
- Qual a origem dos ataques;
Enfim, a partir dele, você vai tomar conhecimento do que realmente se passa em sua rede e em casos extremos, poderá tomar as medidas cabíveis para tentar solucionar qualquer problema.
As principais funções do Snort são: Pacote Sniffer como TCPdump, logar pacotes e um completo serviço de IDS (Intrusion Detection System).
*Snort usa uma flexível linguagem de regras (o usuário pode criar outras regras/assinaturas para adequar as suas necessidades) para descrever qual tráfego será coletado ou não.
Exemplos:
Texto mostra um típico pacote de telnet - Snort em modo Sniffer --------------------------------------------------------------------------
20:59:49.153313 0:10:4B:D:A9:66 -> 0:60:97:7:C2:8E type:0x800 len:0x7D
192.168.1.3:23 -> 192.168.1.4:1031 TCP TTL:64 TOS:0x10 DF
***PA* Seq: 0xDF4A6536 Ack: 0xB3A6FD01 Win: 0x446A
FF FA 22 03 03 E2 03 04 82 0F 07 E2 1C 08 82 04 ..".............
09 C2 1A 0A 82 7F 0B 82 15 0F 82 11 10 82 13 FF ................
F0 0D 0A 46 72 65 65 42 53 44 20 28 65 6C 72 69 ...FreeBSD (elri
63 2E 68 6F 6D 65 2E 6E 65 74 29 20 28 74 74 79 c.home.net) (tty
70 30 29 0D 0A 0D 0A p0)....
---------------------------------------------------------------------------
Uma simples regra para registrar o trafego chegando na porta 79 para classe IP 10.1.1.0/24---------------------------------------------------------------------------
log tcp any any -> 10.1.1.0/24 79
---------------------------------------------------------------------------
Regra para alertar sobre tentativa de Buffer Overflow. ---------------------------------------------------------------------------
alert tcp any any -> 192.168.1.0/24 143 (content:"|E8C0 FFFF FF|/bin/sh"; msg:"New IMAP Buffer Overflow detected!";)
---------------------------------------------------------------------------
ComandosSniffer Modesnort -v
# mostra somente os cabeçalhos dos pacote TCP/IP na tela.
snort -vd
# mostra somente os cabeçalhos do IP, TCP, UDP e ICMP.
snort –vde
# mostra os todos os cabeçalhos e os dados contidos neles também.
Packet Logger Modesnort -dev -l /dirdolog//log.txt
# o snort gera um arquivo chamado log.txt de todos os pacotes visto por ele. Considerando que o diretório "dirdolog" já existe, caso contrario deve-se cria-lo.
snort -dev -l ./log -h 192.168.1.0/24
# faz com que o snort capture cabeçalhos TCP/IP, data link e dados relacionados ao host 192.168.1.0 (Classe C) e armazene o resultado no subdiretório log. OBS. os dados recolhidos serão armazenado em arquivos correspondente/nomeado com cada endereço IP capturado.
snort -l ./log –b
# snort executado com a opção (-b) faz a captura total dos pacotes ao invés de capturar somente cabeçalhos ou somente dados.
snort -dv -r packet.log
# uma vez criado o arquivo com a opção (-b), pode-se usar qualquer sniffer que suporta formato binário tcpdump tais como, snort, tcpdump ou Ethereal para manipular os dados recolhidos.
snort -dvr packet.log icmp
# de posse do arquivo binário gerado pela opção (-b), pode-se então criar novas filtragens do tipo BPF interface. No nosso exemplo estamos fazendo somente a filtragem dos pacotes de ICMP contido no arquivo binário.
Network Intrusion Detection Mode - (NIDS)snort -b -A fast -c snort.conf
snort -dev -l ./log -h 192.168.1.0/24 -c snort.conf
# snort.conf é o nome do arquivo de configuração. Este arquivo contem as regras e ações a serem tomadas para cada pacote recolhido e confrontado com ele. O resultado do NIDS será gerado no diretório /var/log/snort, ou outro diretório previamente estipulado.
O arquivo snort.conf deve estar presente no diretório corrente ou deve ser digitado o diretório onde ele se encontra.
A opção -v acima faz com que o snort mostre os resultados também no monitor. Isso causa com que o snort fique um pouco lento podendo ate perder alguns pacotes por causa disso.A opção
-e para capturar cabeçalhos do data link layer as vezes são tão importante podendo ser emitido.
snort -d -h 192.168.1.0/24 -l ./log -c snort.conf
# snort rodando com as opções básicas; ou seja, sem as opções de -v= mostra na tela e -e= cabeçalho Data Link.
snort -c snort.conf -l ./log -s -h 192.168.1.0/24
# envia alertas para o syslog opção (-s).
snort -c snort.conf -s -h 192.168.1.0/24
# cria arquivo log no diretório default e envia alertas.
snort -c snort.conf -b -M WORKSTATIONS
# gera arquivo de log no formato binário e envia alerta para o Windows Workstation.
snort -c snort.conf -b -A fast -l /var/log/snort
# cria arquivo binário e usa alerta rápido e cria arquivo log no /var/log/snort.
snort -b -A fast -c snort.conf
# gera arquivo de log no formato binário e usa alerta rápido.
snort -d -c snort.conf -l ./log -h 192.168.1.0/24 -r snort.log
# gera arquivos no formato ASCII a partir de um arquivo no formato binário.
snort -d -v -r snort.log -O -h 192.168.1.0/24
# a opção (-O) simplesmente oculta seu endereço IP. Essa opção se torna muito útil nos casos em que queremos enviar arquivos de logs para newsgroup ou qualquer outro lugar publico, .
Boa Sorte,
Raphael