17 mai 2017 Technique

Utiliser Machine Learning et Elasticsearch pour les analyses de sécurité : approfondissement

Par Mike Paquette

Introduction

Dans notre précédent article issu d'une longue série sur l'intégration d'Elasticsearch à ArcSight SIEM, où nous utilisions les fonctionnalités d'alerting de X-Pack pour détecter une attaque de type brute force ayant abouti, nous avions évoqué notre enthousiasme quant à l'arrivée imminente des fonctionnalités de machine learning de X-Pack.

Eh bien, le temps est venu : les fonctionnalités de machine learning de X-Pack sont désormais disponibles. Nous souhaitons à présent vous expliquer comment utiliser machine learning pour détecter, au sein des données de log présentes dans Elasticsearch, les anomalies associées aux cybermenaces.

Mathématique, pas magique

Avant d'entrer dans le vif du sujet, re‑situons un peu le contexte. En sécurité informatique, on croit souvent à tort que le machine learning s'apparente à un coffre magique rempli d'algorithmes auxquels on présente nos données et qui, en retour, nous offrent une mine de précieux renseignements.

D'un point de vue plus éclairé, le machine learning est perçu comme un arsenal d'« assistants algorithmiques » qui aident l'équipe de sécurité à automatiser l'analyse des données de log relatives à la sécurité, en recherchant les anomalies et les schémas potentiellement incriminants, sous la conduite d'experts humains.

Suivi des menaces ou chasse aux menaces : le rôle de Machine Learning

Les fonctionnalités de machine learning de X-Pack peuvent être utilisées pour enquêter de manière interactive sur les anomalies liées aux menaces. La visualisation des anomalies « en couloir » dans Kibana constitue souvent le point de départ des chasses aux menaces. Les détails sur les anomalies détectées indiqueront clairement à l'analyste de sécurité « pourquoi » le comportement détecté était anormal, son degré d'anormalité, en quoi il est relié au comportement d'attaque élémentaire qu'il essaie de détecter, et quels éléments inhérents aux données ont influencé le comportement d'attaque.

Parce que les fonctionnalités de machine learning de X-Pack sont étroitement intégrées à la Suite Elastic, les techniques d'alerte que nous avons décrites dans les partie 2 et partie 4 de notre article sur l'intégration d'Elasticsearch à ArcSight SIEM peuvent désormais s'appliquer à une nouvelle source de renseignements, à savoir l'index des résultats de Machine Learning (ML), dont le nom commence par ml-anomalies-. Ainsi, il est possible d'utiliser les résultats générés par ces assistants algorithmiques pour déclencher des alertes dans le cadre du suivi continu des menaces.

image1.pngFig. 1 Les fonctionnalités de machine learning de X-Pack intégrées à la Suite Elastic.

Les « recettes » de machine learning pour la détection des menaces

Il est vrai que les seuils de notification sont un outil performant, permettant par exemple d'envoyer une notification lors d'une ouverture de session réussie faisant suite à plusieurs échecs, et que la possibilité d'automatiser la détection des comportements anormaux, sans avoir à définir de conditions spécifiques sur les données, simplifie le travail des analystes de sécurité.

Cela dit, comme nous l'avons mentionné précédemment, il est question de mathématiques, et non de magie. Il est donc nécessaire de configurer les tâches du moteur de machine learning en lui fournissant les consignes appropriées. Étant donné que le moteur peut modéliser n'importe quel type de données temporelles – numériques ou catégoriques –, les types de tâches de machine learning pouvant être configurés sont illimités. Bien que flexible, cela peut s'avérer un peu trop poussé pour un analyste qui s'attache simplement à trouver des menaces.

Nous introduisons ici le concept de « recettes » de machine learning pour les cas d'utilisation relatifs à la sécurité. Les recettes décrivent comment configurer les tâches de machine learning afin de pouvoir automatiser la détection des anomalies et découvrir les comportements d'attaque élémentaire qui peuvent s'avérer difficiles à détecter par le biais d'autres moyens. Les comportements d'attaque élémentaire comprennent les activités de tunneling DNS, d'exfiltration des données Web, l'exécution de processus sur points de terminaison suspects, et plus encore.

recipes.png

