Snort 3 é o Snort IPS (Sistema de Prevenção de Intrusões) de próxima geração. Este arquivo mostrará o que o Snort++ tem a oferecer e guiará você pelas etapas do download até a demonstração. Se você não está familiarizado com o Snort, você deve primeiro dar uma olhada na documentação do Snort. Abordaremos os seguintes tópicos:
Visão geral
Dependências
Download
Construir bufo
Execute o Snort
Documentação
Guincho
Esta versão do Snort++ inclui novos recursos, bem como todos os recursos do Snort 2.X e correções de bugs para a versão base do Snort, exceto conforme indicado abaixo:
Project = Snort++ Binary = snort Version = 3.0.0 (Build 250) from 2.9.11
Aqui estão alguns recursos principais do Snort++:
Suporta vários threads de processamento de pacotes
Use uma configuração compartilhada e uma tabela de atributos
Use uma configuração simples e programável
Torne os principais componentes conectáveis
Serviços de detecção automática para configuração sem porta
Suporta buffers fixos em regras
Gerar automaticamente documentação de referência
Fornece melhor suporte multiplataforma
Facilite o teste de componentes
Use um mapa de rede compartilhado
Recursos adicionais no roteiro incluem:
Suporte ao pipeline de processamento de pacotes
Suporta descarregamento de hardware e integração de plano de dados
Suporta modo proxy
Suporte do Windows
Se você já constrói o Snort, pode ter tudo o que precisa. Se não, pegue o mais recente:
cmake para construir a partir da fonte
daq de https://github.com/snort3/libdaq para pacote IO
dnet de https://github.com/dugsong/libdnet.git para funções de utilitário de rede
flex >= 2.6.0 de https://github.com/westes/flex para analisador de sintaxe JavaScript
g++ >= 7 ou outro compilador C++ 17
hwloc de https://www.open-mpi.org/projects/hwloc/ para gerenciamento de afinidade de CPU
LuaJIT de http://luajit.org para configuração e scripts
OpenSSL de https://www.openssl.org/source/ para assinaturas de arquivos SHA e MD5, a opção de regra protected_content e detecção de serviço SSL
pcap de http://www.tcpdump.org para registro no estilo tcpdump
pcre de http://www.pcre.org para correspondência de padrões de expressão regular
pkgconfig de https://www.freedesktop.org/wiki/Software/pkg-config/ para localizar dependências de compilação
zlib de http://www.zlib.net para descompactação
Pacotes adicionais fornecem recursos opcionais. Verifique o manual para mais informações.
Há um tarball de origem disponível na seção Downloads em snort.org:
snort-3.0.0-a3.tar.gz
Você também pode obter o código com:
git clone https://github.com/snort3/snort3.git
Existem pacotes extras separados para cmake que fornecem recursos adicionais e demonstram como construir plugins. A fonte dos extras está no repositório snort3_extra.git.
Siga estas etapas:
Configure o diretório de origem:
Se você estiver usando um clone do github:
cd bufar3/
Caso contrário, faça o seguinte:
tar zxf snort-tarballcd snort-3.0.0*
Caminho de instalação da configuração:
exportar meu_caminho=/caminho/para/snorty
Compilar e instalar:
Para construir com cmake e make, execute configure_cmake.sh. Ele criará e preencherá automaticamente um novo subdiretório chamado 'build'.
./configure_cmake.sh --prefix=$my_pathcd compilação faça -j $(nproc) instalar
Observação :
Se você puder fazer src/snort -V você construiu com sucesso.
Se você estiver familiarizado com o cmake, poderá executar cmake/ccmake em vez de configure_cmake.sh.
cmake --help listará todos os geradores disponíveis, como o Xcode. Sinta-se à vontade para usar um, mas a ajuda com eles será fornecida separadamente.
Aqui estão alguns exemplos. Se você estiver usando regras e/ou configurações do Talos, primeiro defina quaisquer variáveis necessárias na parte superior de snort.lua e snort_defaults.lua.
Snort++ fornece muita ajuda na linha de comando, incluindo:
$meu_caminho/bin/snort --help$meu_caminho/bin/snort --help-module suprimir$meu_caminho/bin/snort --help-config | tópico grep
Examine e descarte um pcap. A seguir, substitua a.pcap pelo seu favorito:
$meu_caminho/bin/snort -r a.pcap$meu_caminho/bin/snort -L dump -d -e -q -r a.pcap
Verifique uma configuração, com ou sem regras:
$meu_caminho/bin/snort -c $meu_caminho/etc/snort/snort.lua$meu_caminho/bin/snort -c $meu_caminho/etc/snort/snort.lua -R $meu_caminho/etc/snort/sample.rules
Execute o modo IDS. A seguir, substitua pcaps/ por um caminho para um diretório com um ou mais arquivos *.pcap:
$meu_caminho/bin/snort -c $meu_caminho/etc/snort/snort.lua -R $meu_caminho/etc/snort/sample.rules -r a.pcap -A alert_test -n 100000
Vamos suprimir 1:2123. Poderíamos editar o conf ou apenas fazer isso:
$meu_caminho/bin/snort -c $meu_caminho/etc/snort/snort.lua -R $meu_caminho/etc/snort/sample.rules -r a.pcap -A alert_test -n 100000 --lua "suprimir = { { gid = 1, sid = 2123 } }"
Vá fundo em um diretório com vários threads de pacotes:
$meu_caminho/bin/snort -c $meu_caminho/etc/snort/snort.lua -R $meu_caminho/etc/snort/sample.rules --pcap-filter *.pcap --pcap-dir pcaps/ -A alert_fast --max-packet-threads 8
Exemplos adicionais são fornecidos em doc/usage.txt.
Dê uma olhada no manual, cujas partes são geradas pelo código para que ele fique atualizado:
$meu_caminho/share/doc/snort/snort_manual.pdf$meu_caminho/share/doc/snort/snort_manual.html$meu_caminho/share/doc/snort/snort_manual/index.html
Ainda não se sabe muito sobre como e por que, mas tem todas as configurações disponíveis atualmente, etc. Algumas mudanças importantes nas regras:
você deve usar subopções de conteúdo separadas por vírgula como esta: content:"foo", nocase;
seletores de buffer devem aparecer antes do conteúdo e permanecer em vigor até serem alterados
seletores de buffer pcre foram excluídos
verifique o manual para saber mais sobre Snort++ vs Snort
verifique a seção de referência do manual para entender como os parâmetros são definidos, etc.
Ele também cobre novos recursos não demonstrados aqui:
snort2lua, uma ferramenta para converter conf e regras do Snort 2.X para o novo formato
um novo inspetor HTTP
um fichário, para mapear a configuração para o tráfego
um assistente para configuração independente de porta
análise de regras aprimorada - espaços em branco arbitrários, comentários em estilo C, comentários #begin/#end
shell de linha de comando local e remoto
o")~
Esperamos que você esteja tão entusiasmado com o Snort++ quanto nós. Deixe-nos saber o que você pensa sobre a lista de usuários do snort. Enquanto isso, manteremos o foco na pedra de amolar.