Détection et prédiction des accès malveillants dans les réseaux d'entreprise à l'aide de l'algorithme de détection communautaire de Louvain

ACCUEIL » BLOG » Détection et prédiction des accès malveillants dans les réseaux d'entreprise à l'aide de l'algorithme de détection communautaire de Louvain

Par Gal Sadeh, scientifique principal des données, Silverfort
De nombreuses violations de données commencent par l'accès à un ordinateur insignifiant et se propagent en sautant d'un ordinateur à un autre jusqu'à atteindre les précieux « joyaux de la couronne », tels que les identifiants d'administrateur, les informations sur une base de données importante contenant des données client, etc. Détecter et prévenir ces attaques est une tâche très compliquée pour les professionnels de la sécurité car le nombre de chemins d'attaque possibles est extrêmement élevé et les réseaux changent fréquemment (de nouvelles entités sont ajoutées ou supprimées, les autorisations sont modifiées, etc.). La plupart des techniques de détection d'attaques reposent sur la reconnaissance de schémas malveillants connus, mais pour les attaques complexes, cela ne suffit plus. Lorsque l'attaque n'a pas de schéma reconnaissable connu, il est extrêmement difficile de la détecter.

Nos premières tentatives avec détection d'attaque

Depuis que Silverfort analyse les données d’authentification et d’accès surveillées sur l’ensemble entreprise environnements réseau et cloud – il doit analyser beaucoup de données. Cependant, il a fallu quelques tentatives pour décider quelle serait la meilleure façon d’analyser toutes ces données afin de détecter les menaces inconnues. J'ai beaucoup réfléchi à cette question. Au début, j'ai pensé cartographier tous les chemins d'accès possibles en fonction des données et essayer de détecter les plus vulnérables. Cependant, cette approche devient quasiment impossible à mettre en œuvre lorsque le réseau contient de nombreuses entités, puisque le nombre de chemins d'accès possibles croît de façon exponentielle avec le nombre d'entités. J'ai essayé d'améliorer cette méthode en éliminant certains chemins d'accès. Par exemple, si un utilisateur ne dispose pas des autorisations dans le répertoire pour accéder à un certain serveur, nous pouvons éliminer ce chemin. Cette approche nous a aidé à traiter un grand nombre de chemins d'accès, mais ce n'était pas suffisant, car même sans autorisations, un chemin d'accès pouvait être possible grâce à l'exploitation des vulnérabilités.

Nous avons donc décidé d'essayer une approche différente : nous avons divisé le réseau en communautés, en nous basant sur le fait que les membres d'une communauté communiquent entre eux, et avec d'autres ressources partagées, plus qu'avec d'autres entités du réseau.

Permettez-moi de vous expliquer davantage :

Que sont les communautés et que sont les algorithmes de détection de communauté ?

Les réseaux peuvent être modélisés comme des graphes de connexions (arêtes) entre nœuds, où chaque nœud représente une entité (utilisateur, ordinateur, etc.) et chaque arête reliant les nœuds représente une connexion logique. Par exemple, si un utilisateur accède à un serveur, l'utilisateur et le serveur seraient les "nœuds" et la connexion entre eux serait représentée par un "bord".
Chaque arête est également associée à un poids qui représente la force de la connexion, basée sur le nombre de authentification et les demandes d'accès que nous voyons sur ce bord.
Le fonctionnement des algorithmes de détection de communauté consiste à prendre un graphique brut en entrée, à l'analyser et à attribuer chaque nœud à une communauté. Chaque communauté est caractérisée par sa 'densité' qui est la relation entre les poids de toutes les arêtes et le nombre de nœuds dans la communauté. La plupart des algorithmes de détection de communauté ont un « objectif » qui est un nombre qui représente la compatibilité globale des nœuds avec les communautés auxquelles ils ont été affectés. Le but est de maximiser ce nombre. Un objectif plus large signifie des communautés à « haute densité ».
Notez que différents algorithmes peuvent avoir des "objectifs" légèrement différents.

Affectation de nœuds aux communautés à l'aide de l'algorithme de Louvain

Nous avons sélectionné l'algorithme de Louvain car il s'agit d'un algorithme bien connu qui s'exécute très rapidement même dans les grands réseaux complexes - son temps d'exécution est presque linéaire par rapport à la taille du réseau. L'algorithme tente de maximiser son objectif en répétant ces deux phases :

  1.  Il attribue chaque nœud du graphe à une seule communauté. Pour chaque arête se connectant entre le nœud u et le nœud v, l'algorithme vérifie si la fusion des communautés de u et v augmente l'objectif, et si oui, il effectue la fusion.
  2. L'algorithme construit un nouveau graphe, où chaque communauté est représentée par un seul nœud, et le poids attribué à l'arête entre les communautés est la somme des poids de toutes les arêtes entre les nœuds fusionnés de chaque communauté.

