IREX - Déployer et Configurer l'IDS Open Source Snort

Dans un monde où les cyberattaques se multiplient, la simple protection de votre réseau par un pare-feu ne suffit plus. La vraie sécurité exige de savoir ce qui se passe à tout moment.

 · 6 min read


    1. Introduction : L'Indispensable Surveillance Réseau

    Dans un monde où les cyberattaques se multiplient, se contenter d'un simple pare-feu est loin d'être suffisant. Il est essentiel de passer d'une approche de "porte verrouillée" à une approche de "surveillance active". C'est précisément le rôle des systèmes de détection d'intrusions (IDS), de véritables sentinelles qui veillent en permanence sur votre infrastructure. Cet article a pour but de vous guider dans le déploiement de Snort, une solution open source reconnue mondialement. Préparez-vous à obtenir une visibilité sans précédent sur la sécurité de votre réseau et à agir de manière proactive contre les menaces.


    2. Snort : Présentation, Fonctionnalités et Rôle

    Lancé en 1998 par Martin Roesch, Snort est bien plus qu'un simple outil de cybersécurité : c'est un standard de l'industrie pour la détection d'intrusions. Son rôle est d'analyser le trafic réseau en temps réel à l'aide d'un ensemble de règles personnalisables. Il fonctionne selon trois modes principaux :

    • Sniffer de paquets : Agit comme un simple analyseur de protocole, un peu comme l'outil Wireshark. Il capture le trafic réseau pour que vous puissiez l'examiner.
    • Enregistreur de paquets : Permet de sauvegarder tous les paquets dans des fichiers journaux pour une analyse ultérieure. Cela est essentiel pour les investigations post-incident.
    • Système de détection d'intrusions (IDS/IPS) : C'est le mode le plus puissant. Il utilise des règles de signatures pour identifier les menaces connues. Pensez à ces règles comme à des "empreintes digitales" d'attaques : un scan de ports, une tentative d'exploitation, un logiciel malveillant... Dès qu'un paquet de données correspond à une de ces empreintes, Snort génère une alerte, vous permettant de réagir immédiatement.

    3. Déploiement : Guide d'installation et de Configuration

    L'installation de Snort est plus efficace sur un système d'exploitation de type Linux, tel que Kali Linux. Bien qu'une installation via les dépôts soit possible, l'installation depuis les sources garantit une version récente et stable, avec une maîtrise complète de la configuration.

    a) Installation des dépendances et téléchargement des sources

    Pour que le processus de compilation se déroule sans encombre, nous devons d'abord préparer le système. La première étape consiste à mettre à jour les dépôts de paquets et à installer les outils de développement nécessaires à la compilation.

    sudo apt update && sudo apt upgrade -y
    sudo apt install -y build-essential cmake libpcap-dev libpcre3-dev libdumbnet-dev bison flex zlib1g-dev liblzma-dev openssl libssl-dev libhwloc-dev
    

    Ensuite, nous téléchargeons le code source de la version Snort 3.9.3.0 depuis GitHub, puis nous extrayons l'archive pour accéder aux fichiers.

    wget https://api.github.com/repos/snort3/snort3/tarball/3.9.3.0 -O snort3-3.9.3.0.tar.gz
    tar -xvzf snort3-3.9.3.0.tar.gz
    cd snort3-snort3-0c5ee9d
    

    b) Compilation et installation

    La compilation est le processus qui transforme le code source en un programme exécutable. Les commandes suivantes permettent de configurer et de lancer la compilation.

    mkdir build && cd build
    cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
    make -j$(nproc)
    sudo make install
    

    Pour vérifier que l'installation a réussi et que le programme est accessible, exécutez la commande suivante :

    /usr/local/bin/snort -V
    

    La sortie devrait afficher la version correcte, par exemple :

    Snort++ Version 3.9.3.0
    

    c) Configuration post-installation

    La configuration est l'étape la plus importante. Nous allons créer une structure de dossiers, copier les fichiers de configuration par défaut et les règles.

    sudo mkdir -p /etc/snort/rules
    sudo mkdir -p /etc/snort/so_rules
    sudo mkdir -p /etc/snort/preproc_rules
    sudo mkdir -p /var/log/snort
    sudo mkdir -p /usr/local/lib/snort_dynamicrules
    cd ~
    git clone https://github.com/snort3/snort3.git
    sudo cp -r snort3/lua/* /etc/snort/
    

    Ensuite, téléchargez les règles communautaires gratuites pour que Snort sache quelles menaces chercher.

    wget https://www.snort.org/downloads/community/snort3-community-rules.tar.gz
    tar -xvzf snort3-community-rules.tar.gz
    sudo cp -r snort3-community-rules/* /etc/snort/rules/
    

    d) Modification du fichier de configuration snort.lua

    Nous allons maintenant éditer le fichier de configuration principal pour y ajouter les informations de votre réseau. Pour cela, utilisez l'éditeur de texte nano :

    sudo nano /etc/snort/snort.lua
    

    Une fois le fichier ouvert, trouvez et modifiez les sections suivantes :

    • HOME_NET : Cette variable est cruciale. Elle définit la plage d'adresses IP que Snort doit considérer comme votre réseau interne. Pour trouver votre adresse, utilisez la commande ip a dans un autre terminal.

      ip a
      

      Un exemple d'adresse IP est 192.168.69.147. Vous devrez remplacer l'adresse dans le fichier par celle de votre machine, en ajoutant /24 pour spécifier le sous-réseau.

      HOME_NET = '192.168.69.147/24'
      
    • EXTERNAL_NET : Cette variable définit les réseaux externes. Sa valeur par défaut est généralement tout ce qui n'est pas votre réseau interne.

      EXTERNAL_NET = '!$HOME_NET'
      
    • Activation des règles : Assurez-vous que les lignes suivantes sont présentes dans la section ips pour que Snort puisse utiliser les règles que vous avez téléchargées.

      ips = {
      enable_builtin_rules = true,
      include = 'rules/snort3-community.rules',
      variables = default_variables
      }
      

    Une fois les modifications faites, appuyez sur Ctrl+X, puis Y pour sauvegarder et Entrée pour confirmer le nom du fichier.

    e) Test et lancement de Snort

    Avant de lancer Snort, effectuez un test de syntaxe pour vérifier que le fichier de configuration ne contient pas d'erreurs.

    sudo snort -c /etc/snort/snort.lua -T
    

    Si la validation réussit, le programme affichera "Snort successfully validated the configuration". Vous pouvez maintenant lancer Snort en mode IDS. Pour connaître le nom de votre interface réseau (par exemple, eth0 ou wlan0), tapez de nouveau la commande ip a dans votre terminal.

    sudo snort -c /etc/snort/snort.lua -i interface_name -A alert_fast -s 65535 -k none
    

    4. Exemples de Détection et d'Alertes

    Une fois Snort opérationnel, il agit comme un agent de sécurité vigilant. Imaginons qu'un attaquant tente d'effectuer un scan de ports pour trouver des vulnérabilités sur l'un de vos serveurs. Snort, en analysant les paquets, détecte immédiatement ce comportement suspect. Il génère alors une alerte détaillée qui est enregistrée dans un journal. Cette alerte fournit des informations essentielles :

    • L'adresse IP de l'attaquant.
    • Le type d'attaque identifié (par exemple, "Portscan").
    • Le port ciblé et le protocole utilisé.
    Diagramme illustrant le flux de trafic réseau passant par Snort en mode IDS

    Ces informations cruciales permettent à un analyste de sécurité de prendre des mesures immédiates pour bloquer la menace et renforcer la défense du système.


    5. Avantages et Limites de Snort

    a) Avantages

    AvantageDescription
    Solution Open Source et GratuiteAucun coût de licence, idéal pour les projets à budget limité.
    Flexibilité et PersonnalisationContrôle total sur les règles de détection pour cibler des menaces spécifiques.
    Large CommunautéAccès à des mises à jour régulières des règles de détection et à un support en ligne abondant.
    Légèreté et PerformancePeut être déployé sur des systèmes aux ressources limitées sans surcharger le réseau.
    Double FonctionnalitéPeut être configuré en tant qu'IDS pour alerter ou en IPS pour bloquer les menaces.

    b) Limites

    LimiteDescription
    Complexité de la configurationL'installation initiale et le paramétrage peuvent être complexes pour les débutants.
    Gestion des faux positifsUn mauvais paramétrage des règles peut générer de nombreuses fausses alertes, rendant la surveillance inefficace.
    Maintenance des règlesLa mise à jour manuelle des règles et la création de règles personnalisées peuvent être chronophages et nécessitent une attention constante.
    Analyse du trafic chiffréNe peut pas analyser directement le trafic chiffré (HTTPS), ce qui limite sa visibilité face à des attaques qui utilisent le chiffrement.
    ÉvolutivitéPeut rencontrer des difficultés à gérer un trafic très dense sur de très grands réseaux,ant des configurations avancées ou des solutions plus robustes.


    6. Conclusion

    Snort est un allié précieux pour tout analyste en cybersécurité. Il apporte une visibilité indispensable sur les menaces et permet de réagir de manière proactive pour protéger son système d'information. Son approche basée sur des règles et son statut open source en fait une solution puissante, flexible et accessible, malgré quelques défis initiaux.


    7. Illustration Vidéo

    Découvrez comment déployer et configurer Snort dans cette courte vidéo ainsi qu'une détection d'un scan de ports en temps réel.



    8. Voir aussi


No comments yet

No comments yet. Start a new discussion.

Add Comment