Snort 3 est la nouvelle génération Snort IPS (Intrusion Prevention System). Ce fichier vous montrera ce que Snort++ a à offrir et vous guidera à travers les étapes du téléchargement à la démo. Si vous n'êtes pas familier avec Snort, vous devriez d'abord jeter un œil à la documentation de Snort. Nous aborderons les sujets suivants :
Aperçu
Dépendances
Télécharger
Construire Sniff
Exécutez Sniff
Documentation
Hurler
Cette version de Snort++ inclut de nouvelles fonctionnalités ainsi que toutes les fonctionnalités de Snort 2.X et des corrections de bugs pour la version de base de Snort, sauf comme indiqué ci-dessous :
Project = Snort++ Binary = snort Version = 3.0.0 (Build 250) from 2.9.11
Voici quelques fonctionnalités clés de Snort++ :
Prise en charge de plusieurs threads de traitement de paquets
Utiliser une configuration et une table attributaires partagées
Utilisez une configuration simple et scriptable
Rendre les composants clés enfichables
Services de détection automatique pour la configuration sans port
Prise en charge des tampons collants dans les règles
Générer automatiquement la documentation de référence
Fournir un meilleur support multiplateforme
Faciliter les tests de composants
Utiliser une carte de réseau partagée
Les fonctionnalités supplémentaires de la feuille de route incluent :
Prise en charge du pipeline du traitement des paquets
Prise en charge du déchargement matériel et de l'intégration du plan de données
Prise en charge du mode proxy
Prise en charge de Windows
Si vous construisez déjà Snort, vous avez peut-être tout ce dont vous avez besoin. Sinon, récupérez la dernière version :
cmake pour construire à partir des sources
daq de https://github.com/snort3/libdaq pour les paquets IO
dnet depuis https://github.com/dugsong/libdnet.git pour les fonctions utilitaires réseau
flex >= 2.6.0 de https://github.com/westes/flex pour l'analyseur de syntaxe JavaScript
g++ >= 7 ou autre compilateur C++17
hwloc de https://www.open-mpi.org/projects/hwloc/ pour la gestion de l'affinité CPU
LuaJIT depuis http://luajit.org pour la configuration et les scripts
OpenSSL depuis https://www.openssl.org/source/ pour les signatures de fichiers SHA et MD5, l'option de règle protected_content et la détection du service SSL
pcap de http://www.tcpdump.org pour la journalisation de style tcpdump
pcre depuis http://www.pcre.org pour la correspondance de modèles d'expressions régulières
pkgconfig depuis https://www.freedesktop.org/wiki/Software/pkg-config/ pour localiser les dépendances de build
zlib depuis http://www.zlib.net pour la décompression
Des packages supplémentaires fournissent des fonctionnalités optionnelles. Consultez le manuel pour en savoir plus.
Il existe une archive tar source disponible dans la section Téléchargements sur snort.org :
snort-3.0.0-a3.tar.gz
Vous pouvez également obtenir le code avec :
git clone https://github.com/snort3/snort3.git
Il existe des packages supplémentaires distincts pour cmake qui fournissent des fonctionnalités supplémentaires et montrent comment créer des plugins. La source des extras se trouve dans le dépôt snort3_extra.git.
Suivez ces étapes :
Configurer le répertoire source :
Si vous utilisez un clone de github :
cd snort3/
Sinon, fais ceci :
tar zxf snort-tarballcd snort-3.0.0*
Chemin d'installation de l'installation :
exporter mon_chemin=/chemin/vers/snorty
Compilez et installez :
Pour construire avec cmake et make, exécutez configure_cmake.sh. Il créera et remplira automatiquement un nouveau sous-répertoire nommé « build ».
./configure_cmake.sh --prefix=$my_pathcd build make -j $(nproc) installer
Note :
Si vous pouvez faire src/snort -V, vous avez construit avec succès.
Si vous êtes familier avec cmake, vous pouvez exécuter cmake/ccmake au lieu de configure_cmake.sh.
cmake --help listera tous les générateurs disponibles, tels que Xcode. N'hésitez pas à en utiliser un, mais l'aide sera fournie séparément.
Voici quelques exemples. Si vous utilisez les règles et/ou les configurations Talos, vous devez d'abord définir toutes les variables nécessaires en haut de snort.lua et snort_defaults.lua.
Snort++ fournit de nombreuses aides à partir de la ligne de commande, notamment :
$mon_chemin/bin/snort --help$mon_chemin/bin/snort --help-module suppress$mon_chemin/bin/snort --help-config | fil de discussion
Examinez et videz un pcap. Dans ce qui suit, remplacez a.pcap par votre favori :
$mon_chemin/bin/snort -r a.pcap$mon_chemin/bin/snort -L dump -d -e -q -r a.pcap
Vérifier une configuration, avec ou sans règles :
$mon_chemin/bin/snort -c $mon_chemin/etc/snort/snort.lua$mon_chemin/bin/snort -c $mon_chemin/etc/snort/snort.lua -R $mon_chemin/etc/snort/sample.rules
Exécutez le mode IDS. Dans ce qui suit, remplacez pcaps/ par un chemin d'accès à un répertoire contenant un ou plusieurs fichiers *.pcap :
$mon_chemin/bin/snort -c $mon_chemin/etc/snort/snort.lua -R $mon_chemin/etc/snort/sample.rules -r a.pcap -A alert_test -n 100000
Supprimons 1:2123. Nous pourrions éditer la conf ou simplement faire ceci :
$mon_chemin/bin/snort -c $mon_chemin/etc/snort/snort.lua -R $mon_chemin/etc/snort/sample.rules -r a.pcap -A alert_test -n 100000 --lua "suppress = { { gid = 1, sid = 2123 } }"
Allez à fond sur un répertoire avec plusieurs threads de paquets :
$mon_chemin/bin/snort -c $mon_chemin/etc/snort/snort.lua -R $mon_chemin/etc/snort/sample.rules --pcap-filter *.pcap --pcap-dir pcaps/ -A alert_fast --max-packet-threads 8
Des exemples supplémentaires sont donnés dans doc/usage.txt.
Jetez un œil au manuel, dont certaines parties sont générées par le code afin qu'il reste à jour :
$mon_chemin/share/doc/snort/snort_manual.pdf$mon_chemin/share/doc/snort/snort_manual.html$mon_chemin/share/doc/snort/snort_manual/index.html
Il ne contient pas encore grand-chose sur le comment et le pourquoi, mais il contient toute la configuration actuellement disponible, etc. Quelques changements clés dans les règles :
vous devez utiliser des sous-options de contenu séparées par des virgules comme celle-ci : content:"foo", nocase;
les sélecteurs de tampon doivent apparaître avant le contenu et rester en vigueur jusqu'à ce qu'ils soient modifiés
les sélecteurs de tampon pcre ont été supprimés
consultez le manuel pour en savoir plus sur Snort++ vs Snort
consultez la section de référence du manuel pour comprendre comment les paramètres sont définis, etc.
Il couvre également de nouvelles fonctionnalités non présentées ici :
snort2lua, un outil pour convertir la configuration et les règles Snort 2.X vers le nouveau formulaire
un nouvel inspecteur HTTP
un classeur, pour mapper la configuration au trafic
un assistant pour la configuration indépendante du port
analyse des règles améliorée - espaces arbitraires, commentaires de style C, commentaires #begin/#end
shell de ligne de commande local et distant
o")~
Nous espérons que vous êtes aussi enthousiasmé par Snort++ que nous. Faites-nous savoir ce que vous pensez sur la liste des utilisateurs de Snort. En attendant, nous allons continuer à travailler dur.