Nouvelle technologie d’émulation de Kaspersky : lutter contre les virus

3 Juin 2019

Vous êtes-vous déjà demandé pourquoi les virus qui infectent les ordinateurs sont tout simplement appelés « virus » ? En réalité, de nos jours, le mot « virus » est utilisé de façon trompeuse puisqu’il fait référence à « n’importe quel programme malveillant » ou sert à décrire « n’importe quelle action néfaste qu’un programme a sur un ordinateur. » J’ai trouvé cette définition dans notre encyclopédie.

Toujours selon notre encyclopédie, « un virus, au sens strict, est défini comme un code de programme qui se reproduit«  et se répand, exactement comme le fait un virus biologique ; le virus de la grippe par exemple.

Étrangement, les virus qui correspondent à cette définition ont disparu depuis plusieurs années. Il s’agit désormais de programmes malveillants qui ne se reproduisent pas autant mais ont des fonctions vraiment dangereuses, puisqu’ils peuvent voler les informations de votre ordinateur, ou effacer la totalité des donnés (un cheval de Troie par exemple). Encore aujourd’hui, si vous demandez à quelqu’un comment il imagine les technologies de sécurité des ordinateurs, il va sûrement vous parler de scientifiques en blouses de laboratoire combinaisons Hazmat qui réalisent des mises en quarantaine et travaillent avec des éprouvettes, même si ces outils ne sont nécessaires que lorsqu’il s’agit de virus biologiques.

Vous l’avez donc compris : les virus d’ordinateurs n’existent plus. Les méthodes d’analyse utilisées pour les détecter et les désinfecter (encore une mauvaise utilisation d’un terme emprunté au monde de la microbiologie !) existent encore, ne cessent d’être développées, et sont encore très utiles dans la lutte contre les virus malwares du monde moderne. L’émulateur est une de ces technologies de la vieille école.

Émulateur des produits Kaspersky Lab : qu'est-ce que c'est et pourquoi est-ce si important que l'antivirus en soit équipé

Pour faire simple, l’émulation est une méthode qui permet de révéler les menaces encore inconnues, au moyen de laquelle un fichier au comportement suspect (inhabituel ou atypique) est lancé dans un environnement virtuel (environnement « émulé ») qui imite celui d’un vrai ordinateur. Après quoi l’antivirus* observe l’attitude du fichier (à la volée ; plus d’informations à suivre) et isole le fichier pour faire des recherches supplémentaires s’il détecte une activité dangereuse.

Vous comprenez mieux la comparaison avec la virologie microbiologique ? Pourquoi administrer un puissant antidote avec de nombreux effets secondaires à un patient qui pourrait souffrir d’une maladie alors qu’il n’a peut-être rien ? Il vaut mieux l’émuler in vitro, voir ce qu’il se prépare, puis donner le traitement adéquat.

Le défi principal est pourtant le même qu’en microbiologie : il est crucial de créer un environnement émulé qui ressemble autant que possible au réel. Si ce n’est pas le cas, les fichiers malveillants pourraient se rendre compte qu’il s’agit d’un piège et bien se comporter. Nous avons fait de l’émulation depuis plusieurs années décennies et, sans fausse modestie, nous avons beaucoup d’avance sur nos concurrents.

Une personne a développé le premier émulateur en 1992 à l’époque du DOS : moi. Les experts du monde entier ont rapidement loué les louanges des taux de détection de nos antivirus (oui, à cette époque il s’agissait encore d’antivirus), ce qui a ouvert la concurrence en matière de tests indépendants, et ce en partie grâce à l’émulateur.

Les années passent et le paysage des cybermenaces est de plus en plus compliqué : les virus ne font plus la une, et sont remplacés par des vers de réseaux, des chevaux de Troie et bien d’autres programmes malveillants complexes. Pendant ce temps, nous avons observé l’apparition de nombreuses technologies numériques avec les ordinateurs, les dispositifs mobiles, l’Internet des Objets, et bien d’autres. Nos connaissances en matière d’émulation de lutte contre les virus n’ont cessé de progresser et notre infrastructure de sécurité basée sur le Cloud KSN est équipée de cette technologie. Nous lui avons enseigné les nouvelles langues de la programmation, et lui avons fait connaître les nouveaux navigateurs et tous les autres objets des systèmes d’exploitation… Tout est en place pour nous aider à capturer automatiquement tous les types de malwares inédits. Pas d’IA ni de produit miracle, juste beaucoup de travail astucieux ; tout le nécessaire pour avoir de vraies innovations HuMachine 😊.

Qu'est-ce que HuMachine : apprentissage automatique avec beaucoup de données, des renseignements sur les menaces, et les analyses d'experts

De nos jours, peu de concurrents peuvent se vanter d’avoir ce genre de technologie pour lutter contre les virus, et ce n’est pas surprenant : l’émulation est une tâche particulièrement difficile qui exige de nombreuses années d’expérience, requiert beaucoup de temps pour que les produits soient en première ligne de combat, et demande un développement continu. Beaucoup de personnes débutantes dans le secteur de la cybersécurité préfèrent pourtant investir dans le marketing de pacotille. À court terme, cette approche peut être un coup de pouce considérable au développement de l’entreprise, mais vous ne pouvez pas tromper éternellement les utilisateurs :  l’entreprise finit par commettre une erreur et puis voilà ; fin de l’histoire. En d’autres termes, si une entreprise de cybersécurité a son propre émulateur, vous savez que les connaissances et la maturité du développeur sont impressionnantes. Au contraire, s’il n’y a pas d’émulateur, alors l’entreprise a peu d’expérience, et ne va pas résister longtemps.

