Renifler ou Suricata. Partie 3 : Protection du réseau du bureau

В article précédent nous avons expliqué comment exécuter la version stable de Suricata sur Ubuntu 18.04 LTS. La configuration d'un IDS sur un seul nœud et l'activation d'ensembles de règles gratuits sont assez simples. Aujourd'hui, nous allons découvrir comment protéger un réseau d'entreprise en utilisant les types d'attaques les plus courants à l'aide de Suricata installé sur un serveur virtuel. Pour ce faire, nous avons besoin d'un VDS sous Linux avec deux cœurs de calcul. La quantité de RAM dépend de la charge : 2 Go suffisent pour quelqu'un, et 4 voire 6 peuvent être nécessaires pour des tâches plus sérieuses.L'avantage d'une machine virtuelle est la possibilité d'expérimenter : vous pouvez commencer avec une configuration minimale et augmenter ressources selon les besoins.

Renifler ou Suricata. Partie 3 : Protection du réseau du bureauphoto : Reuters

Connecter les réseaux

La suppression initiale d'IDS sur une machine virtuelle peut être nécessaire pour les tests. Si vous n'avez jamais utilisé de telles solutions, vous ne devez pas vous précipiter pour commander du matériel physique et modifier l'architecture du réseau. Il est préférable d'exécuter le système de manière sûre et rentable pour déterminer vos besoins de calcul. Il est important de comprendre que tout le trafic de l'entreprise devra passer par un seul nœud externe : pour connecter un réseau local (ou plusieurs réseaux) à un VDS avec IDS Suricata installé, vous pouvez utiliser DouxEther - Un serveur VPN multiplateforme facile à configurer qui fournit un cryptage fort. Une connexion Internet de bureau peut ne pas avoir de véritable adresse IP, il est donc préférable de la configurer sur un VPS. Il n'y a pas de packages prêts à l'emploi dans le référentiel Ubuntu, vous devrez télécharger le logiciel soit depuis site du projet, ou à partir d'un dépôt externe sur le service Launchpad (si vous lui faites confiance):

sudo add-apt-repository ppa:paskal-07/softethervpn
sudo apt-get update

Vous pouvez afficher la liste des packages disponibles avec la commande suivante :

apt-cache search softether

Renifler ou Suricata. Partie 3 : Protection du réseau du bureau

