Sp0oKeR Labs Funcionamento do SNORT Objetivo
Como sempre vemos em artigos, o pessoal sempre explica como instalar o snort, configurar, consultar relatorios / logs, mas ainda nao vi um paper (em portugues) explicando como o snort funciona ( como ele pega os pacotes na redes, trabalha estes e toma alguma acao.). Tentarei nesse artigo explicar esse funcionamento, para que pessoas instalem o snort e saibam como ele funciona. =)
O que é o Snort?
Bom, o snort é um Sistema de detecção de Intruso de Redes (vulgo NIDS), que trabalha no seu trafego de rede. O Snort tambem pode ser considerado WIDS ou seja, Wireless IDS pois alguns desenvolvedores fizeram alguns patches para o mesmo trabalhar nesse tipo de rede. O Snort é opensource e sua pagina é http://www.snort.org Quais os componentes do SNORT ?
O Snort possui 4 componentes principais, no qual o pacote capturado deve “passar”. Ele se dividide em: – – – –
Libcap Pre – Processadores Mecanismos de detecção (Assinaturas) Plugins de Saida
Abaixo irei detalhar o funcionamento dos mesmos. 1 - ) Libcap ou Libpcap
A libcap (Library Capture) ou libpcap ( Library Packet Capture ) trabalha na camada ethernet, capturando todos os pacotes que passam por ela , ou seja, pegando todos os pacotes dos nossos famosos Broadcast . O que é Broadcast ?
Sempre que uma conexao é iniciada, para localizar o host, o pacote enviado faz um broadcast, isto é, ele envia a mensagem para todos os hosts da rede, até que o verdadeiro (o host de destino) responda e pegue o pacote. Na figura abaixo tem uma ilustracao que da para se ter uma nocao de como funciona.
Sp0oKeR Labs –
[email protected]
http://www.spooker.com.br
Sp0oKeR Labs
a-) Máquina A quer comunicar-se com a B. b-) Envia requisição para FF:FF:FF:FF:FF:FF perguntando quem é a máquina B (destino comunicação)? c-) Máquina B se identifica e recebe o que foi enviado. OBS: a linha vermelha simula o pacote percorrendo todos os hosts da Rede. Pronto , nossa maquina ( Sensor IDS) agora tenha uma copia do pacote que passou pela rede. E agora, o que acontece? 2-) Pre – Processadores Assim que o Snort captura uma copia do pacote circulado na Rede, ele manda o pacote para os pre – processadores. O que sao os pre-processadores ? Os pre – processadores sao responveis por remontar os pacotes, ver possiveis codificacoes como unicode , entre outras tarefas. O Snort possui plugins de RPC, IIS ,Telnet, de fragmentacao 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 – é qdo uma pacote passa sem ser notificado pelo IDS , o IDS pensa que o pacote é fluxo normal. Falso-positivo – é qdo o pacote é notificado como intrusivo, mas na verdade é somente um falso alerta, alarme falso.
## Retirado do snort.conf # This preprocessor performs IP defragmentation. This plugin will also detect # arguments loads the default configuration of the preprocessor, which is a preprocessor frag2 preprocessor stream4: detect_scans, disable_evasion_alerts preprocessor stream4_reassemble
Sp0oKeR Labs –
[email protected]
http://www.spooker.com.br
Sp0oKeR Labs #This plugin takes the ports numbers that RPC # The RPC decode preprocessor uses generator ID 106 preprocessor rpc_decode: 111 32771 #Outros #preprocessor arpspoof #preprocessor telnet_decode #preprocessor http_decode: 80 unicode iis_alt_unicode double_encode A Figura abaixo mostra o fluxo do pacote apos a captura, passagem pelos pre processadores e encaminhamento para o sistema de detecção.
E agora....a parte que tem que funcionar =P!!!
Sp0oKeR Labs –
[email protected]
http://www.spooker.com.br
Sp0oKeR Labs
3-) Sistema de detecção ( Assinaturas )
Aqui podemos considerar a parte fundamental do Snort, pois aqui que as coisas irao realmente acontecer, e dizer se é um ataque intrusivo ou um simples fluxo de rede. Apos o encaminhamento do pacote pelos pre processadores para o sistema de detecção, o snort compara o pacote (ja remontado e “legivel” para a comparacao com as assinaturas) com a base de assinaturas de ataques e defini o que fazer com o pacote. Para simplificar, mais uma figura ilustrando isso:
Conforme ilustrado na figura, o pacote é comparado com a base de assinaturas, caso a comparacao retorne com valor positivo (sim), o Snort encaminha para os plugins de saida, caso contrario ele descarta o pacote (considerado trafego normal da rede). Aqui um simples exemplo: Assinatura / Ataque ( isso é ua exemplo, nao tente usar! )
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"WEB-IIS cmd32.exe access"; flow:to_server,established; content:"cmd32.exe"; nocase; classtype:web-application-attack; sid:1661; rev:3;) Ataque:
Sp0oKeR Labs –
[email protected]
http://www.spooker.com.br
Sp0oKeR Labs http://www.spooker.com.br/XXXX/..system32/cmd32.exe?/c%20dir%20C:\ Com isso, da pra ter uma nocao de como é importante manter a base de assinaturas sempre atualizadas, pois de nada adianta se nao tivermos uma base atualizada. Finalmente, apos tudo isso, se o pacote é interpretado como positivo, os plugins de saida entram em acao. 4-) Plugins de Saida
Os plugins de saida sao ferramentas que podem ser utilizadas para gerar alertas, logs ou para tomar algumas medidas em imediato. A figura abaixo exemplifica a continuacao das imagens e finalizacao do tratamento do pacote capturado.
Os plugins de saida podem interagir com firewall, podem enviar alertas em email, popups , gravar em arquivos textos, mysql entre outros. Existe varias ferramentas como ACID, pigmeet ( projeto brasileiro), guardian entre outros. E finalmente o pacote passou por todas as etapas do Snort e que venha o proximo pacote. =)!
Sp0oKeR Labs –
[email protected]
http://www.spooker.com.br
Sp0oKeR Labs
Conclusão Com base nisso, e agora sabendo como funciona o snort (um IDS no geral), so digitar:
#./configure #make #make install E manter sua base atualizada. Bom, como disse no inicio, nao iria ensinar a configurar, administrar, nada do Snort, so apresentaria o seu funcionamento, e espero que seja de grande utilidade para quem o ler. Links / Bibliografia
http://www.snort.org Snort 2 – Sistema de detecção de Instrusos http://www.spooker.com.br/snort-conisli/ http://pigmeet.databras.com.br/ Autor
Rodrigo Ribeiro Montoro - Sp0oKeR http://www.spooker.com.br/
[email protected]
Sp0oKeR Labs –
[email protected]
http://www.spooker.com.br