L'algorithme s'arrête lorsqu'il n'y a pas d'étape qui augmente l'objectif. La sortie est un graphe induit, où les nœuds représentent les communautés. Pour notre implémentation, nous avons utilisé un package Python appelé "community". D'autres lectures peuvent être trouvées ici: http://www.emilio.ferrara.name/wp-content/uploads/2011/07/isda2011-k-path.pdf

Détection communautaire et cybersécurité

Puisque chaque communauté est dense, ce qui signifie qu'il existe de nombreux chemins d'accès entre les nœuds, si un attaquant accède à l'une des entités (compte d'utilisateur ou appareil) dans une communauté, il lui serait plus facile d'accéder à d'autres entités de cette communauté. De toute évidence, il est plus difficile pour un attaquant de s'étendre à d'autres communautés car il existe moins de chemins d'accès entre les différentes communautés. Si elle est utilisée correctement, la détection de communauté peut aider à identifier les activités suspectes au sein d'un réseau, prévoir les trajectoires de déplacement latéral et appliquer des politiques plus intelligentes en temps réel.

Comment Silverfort s'inscrit dans

Quand Silverfort's Authentification Active Directory basée sur les risques La plateforme est déployée dans un réseau, elle surveille toute l'activité d'authentification et d'accès entre les différentes entités et construit un graphe comme décrit précédemment. Le graphique brut ressemble à ceci :

Chaque cercle est un utilisateur et chaque triangle est un serveur. Les poids sur les bords sont déterminés par le nombre de demandes d'authentification et d'accès surveillées, et les permissions associées aux différents nœuds (pour simplifier, les poids ne sont pas affichés sur le graphique). Ensuite, nous utilisons l'algorithme de Louvain pour identifier les communautés dans le réseau. Après avoir identifié les communautés, la carte ressemblera à ceci :


Maintenant, nous repérons des nœuds qui communiquent avec des entités dans des communautés dont ils ne font pas partie. Ces nœuds seraient des cibles précieuses pour les attaquants, car ils sont les seuls points d'accès entre les communautés. Par conséquent, un attaquant devra passer par eux afin de se propager à d'autres communautés. La sécurisation des périphéries (connexions) de ces nœuds est importante pour empêcher une attaque de se propager dans le réseau.

En utilisant SilverfortGrâce aux politiques d'authentification de , les entreprises peuvent répondre automatiquement aux menaces détectées en appliquant une authentification renforcée pour valider l'identité de l'utilisateur ou en bloquant complètement l'accès. Cela est vrai à la fois pour la communication utilisateur-machine et machine-machine.
Identifier les communautés et les précieuses connexions intercommunautaires qui seraient ciblées par les attaquants, aide Silverfort clients dans la définition de politiques d'authentification sécurisées intelligentes. Le graphique de la communauté peut également aider les administrateurs à identifier les erreurs de configuration dans leurs réseaux. Dans le graphique ci-dessous, certains des nœuds et connexions précieux qui doivent être sécurisés sont marqués en violet.

Comment est-il exploité aujourd'hui ?

Certains de nos clients utilisent déjà SilverfortL'analyse de communauté de (qui fait partie de notre moteur de risque basé sur l'IA) pour identifier les communautés et les connexions intercommunautaires dans leurs réseaux, identifier les erreurs de configuration et les « points faibles » qui doivent être sécurisés, et détecter les activités anormales. Désormais, nous aidons nos clients à passer à l'étape suivante : appliquer des politiques d'authentification sécurisée en temps réel en réponse aux menaces détectées et prévenir efficacement mouvement latéral dans leurs réseaux et environnements cloud.

Gal Sadeh, scientifique principal des données, Silverfort
Gal est un scientifique principal des données dans Silverfortl'équipe de recherche de. Il est responsable de l'analyse des mégadonnées et du développement des moteurs d'IA. Il a rejoint Silverfort après de nombreuses années de recherche et de leadership au sein de la cyber-unité d'élite 8200 des Forces de défense israéliennes. Gal est titulaire d'un B. Sc. en Mathématiques et Informatique de l'Université de Tel Aviv.

Arrêtez les menaces sur l'identité