Menaces

Evolution des technologies d'identification des codes malveillants

Dans l'article intitulé "Evolution des technologies d'identification des codes malveillants", Alissa Chevtchenko, spécialiste de Kaspersky Lab, traite des différentes techniques employées pour identifier le code malveillant, analyse les liens chronologiques et fonctionnels qui les unissent et se penche sur leurs particularités technologiques et appliquées.

Bien que le titre de cet article fasse référence à l'ensemble du spectre des technologies de détection des codes malveillants, il traitera principalement des technologies qui ne reposent pas sur les signatures.

Pour commencer, Alissa Chevtchenko explique que toute technologie de détection de code malveillant peut être scindée en deux composantes : une composante technique et une composante analytique. La composante technique regroupe toutes les fonctions ainsi que les algorithmes qui fournissent les données à la composante analytique. La composante analytique est le système de prise de décision qui repose sur l'analyse des données disponibles.

Composante technique. Dans la mesure où tout programme malveillant représente simultanément un fichier avec un contenu déterminé, un ensemble d'opérations exécutées dans le système d'exploitation et en ensemble d'effets sur le système d'exploitation, il existe différentes méthodes de collecte d'informations dans le but d'identifier ces programmes malveillants. Ces méthodes sont classées selon le niveau d'abstraction du plus bas au plus haut impliqué dans la manipulation du code. Dans le cas qui nous occupe, l'abstraction fait référence à l'angle adopté pour étudier le programme exécuté : en tant qu'objet numérique (sélection d'octets), en tant que comportement (suite plus abstraite de la sélection d'octets) ou en tant qu'ensemble d'effets dans le système d'exploitation (suite plus abstraite du comportement). Les technologies antivirus se sont développées en suivant plus ou moins ce même chemin : manipulation des fichiers, travail sur les événements via le fichier, travail sur le fichier via l'événement, travail sur l'environnement. C'est pour cette raison que la liste est classée naturellement par ordre chronologique.

  1. Utilisation du fichier comme une masse d'octets.

    Les tout premiers logiciels antivirus reposaient sur la comparaison du code du fichier (en tant qu'ensemble d'octets) par rapport à des signatures déjà connues. Cette méthode permet uniquement d'analyser les octets du programme malveillant et ne s'occupe pas de son comportement. A l'heure actuelle, la méthode du calcul des fichiers est toujours utilisée dans les logiciels antivirus, non plus en tant que méthode principale mais bien comme une parmi plusieurs techniques de détection des programmes malveillants.

  2. Emulation du code du programme.

    L'émulation est l'imitation du fonctionnement d'un système à l'aide des ressources d'un autre sans perte de fonctions et de résultats. Dans le cadre de la protection contre les virus, le code des programmes analysés est scindé en commandes distinctes durant l'émulation et chacune d'entre elles est exécutée dans une copie virtuelle de l'ordinateur. Autrement, cette méthode manipule le fichier mais, en réalité, ce sont les événements qui sont analysés. L'émulation permet d'observer le comportement du programme sans exposer le système d'exploitation et les données de l'utilisateur à un risque quelconque.

  3. Virtualisation : exécution du programme dans le "bac à sable" (Sandbox).

    Le bac à sable est un environnement pour l'exécution sans risque des programmes. Les ressources du système d'exploitation sont complètement ou partiellement limitées ou bien elles sont émulées. La virtualisation permet dans ce cas de travailler avec un programme dans un milieu réel tout en le contrôlant. Pour utiliser une métaphore, si le système d'exploitation est le monde réel et le programme malveillant, un enfant, alors les murs du bac à sable sont un ensemble de règles qui définissent l'interaction entre le programme et le système d'exploitation. Il est possible ainsi de virtualiser n'importe quel point de rencontre du programme avec l'environnement : le système de fichiers, la base de registres. Alors que l'émulation propose un environnement pour l'exécution du programme, dans le cadre de la virtualisation, le système d'exploitation remplit lui-même le rôle d'environnement et le "bac à sable" se contente de contrôler l'interaction entre le programme et le système d'exploitation.

  4. Surveillance des événements qui surviennent dans le système.

    Alors que l'émulateur ou le "bac à sable" observe chaque programme séparément, le moniteur observe tous les programmes simultanément en enregistrant tous les événements qui se produisent dans le système d'exploitation et qui sont causés par les programmes exécutés. Cette technologie connaît le développement le plus actif à l'heure actuelle, toutefois, elle n'a pas beaucoup d'avenir car lors du lancement du programme dans l'environnement réel, le risque réduit sensiblement l'efficacité de la protection, or le moniteur peut être trompé par un autre programme malicieux.

  5. Recherche des anomalies dans le système.

    Cette méthode repose sur les suppositions suivantes :

    • Le milieu d'exploitation avec tous les programmes exécutés est un système interne ;
    • Son essence est une espèce "d'état système" ;
    • Si un code malveillant est exécuté dans le milieu, alors l'état du système est "malade", différent de l'état "sain" où aucun code malveillant n'existe dans le système.

    Afin que la méthode d'analyse des anomalies puisse identifier efficacement le code malveillant, il faut absolument un système analytique complexe semblable à un système expert ou au réseau neuronal. Au vu d'une telle complexité, cette méthode n'est pas actuellement beaucoup utilisée. Les développements qui existent à l’heure actuelle sont basés sur la comparaison de l’état du système par rapport à une échelle de référence établie mais cela ne s’avère pas efficace.

