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 \u00e9 o Snort?
Bom, o snort \u00e9 um Sistema de detec\u00e7\u00e3o de Intruso de Redes (vulgo NIDS), 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 \u00e9 opensource e sua pagina \u00e9 http://www.snort.org Quais os componentes do SNORT ?
O Snort possui 4 componentes principais, no qual o pacote capturado deve \u201cpassar\u2 Ele se dividide em: \u2013 \u2013 \u2013 \u2013
Libcap Pre \u2013 Processadores Mecanismos de detec\u00e7\u00e3o (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 \u00e9 Broadcast ?
Sempre que uma conexao \u00e9 iniciada, para localizar o host, o pacote enviado faz um broadcast, isto \u00e9, ele envia a mensagem para todos os hosts da rede, at\u00e9 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 \ u 2 0 1 3
[email protected]://www.spooker.com.br
Sp0oKeR Labs
a-) M\u00e1quina A quer comunicar-se com a B. b-) Envia requisi\u00e7\u00e3o para FF:FF:FF:FF:FF:FF perguntando quem \u00e9 a m\u00e1quin comunica\u00e7\u00e3o)? c-) M\u00e1quina 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 \u2013 Processadores Assim que o Snort captura uma copia do pacote circulado na Rede, ele manda o pacote para os pre \u2013 processadores.
O que sao os pre-processadores ? Os pre \u2013 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 \u201cenganar\u201d o ids, esses 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 \u2013 \u00e9 qdo uma pacote passa sem ser notificado pelo IDS , o IDS pen que o pacote \u00e9 fluxo normal. Falso-positivo \u2013 \u00e9 qdo o pacote \u00e9 notificado como intrusivo, mas na verda 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 \ u 2 0 1 3
[email protected]://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\u00e7\u00e3o.
E agora....a parte que tem que funcionar =P!!!
Sp0oKeR Labs \ u 2 0 1 3
[email protected]://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