23 octobre 2018 Technique

Améliorer l'analyse de la sécurité avec la Suite Elastic, Wazuh et un IDS

Par Mike PaquetteSantiago Bassett

La Suite Elastic propose des fonctions d'analyse de la sécurité qui sont largement utilisées en matière de détection des menaces, de visibilité et de réponse aux incidents. La vitesse et l'échelle en fonction desquelles Elasticsearch est capable d'indexer et de rechercher des informations de sécurité rendent le travail des analystes de sécurité plus efficace, tandis que les tableaux de bord Kibana offrent une visibilité élargie et permettent de débusquer les menaces interactives. En outre, le moteur de machine learning est capable d'automatiser l'analyse d'ensembles complexes de données, et permet ainsi d'identifier des intrus qui seraient autrement passés inaperçus.

Les systèmes populaires de détection d'intrusion (IDS), tels que Wazuh ou Suricata, utilisent une approche basée sur les signatures pour détecter les menaces. Autrement dit, ils comparent les modèles identifiés dans les fichiers, les logs et le trafic réseau à une base de données de modèles connus et associés à des activités malveillantes, puis alertent l'utilisateur lorsqu'une correspondance est établie. Ces systèmes proposent des ensembles de règles utiles pour analyser et mettre en corrélation les données, et génèrent généralement des milliers ou des millions d'alertes par jour dans un environnement de production.

Tendre un vaste filet permet d'intercepter la totalité des événements de sécurité, mais cela implique de devoir trier des milliers (voire des millions) d'alertes par jour. Les fonctionnalités de machine learning d'Elastic permettent de réduire ce bruit de fond en identifiant automatiquement les comportements inhabituels. Ce cas d'utilisation met en évidence la complémentarité des technologies basées sur les anomalies et celles basées sur les signatures, facilitant ainsi la détection des menaces tout en rendant les analyses plus efficaces.

Fréquemment déployé avec la Suite Elastic, Wazuh est un système open source de détection d'intrusion basé sur l'hôte (HIDS). Il permet d'analyser les logs, de monitorer l'intégrité des fichiers, de détecter les rootkits et les vulnérabilités, d'évaluer les configurations et de répondre aux incidents. L'architecture de la solution Wazuh repose sur des agents multiplateformes de transfert léger. Ces agents s'exécutent sur des systèmes monitorés et communiquent avec un serveur centralisé sur lequel les données sont analysées. En outre, ce système propose un plug-in Kibana complet pour gérer la configuration, monitorer les statuts, effectuer des recherches et visualiser les données d'alerte.

D'autre part, Suricata est un moteur open source de détection de menace réseau, capable de détecter les intrusions réseau (NIDS) en temps réel, de prévenir les intrusions en ligne (NIPS), de monitorer la sécurité réseau (NSM) et d'utiliser pcap hors ligne. Suricata examine le trafic réseau en appliquant ses règles et sa langue de signature pour identifier les menaces connues, les violations de politique et les comportements malveillants. La prise en charge des scripts lui permet de détecter des menaces complexes.

Dans cet article de blog, nous nous pencherons sur la détection d'intrusions en intégrant Wazuh et Suricata aux tâches de machine learning d'Elastic pour classer les analyses par ordre de priorité.

Intégration de Wazuh, de Suricata et de la Suite Elastic

Pour les besoins de cet article, nous avons configuré un environnement lab dans lequel les agents Wazuh ont été déployés dans plusieurs serveurs connectés à Internet pour monitorer les logs système et d'applications, l'intégrité des fichiers ainsi que les appels système.

De plus, nous utilisons un capteur Suricata chargé de monitorer le trafic réseau. Ce capteur est généralement configuré de façon à monitorer le trafic au moyen d'un TAP réseau, d'un port de mise en miroir ou d'un port SPAN (Switched Port Analyzer), mais il peut aussi être déployé directement dans vos serveurs.

Pour bénéficier au maximum de ces deux outils, nous avons décidé d'analyser les alertes de Suricata en appliquant les règles de Wazuh pour unifier le format des alertes, effectuer des corrélations (avec des sources de Threat Intelligence, par exemple) et déclencher des réponses automatiques.

Cette intégration a été obtenue en configurant un agent Wazuh pour qu'il puisse lire les fichiers JSON produits par Suricata. Cet agent fait office de collecteur. Il transmet les alertes NIDS de Suricata au serveur Wazuh pour les traiter conformément aux règles d'analyse de logs de Wazuh et ainsi produire de nouveaux événements de sécurité enrichis.

Résultat : les alertes NIDS et HIDS sont envoyées à Elasticsearch par l'intermédiaire de Filebeat (configuré pour lire les alertes Wazuh) et Logstash (également utilisé pour enrichir les données de géolocalisation). C'est là que nous utiliserons les tâches de machine learning pour détecter les anomalies et les comportements inhabituels.

Voici l'exemple d'un déploiement de technologies IDS hôte et réseau combinées à la Suite Elastic :

Analyse de sécurité avec la Suite Elastic et Wazuh

Détection d'acteurs malveillants grâce aux tâches de machine learning

