Ignorer le contenu principal
TECHNOLOGIE

Émulateur

Émulateur exécute les instructions de l'objet un par un dans un environnement virtuel sûr, collecte des artefacts et les soumet à l'analyseur heuristique pour détecter les comportements à caractère malveillant d'un fichier binaire ou d'un script.


À 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

  1. 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é.
  2. 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.
  3. 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.
  4. 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...

Résultats de l'analyse comparative

Technologies associées

SandBox

S'exécutant sur site, dans le cloud et dans l'infrastructure d'analyse des programmes malveillants de Kaspersky, nos sandboxes appliquent diverses techniques anti-évasion tandis que leur performance de détection est soutenue par la Threat Intelligence de Kaspersky Security Network.

Protection basée sur le comportement

S'appuyant sur le Machine Learning, notre moteur d'analyse détecte des schémas de comportements malveillants à un stade précoce de leur exécution. Parallèlement, la protection de la mémoire ainsi que le moteur d'actions correctives empêchent toute compromission ou perte de données des utilisateurs.

Approche de sécurité multi-niveaux

Une cybersécurité sans faille doit reposer sur la synergie de diverses techniques de protection, allant des données antivirus classiques à la détection comportementale associée à des modèles de Deep Learning.