Вы находитесь на странице: 1из 28

Serie Snortando - Usando e Entendendo o Snort

Caros,

Iniciarei uma srie que chamarei de "Snortando". Minha idia aqui semanalmente fazer um
post sobre funcionalidades do snort no geral . Entre os assuntos abordarei bastante coisa de
pre-processadores (logicamente 1 pre-processador por post visto que a ideia explicar para o
bom uso) entre outras funes:
dcerpc2
decode
decoder_preproc_rules
dnp3
dns
filters
flowbits
frag3
ftptelnet
gre
GTP
http_inspect
imap
ipip
ipv6
modbus
multipleconfigs
normalize
PerfProfiling
pop
ppm
reload
reputation
rzb_saac
sensitive_data
sfportscan
sip
SMTP
ssh
ssl
stream5

Tambm postarei sobre criao de regras, explicao snort.conf , dicas de instalao e deploy,
ferramentas para testes dos pre-processadores , teste de performance de regras, dicas gerais
entre outras coisas/idias que surgirem durante o ano.

Em paralelo a isso tambm lanaremos via EaD da Dynsec treinamento de anlise de pacotes,
snort bsico, snort avanado e criao de regras .

Acompanhe a nova serie "Snortando". Caso tenha alguma sugesto entre em contato.
Possivelmente junto com o primeiro post tentarei colocar uma mini-agenda .

Quem sabe no final no temos um mini howto em pt_BR =)

Em paralelo continuarei postando sobre Deteo de Intrusos e Malwares no geral tambm .

Happy Snorting!

Rodrigo "Sp0oKeR" Montoro



Introduo ao Snort - Serie Snortando (Parte 1)
Muitas vezes vejo pessoas seguindo receitas de bolo de como instalar o snort (no
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 no acho que o snort tem
evoluido muito rapidamente e o livro quando lanado estarei totalmente desatualizado,
ou seja, fazendo algo online acredito ser a melhor opo visto que posso atualizar os
post das partes atualizadas bem como adicionar capitulos =)

O que o Snort ?

um sistema de deteco de Intrusos de Redes ( NIDS - Network Intrusion
Detection System) no qual ele visa monitora seu trfego da rede em algum segmento
especifico ou geral . O snort foi criado por Marty Roesch em 1998/1999 e desde ento
com o apoio da comunidade sempre teve grande crescimento. Atualmente a Sourcefire
quem realmente desenvolve, empresa criada pelo Roesch onde possui "verses
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 aquisio da informao at a gerao ou no de um
alerta:




- Caputra de Pacotes
Atualmente o snort utiliza para aquisio de pacotes o DAQ (que iremos falar no
prximo post da srie) . Em resumo existem algumas formas de replicar o trfego 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
aquisio dos pacotes o primeiro passo para o sucesso da implantao da ferramenta.

- Pr-Processadores

Os pre processadores sao responsveis 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 opinio 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 histria do alarme do carro que dispara
muito e quando realmente for um furto voce nao vai acreditar que esto levando seu
carro .


- Sistema de Deteo / 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 criao de
regras mas como citado temos que fazer o payload chegar corretamente ao Engine de
Deteco para evitar os falsos-negativos em especial por isso a importancia da
configurao de forma correta do snort.

