Retour

Suricata, l'outil de détection du trafic malveillant sur votre réseau

Slider Image

20 mai 2024

Découvrez comment Suricata peut vous aider à détecter les menaces dans votre trafic réseau.

La cybersécurité est devenue un axe prioritaire d'amélioration pour les organisations. De nombreux articles relatant les cyberattaques subies par les entreprises sont publiés quotidiennement, ce qui explique la croissance de 7,7 % des investissements en cybersécurité l'an dernier, selon les données d'IDC (Quantity Data Report).

Les entreprises recherchent différentes solutions pour protéger et sécuriser leurs données, qui constituent l'atout le plus important de toute entreprise, et recherchent également des solutions permettant d'atténuer les attaques.

Connaissez -vous Suricata ?

Parmi les solutions recherchées par les organisations, la mise en œuvre de systèmes de détection d'intrusion (IDS) comme Suricata prend de l'importance. Suricata est un moteur de détection des menaces rapide et peu gourmand en ressources qui analyse le trafic réseau à la recherche de schémas et de comportements malveillants, ce qui lui permet de bloquer le trafic indésirable et de protéger ainsi le réseau et les systèmes de l'organisation contre les menaces potentielles. De plus, il dispose d'une interface graphique conviviale facilitant une configuration simple et intuitive pour les administrateurs.

Cet article traite de la génération de règles, en expliquant sa structure et les différents paramètres permettant de les définir.

Structure des règles chez les suricates

Les règles Suricata sont l'ensemble des directives permettant de spécifier les types de trafic réseau à surveiller et les actions à entreprendre en cas de trafic suspect. Elles se composent de trois parties principales : l'action, l'en-tête et les options. La structure globale des règles dans Suricata, appelée « signature », comprend une série de champs décrivant les caractéristiques de la règle elle-même.

Ces règles peuvent être appliquées à chacune des interfaces disponibles en fonction des besoins de l'organisation.

Le format des règles de Suricata est défini comme suit :

  • Action : Détermine l'action qui se produit lorsqu'une correspondance est trouvée avec la signature.
  • En -tête : Définit le protocole, les adresses IP et les ports source et de destination de l’adresse de règle.
  • Options : Offre une série d'options supplémentaires permettant d'affiner la règle selon son comportement souhaité. Par exemple, pour une recherche insensible à la casse, utilisez le paramètre « nocase » (sensible à la casse).

 La section suivante détaille chacun des paramètres applicables aux règles Suricata, en décrivant et en illustrant certains d'entre eux :

Action :

  • alerte : une alerte a été générée dans le journal des événements et le trafic est autorisé.
  • Suppression : le trafic qui répond à la règle est écarté.
  • Rejeter : le trafic conforme à la règle est rejeté avec un message d'erreur ICMP.
  • Passage : le trafic conforme à la règle est autorisé sans générer d'alerte dans le journal des événements.
  • sdrop : le trafic qui correspond à la règle est rejeté sans générer d’alerte dans le journal des événements.
  • ignorer : le trafic qui correspond à cette règle est ignoré sans générer d’alerte dans le journal des événements.
  • remplacer : le contenu qui respecte la règle est remplacé avant d’être autorisé ou rejeté.
  • journal : le trafic conforme à la règle est enregistré dans le journal des événements sans générer d'alerte ni bloquer le trafic.
  • utilisateur : utilisé pour appliquer une action personnalisée définie par l’utilisateur dans les paramètres.

 En-tête :

  • Protocole : Spécifie le protocole de couche transport à analyser. Voici quelques-uns des principaux protocoles : TCP,  UDP,  ICMP, ICMPv6, IP, ARP           
  • Adresse IP source ou de destination : Spécifie l'adresse IP source et de destination du trafic
  • Port d'origine ou de destination : Spécifie le port d'origine et de destination du trafic
  • Contenu : désigne le contenu à rechercher dans le trafic, tel que des chaînes de texte ou un modèle d'octets.
    • Contenu : permet de rechercher une chaîne de texte dans le paquet.
    • Content:!"string": vous permet de rechercher des paquets qui ne contiennent PAS de chaîne de texte.
    • Contenu :| hex | : vous permet de rechercher une valeur hexadécimale spécifique dans le paquet.
    • Contenu :!"| hex |): vous permet de rechercher les paquets qui ne contiennent PAS une valeur hexadécimale spécifique.
    • Content:"pattern1"; content:"pattern2": permet de rechercher plusieurs modèles dans le même paquet.
    • Contenu : "pattern1" ; dans : X ; contenu : "pattern2" : permet de rechercher des motifs séparés par X octets.

