Guide d'installation pas à pas d'IDSTower sur un Raspberry Pi 5

La solution de sécurité ultime pour les particuliers et les petites entreprises

C05348A3-9AB8-42C9-A6E0-81DB3AC59FEB
           

Renforcez votre sécurité avec un budget limité ! ️ Sécurisez votre maison ou votre petite entreprise avec un système de détection d'intrusion abordable, efficace et facile à déployer en utilisant IDSTower sur un Raspberry Pi. Dans un monde de plus en plus connecté, la sécurité est primordiale, que ce soit pour votre réseau domestique ou pour une petite entreprise. Les cybermenaces évoluant quotidiennement, il est essentiel de mettre en œuvre des mesures proactives pour protéger les données sensibles et maintenir l'intégrité du réseau. Heureusement, la mise en place d'un système de détection d'intrusion (IDS) ne nécessite plus de matériel coûteux ni d'expertise technique avancée. Avec la sortie du Raspberry Pi 5, vous avez désormais la possibilité d'installer des outils de sécurité puissants tels qu'IDSTower, une solution IDS robuste, sur une plateforme rentable et économe en énergie. Ce blog vous guidera pas à pas dans l'installation d'IDSTower sur un Raspberry Pi 5 et vous expliquera pourquoi cette configuration est idéale pour les particuliers et les petites entreprises.

cropped-favicon

Qu'est-ce que Suricata et IDSTower ?

Suricata est un logiciel d'analyse de réseau et de détection des menaces très performant et open-source utilisé par la plupart des organisations privées et publiques et intégré par les principaux fournisseurs pour protéger leurs actifs.

IDSTower est un outil qui simplifie l'approvisionnement, la configuration et la gestion des règles pour Suricata. DSTower ajoute des interfaces de gestion conviviales, ce qui le rend accessible à ceux qui n'ont pas une grande expérience de la cybersécurité. IDSTower comprend une licence gratuite pour un seul hôte, ce qui convient parfaitement à ce projet.

Matériel

Suricata est un outil de sécurité réseau très performant conçu pour la détection d'intrusion (IDS), la prévention d'intrusion (IPS), la surveillance de la sécurité du réseau (NSM) et l'inspection approfondie des paquets (DPI) en temps réel. Il analyse le trafic réseau en temps réel pour détecter les activités potentiellement malveillantes.

L'analyse des captures de paquets en temps réel nécessite un processeur, mais aussi beaucoup de mémoire. Avec 8 Go de RAM et un processeur Arm Cortex-A76 64 bits quadricœur cadencé à 2,4 GHz, le Raspberry Pi 5, Single Board Computer, est à la hauteur de la tâche !

harrison-broadbent-raLeFIxXgDY-unsplash

Installer IDSTower sur un Raspberry Pi

Assurez-vous d'utiliser le dernier système d'exploitation à jour. Au moment de la rédaction de ce document, j'ai utilisé le Raspberry Pi OS Lite 64 bits (less is more !) basé sur la version 12 de Debian (bookworm).

Avant de commencer, vous devez également obtenir une licence IDSTower gratuite.

Vous devrez également ouvrir le port 443 afin de pouvoir accéder à l'interface web une fois l'installation terminée :

sudo apt install iptables-persistent
sudo iptables -I INPUT 1 -m state --state NEW -p tcp --dport 443 -j ACCEPT
sudo netfilter-persistent save

Vous devez également vous assurer que votre interface réseau prend en charge le mode promiscuous, afin de pouvoir surveiller le trafic sur votre réseau :

iw phy phy0 info
netstat -i
sudo ip link set eth0 promisc on
sudo ifconfig eth0 -promisc

L'installation d'IDSTower sur un Raspberry Pi est très simple, j'ai simplement suivi les instructions de l'installation sur Debian 12.1 (Bookworm).

Soyez attentif et assurez-vous qu'il n'y a pas d'erreurs pendant l'installation. A la fin, le script affichera l'URL de l'interface Web IDSTower, ainsi que le nom d'utilisateur et le mot de passe générés pour votre configuration.