- Plugins de Sada (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 introdutrio visto que a idia da seria Snortando atingir desde
usurios que nunca usaram o snort bem como usurio avanados que certamente so
aproveitaro mais os posts futuros.

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

Happy Snorting!

Rodrigo "Sp0oKeR" Montoro


Sistemas de Deteco de Intruses (IDS Intrusion Detection
Systems) usando unicamente softwares Open Source
21 de junho de 2010
Voltar para as notcias do dia

Por Victor Santos.
Este artigo tem como objetivo apresentar aos iniciantes um estudo introdutrio realizado sobre
Sistemas de Deteco de Intruses (IDS Intrusion Detection Systems) usando unicamente
softwares Open Source. Sero abordadas as formas de deteco, tipos de IDS, classificao e no
final sero apresentadas as ferramentas Snort e Ossec.
1. Introduo
2. Tipos de Sistemas de Deteco de Intruso
1. Sistemas de Deteco de Intruso baseados em Host (HIDS)
2. Sistemas de Deteco de Intruso baseados em Rede (NIDS)
3. Sistemas de Deteco de Intruso Hbridos
3. Formas de Deteco
1. Deteco por Assinatura
2. Deteco por Anomalias
4. Modelo de Utilizao
1. Modo Passivo
2. Modo Reativo
5. Ferramentas
1. SNORT
2. OSSEC-HIDS
6. Concluso
Foto: Imagem ilustrativa do treinamento Fortalecimento (Hardening) de Servidores
Unix/Linux porAcademia Clavis Segurana da Informao, CC-BY-NC-ND.
Introduo
A popularizao do computador nas dcadas de 80 e 90 fez com que todo o mundo assistisse uma
verdadeira revoluo tecnolgica, onde o computador passou a desempenhar um papel
fundamental na vida de todos. Grandes empresas utilizando redes financeiras e sistemas de
comunicao passaram a depender cada dia mais dos sistemas computacionais e at hoje o
avano da tecnologia vem trazendo inmeros benefcios e facilidades para toda a sociedade.
Se por um lado essa revoluo introduziu facilidades, por outro lado ela trouxe tambm
inmeras ameaas virtuais. A medida que as tecnologias de rede avanam em direo ao futuro e
a informao passa a ser o principal ativo de muitas organizaes, necessrio a implementao
de mecanismos para proteger os dados . A cada dia surgem novas ferramentas automatizadas ou
cdigo-fonte de exploraes de falhas de sistemas prontos que promovem acesso a servidores de
redes, comprometendo sua segurana. Hoje em dia no mais necessrio ter conhecimentos
avanados em um determinado sistema operacional ou protocolo para explorar suas
vulnerabilidades, basta apenas pesquisar no Google.
Existem diversas ferramentas que contribuem significativamente para melhoria da segurana de
uma rede, tais como: a criptografia, que estabelece um nvel de proteo para dados, o uso de
Firewalls estabelecem uma lgica na entrada e sada da rede controlando o trfego a nvel de
pacotes, a VPN que cria um tnel criptografado entre 2 pontos de rede, etc
Entre elas, o Sistema de Deteco de Intruso merece um destaque especial, pois engloba o
processo de monitorar, identificar e notificar a ocorrncia de atividades maliciosas, atividades no-
autorizadas que coloquem em risco e tenham como alvo ativos de tecnologia de uma rede de
computadores.
Tipos de Sistemas de Deteco de Intruso
Sistemas de Deteco de Intruso baseados em Host (HIDS)
Sistemas de Deteco de Intruso baseados em Host monitora e analisa informaes coletadas de
um nico Host (Mquina). No observa o trfego que passa pela rede, seu uso volta-se a
verificao de informaes relativas aos eventos e registros de logs e sistema de arquivos
(permisso, alterao, etc.). So instalados em servidores para alertar e identificar ataques e
tentativas de acesso indevido prpria mquina, sendo mais empregados nos casos em que a
segurana est focada em informaes contidas em um servidor e os usurios no precisam ser
monitorados. Tambm aplicada em redes onde a velocidade de transmisso muito alta como
em redes Gigabit Ethernet ou quando no se confia na segurana corporativa da rede em que o
servidor est instalado.
Sistemas de Deteco de Intruso baseados em Rede (NIDS)
Sistemas de Deteco de Intruso baseados em Rede monitora e analisa todo o trfego no
segmento da rede. Consiste em um conjunto de sensores que trabalha detectando atividades
maliciosas na rede, como ataques baseados em servio, portscans, etc So instalados em
mquinas responsveis por identificar ataques direcionados a toda a rede, monitorando o
contedo dos pacotes ou do trfego e seus detalhes como informaes de cabealhos e protocolos.
Os NIDS tem como um dos objetivos principais detectar se algum est tentando entrar no seu
sistema ou se algum usurio legtimo est fazendo mau uso do mesmo.
Sistemas de Deteco de Intruso Hbridos
Sistemas de Deteco de Intruso Hbridos utilizao dos sistemas baseados em redes e dos
sistemas baseados em Host para controlar e monitorar a segurana computacional de um
ambiente.
Formas de Deteco
Deteco por Assinatura
A Deteco por assinatura analisa as atividades do sistema procurando por eventos que
correspondam a padres pr-definidos de ataques e outras atividades maliciosas. Estes padres
so conhecidos como assinaturas e geralmente cada assinatura corresponde a um ataque. Uma
desvantagem desta tcnica de deteco que ela pode detectar somente ataques conhecidos, ou
seja, que esto includos no conjunto de assinaturas que o IDS possui, necessitando-se assim de
constante atualizao diante da rapidez que novos ataques surgem.
Deteco por Anomalias
A deteco por anomalias parte do princpio que os ataques so aes diferentes das atividades
normais de sistemas. IDS baseado em anomalias monta um perfil que representa o
comportamento rotineiro de um usurio, Host e/ou conexo de rede. Estes IDSs monitoram a
rede e usam vrias mtricas para determinar quando os dados monitorados esto fora do normal,
ou seja, desviando do perfil. Uma desvantagem a gerao de um grande nmero de alarmes
falsos devido ao comportamento imprevisvel de usurios e do prprio sistema.
Modelo de Utilizao
Modo Passivo
Um IDS passivo quando detecta um trfego suspeito ou malicioso gera um alerta e envia para o
administrador. No toma nenhum atitude em relao ao ataque em si.
Modo Reativo
Um IDS reativo no s detecta o trfego suspeito ou malicioso e alerta o administrador, como
tambm possu aes pr-definidas para responder as ameaa. Normalmente, isso significa
bloquear todo o trfego do IPsuspeito ou do usurio mal-intencionado.
Existem diversos outros tipos de abordagens possveis para a classificao de um IDS, veja a
figura abaixo .

Tipos de Classificao de um IDS
Ferramentas
SNORT
O Snort um sistema de deteco de intruso Open Source baseado em redes, capaz de realizar
anlise de trfego e captura de pacotes em tempo real em redes que utilizam o protocolo IP. Ele
pode analisar protocolos, buscar por contedo especfico, e pode ainda ser utilizado para detectar
uma variedade de ataques e sondas, tais como: buffer overflows, portscans, ataques de CGI,
tentativas de identificao de sistema operacional, entre outros. O Snort pode ser utilizado de 3
formas:
Captura de pacotes
Analisado de trfego de rede (Sniffer)
Sistema completo de deteco de intruso em redes.
O Snort faz a sua deteco baseado em assinaturas utilizando uma linguagem flexvel de regras
para analisar o trfego coletado. Estas assinaturas/regras so atualizadas diariamente pela sua
equipe de desenvolvimento, assim como por entusiastas e voluntrios e podem ser obtidas
diretamente da Internet, inclusive por processos automatizados.
Alm de suas regras, o Snort tambm trabalha com o chamados de pr-processadores. Estes pr-
processadores realizam funes especficas e cruciais para a eficincia do Snort, como, por
exemplo, detectar portscans, detectar padres de ataques mais complexos e mecanismos para
remontar sequncias de pacotes fragmentados.
A figura abaixo demonstra o processo de captura e anlise de trfego do Snort:

Existem tambm mecanismos de integrao do SNORT com Firewalls, como o SnortSam e o
Snort-inline, transformando ele em um modelo de IDS reativo. O SnortSam permite que o SNORT
possa interagir diretamente com diversos Firewalls do mercado, desde o bsico
IPChains/IPTiptables at produtos avanados, como o Cisco Firewall. J o Snort-inline, uma
opo de compilao do SNORT e permite a alterao da forma como ele trata os pacotes, ao
invs de registar e alertar ele faz um drop na conexo suspeita.
Trabalhando com um interface de correlao de eventos como o BASE podemos gerenciar a
estatsticas de tentativas de intruso para otimizar os nossos mecanismos de segurana.
OSSEC-HIDS
O OSSEC [4] um Sistema de Deteco de Intruso Open Source baseado em Host que possui
como desenvolvedor principal o brasileiro Daniel Cid e tem como principais funes:
Anlise de Logs
Integridade de Sistemas
Deteco de rootkit
Alertas e resposta ativa (regras no Firewall ou TCP Wrappers).
Em 2007 foi eleita, pela Linuxworld, a melhor ferramenta de segurana Open Source. Sua fcil
instalao, totalmente intuitiva e fcil configurao com arquivo em formato XML, o transforma
em uma excelente opo para monitoramento e auditoria de servidores.
Multiplataforma e sob a licena GPLv3, o OSSEC suporta uma vasta gama de logs, tais como: Unix
pan, sshd (OpenSSH), Unix telnetd, Samba, Su, Sudo, Proftpd, Pure-ftpd, vsftpd, Solaris ftpd,
Imapd and pop3d, Horde imp, Named (bind), Postfix, Sendmail, Iptables firewall, Solais ipfilter
firewall, AIX , ipsec/firewall, Netscreen firewall, Snort IDS, Apache web server (access log and
error log), IIS web server, Squid proxy, Windows event logs, Generic unix authentiction (adduser,
logins, etc).
Ele possui os seguintes modos de atuao:
Local Monitora e anlise somente o Host onde o Ossec est instalado.
Servidor Monitora e a analisa os logs enviados pelos Agentes.
Agente Funciona como cliente e envia todas as informaes para o servidor processar e
analisar. Veja a Figura abaixo.

O Ossec pode trabalhar em conjunto com o Snort, transformando o ambiente em um sistema de
Deteco Hbrido, pois ele analisa os logs e alertas gerados pelo Snort, e os classifica de acordo
com as assinaturas geradas e alerta ao administrador.
Concluso
Seja para monitorar e analisar atividades suspeitas na rede ou realizar a auditoria
na infraestrutura, de acordo com as vulnerabilidades existentes, um sistema de deteco de
intruso se faz fundamental para otimizar os controles de segurana da empresa e entender
melhor as tentativas e vetores de ataques que vem surgindo ao longo do tempo. bom frisar que
a utilizao de um IDS no atende a todas as necessidade de segurana de uma organizao,
sendo necessrio utilizar outro mecanismo para auxiliar na Proteo de Permetro.
Para saber mais:
Marcus Silva, Miguel Sampaio, Mrio Antunes, Miguel Fraude. Estudo de Sistemas de Deteco de
Preveno de Intruses Uma abordagem Open Source (2006)
SNORT: http://www.snort.org
SnortSam: http://www.snortsam.net
OSSEC: http://www.ossec.net
Voltar para as notcias do dia
Veja tambm:
Estudo indica janela de tempo mdia de 2 dias para softwares de segurana
Boletim de Segurana SB10-172 do Departamento de Segurana Nacional dos Estados Unidos lista
179 vulnerabilidades na semana
Tags: deteco, detection, hids, ids, intruso, intrusion, nids, sistema, snort, system





Posicionamento Sensores / DAQ (Data AcQuisition
Library) - Serie Snortando (Parte 2)
Para quem no leu postamos na Parte 1 da Serie Snortando
(http://spookerlabs.blogspot.com/2012/01/introducao-ao-snort-serie-snortando.html ) a
introduo ao Snort, como ele funciona . A primeira parte para o bom funcionamento do mesmo
iniciasse com a aquisico de dados e aqui que entra o DAQ ( Data AcQuisition library ).

O DAQ foi adicionado ao Snort a partir da verso 2.9, ou seja, algo relativamente novo.
Um dos pontos importantes para melhor aquisio de dados o posicionamento do seu Sensor
e por isso antes de falar do DAQ comentarei o bsico de posicionamento de um sensor.

Inicialmente temos que fazer algumas perguntas para visualizar melhor o trfego:

1-) O que quero monitorar ?
Essa pergunta parece lgica mas muita gente no 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 no tem opo para multiplos sensores
foque no que achar importante (se no sabe exatamente melhor entender mais da sua rede
=) ).

