Đ Nous avons expliquĂ© comment exĂ©cuter la version stable de Suricata dans Ubuntu 18.04 LTS. Configurer un IDS sur un seul nĆud et activer les ensembles de rĂšgles gratuits est assez simple. Aujourd'hui, nous allons voir comment protĂ©ger un rĂ©seau d'entreprise contre les types d'attaques les plus courants Ă l'aide de Suricata installĂ© sur un serveur virtuel. Pour cela, nous aurons besoin d'un VDS. Linux avec deux cĆurs de calcul. La quantitĂ© de RAM dĂ©pend de la charge de travail : 2 Go peuvent suffire pour certaines tĂąches, tandis que des tĂąches plus exigeantes peuvent nĂ©cessiter 4 Go, voire 6 Go. Lâavantage dâune machine virtuelle rĂ©side dans sa capacitĂ© dâexpĂ©rimentation : vous pouvez commencer avec une configuration minimale et augmenter les ressources selon vos besoins.
photo : 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 â un serveur VPN multiplateforme facile Ă configurer qui offre un chiffrement sĂ©curisĂ©. Votre connexion Internet professionnelle n'a peut-ĂȘtre pas d'adresse IP physique ; il est donc prĂ©fĂ©rable de la configurer sur un VPS. Dans le dĂ©pĂŽt Ubuntu Il n'existe pas de logiciels prĂ©installĂ©s ; il faudra les tĂ©lĂ©charger depuis [source manquante]. , ou Ă partir d'un dĂ©pĂŽt externe sur le service (si vous lui faites confiance):
sudo add-apt-repository ppa:paskal-07/softethervpn
sudo apt-get updateVous pouvez afficher la liste des packages disponibles avec la commande suivante :
apt-cache search softether 
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-vpncmdUn utilitaire de ligne de commande spécial est utilisé pour configurer le serveur :
sudo vpncmd 
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 
Ensuite, vous devrez activer le routage de paquets entre les interfaces (ip forward), s'il est inactif :
sudo nano /etc/sysctl.confDécommentez la ligne suivante :
net.ipv4.ip_forward = 1Enregistrez les modifications dans le fichier, quittez l'éditeur et appliquez-les avec la commande suivante :
sudo sysctl -pEnsuite, 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/24Ensuite, 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 ACCEPT2. 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.1403. 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 ACCEPT4. Autoriser le passage des paquets pour les connexions déjà établies
sudo iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPTNous 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 
Ătant donnĂ© que notre routeur de test fonctionne Ă©galement sous UbuntuInstallez les paquets softether-vpnclient et softether-vpncmd depuis un dĂ©pĂŽt externe pour utiliser le protocole propriĂ©taire. Vous devrez ensuite exĂ©cuter le client :
sudo vpnclient startPour 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 :

Mise en place de Suricata
Р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.

Pour redémarrer IDS, utilisez la commande :
systemctl restart suricataLa 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 80Le résultat de son travail a été le suivant :

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 . Il est conçu pour les tests de pénétration et vous permet de simuler une variété d'attaques. Instructions d'installation sur le site du projet. AprÚs l'installation, une mise à jour est nécessaire :
sudo msfupdatePour tester, exécutez msfconsole.

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 .
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 . 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.
Source: habr.com