Nous aurons besoin de softether-vpnserver (le serveur dans la configuration de test s'exécute sur VDS), ainsi que de softether-vpncmd - utilitaires de ligne de commande pour le configurer.

sudo apt-get install softether-vpnserver softether-vpncmd

Un utilitaire de ligne de commande spécial est utilisé pour configurer le serveur :

sudo vpncmd

Renifler ou Suricata. Partie 3 : Protection du réseau du bureau

Nous ne parlerons pas en détail du réglage : la procédure est assez simple, elle est bien décrite dans de nombreuses publications et ne concerne pas directement le sujet de l'article. En bref, après avoir démarré vpncmd, vous devez sélectionner l'élément 1 pour accéder à la console de gestion du serveur. Pour ce faire, vous devez entrer le nom localhost et appuyer sur Entrée au lieu d'entrer le nom du hub. Le mot de passe administrateur est défini dans la console avec la commande serverpasswordset, le hub virtuel DEFAULT est supprimé (commande hubdelete) et un nouveau est créé avec le nom Suricata_VPN, et son mot de passe est également défini (commande hubcreate). Ensuite, vous devez accéder à la console de gestion du nouveau hub à l'aide de la commande hub Suricata_VPN pour créer un groupe et un utilisateur à l'aide des commandes groupcreate et usercreate. Le mot de passe utilisateur est défini à l'aide de userpasswordset.

SoftEther prend en charge deux modes de transfert de trafic : SecureNAT et Local Bridge. La première est une technologie propriétaire pour construire un réseau privé virtuel avec ses propres NAT et DHCP. SecureNAT ne nécessite pas TUN/TAP ou Netfilter ou d'autres paramètres de pare-feu. Le routage n'affecte pas le cœur du système, et tous les processus sont virtualisés et fonctionnent sur n'importe quel VPS/VDS, quel que soit l'hyperviseur utilisé. Cela entraîne une charge CPU accrue et une vitesse plus lente par rapport au mode Pont local, qui connecte le hub virtuel SoftEther à un adaptateur réseau physique ou à un périphérique TAP.

La configuration dans ce cas devient plus compliquée, car le routage se produit au niveau du noyau à l'aide de Netfilter. Nos VDS sont construits sur Hyper-V, donc dans la dernière étape, nous créons un pont local et activons le périphérique TAP avec la commande bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes. Après avoir quitté la console de gestion du concentrateur, nous verrons une nouvelle interface réseau dans le système qui n'a pas encore reçu d'adresse IP :

ifconfig

Renifler ou Suricata. Partie 3 : Protection du réseau du bureau

Ensuite, vous devrez activer le routage de paquets entre les interfaces (ip forward), s'il est inactif :

sudo nano /etc/sysctl.conf

Décommentez la ligne suivante :

net.ipv4.ip_forward = 1

Enregistrez les modifications dans le fichier, quittez l'éditeur et appliquez-les avec la commande suivante :

sudo sysctl -p

Ensuite, nous devons définir un sous-réseau pour le réseau virtuel avec des IP fictives (par exemple, 10.0.10.0/24) et attribuer une adresse à l'interface :

sudo ifconfig tap_suricata_vp 10.0.10.1/24

Ensuite, vous devez écrire des règles Netfilter.

1. Si nécessaire, autorisez les paquets entrants sur les ports d'écoute (le protocole propriétaire SoftEther utilise HTTPS et le port 443)

sudo iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 992 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 5555 -j ACCEPT

2. Configurez NAT du sous-réseau 10.0.10.0/24 à l'adresse IP du serveur principal

sudo iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -j SNAT --to-source 45.132.17.140

3. Autoriser le passage des paquets du sous-réseau 10.0.10.0/24

sudo iptables -A FORWARD -s 10.0.10.0/24 -j ACCEPT

4. Autoriser le passage des paquets pour les connexions déjà établies

sudo iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

Nous laisserons l'automatisation du processus lors du redémarrage du système à l'aide de scripts d'initialisation aux lecteurs comme devoir.

Si vous souhaitez attribuer automatiquement une adresse IP aux clients, vous devrez également installer une sorte de service DHCP pour le pont local. Ceci termine la configuration du serveur et vous pouvez accéder aux clients. SoftEther prend en charge de nombreux protocoles, dont l'utilisation dépend des capacités de l'équipement LAN.

netstat -ap |grep vpnserver

Renifler ou Suricata. Partie 3 : Protection du réseau du bureau

Étant donné que notre routeur de test fonctionne également sous Ubuntu, installons les packages softether-vpnclient et softether-vpncmd à partir d'un référentiel externe pour utiliser le protocole propriétaire. Vous devrez exécuter le client :

sudo vpnclient start

Pour configurer, utilisez l'utilitaire vpncmd, en sélectionnant localhost comme machine sur laquelle le vpnclient est exécuté. Toutes les commandes se font dans la console : il vous faudra créer une interface virtuelle (NicCreate) et un compte (AccountCreate).

Dans certains cas, vous devez spécifier la méthode d'authentification à l'aide des commandes AccountAnonymousSet, AccountPasswordSet, AccountCertSet et AccountSecureCertSet. Comme nous n'utilisons pas DHCP, l'adresse de l'adaptateur virtuel est définie manuellement.

De plus, nous devons activer ip forward (le paramètre net.ipv4.ip_forward=1 dans le fichier /etc/sysctl.conf) et configurer les routes statiques. Si nécessaire, sur VDS avec Suricata, vous pouvez configurer la redirection de port pour utiliser les services installés sur le réseau local. Sur ce point, la fusion des réseaux peut être considérée comme terminée.

Notre configuration proposée ressemblera à ceci :

Renifler ou Suricata. Partie 3 : Protection du réseau du bureau

Mise en place de Suricata

В article précédent nous avons parlé de deux modes de fonctionnement d'IDS : via la file d'attente NFQUEUE (mode NFQ) et via zéro copie (mode AF_PACKET). La seconde nécessite deux interfaces, mais est plus rapide - nous l'utiliserons. Le paramètre est défini par défaut dans /etc/default/suricata. Nous devons également modifier la section vars dans /etc/suricata/suricata.yaml, en y définissant le sous-réseau virtuel comme home.

Renifler ou Suricata. Partie 3 : Protection du réseau du bureau

Pour redémarrer IDS, utilisez la commande :

systemctl restart suricata

La solution est prête, vous devrez peut-être maintenant la tester pour sa résistance aux actions malveillantes.

Simulation d'attaques

Il peut y avoir plusieurs scénarios pour l'utilisation au combat d'un service IDS externe :

Protection contre les attaques DDoS (objectif principal)

Il est difficile de mettre en œuvre cette option à l'intérieur du réseau d'entreprise, car les paquets à analyser doivent parvenir à l'interface système qui regarde Internet. Même si l'IDS les bloque, un trafic parasite peut interrompre la liaison de données. Pour éviter cela, vous devez commander un VPS avec une connexion Internet suffisamment productive qui peut laisser passer tout le trafic du réseau local et tout le trafic externe. Il est souvent plus facile et moins coûteux de le faire que d'étendre le canal du bureau. Comme alternative, il convient de mentionner les services spécialisés de protection contre les attaques DDoS. Le coût de leurs services est comparable au coût d'un serveur virtuel, et cela ne nécessite pas de configuration fastidieuse, mais il y a aussi des inconvénients - le client ne reçoit qu'une protection DDoS pour son argent, tandis que son propre IDS peut être configuré comme vous comme.

Protection contre les attaques externes d'autres types

Suricata est en mesure de faire face aux tentatives d'exploitation de diverses vulnérabilités dans les services du réseau d'entreprise accessibles depuis Internet (serveur de messagerie, serveur Web et applications Web, etc.). Habituellement, pour cela, l'IDS est installé à l'intérieur du LAN après les périphériques de bordure, mais l'emmener à l'extérieur a le droit d'exister.

Protection contre les initiés

Malgré tous les efforts de l'administrateur système, les ordinateurs du réseau d'entreprise peuvent être infectés par des logiciels malveillants. De plus, des hooligans apparaissent parfois dans la zone locale, qui tentent d'effectuer certaines opérations illégales. Suricata peut aider à bloquer de telles tentatives, bien que pour protéger le réseau interne, il soit préférable de l'installer à l'intérieur du périmètre et de l'utiliser en tandem avec un commutateur géré qui peut refléter le trafic sur un port. Un IDS externe n'est pas non plus inutile dans ce cas - au moins, il pourra détecter les tentatives de malwares vivant sur le LAN de contacter un serveur externe.

Pour commencer, nous allons créer un autre test attaquant VPS, et sur le routeur du réseau local, nous allons élever Apache avec la configuration par défaut, après quoi nous lui transmettrons le 80e port depuis le serveur IDS. Ensuite, nous allons simuler une attaque DDoS d'un hôte attaquant. Pour ce faire, téléchargez depuis GitHub, compilez et exécutez un petit programme xerxes sur le nœud attaquant (vous devrez peut-être installer le package gcc) :

git clone https://github.com/Soldie/xerxes-DDos-zanyarjamal-C.git
cd xerxes-DDos-zanyarjamal-C/
gcc xerxes.c -o xerxes 
./xerxes 45.132.17.140 80

Le résultat de son travail a été le suivant :

Renifler ou Suricata. Partie 3 : Protection du réseau du bureau

Suricata coupe le méchant, et la page Apache s'ouvre par défaut, malgré notre attaque impromptue et le canal plutôt mort du réseau "bureau" (en fait domestique). Pour les tâches plus sérieuses, vous devez utiliser Metasploit Framework. Il est conçu pour les tests de pénétration et vous permet de simuler une variété d'attaques. Instructions d'installation disponible sur le site du projet. Après l'installation, une mise à jour est nécessaire :

sudo msfupdate

Pour tester, exécutez msfconsole.

Renifler ou Suricata. Partie 3 : Protection du réseau du bureau

Malheureusement, les dernières versions du framework n'ont pas la capacité de craquer automatiquement, donc les exploits devront être triés manuellement et exécutés à l'aide de la commande use. Pour commencer, il convient de déterminer les ports ouverts sur la machine attaquée, par exemple en utilisant nmap (dans notre cas, il sera complètement remplacé par netstat sur l'hôte attaqué), puis de sélectionner et d'utiliser le bon Modules Metasploit

Il existe d'autres moyens de tester la résilience d'un IDS contre les attaques, y compris les services en ligne. Par curiosité, vous pouvez organiser des tests de résistance à l'aide de la version d'essai Stress IP. Pour vérifier la réaction aux actions des intrus internes, il convient d'installer des outils spéciaux sur l'une des machines du réseau local. Il existe de nombreuses options et de temps en temps, elles doivent être appliquées non seulement au site expérimental, mais également aux systèmes de travail, mais c'est une histoire complètement différente.

Renifler ou Suricata. Partie 3 : Protection du réseau du bureau

Renifler ou Suricata. Partie 3 : Protection du réseau du bureau

Source: habr.com

Ajouter un commentaire