2-) Qual a vazo da minha rede ?
Outro questionamento importante o tipo de trfego que quer monitorar para saber
escolher melhor um hardware. No 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 mquina 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 so importantes monitorar para
no desperdiar ciclos do snort com algo que no precisara monitorar ou carregar em memoria
regras que no sero utilizadas. Lembre-se que nem sempre quanto mais regras melhor , isso
pode ser totalmente inverso =)

4-) Quero uma proteo imediata ou somente monitoramento ?
Aqui entra a parte do posicionamento . Existem os dois tipos ou sopinha de letras mais
clssico que seriam:

IDS -Intrusion Detection System no qual um sistema passivo recebendo copia do
trfego 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 reao ao ataque com sistemas que monitoram os logs do snort (OSSEC
por exemplo) bem como o proprio snort enviar pacotes para encerramento da conexo
(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
conexes 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 trfego da rede para o seu sensor nos quais os
mais conhecidos:

- Sensor Inline
Inline no quer dizer que voce est bloqueando o trfego, 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 porm sem interferir no trfego.


- Port Mirroring (Espelhamento de Portas) Switch
Nem todo switch tem essa opo mas a grande maioria tem que nada mais que
copiar o trfego de todas as portas para uma porta de espelhamento no qual voce plugara seu
sensor. Eu no sou um grande f de utilizar esse tipo de soluo visto que muitas vezes ela
sobrecarrega a CPU do switch bem como essa funo "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 trfego replicado para
a porta espelhada (no caso porta 1 da imagem - fonte: http://www.planex.net ).


- Network TAP
Pra mim a melhor soluo quando vamos implementar um sensor. Existem dezenas
de tipos de Netwrok Tap bem como varios preos. Os mais simples apenas copiam o trfego
(vide imagem ) at solues mais avanadas 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 trfego. Abaixo uma imagem para ilustrar o que seria um TAP (retirado do site da
barracuda, imagem simples e facil entendimento). Um bom site com vrios 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 protees que atendam sua necessidade e no 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 vazo
muito grande talvez para um unico segmento tera que colocar mais de 1 sensor com diferentes
regras.

Em resumo pense nas questes 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 no vejo necessidade de reinventar a roda e escrever o que j est l.
Caso tenha alguma dvida fique a vontade para postar nos comentrios =)

O que vale frisar que o DAQ sendo uma evoluo de aquisio de pacotes de nada ter
proveito se o posicionamento do sensor for erroneo.

Mais informaes leia o README.daq dentro do docs/ do tarball do snort.

At a parte 3 que vir provavelmente aps o Carnaval (Se o Carnaval no estiver dos
melhores durante o carnaval eu fao e publico hehehe)

Dvidas, sugestes , criticas e elogios podem usar os comentrios =)!

