Un système de détection d'intrusion peut être déployé en fonction de la taille du réseau. Il existe des dizaines d'IDS commerciaux de qualité, mais de nombreuses entreprises et petites entreprises ne peuvent pas se les permettre. Renifler est un système de détection d'intrusion flexible, léger et populaire qui peut être déployé en fonction des besoins du réseau, allant des petits aux grands réseaux, et fournit toutes les fonctionnalités d'un IDS payant. Renifler ne coûte rien mais cela ne veut pas dire qu'il ne peut pas fournir les mêmes fonctionnalités qu'un IDS commercial d'élite. Renifler est considéré comme un IDS passif, ce qui signifie qu'il renifle les paquets réseau, les compare à l'ensemble de règles et, en cas de détection d'un journal ou d'une entrée malveillante (i.e., détection d'une intrusion), génère une alerte ou place une entrée dans un fichier journal. Renifler est utilisé pour surveiller les opérations et les activités des routeurs, des pare-feu et des serveurs. Snort fournit une interface conviviale, contenant une chaîne d'ensembles de règles qui peut être très utile à une personne qui n'est pas familière avec les IDS. Snort génère une alarme en cas d'intrusion (attaques par débordement de tampon, empoisonnement DNS, empreinte digitale du système d'exploitation, scans de ports, etc.), donnant à une organisation une plus grande visibilité sur le trafic réseau et facilitant grandement le respect des réglementations de sécurité.
Installation de Snort
Avant d'installer Snort, vous devez d'abord installer certains logiciels ou packages open source pour tirer le meilleur parti de ce programme.
- Libpcap : Un renifleur de paquets comme Wireshark qui est utilisé pour capturer, surveiller et analyser le trafic réseau. À installer libpcap, utilisez les commandes suivantes pour télécharger le paquet depuis le site officiel, décompressez le paquet, puis installez-le :
[email protégé] :~$ tar -xzvf libpcap-
[email protégé] : ~$ cd libpcap-
[email protégé] :~$ ./configurer
[email protected]:~$ sudo make
[email protected]:~$ make install
- OpenSSH : Un outil de connectivité sécurisé qui fournit un canal sécurisé, même sur un réseau non sécurisé, pour se connecter à distance via ssh protocole. OpenSSH est utilisé pour se connecter aux systèmes à distance avec des privilèges d'administrateur. OpenSSH peut être installé à l'aide des commandes suivantes :
portable/openssh-8.3p1.le goudron.gz
[email protégé] : ~$ tar xzvf openssh-
[email protégé] : ~$ cd openssh-
[email protégé] :~$ ./configurer
[email protected] :~$ sudo make install
- MySQL : Le plus populaire gratuit et open-source SQL base de données. MySQL est utilisé pour stocker les données alertées de Snort. Les bibliothèques SQL sont utilisées par des machines distantes pour communiquer et accéder à la base de données où les entrées du journal Snort sont stockées. MySQL peut être installé à l'aide de la commande suivante :
- Serveur Web Apache : Le serveur Web le plus utilisé sur Internet. Apache est utilisé pour afficher la console d'analyse via le serveur web. Il est téléchargeable sur le site officiel ici : http://httpd.apache.org/, ou en utilisant la commande suivante :
- PHP : PHP est un langage de script utilisé dans le développement Web. Un moteur d'analyse PHP est requis pour exécuter la console d'analyse. Il est téléchargeable sur le site officiel : https://www.php.net/téléchargements.php, ou en utilisant les commandes suivantes :
[email protégé] :~$ tar -xvf php-
[email protégé] : ~$ cd php-
[email protected]:~$ sudo make
[email protected] :~$ sudo make install
- OpenSSL : Utilisé pour sécuriser les communications sur le réseau sans se soucier de la récupération ou de la surveillance par des tiers des données envoyées et reçues. OpenSSL fournit des fonctionnalités cryptographiques au serveur Web. Il est téléchargeable sur le site officiel : https://www.ouvressl.org/.
- Étourdissement : Un programme utilisé pour crypter le trafic réseau arbitraire ou les connexions à l'intérieur du SSL et qui fonctionne avec OpenSSL. Stunnel téléchargeable sur son site officiel : https://www.étourdissement.org/, ou il peut être installé à l'aide des commandes suivantes :
[email protégé]:~$ tar xzvf stunnel-
[email protected]:~$ cd stunnel-
[email protégé] :~$ ./configurer
[email protected] :~$ sudo make install
- ACIDE: Une abréviation pour Contrôle d'analyse pour la détection d'intrusion. ACID est une interface de recherche prise en charge par les requêtes utilisée pour trouver des adresses IP correspondantes, des modèles donnés, une commande spécifique, une charge utile, des signatures, des ports spécifiques, etc., de toutes les alertes enregistrées. Il fournit des fonctionnalités approfondies d'analyse des paquets, permettant d'identifier exactement ce que l'attaquant essayait d'accomplir et le type de charge utile utilisé dans l'attaque. ACIDE téléchargeable sur son site officiel : https://www.sei.cmu.edu/about/divisions/cert/index.cfm.
Maintenant que tous les packages de base requis sont installés, Renifler téléchargeable sur le site officiel, renifler.organisation, et peut être installé à l'aide des commandes suivantes :
[email protégé] :~$ wget https://www.renifler.org/téléchargements/snort/snort-2.9.16.1.le goudron.gz[email protégé] : ~$ tar xvzf snort-
[email protégé] : ~$ cd snort-
[email protégé] :~$ ./configurer
[email protected]:~$ sudo make && --enable-source-fire
[email protected] :~$ sudo make install
Ensuite, exécutez la commande suivante pour vérifier si Snort est installé et la version de Snort que vous utilisez :
[email protégé] : ~$ renifler --,,_ -*> Renifler! <*-
o" )~ Numéro de version"
Copyright (C) 1998-2013 Sourcefire, Inc., et al.
Utilisation de libpcap version 1.8.1
Utilisation de la version PCRE : 8.39 2016-06-14
Utilisation de la version ZLIB : 1.2.11
Une fois l'installation réussie, les fichiers suivants doivent avoir été créés sur le système :
/usr/bin/snort : Ceci est l'exécutable binaire de Snort.
/usr/share/doc/snort : Contient la documentation et les pages de manuel de Snort.
/etc/sniff : Contient tous les ensembles de règles de Renifler et c'est aussi son fichier de configuration.
Utiliser Snort
Pour utiliser Snort, vous devez d'abord configurer le Accueil_Net valeur et donnez-lui la valeur de l'adresse IP du réseau que vous protégez. L'adresse IP du réseau peut être obtenue à l'aide de la commande suivante :
[email protégé] :~$ ifconfigA partir des résultats, copiez la valeur de adresse inet du réseau souhaité. Maintenant, ouvrez le fichier de configuration Snort /etc/snort/snort.conf à l'aide de la commande suivante :
[email protégé] :~$ sudo vim /etc/snort/snort.confVous verrez une sortie comme celle-ci :
Trouver la ligne "ipvar HOME_NET." Devant de ipvar HOME_NET, écrivez l'adresse IP copiée avant et enregistrez le fichier. Avant de courir Renifler, une autre chose que vous devez faire est de faire fonctionner le réseau en mode promiscuité. Vous pouvez le faire en utilisant la commande suivante :
[email protégé] :~$ /sbin/ifconfig -Maintenant, vous êtes prêt à courir Renifler. Pour vérifier son état et tester le fichier de configuration, utilisez la commande suivante :
[email protégé]:~$ sudo snort -T -i4150 Snort règles lues
3476 règles de détection
0 règles de décodeur
0 règles de préprocesseur
3476 chaînes d'options liées à 290 en-têtes de chaîne
0 Règles dynamiques
+++++++++++++++++++++++++++++++++++++++++++++++++++
+-------------------[Nombre de ports de règle]---------------------------------------
| tcp udp icmp ip
| src 151 18 0 0
| dst 3306 126 0 0
| quelconque 383 48 145 22
| nc 27 8 94 20
| s+d 12 5 0 0
+----------------------------------------------------------------------------
+-----------------------[détection-filtre-config]------------------------------
| mémoire-cap : 1048576 octets
+-----------------------[détection-filtre-règles]-------------------------------
| rien
-------------------------------------------------------------------------------
+-----------------------[rate-filter-config]-----------------------------------
| mémoire-cap : 1048576 octets
+-----------------------[taux-filtre-règles]------------------------------------
| rien
-------------------------------------------------------------------------------
+-----------------------[événement-filtre-config]----------------------------------
| mémoire-cap : 1048576 octets
+-----------------------[event-filter-global]----------------------------------
| rien
+-----------------------[événement-filtre-local]-----------------------------------
| gen-id=1 sig-id=3273 type=Seuil de suivi=src count=5 secondes=2
| gen-id=1 sig-id=2494 type=Les deux tracking=dst count=20 seconds=60
| gen-id=1 sig-id=3152 type=Seuil de suivi=src count=5 secondes=2
| gen-id=1 sig-id=2923 type=Seuil de suivi=dst count=10 secondes=60
| gen-id=1 sig-id=2496 type=Les deux tracking=dst count=20 seconds=60
| gen-id=1 sig-id=2275 type=Seuil de suivi=dst count=5 secondes=60
| gen-id=1 sig-id=2495 type=Les deux tracking=dst count=20 secondes=60
| gen-id=1 sig-id=2523 type=Les deux tracking=dst count=10 secondes=10
| gen-id=1 sig-id=2924 type=Seuil de suivi=dst count=10 secondes=60
| gen-id=1 sig-id=1991 type=Limit tracking=src count=1 seconds=60
+-----------------------[suppression]------------------------------------------
| rien
-------------------------------------------------------------------------------
Ordre d'application des règles : activation->dynamic->pass->drop->sdrop->reject->alert->log
Vérification des configurations de préprocesseur!
[Mémoire de correspondance de modèle basée sur le port]
+- [Résumé Aho-Corasick] -------------------------------------
| Format de stockage : Full-Q
| Automate fini : DFA
| Taille de l'alphabet : 256 caractères
| Taille de l'état : Variable (1,2,4 octets)
| Nombre d'instances : 215
| 1 octet états : 204
| 2 octets : 11
| 4 octets : 0
| Caractères : 64982
| États : 32135
| Transitions : 872051
| Densité d'état : 10.6%
| Motifs : 5055
| États du match : 3855
| Mémoire (Mo) : 17.00
| Motifs : 0.51
| Listes de correspondance : 1.02
| DFA
| 1 octet états : 1.02
| 2 octets : 14.05
| 4 octets : 0.00
+----------------------------------------------------------------
[ Nombre de motifs tronqués à 20 octets : 1039 ]
pcap DAQ configuré en passif.
Acquisition de trafic réseau à partir de "wlxcc79cfd6acfc".
--== Initialisation terminée ==--
,,_ -*> Renifler! <*-
o" )~ Numéro de version
Copyright (C) 1998-2013 Sourcefire, Inc., et al.
Utilisation de libpcap version 1.8.1
Utilisation de la version PCRE : 8.39 2016-06-14
Utilisation de la version ZLIB : 1.2.11
Moteur de règles : SF_SNORT_DETECTION_ENGINE Version 2.4
Objet Préprocesseur : SF_IMAP Version 1.0
Objet Préprocesseur : SF_FTPTELNET Version 1.2
Objet Préprocesseur : SF_REPUTATION Version 1.1
Objet Préprocesseur : SF_SDF Version 1.1
Objet Préprocesseur : SF_SIP Version 1.1
Objet préprocesseur : SF_SSH version 1.1
Objet Préprocesseur : SF_GTP Version 1.1
Objet Préprocesseur : SF_SSLPP Version 1.1
Objet Préprocesseur : SF_DCERPC2 Version 1.0
Objet Préprocesseur : SF_SMTP Version 1.1
Objet Préprocesseur : SF_POP Version 1.0
Objet Préprocesseur : SF_DNS Version 1.1
Objet Préprocesseur : SF_DNP3 Version 1.1
Objet Préprocesseur : SF_MODBUS Version 1.1
Snort a validé avec succès la configuration!
Renifler en sortant
Ensembles de règles de reniflement
La plus grande puissance de Renifler réside dans ses règles. Snort a la capacité d'utiliser un grand nombre d'ensembles de règles pour surveiller le trafic réseau. Dans sa dernière version, Renifler livré avec 73 différents types et plus 4150 règles de détection des anomalies, contenues dans le dossier "/etc/snort/règles."
Vous pouvez consulter les types d'ensembles de règles dans Snort à l'aide de la commande suivante :
[email protégé] : ~$ ls /etc/snort/rlesattaques-réponses.règles communauté-smtp.règles icmp.règles shellcode.des règles
porte arrière.règles communauté-sql-injection.règles imap.règles smtp.des règles
mauvaise circulation.règles communauté-virus.informations sur les règles.règles snmp.des règles
discuter.règles communauté-attaques-web.règles locales.règles sql.des règles
communauté-bot.règles communauté-web-cgi.règles diverses.règles telnet.des règles
communauté-supprimée.règles communauté-web-client.règles multimédia.règles tftp.des règles
communauté-dos.règles communauté-web-dos.règles mysql.virus des règles.des règles
communauté-exploiter.règles communauté-web-iis.règles netbios.règles Web-attaques.des règles
communauté-ftp.règles communauté-web-misc.règles nntp.règles web-cgi.des règles
jeu-communautaire.règles communauté-web-php.oracle de règles.règles web-client.des règles
communauté-icmp.règles ddos.règles autres-ids.règles web-coldfusion.des règles
communauté-imap.règles supprimées.règles p2p.règles page d'accueil web.des règles
communautaire-inapproprié.règles DNS.politique de règles.règles web-iis.des règles
communauté-mail-client.règles dos.règles pop2.règles web-misc.des règles
communauté-misc.règles expérimentales.règles pop3.règles web-php.des règles
communauté-nntp.les règles exploitent.règles porno.règles x11.des règles
communauté-oracle.règles doigt.règles rpc.des règles
communauté-politique.règles ftp.règles rservices.des règles
communauté-sip.règles icmp-info.analyse des règles.des règles
Par défaut, lorsque vous exécutez Renifler en mode Intrusion Detection System, toutes ces règles sont déployées automatiquement. Testons maintenant le ICMP ensemble de règles.
Tout d'abord, utilisez la commande suivante pour exécuter Renifler dans IDS mode:
[email protected]:~$ sudo snort -A console -i-c /etc/snort/snort.conf
Vous verrez plusieurs sorties à l'écran, gardez-le ainsi.
Maintenant, vous allez pinger l'IP de cette machine depuis une autre machine en utilisant la commande suivante :
[email protégé] : ~$ pingEnvoyez-lui un ping cinq à six fois, puis revenez à votre machine pour voir si le Snort IDS le détecte ou non.
24/08/01:21:55.178653 [**] [1:396:6] Destination ICMP Fragmentation inaccessibleNécessaire et le bit DF a été défini [**] [Classification : Activités diverses] [Priorité : 3]
ICMP
24/08/01:21:55.178653 [**] [1:396:6] Destination ICMP Fragmentation inaccessible
Nécessaire et le bit DF a été défini [**] [Classification : Activités diverses] [Priorité : 3]
ICMP
24/08/01:21:55.178653 [**] [1:396:6] Destination ICMP Fragmentation inaccessible
Nécessaire et le bit DF a été défini [**] [Classification : Activités diverses] [Priorité : 3]
ICMP
24/08/01:21:55.178653 [**] [1:396:6] Destination ICMP Fragmentation inaccessible
Nécessaire et le bit DF a été défini [**] [Classification : Activités diverses] [Priorité : 3]
ICMP
24/08/01:21:55.178653 [**] [1:396:6] Destination ICMP Fragmentation inaccessible
Nécessaire et le bit DF a été défini [**] [Classification : Activités diverses] [Priorité : 3]
ICMP
24/08/01:21:55.178653 [**] [1:396:6] Destination ICMP Fragmentation inaccessible
Nécessaire et bit DF défini [**] [Classification : Activités diverses] [Priorité : 3]
ICMP
Ici, nous avons reçu une alerte indiquant que quelqu'un effectue une analyse ping. Il a même fourni le adresse IP de la machine de l'attaquant.
Maintenant, nous allons passer au IP adresse de cette machine dans le navigateur. Nous ne verrons aucune alerte, dans ce cas. Essayez de vous connecter au ftp serveur de cette machine utilisant une autre machine comme attaquant :
[email protégé] :~$ ftpNous ne verrons toujours aucune alerte car ces ensembles de règles ne sont pas ajoutés dans les règles par défaut, et dans ces cas, aucune alerte ne serait générée. C'est à ce moment que vous devez créer votre propre ensembles de règles. Vous pouvez créer des règles selon vos propres besoins et les ajouter dans le "/etc/snort/règles/local.des règles" fichier, puis renifler utilisera automatiquement ces règles lors de la détection d'anomalies.
Création d'une règle
Nous allons maintenant créer une règle pour détecter un paquet suspect envoyé au port 80 afin qu'une alerte de journal soit générée lorsque cela se produit :
# alert tcp any any -> $HOME_NET 80 (msg: "HTTP Packet found"; sid:10000001; rev:1;)Il y a deux grandes parties de l'écriture d'une règle, je.e., En-tête de règle et options de règle. Voici un aperçu de la règle que nous venons d'écrire :
- Entête
- Alerte: L'action spécifiée à entreprendre lors de la découverte du paquet correspondant à la description de la règle. Il existe plusieurs autres actions qui peuvent être spécifiées à la place de l'alerte selon les besoins de l'utilisateur, i.e., enregistrer, rejeter, activer, laisser tomber, passer, etc.
- TCP : Ici, nous devons spécifier le protocole. Il existe plusieurs types de protocoles qui peuvent être spécifiés, je.e., tcp, udp, icmp, etc., selon les besoins de l'utilisateur.
- Quelconque: Ici, l'interface réseau source peut être spécifiée. Si quelconque est spécifié, Snort vérifiera tous les réseaux sources.
- -> : La direction; dans ce cas, il est défini de la source à la destination.
- $HOME_NET : L'endroit où la destination adresse IP est spécifié. Dans ce cas, nous utilisons celui configuré dans le /etc/snort/snort.conf fichier au début.
- 80 : Le port de destination auquel nous attendons un paquet réseau.
- Options :
- Msg : L'alerte à générer ou le message à afficher en cas de capture d'un paquet. Dans ce cas, il est réglé sur "Paquet HTTP trouvé."
- sid : Utilisé pour identifier les règles Snort de manière unique et systématique. La première 1000000 les numéros sont réservés, vous pouvez donc commencer par 1000001.
- Tour: Utilisé pour une maintenance facile des règles.
Nous ajouterons cette règle dans le "/etc/snort/règles/local.des règles" fichier et voir s'il peut détecter les requêtes HTTP sur le port 80.
[email protected]:~$ echo " alert tcp any any -> $HOME_NET 80 (msg: "HTTP Packettrouvé"; sid:10000001; rev:1;)" >> /etc/snort/rules/local.des règles
Nous sommes tous prêts. Maintenant, vous pouvez ouvrir Renifler dans IDS mode à l'aide de la commande suivante :
[email protected]:~$ sudo snort -A console -i wlxcc79cfd6acfc-c /etc/snort/snort.conf
Naviguez vers le adresse IP de cette machine depuis le navigateur.
Renifler peut maintenant détecter tout paquet envoyé au port 80 et affichera l'alerte "Paquet HTTP trouvé" à l'écran si cela se produit.
24/08/03:35:22.979898 [**] [1:10000001:0] Paquet HTTP trouvé [**][Priorité : 0] TCP
24/08/03:35:22.979898 [**] [1:10000001:0] Paquet HTTP trouvé [**]
[Priorité : 0] TCP
24/08/03:35:22.979898 [**] [1:10000001:0] Paquet HTTP trouvé [**]
[Priorité : 0] TCP
24/08/03:35:22.979898 [**] [1:10000001:0] Paquet HTTP trouvé [**]
[Priorité : 0] TCP
24/08/03:35:22.979898 [**] [1:10000001:0] Paquet HTTP trouvé [**]
[Priorité : 0] TCP
24/08/03:35:22.979898 [**] [1:10000001:0] Paquet HTTP trouvé [**]
[Priorité : 0] TCP
24/08/03:35:22.979898 [**] [1:10000001:0] Paquet HTTP trouvé [**]
[Priorité : 0] TCP
Nous allons également créer une règle pour détecter ftp tentatives de connexion :
# alert tcp any any -> any 21 (msg: "FTP packet found"; sid:10000002; )Ajoutez cette règle au "local.des règles" fichier à l'aide de la commande suivante :
[email protected]:~$ echo "alerte tcp tout tout -> alert tcp tout tout -> tout 21(msg: "Paquet FTP trouvé"; sid:10000002; rev:1;)” >> /etc/snort/rules/local.des règles
Maintenant, essayez de vous connecter à partir d'une autre machine et jetez un œil aux résultats du programme Snort.
24/08/03:35:22.979898 [**] [1:10000002:0) Paquet FTP trouvé [**] [Priorité : 0]TCP
24/08/03:35:22.979898 [**] [1:10000002:0) Paquet FTP trouvé [**] [Priorité : 0]
TCP
24/08/03:35:22.979898 [**] [1:10000002:0) Paquet FTP trouvé [**] [Priorité : 0]
TCP
24/08/03:35:22.979898 [**] [1:10000002:0) Paquet FTP trouvé [**] [Priorité : 0]
TCP
24/08/03:35:22.979898 [**] [1:10000002:0) Paquet FTP trouvé [**] [Priorité : 0]
TCP
Comme vu ci-dessus, nous avons reçu l'alerte, ce qui signifie que nous avons réussi à créer ces règles de détection d'anomalies sur le port 21 et port 80.
Conclusion
Systèmes de détection d'intrusion aimer Renifler sont utilisés pour surveiller le trafic réseau afin de détecter lorsqu'une attaque est menée par un utilisateur malveillant avant qu'elle ne puisse nuire ou affecter le réseau. Si un attaquant effectue une analyse de port sur un réseau, l'attaque peut être détectée, ainsi que le nombre de tentatives effectuées, le IP adresse et autres détails. Renifler est utilisé pour détecter tous types d'anomalies, et il est livré avec un grand nombre de règles déjà configurées, ainsi que la possibilité pour l'utilisateur d'écrire ses propres règles en fonction de ses besoins. Selon la taille du réseau, Renifler peut facilement être configuré et utilisé sans rien dépenser, par rapport à d'autres publicités payantes Systèmes de détection d'intrusion. Les paquets capturés peuvent être analysés plus avant à l'aide d'un renifleur de paquets, comme Wireshark, pour analyser et décomposer ce qui se passait dans l'esprit de l'attaquant pendant l'attaque et les types d'analyses ou de commandes effectuées. Renifler est un outil gratuit, open source et facile à configurer, et il peut être un excellent choix pour protéger tout réseau de taille moyenne contre les attaques.