Émulateur
À propos de la technologie d'émulation de code
S'agissant de la détection de programmes malveillants, la méthode d'émulation de code permet d'analyser le comportement d'un fichier en émulant son exécution dans un environnement virtuel (dit « émulé »). En général, cette approche est proche de celle de la détection de programmes malveillants dans une sandbox, mais l'émulation diffère des techniques complètes de sandboxing du point de vue de la conception et de l'application. Examinons les différences.
Une sandbox complète, contrairement à un émulateur, est une méthode dite « lourde ». Elle émule l'ensemble de l'environnement et exécute un échantillon analysé dans une machine virtuelle avec un système d'exploitation réel et des applications installées. En conséquence, cette méthode nécessite une puissance de calcul élevée et suppose des limites de compatibilité sur le système hôte. C'est pourquoi une sandbox est plus efficace dans les solutions centralisées sur site et dans le cloud. Elle ne convient pas à la détection de programmes malveillants sur les hôtes d'utilisateurs et d'autres ordinateurs ordinaires.
Un émulateur émule uniquement l'exécution de l'échantillon lui-même. Il crée temporairement des objets avec lesquels l'échantillon interagit : les mots de passe qu'un programme malveillant voudra vraisemblablement voler, les antivirus dont il tentera sûrement d'arrêter la mémoire, le registre système, etc. Ces objets ne sont pas de véritables parties du système d'exploitation ou du logiciel, mais des imitations qui sont l'œuvre de l'émulateur. Son contrôle sur l'environnement émulé permet à l'émulateur d'avancer rapidement dans le temps, d'observer le comportement futur des fichiers et d'empêcher les logiciels malveillants de profiter de délais pour échapper à la détection.
Un émulateur détermine les caractéristiques de comportement essentielles d'un fichier analysé tout en utilisant bien moins de ressources qu'une sandbox. Ainsi, il est adapté aux hôtes des utilisateurs. L'exécution de fichiers inconnus est généralement reportée jusqu'à ce qu'ils soient analysés au moyen d'un émulateur. Si l'approche d'émulation n'est pas nouvelle, certains émulateurs sont très évolués et leur rôle dans la détection des programmes malveillants est substantiel. Les émulateurs modernes sont dotés de services de réputation basés dans le cloud. Leur efficacité est en outre renforcée par le machine learning.
Kaspersky Emulator
Nos solutions intègrent un émulateur qui correspond à l'une des lignes de défense de l'approche multi-niveaux. Il émule les fichiers binaires et les scripts, dont l'importance grandit avec la multiplication des attaques sans fichier basées sur des scripts.
L'émulation est optimisée pour des ressources informatiques limitées. Elle prend beaucoup moins de RAM par objet qu'une sandbox et analyse simultanément de nombreux objets sans surcharger le système. En raison de l'accélération matérielle, l'émulation utilise en toute sécurité le processeur pour multiplier par 20 environ la vitesse d'analyse.
Nos solutions démarrent l'analyse d'émulation « à la demande » lorsqu'un utilisateur demande une analyse de disque, ou « au moment de l'accès » lorsqu'un objet est automatiquement analysé avant un accès ou son exécution. L'émulation peut démarrer en parallèle d'autres méthodes de détection, telles que les demandes de réputation de processus dans le cloud.
Les émulateurs sont implémentés dans les solutions de protection des terminaux de Kaspersky, les solutions de sécurité au niveau de la passerelle (par exemple, les serveurs proxy et de messagerie) et dans la protection de l'environnement de virtualisation. Dans l'infrastructure de Kaspersky, de puissants émulateurs font partie du circuit de classification des objets.
Tâches de l'émulateur :
- Émule l'exécution de tous les fichiers exécutables (PE) : *.exe, *.dll, *.sys, etc. dans l'environnement Windows.
- Traite les types de scripts JavaScript, VBScript et AutoIT, les scripts autonomes (téléchargés sous forme de fichiers).
- Analyse les scripts reçus via un lien Web (sur une page Web, dans un email, dans un message), intégrés dans des fichiers PDF et MS Office.
Mises à jour
La technologie d'émulation est mise en œuvre avec un cœur d'émulation et des dossiers de détection, qui analysent les données fournies par le cœur. Ces dossiers sont créés dans Kaspersky et les mises à jour sont téléchargées par les solutions toutes les heures. Un dossier de détection peut détecter de nombreux échantillons de programmes malveillants ayant un contenu binaire différent, mais un comportement similaire.
Détection des programmes malveillants
- L'émulateur reçoit une demande d'analyse d'objet (un fichier exécutable ou un script) d'un autre composant d'une solution de sécurité.
- L'émulateur exécute en toute sécurité les instructions de l'objet une par une dans un environnement virtuel, à partir du point d'entrée de l'objet. Si une instruction interagit avec l'environnement (système d'exploitation, registre, autres fichiers, Web, mémoire, etc.), l'émulateur imite la réponse de ces objets.
- L'émulateur collecte les artefacts et les transmet à l'analyseur heuristique. L'analyseur transmet ensuite un verdict basé sur ces artefacts au composant qui a demandé l'analyse.
- L'émulation prend fin lorsqu'il y a suffisamment d'artefacts pour détecter les programmes malveillants ou au terme d'un délai d'expiration.
Artefacts collectés par l'émulateur
Pour les fichiers exécutables (binaires) :
- Journal d'appels API
- Toutes les modifications dans le système de fichiers ou le registre système
- Vidages de mémoire
Pour les scripts :
- Arguments et retours d'opérations de chaîne
- Appels de fonctions intégrées et de fonctions fournies par l'environnement
- Événements
- Dépôt dans le système de fichiers et les scripts enfants
Prévention de l'évasion
Les auteurs de programmes malveillants avancés équipent ces armes de fonctionnalités visant à empêcher la détection lors de l'émulation. Notre émulateur suit et contrecarre ces nouvelles techniques d'évasion. Exemples
Évasion A : Avant l'exécution, les programmes malveillants doivent être décompressés. Le temps de calcul nécessaire à ce processus est long et suffit généralement pour échapper à la détection grâce au délai d'expiration de l'émulation.
Contre-évasion A : L'émulateur reconnaît les fichiers compressés et réajuste en conséquence la profondeur d'émulation. L'accélération matérielle donne à l'émulateur suffisamment de puissance pour être efficace avant la décompression.
Évasion B : Avant d'exécuter sa charge utile malveillante, le programme malveillant peut accéder à des ressources Web ou aux paramètres de son environnement (p. ex., le nom de l'ordinateur, la taille du disque) et vérifier s'ils sont disponibles et significatifs. Si ce n'est pas le cas, les programmes malveillants n'exécutent pas leur charge utile et échappent à la détection.
Contre-évasion B : À la demande du fichier analysé, l'émulateur imite les informations sur l'environnement et les ressources système, ce qui les rend aussi significatives que possible. Par exemple, il randomise les noms d'ordinateurs, de sorte que les programmes malveillants ne peuvent pas utiliser de noms d'ordinateurs spécifiques comme signal d'exécution dans une émulation.
Produits associés
ARTICLE
A Modern Hypervisor as a Basis for a Sandbox
ARTICLE
“The evolution of technologies used to...