Happy Snorting!

Rodrigo "Sp0oKeR" Montoro


Entendendo bsico do snort.conf - Serie Snortando
(Parte 3)
O snort.conf o principal e praticamente o nico arquivo de configurao do snort. Nele
configuramos variveis, diretivas, decoders, preprocessadores, plugins de saida entre outras
coisas.

de suma importancia saber o que esta fazendo quando se edita o snort.conf para no
modificar algo erroneamente e comprometer todo o funcionamento do mesmo. Lembre-se que
modificar erronenamente no propriamente quer dizer que o snort no iniciara e sim no
carregara partes importantes.

No arquivo snort.conf existe at um passo a passo de onde e o que modificar (est em ingls e
usarei traduzido pra pt_BR) :

Original no snort.conf
###################################################
# This file contains a sample snort configuration.
# You should take the following steps to create your own custom
configuration:
#
# 1) Set the network variables.
# 2) Configure the decoder
# 3) Configure the base detection engine
# 4) Configure dynamic loaded libraries
# 5) Configure preprocessors
# 6) Configure output plugins
# 7) Customize your rule set
# 8) Customize preprocessor and decoder rule set
# 9) Customize shared object rule set
###################################################

Ento vamos por partes:

1-) Configure suas variveis
2-) Configure o decoder
3-) Configure o engine de deteco
4-) Configure as bibliotecas dinamicas
5-) Configure os pre-processadores
6-) Configure os plugins de saida
7-) Customize suas regras
8-) Customize seu preprocessador e decoder
9-) Customize as Shared Object Rules