Configurer IDSTower sur un Raspberry Pi

Continuez à suivre les instructions d'installation en créant votre premier cluster et en configurant les règles et les indicateurs. J'ai utilisé les paramètres suivants :

  • Logiciel IDS pour installer Suricata - Dernière version (7) - dépôt officiel - (Internet requis)  
  • Logs Shipper Software to Install Filebeat - Dernière version (8) - dépôt officiel - (Internet Required) 

J'ai choisi les paramètres "IDS + NSM" de Suricata parce que je veux observer le trafic sur mon réseau local, et pas seulement surveiller cet hôte en particulier. NSM signifie Network Security Monitoring (surveillance de la sécurité du réseau).

Dépannage IDSTower/Suricata pas de règles chargées

Ma première surprise a été de découvrir que mon cluster ne chargeait aucune règle. Tout semblait sain et tous les services fonctionnaient, mais aucune règle n'était chargée.

Un peu de "googlage" m'a permis de trouver mon premier indice :

suricatasc -v
Impossible de se connecter au socket /var/run/suricata-command.socket : L178 : [Errno 2] No such file or directory
 
tail -f /var/log/idstower/heartbeat.log
==> /var/log/idstower/heartbeat.log <==
[2024-09-20T11:21:01-0700] [Info] ==================== IDSTower Heartbeat Script ====================
[2024-09-20T11:21:01-0700] [Info] Démarrage du script..
[2024-09-20T11:21:04-0700] [Info] Obtenir les métriques de suricata...
[2024-09-20T11:21:04-0700] [Warning] socket file not found : /var/run/suricata-command.socket
[2024-09-20T11:21:04-0700] [Warning] No active Suricata socket file found, Suricata service might be stopped.
[2024-09-20T11:21:04-0700] [Warning] socket file not found : /var/run/suricata-command.socket
[2024-09-20T11:21:04-0700] [Warning] Can not obtain suricata metrics, active socket file not found :
[2024-09-20T11:21:04-0700] [Info] Sending heartbeat to IDSTower...
[2024-09-20T11:21:04-0700] [Info] Heartbeat sent successfully to IDSTower, API Response : {"success":true, "statusCode":0, "data":true}
[2024-09-20T11:21:04-0700] [Info] IDSTower Heartbeat terminé.
[2024-09-20T11:22:01-0700] [Info] ==================== IDSTower Heartbeat Script ====================
[2024-09-20T11:22:01-0700] [Info] Démarrage du script....
[2024-09-20T11:22:04-0700] [Info] Obtenir les métriques de suricata...
suricata -c /etc/suricata/suricata.yaml --dump-config | grep -e dir -e unix-

Je suppose que le service Bookworm Debian ne configure pas le fichier suricata-command.socket à l'emplacement prévu par le fichier de configuration, il se trouve dans /var/run/suricata-command.socket au lieu de /var/suricata-command.socket. De plus, comme suricata s'exécute en tant que root, mais que IDSTower s'exécute en tant qu'utilisateur idstower, il y a également des problèmes de permission.

Pour résoudre ce problème, exécutez la commande suivante :

sudo chgrp idstower /var/run/suricata-command.socket

Dans l'interface Web IDSTower, éditez le fichier suricata.yaml (votre cluster, Configs, Advanced) et décommentez la ligne "filename" et remplacez-la par ce qui suit :

unix-command :
enabled : auto
filename : /var/run/suricata-command.socket

Redémarrez votre cluster, et les règles devraient maintenant être chargées.

Intégration d'ElastiSearch

J'ai également choisi l'option "Send Events to ElastiSearch (Version 2.0.0), en espérant pouvoir visualiser mes résultats. Cependant, je n'ai pas réussi à faire fonctionner ElastiSearch sur le Raspi, peut-être parce qu'il demande trop de ressources. J'ai donc opté pour une option gratuite basée sur le Cloud de Bonsai.io. Cependant, au moment où j'écris ces lignes, leur version d'ElastiSearch (Elasticsearch 7.10.2) n'est pas compatible avec la version IDSTower de FileBeat Version 8......

