Depuis 2018 et la sortie de la 1ère version de Reveelium, l’équipe d’ITrust est convaincue de l’intérêt de l’Intelligence Artificielle pour la cybersécurité. Ces dernières années, les tendances du marché nous ont donné raison : des PME aux géants de l’industrie, tous s’appuient sur cette technologie pour décupler leur capacité à détecter les menaces.
Qu’entend-t-on par IA ?
Reveelium n’est pas encore à même de penser comme un humain, et ne remplace donc pas l’expertise d’un analyste SOC accompli. Ceci étant dit, la pratique de l’IA chez ITrust va bien au-delà des règles IF/THEN, même optimisées, qui ont longtemps été la base de ce système de décision, très encadré par l’Homme.
Prendre une décision dans une situation prédéfinie n’est pas une preuve d’intelligence. Traditionnellement, les règles de corrélation des SIEM sont statiques, fixées. Elles ne s’adaptent pas aux nouvelles situations, ne sauront pas apprendre de leurs erreurs.
Or, cette notion d’apprentissage est cruciale pour détecter la multitude de nouvelles menaces auxquelles font face les entreprises, pour contrer les attaques de plus en plus complexes et habiles des cybercriminels.
En réponse à cette réalité, les data-scientists d’ITrust développent depuis quelques années nos propres algorithmes de machine learning. Leur but : améliorer en continu la détection des menaces, en identifiant, parmi des milliers de logs, des relations qu’un humain ne verrait pas forcément.
Dans un précédent billet, nous avons parlé du malware Kryptis et de la façon dont nous avons réussi à le détecter grâce au triptyque : SIEM UEBA / Threat Intelligence / Expertise Humaine.
Aujourd’hui nous vous proposons de faire un focus sur le moteur UEBA de notre technologie Reveelium, en vous présentant un de ces algorithmes : le DGA. Sans détailler son fonctionnement précis, nous expliquons, simplement, les méthodes d’analyses temporelles et syntaxiques qui rendent cet algorithme intéressant pour la détection de malwares.
Rappel sur le malware Kryptis :
Il s’agit d’un malware Trojan (Cheval de Troie) qui, une fois installé, peut être contrôlé à distance par l’attaquant (Command & Control). Il est utilisé pour voler des informations telles que des noms d’utilisateurs, des mots de passe ou des fichiers sensibles (exfiltration). Il peut aussi effectuer des captures d’écran, de clavier (keylogging), surveiller le trafic du réseau, lancer des fichiers exécutables… Et envoyer toutes ces informations à un serveur distant contrôlé par un attaquant.
Le DGA :
Lors de cette cyber-attaque, c’est notre algorithme de détection de DGA qui a permis de détecter la propagation du malware Kryptis, grâce à la corrélation d’une de nos alertes avec les alertes du SIEM.
Mais qu’est-ce qu’un DGA ?
Le DGA (Domain Generation Algorithm) est une technique utilisée par les cyber attaquants pour générer des nouveaux noms de domaines pour les serveurs de Command and Control des malwares. Leur détection est un enjeu crucial, car elle peut permettre, très tôt, la détection de certains malwares connus ou inconnus.
Quel est l’apport de l’IA ?
Une question intéressante à se poser est, quel est l’apport de l’IA dans la détection de DGA ? La réponse est simple: L’IA permet une analyse plus poussée des noms de domaines. Elle permet à la fois une analyse sémantique et une analyse syntaxique des noms de domaines. Permettant ainsi une classification plus précise et donc plus performante.
Analyse sémantique :
L’analyse sémantique est la partie qui permet d’analyser la prononciabilité d’un nom de domaine. C’est-à-dire de savoir si le nom de domaine que l’on étudie est prononçable ou non. Mais surtout à quel point il est prononçable.
Pour réaliser cette analyse sémantique, les algorithmes qui sont le plus souvent utilisés sont des algorithmes de deep learning, plus particulièrement les RNN (Recurrent Neural Network). Les RNN sont des algorithmes de deep learning (Neural Network) qui réalisent une analyse temporelle des données (recurrent). La grande force de ce type d’algorithme est qu’il permet d’observer la récurrence d’apparition de certains patterns.
L’utilisation que l’on en fait dans la détection de DGA est la suivante : lorsqu’on regarde certains mots (de la langue française ou anglaise) ou noms de domaines, des patterns apparaissent, comme par exemple l’alternance consonne / voyelle.
![DGA 1](https://www.itrust.fr/wp-content/uploads/2021/12/DGA-1.png)
Observation des patterns d’un nom de domaine normal. c = consonne / v = voyelle / cercle rouge = pattern à observer
Cependant, le plus souvent, lorsque l’on analyse des DGA, ce pattern d’alternance entre voyelle et consonne n’est pas présent.
![DGA 2 – pattern console / voyelle DGA 2 - pattern console / voyelle](https://www.itrust.fr/wp-content/uploads/2021/12/DGA-2.png)
Exemple d’un DGA où on ne ne trouve pas de pattern avec une alternance entre consonne et voyelle. c = consonne / v = voyelle
C’est la présence (ou l’absence) de ce pattern que détecte le RNN, et qui lui permet de déterminer la prononciabilité des mots. Et par conséquent de les classifier, ou non, comme DGA.
Analyse syntaxique :
Une autre façon de détecter des DGA est d’utiliser une approche syntaxique. Ce type d’approche permet d’analyser le contenu du nom de domaine. L’analyse du contenu du nom de domaine peut par exemple se faire en comptant le nombre de voyelles ou le nombre de consonnes qu’il contient.
Dans ce type d’approche, on crée une liste d’éléments qui vont nous permettre de définir le nom de domaine. Ces éléments peuvent être assez simples comme le nombre de voyelles/consonnes dans le nom de domaine, ou au contraire plus complexes. Par la suite, l’ensemble de ces éléments sont fournis en entrée d’un algorithme de machine learning qui va apprendre à faire la différence entre les noms de domaines normaux et les noms de domaines de type DGA.
![DGA – prediction du modele DGA - prediction du modele](https://www.itrust.fr/wp-content/uploads/2021/12/DGA-3.png)
Notre méthode
L’algorithme d’ITrust est capable de combiner ces deux aspects, l’analyse sémantique et l’analyse syntaxique. Cela signifie que, pour détecter les DGA, nous réalisons une double analyse nous permettant de ne laisser aucun aspect des noms de domaines non surveillés.
De plus, nos algorithmes sont entraînés sur les bases de données d’ITrust, ce qui nous permet d’accorder une grande fiabilité aux résultats de nos algorithmes. Car plus les volumes de données sur lesquelles sont entraînés les algorithmes sont larges, plus les algorithmes sont robustes.
L’IA : la clé de la cybersécurité contemporaine
En conclusion, ce billet illustre l’utilité des techniques de machine learning pour la cyber sécurité. Elles permettent une analyse approfondie des données, sur plusieurs aspects. (Ici syntaxiques et sémantiques, pour évaluer la structure et la prononciation du nom de domaine). Les usages et les besoins des populations grandissent toujours, et avec eux les périmètres à superviser, qui sont de plus en plus exposés aux vulnérabilités. Face à cette complexité croissante, les avantages du machine learning justifient qu’il remplace peu à peu les méthodes traditionnelles :
![performance](https://www.itrust.fr/wp-content/uploads/2021/12/performance.png)
Analyser de très grandes quantités de données de façon automatisée
![Icône cyber attaque Icône cyber attaque](https://www.itrust.fr/wp-content/uploads/2021/12/skull.png)
Détecter plus rapidement les menaces (quelques jours, contre plusieurs mois avec les anciennes méthodes)
![Icône Ai ITrust Icône Ai ITrust](https://www.itrust.fr/wp-content/uploads/2021/12/search.png)
Identifier des relations entre ces données, qu’un analyste ne verrait pas ; identifier des menaces inconnues
![investigate Icône loupe](https://www.itrust.fr/wp-content/uploads/2021/12/investigate.png)
Faire gagner un temps considérable aux équipes, qui se concentrent sur l’analyse des menaces sérieuses, les alertes mineures étant gérées par l’IA.
Auteur : J.Johann – Team Data Science ITrust