Muitas opes aqui tero mais sentido no final da serie no qual farei outro post dai mais
completo e com dicas mas nesse post inicial focarei no passo 1 - Configure suas variveise
abordarei sobre a diretiva config .

Existem 3 tipos de variveis:

- var
- portvar
- ipvar

Alguns exemplos:

var RULES_PATH /etc/snort/rules/
portvar MY_PORTS [22,80,1024:2000]
portvar SSH [22]
ipvar REDE_INTERNA [192.168.200.0/24,192.168.100.1]

Essas variaveis so utilizadas em regras, preprocessadores no fazem o uso das mesmas.
Exemplo bsico :

alert tcp any any -> $REDE_INTERNA $MY_PORTS (flags:S; msg:"Pacote com SYN";)

Alem de declarar os IPs ou CIDR na varivel voce pode adicionar uma negao. Vamos pensar
que voce quer monitorar todas as maquinas da rede 10.0.0.0/24 porm no a maquina
10.0.0.10 que um scanner na rede.

ipvar MINHA_VARIAVEL [10.0.0.0/24,![10.0.0.10]]

A utilizaco da varivel ser igual a uma variavel simples .

Variaveis de porta (port) tambm podem usar a negao bem como um port range

portvar TESTE [!80]
portvar RANGE_SERVIDORES [3000:4000]

Na variavel RANGE_SERVIDORES ele vai monitorar portas 3000 at a 4000 .

A diretiva config no entrarei em detalhes aqui mas elas so bem importantes para voce ajustar
suas configuraes. Voce pode chamar o parametro via linha de comando quando for iniciar o
snort bem como utiliza-las no snort.conf . No total temos mais de 60 diretivas que podem ser
configuradas , abaxio alguns exemplos retirados do manual em pdf do snort. Um config bem
importante de entender e adicionarei na lista de posts, talvez at o prximo o config detection
no qual voce pode melhorar muito consumo de memoria por exemplo.



Outro parametro no snort.conf que utilizamos bastante o include no qual resumidamente
falando voce podera incluir config de forma simples num arquivo diferente do snort.conf .
Alguns includes presentes por padro :
include classification.config
include reference.config

No se esquea que quando atualizar seu engine sempre temos um novo snort.conf padro
que voce deve adicion-lo e modifica-lo com as suas configuraes pois muitas vezes so pre-
processadores novos, variveis que so utilizadas pelo VRT na criao de regras.

Caso queira acompanhar os arquivos de configuraes mais atuais sugiro
acompanharhttp://www.snort.org/vrt/snort-conf-configurations/ .