Après avoir activé la totalité des règles dans notre environnement lab, nous avons constaté que notre agent Wazuh produit entre 4 000 et 10 000 alertes IDS par jour pour un seul serveur Web connecté à Internet. Ces alertes sont pour la plupart liées à des attaques Web, à des échecs d'authentification, à des problèmes de configuration (détectés grâce aux vérifications de sécurité renforcée), à des variations de l'intégrité des fichiers ou à des logiciels vulnérables.

Pour faciliter le travail des analystes de sécurité, des métadonnées, telles que les valeurs de niveau ou les groupes, enrichissent les alertes IDS de Wazuh pour qu'elles puissent être filtrées par priorité ou par type. En outre, le plug-in Kibana de Wazuh propose des tableaux de bord préconfigurés qui contiennent des informations utiles sur le statut de l'agent, la configuration et les alertes. Examinez la capture d'écran ci-dessous :

L'information fournie par Wazuh est certes utile, mais ne met pas le doigt sur les comportements inhabituels. C'est là que les tâches de machine learning d'Elastic entrent en scène.

Le machine learning d'Elastic nous offre la possibilité de créer plusieurs types de "tâches". La tâche est l'élément de base de l'analyse par le machine learning. Dans le cas qui nous intéresse, nous avons décidé de créer une "analyse de population". Nous avons demandé au moteur de machine learning de construire un modèle de référence du comportement type des adresses IP sur une période donnée pour identifier celles qui se comportent de façon anormale par rapport au reste de la population.

Pour être plus précis, nous souhaitons identifier les adresses IP sources qui, lorsqu'elles sont comparées à toutes les autres adresses IP, sont à l'origine d'un nombre inhabituellement élevé de types d'alertes. La création de tableaux d'agrégation ne suffit pas pour obtenir un tel résultat, car les anomalies se produisent à un moment précis que notre analyste de sécurité ne connait pas. Aussi, nous disposons de plus de 60 jours d'alertes (nous avons détecté des attaques qui duraient moins de deux minutes).

Suite à cette analyse de population, nous avons identifié plusieurs comportements anormaux (sous la forme d'une liste d'adresses IP) que nous avons décidé d'analyser. Nous avons utilisé l'"Anomaly Explorer" pour savoir quand chacun de ces acteurs potentiellement malveillants a attaqué notre environnement.

Analyse d'une tentative d'intrusion

Attardons-nous sur l'une des adresses IP identifiées par la tâche de machine learning. Cette adresse IP a été à l'origine de plusieurs alertes NIDS et HIDS en moins d'une minute. Cela a déclenché une action Wazuh automatique qui a bloqué l'adresse IP dans le pare-feu local de notre serveur Web.

Comme l'illustre la capture d'écran ci-dessus, le NIDS Suricata a détecté du trafic malveillant provenant des adresses IP spécifiées. Le trafic entrant a permis de vérifier quatre règles et est à l'origine des alertes suivantes :

  • ET DROP Dshield Block Listed Source group 1
  • ET CINS Active Threat Intelligence Poor Reputation IP group 77
  • SURICATA HTTP URI terminated by non-compliant character
  • SURICATA HTTP METHOD terminated by non-compliant character

Les deux premières règles appartiennent à l'ensemble de règles Emerging Threats. Elles indiquent que l'adresse IP source a mauvaise réputation d'après les sources de Threat Intelligence (TI) : Dshield et Active Threat Intelligence.

De plus, deux autres signatures ont détecté une activité HTTP anormale provenant de la même adresse IP source, probablement dans le cadre d'une phase d'analyse durant laquelle l'assaillant recueille des informations pour identifier les vulnérabilités potentielles.

Le composant HIDS de Wazuh a également généré différentes alertes suite à l'analyse des logs d'accès au serveur Web. Cette approche qui se différencie complètement de l'inspection des paquets réseau a permis de générer les alertes suivantes :

  • IP address found in AlienVault reputation database
  • Host Blocked by firewall-drop.sh Active Response
  • Host Unblocked by firewall-drop.sh Active Response

La première alerte indique que l'adresse IP source est également signalée par une autre source de Threat Intelligence (TI) : la base de données de réputation IP AlienVault OTX.

Les deux alertes suivantes ont été déclenchées par le module Wazuh Active Response qui, suite aux alertes déjà mentionnées, a automatiquement ajouté une règle de pare-feu pour bloquer le trafic provenant de cette adresse IP source pendant exactement 60 secondes (ceci est configurable). Cette action a suffi à bloquer les activités d'analyse de l'acteur malveillant qui a immédiatement cessé sa tentative d'intrusion.

Conclusion

Avec des technologies comme Wazuh, Suricata et le machine learning d'Elastic, l'utilisation des techniques de détection d'intrusion basées sur les signatures et les anomalies permettent de simplifier la détection des menaces et de rendre leur analyse plus efficace.

D'autre part, l'intégration d'un IDS hôte (pour monitorer les systèmes au niveau de l'hôte) et d'un IDS réseau (pour inspecter le trafic réseau) permet aussi d'améliorer la détection des menaces et la visibilité en matière de sécurité. Wazuh simplifie tout cela, car il permet d'intégrer les systèmes IDS hôte et réseau à la Suite Elastic, et est en mesure de fournir des mécanismes pour déclencher des réponses automatiques et bloquer des attaques en temps réel.