Fig. 2  Exemple de fiche-recette de machine learning pour les cas d'utilisation relatifs à la sécurité.

Chaque recette est inscrite dans un court document qui comprend plusieurs parties : les principes de fonctionnement, une description, et les étapes spécifiques permettant d'effectuer la modélisation et d'observer les résultats. La recette se compose des étapes suivantes : sélection des fonctionnalités, méthode de modélisation, détection de la cible, ensemble de comparaison, éléments influents cibles, période d'analyse et interprétation des résultats.

Nous avons présenté quatre exemplesde machine learning pour les cas d'utilisation relatifs à la sécurité lors du lancement de la version 5.4. Disponible dès maintenant sur ce repo GitHub, chaque exemple s'accompagne d'une fiche-recette ainsi que de diverses configurations, données et scripts à tester.

Une recette de machine learning pour détecter le tunneling DNS

En guise d'exemple, voyons comment utiliser l'apprentissage machine pour détecter les activités de tunneling DNS.

Pour résumer le contexte, le tunneling DNS renvoie à toute activité où le protocole internet DNS (« système de noms de domaine ») est utilisé dans le but de transférer des informations non DNS dans et/ou hors des réseaux d'entreprise. Indispensable à toute infrastructure informatique connectée à Internet, le trafic réseau DNS n'est généralement pas bloqué par les pare-feux et est donc devenu un canal intéressant pour transmettre des communications non autorisées et/ou malveillantes en contournant les systèmes de sécurité des entreprises. Par exemple, le malware FrameworkPOS a recours à cette technique pour exfiltrer les données volées aux détenteurs de cartes de crédit sur des terminaux de points de vente.

Parcourons la recette d'apprentissage machine nommée DNS-EAB02 au sein du service de sécurité d'Elastic. « DNS » signifie que les logs à analyser dans cette recette sont de type DNS. « EAB » signifie que cette recette détecte les comportements d'attaque élémentaire ou elementary attack behaviour (EAB). « 02 » est l'identifiant unique de cette recette pour la distinguer des autres recettes DNS. Cette recette est divisée en plusieurs parties :

