Renifler ou Suricata. Partie 2 : Installation et configuration initiale de Suricata

Selon les statistiques, le volume du trafic réseau augmente d'environ 50 % chaque année. Cela entraîne une augmentation de la charge sur l'équipement et, en particulier, augmente les exigences de performance de l'IDS / IPS. Vous pouvez acheter du matériel spécialisé coûteux, mais il existe une option moins chère - l'introduction de l'un des systèmes open source. De nombreux administrateurs novices ont du mal à installer et à configurer un IPS gratuit. Dans le cas de Suricata, ce n'est pas tout à fait vrai - vous pouvez l'installer et commencer à repousser les attaques typiques avec un ensemble de règles gratuites en quelques minutes.

Renifler ou Suricata. Partie 2 : Installation et configuration initiale de Suricata
Renifler ou Suricata. Partie 1 : Choisir un IDS/IPS gratuit pour protéger votre réseau d'entreprise

Pourquoi avons-nous besoin d'un autre IPS ouvert ?

Longtemps considéré comme la norme, Snort est en développement depuis la fin des années 6, il était donc à l'origine monothread. Au fil des ans, toutes les fonctionnalités modernes y sont apparues, telles que la prise en charge d'IPvXNUMX, la capacité d'analyser les protocoles au niveau de l'application ou un module universel d'accès aux données.

Le moteur principal Snort 2.X a appris à fonctionner avec plusieurs cœurs, mais est resté monothread et ne peut donc pas tirer parti de manière optimale des plates-formes matérielles modernes.

Le problème a été résolu dans la troisième version du système, mais il a fallu tellement de temps pour se préparer que Suricata, écrit à partir de zéro, a réussi à apparaître sur le marché. En 2009, il a commencé à être développé précisément comme une alternative multithread à Snort, qui a des fonctions IPS prêtes à l'emploi. Le code est distribué sous licence GPLv2, mais les partenaires financiers du projet ont accès à une version fermée du moteur. Quelques problèmes d'évolutivité sont apparus dans les premières versions du système, mais ils ont été rapidement résolus.

Pourquoi Surique ?

Suricata a plusieurs modules (similaires à Snort) : capture, capture, décodage, détection et sortie. Par défaut, le trafic capturé passe avant le décodage dans un flux, bien que cela charge davantage le système. Si nécessaire, les threads peuvent être divisés dans les paramètres et répartis entre les processeurs - Suricata est très bien optimisé pour un matériel spécifique, bien qu'il ne s'agisse plus d'un niveau HOWTO pour les débutants. Il convient également de noter que Suricata dispose d'outils d'inspection HTTP avancés basés sur la bibliothèque HTP. Ils peuvent également être utilisés pour enregistrer le trafic sans détection. Le système prend également en charge le décodage IPv6, y compris les tunnels IPv4-in-IPv6, les tunnels IPv6-in-IPv6, etc.

Différentes interfaces peuvent être utilisées pour intercepter le trafic (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING), et en mode Unix Socket, vous pouvez analyser automatiquement les fichiers PCAP capturés par un autre renifleur. De plus, l'architecture modulaire de Suricata facilite le branchement de nouveaux éléments pour capturer, décoder, analyser et traiter les paquets réseau. Il est également important de noter qu'à Suricata, le trafic est bloqué au moyen d'un filtre régulier du système d'exploitation. GNU/Linux a deux options pour le fonctionnement d'IPS : via la file d'attente NFQUEUE (mode NFQ) et via zéro copie (mode AF_PACKET). Dans le premier cas, le paquet qui entre dans iptables est envoyé à la file d'attente NFQUEUE, où il peut être traité au niveau de l'utilisateur. Suricata l'exécute selon ses propres règles et émet l'un des trois verdicts : NF_ACCEPT, NF_DROP et NF_REPEAT. Les deux premiers sont explicites, tandis que le dernier permet aux paquets d'être étiquetés et envoyés en haut de la table iptables actuelle. Le mode AF_PACKET est plus rapide, mais il impose un certain nombre de restrictions au système : il doit avoir deux interfaces réseau et fonctionner comme une passerelle. Le paquet bloqué n'est tout simplement pas transmis à la deuxième interface.