mandatorio saber utilizar e modificar o snort.conf por isso sempre leia ele, a documentao,
configuraes que possue pois isso certamente aumentara a qualidade do seu sensor
instalado.

Desculpe do atraso mas infelizmente trabalho primeiro =)

Happy Snorting!

Rodrigo "Sp0oKeR" Montoro


Detectando Trojans bancrios brasileiros utilizando o
snort http_inspect



Introduo aos decoders - Serie Snortando (Parte 4)
Primeiramente me desculpar pelo atraso do post mas as coisam andam corridas por esses
lados mas no vamos deixar a peteca cair mesmo com atrasos =)!

Nesse post iremos falar sobre os decoders do Snort. Para lembrar exato onde estamos os
decoders esto logo aps a aquisio de dados atravs do DAQ .

Em resumo o processo do snort o seguinte:

DAQ (Captura de pacotes) --> Decoders --> Preprocessors --> Rule Engine --> Output
Plugins

Os decoder so de EXTREMA importancia para o snort pois ali onde podemos dizer que se
separa a parte "Protocolo" da parte "Payload". Caso no exista decoders para trfegos
especficos o snort simplesmente no ter como analisar o contedo.

Atualmente o snort possui basicamente os seguintes decoders :

TCP
UDP
IPv4
IPv6
MPLS
GRE
GTP (GRPS Tunneling Protocol)*

* Suporte a GTP/GPRS algo totalmente novo implantado na verso 2.9.2. Certamente
adicionarei algo sobre isso na agenda para o futuro. Caso queiram mais informao leiam o
README.gtp no doc/ to tarball mais recente e/ou o blogpost do VRT sobre
isso http://blog.snort.org/2012/01/gtp-decoder-and-preprocessor.html . O encapsulamento do
GPRS BEM interessante.

Alm do fato de separar a parte protocolo da parte payload os decoders tambm podem tomar
aes e tirar pacotes de serem analisados ou mesmo bloqueados com as decoders rules.

Aqui algumas configuraes default com os decoder no snort.conf

# Stop generic decode events:
config disable_decode_alerts

# Stop Alerts on experimental TCP options
config disable_tcpopt_experimental_alerts

# Stop Alerts on obsolete TCP options
config disable_tcpopt_obsolete_alerts

# Stop Alerts on T/TCP alerts
config disable_tcpopt_ttcp_alerts

# Stop Alerts on all other TCPOption type events:
config disable_tcpopt_alerts

# Stop Alerts on invalid ip options
config disable_ipopt_alerts

# Alert if value in length field (IP, TCP, UDP) is greater th elength of the packet
# config enable_decode_oversized_alerts

# Same as above, but drop packet if in Inline mode (requires enable_decode_oversized_alerts)
# config enable_decode_oversized_drops

# Configure IP / TCP checksum mode
config checksum_mode: all

* Pra mim essa configurao acima em vermelho bem importante pois ele vai tirar da
inspeco pacotes com bad checksum o que vai liberar esse tempo para pacotes no
malformados.

Um ponto muito importante aqui que essas regras so desabilitadas por padro, no a
normalizao de separao do "Protocolo do Payload" mas as protees em si.

Para habilitar voc ter que realizar 3 passos:

- Configurar o PATH das preprocrules

var PREPROC_RULE_PATH /etc/snort/preproc_rules

- Copiar as decoder.rules para o diretorio configurado acima

- Reiniciar seu snort (lembre-se sempre se usar a opco -T para checar o arquivo de
configurao antes de parar seu snort para o mesmo no ficar fora do ar por alguma razo)

O que essas decoders rules alertam?

Atualmente existem por volta de 142 decode rules e abaixo mostrar algumas que acho
interessante. Vale lembra que de suma importancia saber e ler sobre os protocolos citados
que a mesma faz decode para melhor entendimento da regra e logicamente de quando a
mesma gerar um alerta saber analisar.

alert ( msg:"DECODE_IPV4_INVALID_HEADER_LEN"; sid:2; gid:116; rev:1; metadata:rule-
type decode; classtype:protocol-command-decode; )

alert ( msg:"DECODE_IPV6_ISATAP_SPOOF"; sid:453; gid:116; rev:1; metadata:rule-type
decode; reference:cve,2010-0812;
reference:url,www.microsoft.com/technet/security/bulletin/MS10-029.mspx; classtype:misc-
attack; )

alert ( msg:"DECODE_ICMP_ORIG_PAYLOAD_GT_576"; sid:254; gid:116; rev:1;
metadata:rule-type decode; classtype:protocol-command-decode; )

alert ( msg:"DECODE_TCP_NMAP_XMAS"; sid: 401; gid: 116; rev: 1; metadata: rule-type
decode ; classtype:attempted-recon; reference:bugtraq,7700; reference:cve,2003-0393; )