Théorie : Une entropie inhabituelle (aussi appelée « contenu d'information ») dans le champ « sous-domaine » des requêtes DNS peut signaler l'exfiltration de données par le biais du protocole DNS.

Veuillez noter que, malgré les nombreux moyens existants pour détecter l'exfiltration de données DNS, cette tâche en utilise un seul, qui a fait ses preuves dans les environnements d'entreprise. Si votre équipe de sécurité en préfère un autre, ou bien d'autres méthodes, il vous suffit de cloner cette tâche, de la modifier à votre convenance, puis de l'exécuter ! Ou bien, exécutez les toutes les deux pour comparer, ou même combiner, les résultats.

Description : Cette recette identifie les domaines auxquels sont envoyées des requêtes DNS contenant des valeurs de « contenu d'information » anormalement élevées, ainsi que les adresses IP à l'origine de ces requêtes irrégulières.

Il n'apparaît pas toujours évident, au premier abord, que détecter les domaines ciblés par des requêtes dont l'entropie du champ « sous-domaine » est anormale est en réalité la bonne chose à faire. Mais si l'on raisonne dans une perspective de modélisation des données, il nous faut identifier, au sein des données, l'élément le plus susceptible de présenter des caractéristiques anormales au cours de l'analyse. Pour la présente analyse, l'élément que nous souhaitons modéliser est le champ « domaine » du log de requêtes DNS, et la caractéristique est la quantité de contenu d'information du champ « sous-domaine ».

Efficacité : Cette recette fait office d'exemple de base pour montrer comment utiliser la détection automatisée d'anomalies afin de détecter l'exfiltration de données DNS. D'autres recettes, basées sur des méthodes alternatives ou plus complexes, peuvent offrir de meilleurs résultats.

Rappelez-vous bien que cette recette n'est qu'un exemple. En appliquant les connaissances de votre équipe à ce type de détection, vous pourrez en améliorer l'efficacité.

Cas d'utilisation : Comportement d'attaque élémentaire (EAB) – Ce cas d'utilisation détecte les anomalies associées aux comportements d'attaque élémentaire. Chaque anomalie détectée se voit attribuer un score normalisé, et est annotée avec les valeurs des autres champs inhérents aux données ayant une influence statistique sur l'anomalie. Les comportements d'attaque élémentaire qui possèdent des éléments influents communs sont souvent liés à la progression d'une même attaque.

Petit rappel de contexte : cette recette n'a pas pour but de réaliser la méta-analyse des facteurs de risque, mais plutôt de détecter les comportements d'attaque élémentaire qui peuvent être corrélés avec les comportements d'attaque repérés par Alerting de X-Pack, et ce afin de détecter la progression des attaques informatiques.

Source de données : logs de requêtes DNS (des clients au serveur DNS)

Petit rappel du type de données nécessaires à cette recette

Recette de cas d'utilisation :

For: Requêtes DNS (filtrées pour les types de question : A, AAAA, TXT)

Model: Contenu d'information du champ « sous-domaine »

Detect: Valeurs anormalement élevées du contenu d'information

Compared to: Population de tous les domaines (les plus répandus) apparaissant dans les résultats de requête

Partition by: Aucune

Exclude: Domaines qui ressortent fréquemment lors de l'analyse

Duration: Analyse des requêtes DNS sur une période de 2 semaines ou plus

Related recipes: Cas d'utilisation à effectuer seul, ou avec le cas DNS-EAB01 sur l'utilisation d'algorithmes DGA au niveau du protocole DNS.

Results: Les hôtes d'éléments influents sont très probablement des sources d'activités de tunneling DNS

C'est ici que nous passons à la recette à proprement parler. Cette partie précise de quels messages de log extraire les données, les caractéristiques de données à modéliser, le comportement anormal à détecter et les éléments auxquels le comparer, si nous voulons ou non partitionner l'analyse ainsi qu'exclure les valeurs fréquentes qui pourraient noyer les résultats, la quantité de données nécessaire pour produire de bons résultats, les tâches pouvant être exécutées en parallèle à celle-ci, et enfin, comment examiner et interpréter les résultats de l'analyse.

Paramètres de configuration supplémentaires :

Ces parties (Exemple de modèles d'index Elasticsearch, Exemple de requête Elasticsearch, et Analyse d'apprentissage machine / Configuration du détecteur) fournissent les détails techniques permettant de configurer cette tâche de machine learning et de faire en sorte qu'elle fonctionne comme prévu. Vous pouvez retrouver ces détails directement dans les paramètres de la vue de configuration de la tâche.

Une fois qu'une tâche de machine learning est configurée à l'aide de cette recette, et activée, les fonctionnalités de machine learning de X-Pack se mettront à indexer et analyser les logs de requêtes DNS provenant des postes de travail clients, déterminant les caractéristiques de base normales des requêtes DNS envoyées par chaque client et détectant les caractéristiques anormales.

Comme nous l'avons mentionné précédemment, les anomalies détectées sont stockées dans un index Elasticsearch nommé par défaut ml-anomalies-*. De la sorte, il est possible de les rechercher et de les afficher dans les tableaux de bord Kibana, de les examiner en détail grâce au plugin de machine learning de X-Pack, ou de s'en servir pour créer des alertes grâce aux fonctionnalités d'alerting de X-Pack.

Nous avons préparé quelques petites vidéos pour vous permettre de voir les fonctionnalités de machine learning de X-Pack en pleine action, mais avant cela, voici un aperçu de l'explorateur d'anomalie – version 5.4 (bêta) de Machine Learning de X-Pack – lorsque l'on visualise les résultats d'une tâche de tunneling DNS.

image3.png

Conclusion

Machine Learning de X-Pack rend la technologie d'apprentissage machine accessible aux analystes et ingénieurs de sécurité qui disposent, au sein d'Elasticsearch, de données de log relatives à la sécurité. Sa fonction de base est la détection d'anomalies. Les recettes d'analyses de sécurité expliquent comment configurer des tâches pour détecter les comportements d'attaque. Sans aucune programmation, vous pouvez prendre les rênes de votre armée d'assistants algorithmiques pour mieux détecter les menaces et ainsi améliorer votre sécurité globale.

Pour en savoir plus :