S'agissant de la composante analytique, l'algorithme de prise de décision peut avoir un degré de complexité quelconque. De manière très conventionnelles, nous pouvons identifier trois catégories :

  1. Simple comparaison.

    Le verdict est posé sur la base des résultats de la comparaison d'un objet unique et d'un exemple.

  2. Comparaison complexe.

    Le verdict est posé sur la base des résultats de la comparaison d'un ou de plusieurs objets par rapport à des modèles correspondants. Les modèles pour la comparaison peuvent être souples et le résultat de la comparaison, probable.

  3. Système expert.

    Le verdict est posé après une analyse détaillée des données. Il peut s'agir d'un système qui repose en partie sur l'intelligence artificielle.

L'article se penche ensuite sur les algorithmes que l'on peut retrouver au cœur de technologies particulières de recherche de programmes malveillants. L'auteur évoque également les avantages et les inconvénients des différents outils de détection de code malveillant. La composante technique de la technologie se charge principalement des caractéristiques telles que la charge sur le système, la sécurité et la protection. En moyenne, moins la protection est abstraite, moins elle est dangereuse et plus elle est facile à contourner.

La composant analytique d'une technologie de protection ou d'une autre est responsable de la proactivité (capacité de la technologie à identifier de nouveaux programmes malveillants), du pourcentage de faux positifs et de la charge pour l'utilisateur (à savoir, le degré d'intervention de l'utilisateur dans la composition des stratégies de protection (règles, exclusions, listes noire et blanche) et sa participation dans l'attribution du verdict (confirmation ou rejet des suspicions du système analytique)). Nous pouvons tirer la conclusion suivante : plus le système d'analyse est complexe, plus il est puissant et plus le pourcentage de faux-positifs est élevé. Ce élément est compensé par l'interaction avec l'utilisateur.

En guise de conclusion, l'auteur fournit des recommandations sur la sélection d'un système de protection qui ne repose pas sur les signatures. Avant tout, il convient de se rappeler qu'il n'existe pas de solution universelle ou "meilleure". Chaque technologie possède ses avantages et ses inconvénients. Le choix d'un logiciel par rapport à un autre doit être avant tout guidé par les résultats des essais indépendants ainsi que par les commentaires de consommateurs ayant utilisés ces différents logiciels antivirus.

Kaspersky Anti-virus Logo
Photos non contractuelles - Copyright © 1997 - 2009 Kaspersky Lab
La meilleure des technologies en matière de prévention des cyber-risques