alert ( msg:"DECODE_ICMP_REDIRECT_HOST"; sid:436; gid:116; rev:1; metadata:rule-type
decode; classtype:attempted-recon; )


Lembrem-se galera que nos detalhes que achamos os grandes perigos, no adiantar ficar
observando somente os payload enquanto tem muita coisa j acontecendo umas camadas
antes. Estude protocolos, cabealhos e se tiverem paciencia leiam as RFC =) .

Recomendo tambm que leiam o README.decode que voce encontra no doc/ do tarball do
snort.


Happy Snorting!

Rodrigo "Sp0oKeR" Montoro

Frag3 Preprocessor - Serie Snortando (Parte 5)
Bom, como sabemos o pacote passa por diversos caminhos at chegar ao seu destino final.
Durante esse caminho os "pacotes" podem ser quebrados em partes menores na camada 3
(IP) devido ao MTU. Quando isso acontece chamamos de fragmentao IP.

Primeiramente o que seria o MTU ?

MTU a sopinha de letras para Maximum Transmission Unit que resumidamente seria o
tamanho mximo em bytes do payload. Existem diferente valores de MTU dependendo da
tecnologia utilizada (ver figura abaixo) mas para Ethernet o padro 1500 bytes onde. Um
simples exemplo para ver o MTU da sua mquina (no meu caso Mac) seria com o ifconfig:

$ ifconfig en1

en1: flags=8863 mtu 1500
ether 00:26:bb:11:88:0d
inet6 fe80::226:bbff:fe11:880d%en1 prefixlen 64 scopeid 0x6
inet 192.168.0.3 netmask 0xffffff00 broadcast 192.168.0.255
media: autoselect
status: active



No caso existe a fragmentao necessaria visto algum MTU menor no caminho e tambm
existe a malicioso no qual o atacante j envia os pacotes fragmentados tentando bypassar a
proteo.
Bem resumidamente teriamos:

1-) Host A envia seu trafego para maquina Host B que est em outra rede
2-) Mquina Host A vai montando o pacote da camada 7 para baixo at chegar a camada fisica
3-) O pacote ento enviado para o roteador default configurado no Host A caso no esteja na
mesma rede .
4-) Esse roteador default possui outras rotas e cada roteador abre o pacote at a camada 3
para ver opes IP assim como o endereo destino
5-) Quando o "pacote" sai da minha mquina ele sai com um tamanho X que o MTU no qual
caso ele seja menor no caminho o pacote precisara ser fragmentado (Comparando com algo
do dia a dia seria como um encanamento onde a gua sairia de um cano maior e entraria num
menor).
6-) O "pacote" quando fragmentado divido em partes menores e todos chegaro na maquina
Host B com uma sequencia para que possam ser remontados.

A questo em jogo que o seu snort (NIDS) estar no meio desse trfego, se o mesmo no
remontar o "pacote" fragmentado, ele no conseguira ver o real contedo que esta sendo
trfegado nas camadas superiores e NUNCA ir conseguir fazer o match com algum regra visto
que so ter um pedao da informao. Por isso existe o preprocessador FRAG3.

Para melhor entender o que fragmentao devemos primeiramente entender o cabealho IP .
Nesse artigo falaremos apenas sobre IPv4.


No entrarei em detalhes do cabealho inteiro aqui mas o que importante para nos sero os
campos: IP Flags e Fragment Offset .

Na parte de IP Flags

- D no fragmentado
- M mais fragmentos

No caso se a flag D estiver setada quer dizer que o pacote est fragmentado e no caso M
indicara se o ultimo ou se mais fragmentos esto por vir

O Fragment Offset onde fica setado a ordem dos pacotes e onde ele se encaixara na
remontagem falando de forma bem simples. Com base nisso existem o Overlapping do
fragmento quando 2 gramentos diferentes chegam com o mesmo offset .

Se analisarmos no wireshark veremos que normalmente os pacotes no so fragmentados
(muitos so parte de uma remontagem que acontece na camada TCP e falaremos no post do
Stream5) como podemos observar no exemplo abaixo:



Aps explicarmos como funciona a fragmentao da para se entender a importancia do
preprocessador frag3 onde podemos listar:

- Evitar evasions (veja exemplos abaixo)

a-) Nesse primeiro exemplo o atacante aproveitaria que o timeout do IDS menor que do
computador da vitima fazendo com que o IDS drop o "pacote" enquanto a maquina vitima
aguardara o segundo fragmento.