Une caractéristique importante de Suricata est la possibilité d'utiliser les développements pour Snort. L'administrateur a notamment accès aux jeux de règles Sourcefire VRT et OpenSource Emerging Threats, ainsi qu'au commerce Emerging Threats Pro. La sortie unifiée peut être analysée à l'aide de backends populaires, la sortie PCAP et Syslog est également prise en charge. Les paramètres et les règles du système sont stockés dans des fichiers YAML, faciles à lire et pouvant être traités automatiquement. Le moteur Suricata reconnaît de nombreux protocoles, de sorte que les règles n'ont pas besoin d'être liées à un numéro de port. De plus, le concept de flowbits est activement pratiqué dans les règles de Suricata. Pour suivre le déclencheur, les variables de session sont utilisées pour créer et appliquer divers compteurs et indicateurs. De nombreux IDS traitent différentes connexions TCP comme des entités distinctes et peuvent ne pas voir de connexion entre elles indiquant le début d'une attaque. Suricata essaie d'avoir une vue d'ensemble et, dans de nombreux cas, reconnaît le trafic malveillant distribué sur différentes connexions. Vous pouvez parler longtemps de ses avantages, nous ferions mieux de passer à l'installation et à la configuration.

Comment installer?

Nous allons installer Suricata sur un serveur virtuel exécutant Ubuntu 18.04 LTS. Toutes les commandes doivent être exécutées au nom du superutilisateur (root). L'option la plus sécurisée consiste à se connecter en SSH au serveur en tant qu'utilisateur normal, puis à utiliser l'utilitaire sudo pour élever les privilèges. Vous devez d'abord installer les packages dont nous avons besoin :

sudo apt -y install libpcre3 libpcre3-dev build-essential autoconf automake libtool libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libmagic-dev libcap-ng-dev libjansson-dev pkg-config libnetfilter-queue-dev geoip-bin geoip-database geoipupdate apt-transport-https

Connexion d'un référentiel externe :

sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get update

Installez la dernière version stable de Suricata :

sudo apt-get install suricata

Si nécessaire, modifiez le nom des fichiers de configuration en remplaçant le nom par défaut eth0 par le nom réel de l'interface externe du serveur. Les paramètres par défaut sont stockés dans le fichier /etc/default/suricata et les paramètres personnalisés sont stockés dans /etc/suricata/suricata.yaml. La configuration d'IDS se limite principalement à l'édition de ce fichier de configuration. Il a beaucoup de paramètres qui, par leur nom et leur objectif, coïncident avec les analogues de Snort. La syntaxe est cependant complètement différente, mais le fichier est beaucoup plus facile à lire que les configurations Snort et est bien commenté.

sudo nano /etc/default/suricata

Renifler ou Suricata. Partie 2 : Installation et configuration initiale de Suricata

и

sudo nano /etc/suricata/suricata.yaml

Renifler ou Suricata. Partie 2 : Installation et configuration initiale de Suricata

Attention! Avant de commencer, il convient de vérifier les valeurs des variables de la section vars.

Pour terminer la configuration, vous devrez installer suricata-update pour mettre à jour et charger les règles. C'est assez facile de faire ceci :

sudo apt install python-pip
sudo pip install pyyaml
sudo pip install <a href="https://github.com/OISF/suricata-update/archive/master.zip">https://github.com/OISF/suricata-update/archive/master.zip</a>
sudo pip install --pre --upgrade suricata-update

Ensuite, nous devons exécuter la commande suricata-update pour installer l'ensemble de règles Emerging Threats Open :

sudo suricata-update

Renifler ou Suricata. Partie 2 : Installation et configuration initiale de Suricata

Pour afficher la liste des sources de règles, exécutez la commande suivante :

sudo suricata-update list-sources

Renifler ou Suricata. Partie 2 : Installation et configuration initiale de Suricata

Mettez à jour les sources de règles :

sudo suricata-update update-sources

Renifler ou Suricata. Partie 2 : Installation et configuration initiale de Suricata

Revisiter les sources mises à jour :

sudo suricata-update list-sources

Si nécessaire, vous pouvez inclure les sources gratuites disponibles :

sudo suricata-update enable-source ptresearch/attackdetection
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update enable-source sslbl/ssl-fp-blacklist

Après cela, vous devez à nouveau mettre à jour les règles :

sudo suricata-update

Ceci termine l'installation et la configuration initiale de Suricata dans Ubuntu 18.04 LTS. Ensuite, le plaisir commence : dans le prochain article, nous connecterons un serveur virtuel au réseau du bureau via VPN et commencerons à analyser tout le trafic entrant et sortant. Nous accorderons une attention particulière au blocage des attaques DDoS, de l'activité des logiciels malveillants et des tentatives d'exploitation des vulnérabilités dans les services accessibles à partir des réseaux publics. Pour plus de clarté, les attaques des types les plus courants seront simulées.

Renifler ou Suricata. Partie 2 : Installation et configuration initiale de Suricata

Renifler ou Suricata. Partie 2 : Installation et configuration initiale de Suricata

Source: habr.com

Ajouter un commentaire