
Pulled Pork para gerenciamento de regras do Snort e Suricata (do Google code)
PulledPork para gerenciamento de regras do Snort e Suricata (do Google code)
Encontre-nos no Libera.Chat (IRC) #pulledpork
Copyright (C) 2009-2021 JJ Cummings, Michael Shirk e a Equipe PulledPork!
Obrigado por escolher usar o PulledPork! Este arquivo fornece algumas orientações básicas sobre o uso do PulledPork. Por favor, leia este arquivo completamente para não perder nada!
Usage: pulledpork.pl [-dEgklnRTPVvv? -help] -c <config filename> -o <rule output path>
-O <oinkcode> -s <so_rule output directory> -D <Distro> -S <SnortVer>
-p <path to your snort binary> -C <path to your snort.conf> -t <sostub output path>
-h <changelog path> -H <signal_name> -I (security|connectivity|balanced) -i <path to disablesid.conf>
-b <path to dropsid.conf> -e <path to enablesid.conf> -M <path to modifysid.conf>
-r <path to docs folder> -K <directory for separate rules files>
Options:
-help/? Exibe estas informações de ajuda.
-b Caminho do arquivo de configuração dropsid.
-C Caminho para o seu snort.conf
-c Caminho do arquivo de configuração do pulledpork.
-d Não verificar a assinatura do tarball de regras, por exemplo, ao baixar de locais não VRT ou ET.
-D Qual distribuição você está usando, para as so_rules
Para opções suportadas mais recentes veja http://www.snort.org/snort-rules/shared-object-rules
Tipos de Distribuição Válidos:
Alpine-3-10
Centos-6, Centos-7, Centos-8
Debian-8, Debian-9, Debian-10
FC-27, FC-30
FreeBSD-11, FreeBSD-12
OpenBSD-6-2, OpenBSD-6-4, OpenBSD-6-5
OpenSUSE-15-0, OpenSUS-15-1, OpenSUSE-42-3
RHEL-6, RHEL-7, RHEL-8
Slackware-14-2
Ubuntu-14-4, Ubuntu-16-4, Ubuntu-17-10, Ubuntu-18-4
-e Caminho do arquivo de configuração enablesid.
-E Escrever APENAS as regras habilitadas nos arquivos de saída.
-g grabonly (baixar o(s) arquivo(s) tarball de regras e NÃO processar)
-h Caminho para o sid_changelog, se desejar manter um?
-H Enviar signal_name para os PIDs listados no arquivo de configuração (SIGHUP ou SIGUSR2)
-I Especificar um conjunto de regras base (-I security,connectivity,ou balanced, veja README.RULESET)
-i Caminho do arquivo de configuração disablesid.
-k Manter as regras em arquivos separados (usando os mesmos nomes de arquivo encontrados na leitura)
-K Onde (qual diretório) deseja que eu coloque os arquivos de regras separados?
-l Registrar Informações Importantes no Syslog (Erros, Execução bem-sucedida etc., todos os itens registrados como WARN ou superior)
-L Onde deseja que eu leia seu local.rules para inclusão no sid-msg.map
-m Onde deseja que eu coloque o arquivo sid-msg.map?
-M Caminho do arquivo de configuração modifysid.
-n Fazer tudo, exceto o download de novos arquivos (disablesid, etc.)
-o Onde deseja que eu coloque o arquivo de regras genérico?
-O Definir o oinkcode na linha de comando (necessário para alguns usuários)
-p Caminho para o binário do Snort
-P Processar regras mesmo se nenhuma nova regra foi baixada
-R Ao processar enablesid, retornar as regras ao estado ORIGINAL
-r Onde deseja que eu coloque os documentos de referência (xxxx.txt)
-S Qual versão do snort você está usando (2.8.6 ou 2.9.0 são valores válidos)
-s Onde deseja que eu coloque as so_rules?
-T Processar apenas arquivos de regras baseados em texto, ou seja, NÃO processar so_rules
-u De onde deseja que eu baixe o tarball de regras
** Ex., ET, Snort.org. Veja a opção rule_url no config do pulledpork para ideias de valores
-V Exibir Versão e sair
-v Modo verboso, você sabe.. para solução de problemas e essas bobagens.
-vv Modo EXTRA verboso, você sabe.. para solução de problemas aprofundada e outras bobagens.
-w Pular a verificação SSL (se houver problemas ao baixar arquivos de regras)
-W Onde contornar o problema onde algumas implementações de LWP não funcionam com a configuração de proxy do pulledpork.
Um exemplo simples de como usar o PulledPork seria especificar todas as suas diretivas de configuração dentro do
arquivo PulledPork.conf. Especificamente para funcionalidade mínima, ou seja, NENHUM processamento de regras Shared Object, você deve definir
no mínimo os valores rule_file, oinkcode, temp_path, tar_path e rule_path. Abaixo estão alguns exemplos disso.
./pulledpork.pl -o /usr/local/etc/snort/rules/ -O 12345667778523452344234234 \
-u http://www.snort.org/reg-rules/snortrules-snapshot-2973.tar.gz \
-i disablesid.conf -T -H
O comando acima irá buscar o tarball snortrules-snapshot-2973.tar.gz do snort.org usando o oinkcode especificado
12345667778523452344234234 e colocar os arquivos de regras desse tarball no caminho de saída
/usr/local/etc/snort/rules/ enquanto a opção -i informa ao pulledpork onde o
disablesid.conf está localizado, e a opção -T informa ao pulledpork para não processar regras de objeto compartilhado e a final
opção -H informa ao pulledpork para enviar um sinal Hangup para o PID do snort que você definiu no pulledpork.conf.
./pulledpork.pl -c pulledpork.conf -i disablesid.conf -T -H
Semelhante ao primeiro exemplo, mas todas as opções especificadas no arquivo pulledpork.conf (exceto disablesid e -H)...
./pulledpork.pl -c pulledpork.conf -i disablesid.conf \
-m /usr/local/etc/snort/sid-msg.map -Hn
O comando acima simplesmente lerá o disablesid e desabilitará conforme definido, depois enviará um sinal Hangup após gerar o sid-msg.map
no local especificado sem baixar nada.
Muito útil ao ajustar / fazer alterações etc..
Próximo exemplo, snort inline com regras que queremos descartar e desabilitar, depois HUP nossos daemons após criar um sid-msg.map
e escrever informações de alteração no sid_changes.log!
./pulledpork.pl -c pulledpork.conf -i disablesid.conf -b dropsid.conf \
-m /usr/local/etc/snort/sid-msg.map -h /var/log/sid_changes.log -H
Próximo exemplo, igual ao anterior, mas especificando que queremos executar o conjunto de regras padrão "security"
e que queremos habilitar regras especificadas no enablesid.conf.
./pulledpork.pl -c pulledpork.conf -i disablesid.conf -b dropsid.conf \
-e enablesid.conf -m /usr/local/etc/snort/sid-msg.map \
-h /var/log/sid_changes.log -I security -H
Próximo exemplo, igual ao anterior, mas especificando que queremos usar -K (Manter) os nomes do tarball original.
e escrevê-los em /usr/local/etc/snort/rules/
./pulledpork.pl -c pulledpork.conf -i disablesid.conf -b dropsid.conf \
-e enablesid.conf -m /usr/local/etc/snort/sid-msg.map \
-h /var/log/sid_changes.log -I security -H -K /usr/local/etc/snort/rules/
Para usuários do Suricata, os mesmos passos são necessários para onde seus arquivos de instalação residem, mas tudo o que o pulledpork precisa para processar
arquivos de regras é a flag -S definida como suricata-3.1.3 ou qualquer versão do suricata que você esteja usando
./pulledpork.pl -c pulledpork.conf -S suricata-3.1.3
O Pulledpork "deveria" funcionar com regras Suricata e ET/ETPro. No entanto, não há suporte para regras Talos rodando no Suricata.
Por favor, observe que o pulledpork executa a modificação de regras (enable, drop, disable, modify) nessa ordem por padrão..
Isso significa que as regras de disable sempre terão precedência.. portanto, se você especificar o mesmo gid:sid
nos arquivos de configuração enable e disable, esse sid será desabilitado.. tenha isso em mente
para intervalos também! No entanto, você pode especificar uma ordem diferente usando a palavra-chave state_order no
arquivo de configuração mestre.
Provavelmente adicionarei mais informações depois, o --help ou --? exibirá todas as opções de tempo de execução e o pulledpork.conf é
bastante anotado... então se você não conseguir descobrir... tente mais! E quando descobrir, sinta-se à vontade
para contribuir com material adicional de leitura / ajuda.. valeu!
Como nota lateral, gostaria de dar um salve para meu amigo Bruce por ajudar na nomeação do PulledPork! "espero que isso o cale ;-)"