Utilizando o Pulled Pork para gerenciamento de updates de regras do Snort IDS
O que é o Pulled Pork ?
Pulled Pork é um gerenciador de regras do snort escrito no bom e velho PERL . Ele faz o update de forma automatica das regras em plain-text e as shared object rules .
Qual a diferença entre ele e o oinkmaster?
A grande diferença entre os dois é o update das Shared Object Rules (SO_Rules)
O que são as SO_Rules (Shared Object rules) ?
Shared Object Rules são regras para detecção de situação mais complexas que não se consegue detectar com as regras plain-text. Essas regras são bem mais complexas de serem desenvolvidas e precisam ser compiladas de acordo com seu sistema operacional, vale lembrar que para os sistemas mais conhecidos o VRT já lança as regras pré-compiladas .
Entendendo o Pulled Pork
Basicamente o pulledpork se divide nos seguintes arquivos de configuração:
1-) disablesid.conf
Assinaturas que deseja manter desativada quando fizer o update. SID significa Signature ID o qual é único para cada regras
2-) pulledpork.conf
Esse arquivo contém as opções de configurações que serão utilizadas quando utilizar a chamada com a opção -c . Abaixo descrição dos campos:
Nome do arquivo que deseja baixar do snort.org
rule_file=snortrules-snapshot-2.8_s.tar.gz
Seu Oinkcode , lembrando que para ter o seu basta se cadastrar no site http://www.snort.org (para entender mais leia nosso post sobre assinaturas http://snort.org.br/index.php?option=com_content&task=view&id=24&Itemid=31 )
oinkcode=SEU_OINK_CODE
Diretório onde sera feito o download e descompactar as regras (cuidado para não apontar para um diretório com pouco espaço) .
temp_path=/tmp
Caminho do comando tar que será utilizado para descompactar as regras que foram baixadas .
tar_path=/bin/tar
Diretório onde ficam suas regras texto .
rule_path=/etc/snort/rules/
Local onde estar o sid-map .
sid_msg=/usr/local/etc/snort/sid-msg.map
Caminho onde hospeda as suas regras dinamicas (SO_Rules), caso não conheça sugiro a leitura http://vrt-sourcefire.blogspot.com/2009/01/using-vrt-certified-shared-object-rules.html
sorule_path=/usr/local/lib/snort_dynamicrules/
Caminho do binário do snort que está fazendo o update.
snort_path=/opt/bin/snort
Local do seu arquivo de configuração do snort (snort.conf)
config_path=/etc/snort/snort.conf
Local onde será colocado o apontamento das .rules texto que se referenciarão as shared objects do /usr/local/lib/snort_dynamicrules/ (caso não conheça das so_rules sugiro novamente a leitura http://vrt-sourcefire.blogspot.com/2009/01/using-vrt-certified-shared-object-rules.html )
sostub_path=/home/spooker/snort/so_rules/
Distribuição que está utilizando, como citei ele já possui pre-compilado para as opções abaixo:
#CentOS-4.6,CentOS-5.0,Debian-Lenny,FC-5,FC-9,FreeBSD-7.0,RHEL-5.0,Ubuntu-6.01.1,Ubuntu-8.04
distro=Ubuntu-8.04
Versão do snort que está rodando
#2.8.0.1,2.8.0.2,2.8.1,2.8.2,2.8.2.1,2.8.2.2,2.8.3,2.8.3.1,2.8.3.2,2.8.4,2.8.4.1
snort=2.8.4.1
Caminho do arquivo de PID do processo.
pid_path=/var/run/snort_eth0.pid
3-) pulledpork.pl
Script principal que pode ser invocado com todas opções em linha de comando bem como utilizar das configurações dos arquivos citados acima .
Utilizando o Pulled Pork
# perl pulledpork.pl listará as opções da ferramenta
Para nosso caso utilizaremos somente a opção -c apontando para o arquivo de configuração e o -i para o disablesid.conf visto que configuramos as opções no pulledpork.conf
# perl pulledpork.pl -c pulledpork.conf -i disablesid.conf
http://code.google.com/p/pulledpork/
_____ ____
`—-,\ )
`–==\\ / Pulled_Pork v0.2.5
`–==\\/
.-~~~~-.Y|\\_ Copyright (C) 2009 JJ Cummings
@_/ / 66\_ cummingsj@gmail.com
| \ \ _(”)
\ /-| ||’–’ Rules give me wings!
\_\ \_\\
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Checking latest MD5….
Rules tarball download….
Prepping files for work….
Done!
Copying rules files….
Done!
Copying Shared Object Rules….
Done!
Running in Rule Dump mode with config file: /etc/snort/snort.conf
=== Removido ===
Disabling your chosen SID’s….
Disabled 1 rules in /etc/snort/rules/web-iis.rules
Disabled 1 rules in /etc/snort/rules/exploit.rules
Disabled 1 rules in /etc/snort/rules/rpc.rules
Disabled 2 rules in /etc/snort/rules/backdoor.rules
Done
Generating sid-msg.map…
Done
Fly Piggy Fly!
Pronto !!! Você está atualizado, agora basta adicionar ao crontab !!
Site: http://code.google.com/p/pulledpork/
Espero que seja útil .
Happy Snorting!
Rodrigo Montoro(Sp0oKeR)
17 de Setembro de 2009 @ 11:47
legaz .. vou colocar isto em prática uma certa hora .. vlw!
21 de Setembro de 2009 @ 18:21
Excelente artigo, desconhecia o Pulled Pork, 5 estrelas na descrição detalhada.
Abraço e continuação de um bom trabalho