Pour échapper à la détection par les solutions de sécurité, les cybercriminels utilisent diverses techniques qui masquent leurs activités malveillantes. L’une des méthodes de plus en plus utilisées ces dernières années dans les attaques contre les systèmes Windows est le détournement de DLL : il s’agit de remplacer les bibliothèques de liens dynamiques (DLL) par des bibliothèques malveillantes. Or, les outils de sécurité traditionnels ne détectent souvent pas l’utilisation de cette technique. Pour résoudre ce problème, nos collègues du Kaspersky AI Technology Research Center ont développé un modèle de machine learning capable de détecter les détournements de DLL avec une grande précision. Ce modèle a déjà été mis en œuvre dans la dernière version de notre système SIEM, la plateforme Kaspersky Unified Monitoring and Analysis Platform. Dans cet article, nous expliquons les défis liés à la détection du détournement de DLL et comment notre technologie les aborde.
Comment fonctionne le détournement de DLL et pourquoi il est difficile à détecter
Le lancement soudain d’un fichier inconnu dans un environnement Windows attire inévitablement l’attention des outils de sécurité, ou est tout simplement bloqué. Essentiellement, le détournement de DLL consiste à faire passer un fichier malveillant pour un fichier connu et fiable. Il existe plusieurs variantes du détournement de DLL. Dans un cas, les pirates distribuent une bibliothèque malveillante avec un logiciel légitime (parachargement de DLL) afin que le logiciel l’exécute. Dans un autre cas, ils remplacent les DLL standard appelées par des programmes déjà installés sur l’ordinateur. Enfin, il est également possible de manipuler les mécanismes système qui déterminent l’emplacement de la bibliothèque qu’un processus charge et exécute. Le fichier DLL malveillant est alors lancé par un processus légitime dans son propre espace d’adressage et avec ses propres privilèges. Les systèmes de protection des terminaux habituels considèrent donc cette activité comme légitime. C’est pourquoi nos experts ont décidé de contrer cette menace en utilisant les technologies d’IA.
Détection du détournement de DLL à l’aide du ML
Les experts du AI Technology Research Center ont formé un modèle ML pour détecter le détournement de DLL à partir d’informations indirectes sur la bibliothèque et le processus qui l’a appelée. Ils ont identifié les indicateurs clés d’une tentative de manipulation d’une bibliothèque : si le fichier exécutable et la bibliothèque se trouvent dans des chemins d’accès standard, si le fichier a été renommé, si la taille et la structure de la bibliothèque ont changé, si sa signature numérique est intacte, etc. Ils ont d’abord entraîné le modèle à partir de données liées au chargement des bibliothèques de liens dynamiques, provenant à la fois de systèmes d’analyse automatique internes et de données télémétriques anonymisées provenant de Kaspersky Security Network (KSN) et fournies volontairement par nos utilisateurs. Pour l’étiquetage, nos experts ont utilisé les données issues de nos bases de données sur la réputation des fichiers.
Le premier modèle était assez imprécis, donc avant de l’ajouter à la solution, nos experts ont procédé à plusieurs itérations, affinant à la fois l’étiquetage de l’ensemble de données d’apprentissage et les caractéristiques qui signalent un détournement de DLL. Le modèle détecte désormais cette technique avec une grande précision. Sur Securelist, nos collègues ont publié un article détaillé sur la manière dont ils ont développé cette technologie, de l’hypothèse initiale aux tests effectués dans Kaspersky Managed Detection and Response, jusqu’à son application pratique dans notre plateforme SIEM.
Détection de tentative de détournement de DLL dans Kaspersky SIEM
Dans le système SIEM, le modèle analyse les métadonnées des DLL chargées et des processus qui les ont appelées à partir de la télémétrie, signale les anomalies, puis valide ses conclusions en les comparant aux données du cloud de KSN. Cela améliore non seulement la précision de la détection des détournements de DLL, mais réduit également le nombre de faux positifs. Le modèle peut fonctionner à la fois dans le sous-système de corrélation et dans le sous-système de collecte d’événements.
Dans le premier cas, il vérifie uniquement les événements qui ont déjà déclenché des règles de corrélation. Cela permet une évaluation plus précise des menaces et une génération plus rapide des alertes si nécessaire. Étant donné que tous les événements ne sont pas vérifiés, le volume des requêtes cloud n’a pas d’impact important sur la vitesse de réponse du modèle.
Dans le second cas, le modèle traite tous les événements de chargement de bibliothèque qui répondent à certaines conditions. Cette méthode consomme davantage de ressources, mais s’avère très utile pour la recherche rétrospective des menaces.
Dans un autre article publié sur le blog Securelist, nos collègues du groupe Anti-Malware Research ont présenté en détail comment le modèle de détection des détournements de DLL aide Kaspersky SIEM à détecter les attaques ciblées, en s’appuyant sur des exemples concrets de détection précoce d’incidents.
Plus important encore, la précision du modèle ne cessera de s’améliorer à mesure que davantage de données sur les menaces et les processus légitimes s’accumulent et que les algorithmes KSN évoluent.