b-) No exemplo abaixo atacante aproveita da diferena de timeout entre o sensor de IDS e o
host atrs do mesmo sendo que ele engana a remontagem enviando "pacotes" com timeout
preparados para isso onde o IDS remontara errado e a vitima recebera o ataque.


c-) Como citado existem o Overlapping que seria quando dois fragmentos chegam com o
mesmo offset no qual alguns sistemas remontam o "pacote" com o segundo que chegar .



Existem outros ataques mas vou ilustrar apenas esses 3 =)!

* Imagens retiradas desse artigo que diga-se de passagem muito bom em Ingles -
http://www.symantec.com/connect/articles/evading-nids-revisited

- Policy based, ou seja, cada sistema operacional remonta esses pacotes em uma ordem.
Sugiro lerem o paper no site do Snort onde Judy Novak explicou seus estudos para criao
desse preprocessador . Abaixo diferente sistemas operacionais versus a policy a ser utilizada



Alguns exempos de configurao do frag3:
preprocessor frag3_global: prealloc_memcap 8192
preprocessor frag3_engine: policy linux, bind_to 192.168.1.0/24
preprocessor frag3_engine: policy first, bind_to
[10.1.47.0/24,172.16.8.0/24]
preprocessor frag3_engine: policy last, detect_anomalies

No exemplo acima usaremos um memoria de 8mb prealocada o que far o preprocessador
mais veloz. Na segunda linux vamos usar a policy linux para a rede 192. Na terceira linha a
policy first para as redes 10 e 172. Na ultima linha o que no fizer bind nas redes acima ser
considerado policy last. No caso vale lembra da opco detect_anomalies onde com regras de
preprocessor ele detectara algumas anomalias de fragmentao.

Mais info sobre frag3 no manual do
snorthttp://manual.snort.org/node17.html#SECTION00321000000000000000

* Vale a dica que caso no conhea todas as maquinas utilize a policy que possui maior
numero de SO instalados . O ideal seria setar tudo corretamente mas isso leva tempo.

Agora edit seu snort.conf e faa as devidas configuraes =)!

Espero que tenha ajudado!

Happy Snorting!

Rodrigo "Sp0oKeR" Montoro


Introduo Pre-Processadores - Serie Snortando
(Parte 6)
Depois de algum tempo sumido estamos de volta com a Srie Snortando. Caso no tenha visto
os post anteriores e a Agenda basta acessa
aqui: http://spookerlabs.blogspot.com.br/2012/01/agenda-da-serie-snortando.html

Como comentamos anteriormente o Snort possui um ciclo, no qual o quanto mais rpido o
pacote for analisado ou retirado do ciclo melhor a performance. Basicamente temos:

Aquisio do trfego (DAQ) -> Decoders -> Pr-Processadores -> Engine de Deteco
(Assinaturas/Regras) -> Plugins de Sada

Os pr-processadores tem um papel MUITO importante nesse ciclo de deteco e de suma
importncia entende-los. Alguma das funes que podemos salientar:

- Remontagem pacotes IP fragmentados (frag3)
- Reassemble protocolo TCP (stream5)
- Normalizao de encodes HTTP (http_inspect)
- Javascript (http_inspect)
- Analise de performance (perfmonitor)
- Normalizao de trfego de e-mail (SMTP / POP e IMAP)
- Normalizao trfego SMB/Netbios (DCERPC2)
- Arp Spoofing (arpspoof)
- Lista de Reputao IP (ip_reputation)
- Deteco dados confidenciais (sensitive_data)

No total o snort possui por volta de 22 pre-processadores que tem o trabalho de repassar os
dados o mais normalizado e "original" possivel para o sistema de deteo possa fazer seu
trabalhando, mitigando os falsos-negativos, vulgo, bypass.

Como citei na agenda falaremos em especifico da maioria dos pre-processadores visto a
grande importancia dos mesmo. O interessante que o pre-processador pode remover os dados
do ciclo ganhando assim tempo visto que isso dara oportunidade para analisar outro pacote.

Algo que de suma importancia para a configurao correta dos mesmo entender como os
protocolos funcionam, pois sem isso fica dificil configura-los de forma correta. Tambm temos
as pre-proc rules que sero comentadas no prximo blogpost no qual cobrirei esse assunto.

Em resumo os pre-processadores so a parte mais importante do Snort, muito mais que as
assinaturas pois se a normalizao no acontecer de forma correta de nada adiantara as
regras.

Lembrando que ministrarei treinamento completo EaD no prximo mes (Agosto/2012) -
http://spookerlabs.blogspot.com.br/2012/06/treinamento-snort-completo-ensino.html

Happy Snorting!

Rodrigo "Sp0oKeR" Montoro

Вам также может понравиться