Options :

  • L'argument `distance:` est utilisé conjointement avec `within` pour spécifier une distance par rapport à la dernière correspondance de contenu. Par exemple, si vous avez `content:"ABC"; distance:10; content:"DEF";`, vous rechercherez un « DEF » qui apparaît 10 octets après la fin du précédent « ABC ».
  • offset : utilisé pour ignorer un nombre spécifique d’octets dans un paquet avant de tenter de faire correspondre le contenu.
  • profondeur : utilisée pour limiter la profondeur de recherche d’une correspondance au sein d’un paquet.
  • http_method, http_uri, http_header, etc. : Ce sont des modificateurs spécifiques à HTTP qui vous permettent de rechercher des parties spécifiques d’une requête ou d’une réponse HTTP.

 

Règle pour détecter les analyses de ports

Voici à quoi ressemblerait une règle simple pour détecter le scan de ports basée sur l'envoi de paquets SYN :

ACTION | HEADER OPTIONS

alert tcp any any -> any any (msg:"SYN SCAN détecté"; flow:stateless; flags:S; reference:arachnids,198; classtype:attempted-recon; sid:2100624; priority:5; rev:8; threshold:type both, track by_src, count 9, seconds 1;)

  • alerte : Indique qu’une alerte sera générée si la condition établie est remplie.
  • tcp : Indique que des paquets TCP seront recherchés.
  • any any -> any any : Définit les adresses IP et les ports source et destination des paquets à rechercher. Dans ce cas, toute adresse IP et tout port source et destination seront analysés.
  • msg:"SYN Scan Detected" : Définit le message d'alerte qui s'affichera lorsque la condition spécifiée est remplie. Dans ce cas, le message est « SYN SCAN Detected ».
  • flow:stateless : Indique que la règle s'applique aux flux sans état, c'est-à-dire aux flux pour lesquels le suivi des connexions TCP n'est pas attendu.
  • flags:S : Indique que les paquets avec le bit SYN (S) activé seront recherchés.
  • référence:arachnids,198 : Fait référence à l'identifiant de la règle dans la base de données Arachnids.
  • classtype:attempted-recon : Indique la classification de l'alerte. Dans ce cas, « attempted-recon » signifie qu'une tentative de reconnaissance a été détectée.
  • sid:2100624 : Identifiant de règle unique.
  • priorité:5 : Priorité attribuée à la règle, sur une échelle de 1 à 5.
  • rév:8 : Numéro de révision de la règle.
  • `threshold:type both, track by_src, count 9, seconds 1` : Définit un seuil pour éviter les fausses alertes. Dans ce cas, une alerte sera générée lorsque plus de 9 tentatives d'analyse de ports par seconde seront détectées depuis la même adresse IP source.

Conclusion

En conclusion, les règles Suricata permettent de détecter des menaces telles que les tentatives d'analyse de ports, les attaques par déni de service, les logiciels malveillants et les intrusions réseau. La création et la gestion de règles au sein de Suricata permettent aux organisations d'adapter leur système de sécurité à leurs besoins spécifiques et à l'évolution constante des menaces. Chez SCASSI, nous sommes prêts à aider les organisations à améliorer leurs capacités de détection. Il s'agit de la première étape vers la mise en place de flux de travail efficaces pour la gestion des menaces et des alertes. La cybersécurité est un processus continu. Chez SCASSI, nous nous engageons à accompagner nos clients à chaque étape, en les aidant à rester protégés et résilients dans un cyberespace de plus en plus menacé.