Conclusion

L'installation d'IDSTower sur un Raspberry Pi 5 constitue un moyen puissant, abordable et économe en énergie de sécuriser votre réseau domestique ou votre petite entreprise contre les cybermenaces. La combinaison du matériel amélioré du Raspberry Pi 5 et des capacités robustes de détection d'intrusion d'IDSTower en fait une solution idéale pour tous ceux qui recherchent un système de sécurité facile à gérer et toujours actif.

Voici un aperçu du fonctionnement de Suricata et de ses principaux composants :

1. Capture et analyse du trafic

Suricata fonctionne en capturant le trafic réseau et en analysant les données en temps réel. Il inspecte les paquets à plusieurs niveaux, notamment :

  • Couche liaison (en-têtes Ethernet, etc.)
  • Couche réseau (en-têtes IP)
  • Couche transport (TCP, UDP, etc.)
  • Couche application (HTTP, FTP, SMTP, etc.)

Suricata utilise des cartes d'interface réseau (NIC) en mode promiscuité pour capturer tout le trafic qui circule sur le réseau, et pas seulement le trafic dirigé vers l'appareil sur lequel il est installé.

2. Inspection approfondie des paquets (DPI)

Suricata ne se contente pas d'analyser les en-têtes des paquets. Il effectue une inspection approfondie des paquets (DPI), ce qui lui permet d'examiner la charge utile (contenu) des paquets réseau et de détecter les attaques au niveau de l'application, comme les logiciels malveillants, les tentatives d'hameçonnage ou les exploits basés sur des fichiers.

  • Suricata analyse de nombreux protocoles différents tels que HTTP, DNS, SMB, FTP, TLS, etc.
  • Il peut décoder et inspecter le trafic réseau à la recherche de signatures d'attaques connues et de comportements anormaux.
  • Le DPI est essentiel pour détecter les logiciels malveillants cachés dans les téléchargements de fichiers ou d'autres formes de contenu.

3. Multithreading et haute performance

Suricata est conçu pour traiter efficacement de grandes quantités de trafic grâce au multithreading. Il peut utiliser simultanément plusieurs cœurs de processeur pour traiter et inspecter les données du réseau, ce qui le rend bien adapté aux réseaux à grande vitesse et aux réseaux d'entreprise.

Suricata est capable de fonctionner à des vitesses allant jusqu'au gigabit et au térabit avec le matériel et la configuration appropriés.

4. Détection basée sur la signature

L'une des principales méthodes de détection utilisées par Suricata est la détection basée sur les signatures, qui consiste à comparer le trafic réseau capturé à une base de données de modèles d'attaque prédéfinis, appelés "signatures" ou "règles".

  • Ces signatures sont souvent écrites dans une syntaxe de règles compatible avec Snort, ce qui signifie qu'elles peuvent utiliser la vaste bibliothèque de signatures développée pour l'IDS Snort.
  • Les règles peuvent détecter des éléments tels que
    • Signatures de logiciels malveillants connues
    • Tentatives de balayage des ports
    • Exploits de débordement de mémoire tampon
    • Attaques par injection SQL

Une règle pourrait ressembler à ceci :

plaintextCopy codealert tcp any any -> 192.168.1.100 80 (msg : "Potential Web Attack" ; content : "GET" ; http_method ; sid:1000001 ;)

Cette règle vérifie les requêtes HTTP GET envoyées à un serveur web à l'adresse IP 192.168.1.100 sur le port 80.

5. Détection basée sur les anomalies

Outre la détection basée sur les signatures, Suricata prend également en charge la détection basée sur les anomalies. Cette technique consiste à créer une base de référence du comportement "normal" du réseau, puis à signaler les écarts par rapport à cette base comme des menaces potentielles.

  • Par exemple, si un appareil commence soudainement à générer un grand nombre de requêtes à des heures indues ou communique avec des adresses IP inhabituelles, il peut déclencher une alerte.
  • Cela permet de détecter les attaques de type "zero-day" ou les nouvelles menaces qui n'ont pas de signatures prédéfinies.