Je m’éloigne du sujet…

Même si nous avons continuellement amélioré notre émulateur pour lutter contre les virus, les cybercriminels n’ont pas chômé. Ils ont activement protégé leurs affaires et leurs opérations d’espionnage informatique, et ils ont même essayé de se protéger de notre émulateur.

Les acteurs de menaces les plus avancés utilisent différentes méthodes permettant de contourner l’émulateur et de reconnaître l’environnement d’essai, notamment en lançant une fonction non référencée, en vérifiant l’authenticité des demandes pour modifier les registres du processeur, en analysant les codes d’erreur, en cherchant un code en particulier dans la mémoire, en utilisant des « bombes logiques » qui font tourner l’émulateur en boucle, et ainsi de suite. Si le malware détecte quelque chose de suspect, il arrête immédiatement toute activité malveillante et est doux comme un agneau.

Nous savons parfaitement que ces méthodes existent, et c’est pourquoi nous gardons une longueur d’avance, en ajustant continuellement l’émulateur pour qu’il résiste à ces astuces et en l’améliorant de diverses façons (principalement en réduisant l’intensité des ressources). Par exemple, nous utilisons plusieurs limiteurs, optimiseurs, et profils de configuration pour l’accélérer, ce qui pourrait même désactiver complètement l’émulateur si le délai de réponse est aussi mauvais que celui de l’écran bleu de la mort (BSoD).

Pendant ce temps, nos guerriers de brevet nous ont rapporté de bonnes nouvelles l’autre jour depuis le front de l’émulation : nous avons obtenu un brevet (US10275597) pour le code du programme de l’émulateur qui peut interpréter les objets inconnus ! Pour autant que je sache, aucun produit de la concurrence n’a cette fonction : pour se protéger des malwares qui arrivent à déjouer les tactiques de l’émulateur, la concurrence doit retravailler l’ensemble de leur émulateur ; ce processus prend un certain temps. D’autre part, nous avons appris à notre émulateur comment se mettre à jour à la volée à partir d’une base de données locale. Donc oui, cette fonction est particulièrement utile, et il n’y a aucune raison pour ne pas en parler puisque notre force est que vous sachiez comment nous vous protégeons ! 😊

Certains fichiers ne sont pas distribués en code machine mais directement en code source. Vous avez besoin d’un interprète (JavaScript ou VBA par exemple) pour les exécuter sur un ordinateur. Il traduit le code en temps réel en un langage plus familier pour la machine. Et, comme vous vous en doutez, les malwares se trouvent souvent dans ce genre de fichiers.

C’est pour détecter ces menaces inconnues que nous avons créé, il y a de cela plusieurs années, un code du programme de l’émulateur qui puisse vérifier les fichiers dans un environnement d’essai avant de les exécuter. Pourtant l’émulation de la totalité de l’interprète requiert trop de ressources : le temps nécessaire pour traiter les pages Web avec des scripts ferait que les utilisateurs Internet soient frustrés. Par conséquent, les émulateurs qui luttent contre les virus ont tendance à recréer une version de compromis de l’espace virtuel, ce qui est acceptable en termes de performance et de qualité de protection. Que se passe-t-il lorsque l’émulateur trouve une méthode, une fonction du code ou un objet inconnu, et que l’interprétation est absolument cruciale pour réaliser une analyse complète du fichier ?

Nous avons résolu ce problème autrement : un interprète « intelligent » qui apprend rapidement comment émuler ces objets. Lors d’une mise à jour effectuée via le Cloud KSN, le produit a reçu un code auxiliaire dans la langue de l’objet analysé (JavaScript, VBA, VB Script, Autolt… ) et, grâce aux nouvelles connaissances, a pu vérifier le fichier. Lorsque la situation est complexe, c’est-à-dire lorsque le code auxiliaire n’est pas encore passé, la tâche est automatiquement assignée à nos analystes qui développent le code en question et l’ajoute rapidement à la base de données.

Par conséquent, les utilisateurs disposent d’une technologie résistante et très rapide qui peut vite faire face aux cybermenaces sans devoir attendre que l’ensemble de l’émulateur soit réédité. Jackpot !

*Le terme « antivirus » est un autre archaïsme de l’ère des virus qui infectent les ordinateurs. Les antivirus modernes ne vous protègent pas seulement des virus, mais bien de n’importe quel malware. Ils proposent aussi de nombreuses fonctions de sécurité utiles : gestionnaire de mots de passe, VPN, contrôle parental, sauvegardes, et bien d’autres. Pour être plus précis, je dirai qu’un bon « antivirus » devrait être désigné comme « anti-ceci, cela, et tout le reste qui me protège, protège ma famille, nos appareils et toutes nos données, et est équipé de tout ce dont j’ai besoin ! » Pas vraiment facile à prononcer, n’est-ce pas ?