6. Identification et analyse des protocoles

Suricata comprend un puissant moteur de reconnaissance des protocoles. Même si le trafic réseau utilise des ports non standard, Suricata peut détecter le protocole en inspectant les données. Cette fonction, appelée identification du protocole (IPP), permet à Suricata de.. :

  • Reconnaître les protocoles d'application même s'ils ne sont pas exécutés sur leurs ports standard (par exemple, le trafic HTTP exécuté sur un port non standard).
  • Analyser le trafic au niveau de la couche application, en identifiant des protocoles tels que HTTP, TLS, SSH, DNS, FTP et bien d'autres.

7. Suivi des flux et des sessions

Suricata peut suivre les "flux" du réseau (flux de paquets liés entre deux appareils) au lieu de se contenter d'analyser des paquets individuels. Cela lui permet de comprendre l'état d'une connexion (par exemple, une connexion TCP) et de détecter des schémas d'attaque complexes quise produisent sur plusieurs paquets, par exemple :

  • Réassemblage TCP: Reconstruction des paquets TCP fragmentés afin d'inspecter complètement la charge utile.
  • Extraction de fichiers: Il peut extraire des fichiers transmis par HTTP, FTP ou SMB en vue d'une analyse plus approfondie ou d'un contrôle de l'intégrité des fichiers.
  • Inspection TLS/SSL: Suricata peut inspecter le trafic crypté et détecter les anomalies du protocole SSL/TLS.

8. Journalisation et alertes

Suricata génère des journaux détaillés et des alertes basées sur les règles et les détections qu'il rencontre. Il peut enregistrer différents types de données réseau, notamment :

  • Alertes: Notification immédiate des détections basées sur des règles (par exemple, une tentative d'exploitation).
  • Journaux: Journaux de trafic, journaux de connexion, journaux spécifiques aux protocoles (par exemple, DNS, transactions HTTP).
  • Fichiers PCAP: Suricata peut stocker les données brutes des paquets au format PCAP en vue d'une analyse ultérieure.

Les journaux peuvent être exportés vers des systèmes externes, notamment :

  • Systèmes SIEM (Security Information and Event Management) pour la corrélation et l'analyse avancée.
  • Pile ELK (Elasticsearch, Logstash, Kibana) pour une visualisation puissante des données réseau et des alertes de sécurité.

9. Mode système de prévention des intrusions (IPS)

Lorsqu'il est configuré en mode IPS, Suricata peut bloquer activement le trafic malveillant en plus de le détecter. Contrairement au mode IDS passif, où le système ne fait qu'alerter sur les attaques potentielles, en mode IPS, Suricata peut.. :

  • Abandonner ou rejeter les paquets suspects ou des connexions entières.
  • Utilisez le mode en ligne, où il se place entre votre réseau et le monde extérieur, bloquant les menaces avant qu'elles n'atteignent les appareils internes.

10. Évolutivité et flexibilité

Suricata est hautement configurable et peut être déployé dans divers environnements de réseau, depuis les petites installations domestiques jusqu'aux grandes infrastructures d'entreprise. Sa flexibilité comprend :

  • Déploiements distribués: Suricata peut être déployé sur plusieurs nœuds pour surveiller différentes parties du réseau et envoyer les résultats à un serveur centralisé.
  • Intégration: Suricata s'intègre à d'autres outils tels que les plateformes de renseignement sur les menaces, les systèmes antivirus et les systèmes de détection des points d'extrémité.

Résumé

En substance, Suricata capture et inspecte le trafic réseau à plusieurs niveaux (liaison, réseau, transport et application), en utilisant des techniques de détection basées sur les signatures et les anomalies pour identifier les menaces. Ses capacités multithreading lui permettent de traiter efficacement de grandes quantités de trafic, et il fournit divers mécanismes de journalisation, d'alerte et de prévention. Qu'il soit déployé en tant qu'IDS ou IPS, Suricata est un outil puissant pour surveiller, détecter et prévenir les attaques sur le réseau en temps réel.

Commentaires publiés : 0

Tagged with:
CyberSecurity linux