Infos

Evolution des technologies d’identification des codes malveillants

Cet article traite uniquement de diverses méthodes d’identification du code malveillant, des liens fonctionnels et chronologiques qui les unissent et de leurs particularités technologiques et pratiques. D’un côté, nombreuses sont les technologies et les principes décrits ici qui sont d’actualité non seulement dans les logiciels antivirus mais également dans le contexte élargi de la sécurité informatique. D’un autre côté, l’auteur a choisi de ne pas aborder d’autres technologies importantes mais plus particulières au secteur de la lutte contre les virus telles que le décompactage des programmes compactés et la détection au vol à l’aide des signatures.

La toute première technologie de recherche des programmes malveillants reposait sur l’utilisation de signatures, à savoir des morceaux de code permettant d’identifier de manière univoque le programme malveillant en question. Au fur et à mesure que les virus ont évolué, les technologies employées pour les détecter se sont diversifiées et elles sont devenues plus complexes. Toutes ces technologies avancées que sont l’heuristique ou l’analyse des comportements appartiennent à la famille de technologies qui ne reposent pas sur les signatures.

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. Il n’y a presque plus rien à dire sur les technologies à base des signatures étant donné leur caractère primitif et univoque. La notion de technologies qui ne reposent pas sur les signatures est floue pour les utilisateurs. Qu’est-ce qui se cache derrière des termes tels que « heuristique », « détection proactive », « détection en fonction du comportement », « HIPS » ? Quels sont les rapports existant entre ces technologies ? Quels sont les avantages et les inconvénients de chacune ? Le présent article va tenter de répondre à ces questions. Qui plus est, cet article, à l’instar de l’article intitulé « Evolution de l’auto-défense des programmes malveillants », vise à systématiser et à présenter de la manière la plus objective possible certains des problèmes liés aux programmes malveillants et à la protection contre ceux-ci. Les articles de cette série sont destinés aux lecteurs qui ont une connaissance générale des technologies de lutte contre les virus sans être des spécialistes dans le domaine de la protection contre les programmes malveillants.

Modèle de système de protection contre les programmes malveillants

Pour commencer, voyons comment fonctionnent les technologies de recherche de code malveillant à l’aide du modèle suivant.

N’importe quelle technologie de protection compte deux composantes : une composante technique et une composante analytique. Ces composantes ne doivent pas être obligatoirement clairement cloisonnées au niveau des modules et des algorithmes mais elles diffèrent au niveau fonctionnel.

La composante technique regroupe toutes les fonctions logicielles ainsi que les algorithmes qui fournissent les données à la composante analytique. Les données qui seront analysées peuvent être, par exemple, le pseudo-code du fichier, des lignes de texte extraites du fichier, une action unique du programme dans le cadre du système d’exploitation ou toute une succession de telles actions.

La composante analytique est un composant de prise de décision. Il s’agit d’un algorithme qui analyse les données qui sont en sa possession et sur lesquelles il porte un jugement. Sur la base de ce jugement, le logiciel antivirus (ou toute autre application de protection) exécute les actions définies par la stratégie de sécurité : avertissement de l’utilisateur, demande de confirmation des actions à réaliser, placement du fichier en quarantaine, blocage des actions non autorisées du programmes, etc.

A titre d’exemple, examinons la protection classique contre les programmes malveillants qui repose sur la détection à l’aide de signatures. Dans ce cas-ci, la composante technique est le système de réception des informations sur le système de fichiers, les fichiers et leur contenu chiffré tandis que la composante analytique est assurée par une simple opération de comparaison des successions d’octets. En termes plus simples, nous avons le code du fichier à l’entrée de la composante analytique et à la sortie, la décision sur le caractère malveillant ou non du fichier.

Dans le cadre du modèle décrit, tout modèle de protection peut être représenté comme un nombre complexe, un lien entre deux objets indépendants : les composantes techniques et analytiques d’un certain type. Lorsque nous analysons les technologies sous cet angle, nous voyons clairement les relations et les principaux avantages ou inconvénients. Et plus particulièrement, ce modèle permet de mettre un terme à la confusion qui règne dans le domaine des technologies. Nous allons montrer ci-après que l’heuristique en tant que mode de prise de décision n’est rien d’autre qu’une variation de la composante analytique et non pas une technologie indépendante. Tandis que HIPS (Host Intrusion Prevention System) n’est qu’une variation de la composante technique, un moyen de récolter les données. Par conséquent, ces termes ne se contredisent pas et ne caractérisent pas complètement la technologie dont la description contient ces termes : en parlant d’heuristique, nous n’indiquons pas exactement sur quelles données porte l’analyse heuristique et lorsque nous évoquons le système HIPS, nous ne disons rien du principe utilisé pour attribuer le verdict.

Ces technologies seront abordées plus en détails dans les rubriques qui leur seront consacrées. Pour l’instant, nous nous contenterons d’étudier les principes sur lesquels repose n’importe quelle technologie de recherche de code malveillant : qu’ils soient techniques, comme les moyens de collecte des informations ou analytiques, comme les moyens de traiter celles-ci.

Composante technique

La composante technique du système d’identification des programmes malveillants prend en charge la collecte des données qui seront utilisées pour analyser la situation.

Un programme malveillant, c’est un fichier au contenu déterminé, un ensemble d’actions réalisées dans le système d’exploitation et une série de conséquences dans le système d’exploitation. C’est la raison pour laquelle l’identification des programmes peut se réaliser à divers niveaux : au niveau des chaînes d’octets, au niveau des actions, au niveau de l’influence sur le système d’exploitation, etc.

En généralisant, nous pouvons identifier les modes suivants de collecte des données pour l’identification des programmes malveillants :

  1. Utilisation du fichier comme une masse d’octets ;
  2. Emulation1 du code du programme ;
  3. Exécution du programme dans un « bac à sable » (SAS de sécurité) (Sandbox2) (et utilisation des technologies proches de la virtualisation) ;
  4. Surveillance des événements qui surviennent dans le système;
  5. Recherche des anomalies dans le système.

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.

Il convient de souligner que les méthodes citées sont non seulement des technologies isolées mais également des étapes incontournables dans le développement interrompu des technologies de collecte des données pour la découverte des programmes malveillants. Les technologies se développent et se transforment plus ou moins progressivement ; par exemple, l’émulation peut se retrouver plus près du point (1) si elle se contente de transformer le fichier en une sélection d’octets ou plus près du point (3) si l’on évoque une virtualisation complète des fonctions du système.

Examinons ces méthodes plus en détail.

Calcul des fichiers

Les tous premiers logiciels antivirus reposaient sur l’analyse du code des fichiers en tant que sélection d’octets. Le terme « analyse » n’est d’ailleurs pas vraiment adapté car il s’agissait plutôt d’une simple comparaison d’une succession d’octets avec une signature connue. Mais ce qui nous intéresse maintenant, c’est l’aspect technique de la technologie décrite, à savoir : lors de la recherche de programmes malveillants, les données transmises au composant de prise de décision sont extraites du fichier et elles constituent d’une certaine manière une masse d’octets bien réglementée.

La principale caractéristique de cette méthode est que le logiciel antivirus travaille uniquement sur les octets sources du programme et ne s’intéresse pas à son comportement. Bien que cette méthode soit « archaïque », elle n’est pas du tout dépassée et, d’une manière ou d’une autre, elle est utilisée dans tous les logiciels antivirus modernes mais, il est vrai, non plus comme unique méthode ou comme méthode principale mais bien comme une méthode parmi plusieurs.

Emulation

La technologie de l’émulation est une étape intermédiaire entre le traitement du programme en tant que sélection d’octets et le traitement du programme en tant que séquence définie d’actions.

L’émulateur interprète le pseudo-code du programme en commandes et chacune des commandes est exécutée dans une copie virtuelle de l’ordinateur. L’outil de protection peut ainsi observer le comportement du programme sans exposer le système d’exploitation et les données de l’utilisateur à un risque quelconque, ce qui ne serait pas le cas si le programme était exécuté dans l’environnement réel.

L’émulateur est une étape intermédiaire d’abstraction lors de l’utilisation du programme. C’est pour cette raison que nous pouvons, en gros, présenter la principale particularité de l’émulateur de la manière suivante : l’émulateur travaille toujours sur le fichier mais il analyse en réalité les événements. Les émulateurs sont utilisés dans de nombreux, si pas dans tous, les principaux logiciels antivirus, avant tout comme complément au moteur de fichiers de niveau inférieur ou en tant qu’assurance pour les moteurs de niveau supérieur (tels que le « bac à sable », la surveillance du système).

Virtualisation : le « bac à sable » ou Sas de sécurité

La virtualisation telle qu’elle est utilisée dans le « bac à sable » est le développement logique de l’émulation. A savoir : le « bac à sable » travaille déjà sur un programme exécuté dans l’environnement réel mais le contrôle toujours.

L’essence d’une telle virtualisation est particulièrement bien illustrée dans le nom de la technologie : « bac à sable ». Dans la vie de tous les jours, le bac à sable est un espace restreint dans lequel les enfants peuvent jouer tranquillement. Si nous développons l’analogie et remplaçons le monde réel par le système d’exploitation, et l’enfant par le programme malveillant, alors les restrictions seront assurées par un ensemble de règles d’interaction avec le système d’exploitation. Ces règles peuvent être l’interdiction de la modification du registre du système d’exploitation, la restriction sur la manipulation du système de fichiers grâce à une émulation partielle de celui-ci. Par exemple, le programme exécuté dans le « bac à sable » peut être une copie virtuelle de la base de registres système afin que les modifications introduites par le programme dans la base ne puissent avoir aucune influence sur 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 fichier, la base de registres.

La frontière entre émulation et virtualisation est fine mais perceptible. La première technologie offre un environnement pour l’exécution du programme (et elle peut ainsi le contenir et l’administrer complètement). Dans le deuxième cas, le système d’exploitation lui-même constitue l’environnement alors que la technologie se contente de contrôler l’interaction entre le système d’exploitation et le programme qui, à la différence du cas précédent, se trouve sur le même pied d’égalité que le système d’exploitation.

C’est la raison pour laquelle les outils de protection qui reposent sur la virtualisation de ce type ne travaillent plus sur le fichier mais bien sur le comportement du programme, mais pas dans le système.

Le mécanisme du « bac à sable », à l’instar de l’émulateur, n’est pas utilisé activement dans les logiciels antivirus, principalement parce qu’il est très gourmand en ressources. Les logiciels antivirus qui possèdent un bac à sable sont facilement identifiables étant donné le temps qui s’écoule entre le lancement du programme et le début de son exécution (ou, en cas d’identification d’un programme malveillant, entre son lancement et la notification envoyée par le logiciel antivirus sur la découverte d’un programme malveillant). Etant donné que des recherches sont réalisées actuellement dans le domaine de la virtualisation matérielle, la situation pourrait changer très vite.

A l’heure actuelle, les moteurs de type « bac à sable » sont utilisés dans quelques logiciels antivirus uniquement.

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

La surveillance des événements qui surviennent dans le système est une méthode plus « abstraite » de collecte des informations pour identifier les programmes malveillants. 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.

Sur le plan technique, cette méthode de collecte des informations est possible grâce à l’interception des fonctions du système d’exploitation. Ainsi, après avoir intercepté la requête d’une fonction quelconque, l’intercepteur est informé qu’un programme déterminé réalise une action précise dans le système. Pendant son fonctionnement, le moniteur collecte des statistiques sur ces activités et les transmet à la composante analytique qui les traitera.

Ce principe technologique connaît le développement le plus actif à l’heure actuelle. Il figure parmi les composants de quelques-uns des logiciels antivirus les plus importants et il constitue la base de certains utilitaires spécialisés dans les tâches de surveillance du système (utilitaires HIPS tels que Prevx, CyberHawk, etc.). Toutefois, dans la mesure où n’importe quelle protection peut être contournée, cette méthode de recherche des programmes malveillants 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.

Recherche des anomalies dans le système

Il s’agit de la méthode la plus abstraite de collecte des informations sur un système potentiellement infecté. Nous la mentionnons ici tout d’abord en tant que suite logique et limite de l’abstraction dans la liste des technologies.

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.

Sur la base de ces suppositions, nous pouvons juger l’état du système (et par conséquent identifier la présence éventuelle de programmes malveillants), le comparer à un étalon ou analyser l’ensemble de ses paramètres distincts.

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. De nombreuses questions se posent : comment définir un « état sain » ? En quoi se différencie-t-il d’un état « malade » ? Quels sont les paramètres individuels qui peuvent être suivis et comment les analyser ? Au vu d’une telle complexité, cette méthode n’est pas actuellement beaucoup utilisée. Certains de ses concepts se retrouvent dans quelques utilitaires antivirus où ils sont appliqués au niveau de la comparaison par rapport à un morceau défini du système faisant office d’étalon (les anciens utilitaires PatchFinder, Kaspersky Inspector) ou de paramètres distincts (GMER, Rootkit Unhooker).

Métaphore amusante

L’analogie avec l’enfant citée dans la section consacrée au « bac à sable » peut être développée de la manière suivante : l’émulateur est semblable à une nounou qui suit toujours l’enfant afin qu’il se comporte bien. La surveillance des événements qui surviennent dans le système est un éducateur qui s’occupe d’un groupe d’enfants et la recherche d’anomalie dans le système serait une situation où les enfants sont totalement libres et où la seule restriction consiste à vérifier leur carnet de notes. Dans ce cas, l’analyse des octets du fichier n’est que la planification de l’enfant et plus exactement, la recherche de signes d’espièglerie chez les parents proposés.

Les technologies grandissent et se développent.

Composante analytique

Le niveau de raffinement de l’algorithme de prise de décision est une caractéristique continue. Il peut être n’importe lequel. Nous pouvons répartir les systèmes analytiques des logiciels antivirus en trois catégories très arbitraires et il peut exister entre chacune d’entre elles de nombreuses variantes.

Simple comparaison

Le verdict est posé sur la base des résultats de la comparaison d’un objet unique et d’un exemple. Le résultat de la comparaison est binaire (« oui » ou « non »). Exemple : identification d’un code malveillant selon une succession clairement définie d’octets. Autre exemple, plus avancé : identification du comportement suspect d’un programme sur la base d’une seule action exécutée (telle que l’enregistrement dans un secteur critique de la base de registres ou dans le répertoire de démarrage automatique).

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. Exemple : identification d’un code malveillant à l’aide d’une signature d’octets parmi plusieurs, chacune d’entre elles étant définie de manière floue (par exemple, de telle sorte que certains octets ne sont pas définis). Autre exemple, plus avancé : identification d’un code malveillant selon plusieurs fonctions API qu’il utilise et appelées de manière aléatoire par rapport à des paramètres déterminés.

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. Exemple : identification du code malveillant non pas selon une sélection claire de paramètres mais suite aux résultats d’une évaluation multilatérale de tous les paramètres et en attribuant à chaque événement un coefficient de « malveillance potentielle » et un calcul du résultat global.

Véritables noms des technologies

Nous allons maintenant nous pencher sur les algorithmes qui se trouvent au cœur des différentes technologies de recherche des programmes malveillants.

En règle générale, l’éditeur qui a développé une nouvelle technologie lui donne un nom unique (par exemple : « Défense proactive » dans Kaspersky Anti-Virus, TruPrevent de Panda, DeepGuard de F-Secure). Cette démarche est correcte car elle permet d’éviter l’adoption automatique d’une technologie dans un cadre terminologique étroit. Néanmoins, l’utilisation de cliché tels que « heuristique », « émulation », « bac à sable », « bloqueur de comportement » est inévitable dans toute tentative de caractérisation d’une technologie à l’aide de termes accessibles et sans entrer dans les détails techniques.

Et c’est ici que la confusion terminologique débute. La signification de ces termes n’est pas fixée (idéalement, un terme doit avoir un seul sens). Une personne peut comprendre un terme de cette manière tandis que son voisin en aura une interprétation différente. De plus, le sens donné au terme par les auteurs de ce qu’on appelle les « descriptions accessibles » diffère souvent sensiblement du sens accepté dans les milieux professionnels. C’est la seule manière d’expliquer le fait que les descriptions des technologies sur les sites des éditeurs peuvent être remplies de termes qui ne disent rien sur l’essence de la technologie ou qui donnent des informations qui n’ont rien à voir avec celle-ci.

Par exemple, certains éditeurs de systèmes de lutte contre les virus prétendent que leurs logiciels sont dotés de HIPS, d’une « technologie proactive » ou d’une « technologie qui ne repose pas sur les signatures ». L’utilisateur qui interprète HIPS comme surveillance des événements système et recherche de code malveillant peut être trompé. Dans la réalité, ces caractéristiques peuvent dissimuler n’importe quoi, par exemple un moteur de type « émulateur » doté d’un système d’analyse de type « heuristique » (cf. ci-après). Plus souvent encore, la protection sera caractérisée d’heuristique sans qu’aucune précision ne soit donnée.

Il convient de préciser qu’il ne s’agit pas ici de démarche volontaire entreprise par l’éditeur pour tromper l’utilisateur. Dans la majorité des cas, c’est l’auteur même de la description qui s’embrouille dans les termes. Le fait est que la description d’une technologie destinée à l’utilisateur final peut ne pas représenter son essence et qu’il faut faire preuve de prudence lors du choix d’une technologie sur la base de telles descriptions.

Nous allons maintenant aborder les termes les plus répandus dans le domaine des technologies antivirus. (cf. ill. 1)

Le terme le plus univoque est « détection sur la base de signatures » : du point de vue technique, il suppose l’utilisation du code des fichiers et du point de vue analytique, un mode primitif de traitement des données, le plus souvent une comparaison. Cette technologie est la plus ancienne mais elle est également la plus fiable. Par conséquent, malgré les frais de production liés à l’enrichissement des bases, cette technologie est toujours activement utilisée à l’heure actuelle dans tous les logiciels antivirus.

Si la description du logiciel emploie les noms des composants technologiques de la liste ci-dessus (« émulateur » ou « bac à sable« ), les interprétations possibles sont minimes également. La composante analytique de cette technologie peut être un algorithme de n’importe quel degré de complexité, depuis la simple comparaison jusqu’au système expert.

Le terme « heuristique » pose déjà un peu plus de problème. D’après Le Petit Robert, l’heuristique est une « discipline » de la science qui a pour objet la découverte des faits ». L’heuristique, c’est avant tout un type de composante analytique de la protection et non pas une technologie définie. Dans le contexte de la résolution des problèmes, l’heuristique se rapproche d’une méthode « floue » pour résoudre un problème qui n’a pas été clairement défini.

A l’aube des technologies antivirus, lorsque le terme « heuristique » fut employé pour la première fois, il faisait référence à une technologie parfaitement définie : l’identification du virus à l’aide de quelques modèles d’octets souples, à savoir un système unissant la composante technique (1) « manipulation des fichiers » et la composante analytique (2) « comparaison complexe ». A l’heure actuelle, le terme heuristique est utilisé dans un sens plus général qui est la « technologie de recherche des programmes malveillants inconnus ». En d’autres termes, lorsqu’un éditeur parle de « détection heuristique », il fait référence à un système de protection dont la composante analytique fonctionne selon le principe de la recherche floue d’une solution (ce qui peut correspondre à la composante analytique 2 « analyse complexe » ou « Système expert », (cf. ill. 1). La base technologique de la protection, le mode de collecte des informations pour l’analyse ultérieure peut prendre n’importe quelle forme depuis le travail sur les fichiers jusqu’au travail sur les événements ou l’état du système d’exploitation.

Les expressions telles que « détection selon le comportement » ou « détection proactive » sont encore moins claires. Elles peuvent désigner un large éventail de technologies depuis l’heuristique jusqu’à la surveillance des événements qui surviennent dans le système.

Le terme HIPS revient de nombreuses fois dans les descriptions de technologies antivirus, mais pas toujours dans le bons sens. Malgré le fait que l’acronyme (Host Intrusion Prevention System) n’exprime en aucune manière l’essence de la technologie, la technologie est bien définie dans le cadre de la lutte contre les virus : HIPS est une protection qui, techniquement, repose sur la surveillance des événements qui surviennent dans le système. La composante analytique de la protection peut être n’importe laquelle, depuis la suppression d’événements suspects individuels jusqu’à l’analyse complexe d’une chaîne d’actions d’une application. Par conséquent, « HIPS », dans une description d’un logiciel antivirus, peut désigner par exemple la protection primitive de quelques clés dans la base de registres, un système de notification en cas de tentative d’accès à un répertoire particulier, un système plus complexe d’analyse du comportement des programmes ou une technologie quelconque qui repose sur la surveillance des événements survenus dans le système.

Avantages et inconvénients des méthodes d’identification du code malveillant

Si on étudie les technologies de protection contre les programmes malveillants non pas séparément mais globalement, du point de vue du modèle présenté, alors le tableau suivant s’offre à nous.

La composante technique de la technologie se charge principalement des caractéristiques telles que le charge sur le système (et comme conséquence, son action rapide), la sécurité et la protection.

La charge sur le système est une portion du temps de processeur et de la mémoire vive qui, de manière continue ou à certains intervalles, interviennent dans la sécurité et qui limitent la vitesse du système. L’émulation est lente, quelle que soit sa réalisation : pour chaque instruction émulée, il faut compter plusieurs instructions du milieu artificiel. Il en va de même pour la virtualisation. La surveillance des événements qui surviennent dans le système ralentit également tout le système, mais la charge dépendra de la réalisation. Dans les cas impliquant la détection de fichiers ou la recherche d’anomalies dans le système, le niveau de charge dépendra en général de la réalisation.

Par « sécurité », il faut entendre le niveau de risque auquel le système d’exploitation et les données de l’utilisateur sont exposés durant le processus d’identification d’un code malveillant potentiel. Ce risque est toujours présent lorsque le code malveillant est exécuté réellement dans le système d’exploitation. Pour le système de surveillance des événements, cette exécution réelle du code est conditionnée par l’architecture tandis que l’émulation et l’analyse des fichiers permettent de découvrir un code malveillant avant qu’il n’ait été exécuté.

Protection. Ce paramètre fait référence aux vulnérabilités de la technologie, à savoir jusqu’à quel point le code malveillant peut-il compliquer le processus d’identification. Il est très simple de résister à la détection du fichier : il suffit de bien compacter le fichier, de le rendre polymorphe ou d’employer la technologie de dissimulation d’activité pour ne pas dévoiler le fichier. Il est plus difficile de résister à l’émulation, mais cela est possible malgré tout grâce à l’utilisation de nombreux trucs3 intégrés au code du programme malveillant. Par contre, il est déjà plus compliqué d’échapper à la surveillance du système pour la bonne et simple raison qu’il est pratiquement impossible de dissimuler un comportement.

En conclusion : en moyenne, moins la protection est abstraite, moins elle est dangereuse et plus elle est facile à contourner.

L’aspect analytique de la technologie touche des caractéristiques telles que la proactivité (et la fréquence indispensable d’actualisation du logiciel antivirus qui en dépend), le pourcentage de faux-positifs et la charge sur l’utilisateur.

La pro-activité fait référence à la capacité pour une technologie de découvrir de nouveaux programmes malveillants qui n’ont pas encore été étudiés par les spécialistes. Par exemple, le type d’analyse le plus élémentaire (« simple comparaison ») est le niveau le plus éloigné des technologies proactives telles que la détection sur la base de signatures : ces technologies permettent d’identifier uniquement les programmes malveillants connus. Plus la complexité du système d’analyse augmente, plus la pro-activité s’améliore. Des caractéristiques de la protection du système telles que la fréquence indispensable des mises à jour sont directement liées à la pro-activité. Par exemple, les bases des signatures doivent être fréquemment actualisées alors que les systèmes heuristiques plus complexes restent adaptés à la situation pendant plus longtemps et que les systèmes analytiques experts peuvent fonctionner sans mises à jour pendant des mois.

Le pourcentage de faux-positifs est également directement lié à la complexité de la technologie d’analyse. Si le programme malveillant est identifié à l’aide d’une signature clairement définie ou d’une séquence d’actions, l’identification sera univoque si la signature est suffisamment longue (octets, comportement ou autre) : la signature identifie uniquement un programme malveillant déterminé et n’est pas adaptée aux autres. Plus le nombre de « victimes » que l’algorithme d’identification tente d’attraper est élevé, plus sa précision se détériore et il intercepte plus de programmes qui ne présentent aucun danger.

La charge sur l’utilisateur fait référence à sa participation dans la composition des stratégies de protection (règles, exclusions, listes noire et blanche) et dans l’attribution du verdict (confirmation ou rejet des soupçons du système d’analyse). La charge sur l’utilisateur dépend de la réalisation, mais en règle générale, plus l’analyse s’éloigne de la comparaison primitive, plus les faux-positifs sont nombreux et il faut les corriger. C’est la raison pour laquelle l’intervention de l’utilisateur est indispensable.

En conclusion : plus le système d’analyse est complexe, plus il est puissant et plus le pourcentage de faux-positifs est élevé. Cet élément est compensé par l’interaction avec l’utilisateur.

Désormais, au moment d’examiner une technologie quelconque à l’aide de ce modèle, il sera facile en théorie d’évaluer ses avantages et ses inconvénients. Prenons à titre d’exemple un émulateur avec un composant d’analyse complexe. Cette protection est très sûre (car elle ne requiert pas l’exécution du fichier analysé) mais elle laisse passer un certain pourcentage de programmes malveillants qui utilisent des astuces contre l’émulation ou en raison de failles dans la réalisation de l’émulateur en lui-même. Le potentiel de cette protection est très élevé et, si la réalisation est de bonne qualité, elle pourra identifier un pourcentage élevé de programmes malveillants inconnus. Toutefois, le système sera lent.

Comment sélectionner un système de protection qui ne repose pas sur les signatures ?

A l’heure actuelle, la majorité des solutions offertes dans le secteur de la sécurité informatique intègrent plusieurs technologies. Dans les logiciels antivirus classiques, la détection sur la base de signatures est utilisée conjointement à une réalisation ou l’autre de la surveillance des événements qui surviennent dans le système, d’un émulateur ou du bac à sable. Comment s’y retrouver dans les caractéristiques et choisir un système de protection contre les codes malveillants qui répondra le mieux aux besoins particuliers d’un utilisateur ?

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. Par exemple, la surveillance des événements qui surviennent dans le système occupe en permanence le processeur mais elle est plus difficile à déjouer ; le processus d’émulation peut être interrompu à l’aide de commandes particulières dans le code mais la découverte du code malveillant s’opère dans un mode d’avertissement et le système n’est pas touché. Autre exemple : les simples règles de prise de décision requièrent une participation un peu trop active de l’utilisateur, ce qui entraîne beaucoup de questions pour l’utilisateur tandis que les systèmes plus complexes et plus autonomes provoquent trop de faux-positifs. La sélection d’une technologie doit reposer sur la sélection du juste milieu en tenant compte des besoins et des circonstances particulières.

Par exemple, si vous travaillez dans un milieu qui n’est pas sécurisé (pas de correctifs, absence d’interdiction des extensions du navigateur, des scripts, etc.), que vous vous souciez énormément de votre sécurité et que vous disposez de suffisamment de ressources, un système de type « bac à sable » avec une composante analytique de qualité vous conviendra. Ce système garantit la sécurité maximale mais les versions disponibles actuellement sont gourmandes en processeur et en mémoire vive, ce qui peut ralentir le système d’exploitation. L’expert qui souhaite contrôler les événements critiques dans le système tout en se protégeant des programmes malveillants inconnus pourra opter pour un système de surveillance du système en temps réel. Ce système est équilibré mais représente une charge considérable pour le système d’exploitation et il imposera la participation de l’utilisateur pour créer les règles et les exclusions. L’utilisateur dont les ressources sont limitées ou qui ne souhaite pas charger son ordinateur avec une surveillance en continu et qui ne veut pas se lancer dans la création de règles pourra choisir une heuristique plus simple. Finalement, la qualité de la détection des programmes malveillants inconnus ne repose pas uniquement sur une composante en particulier du système de protection, mais bien sur tout le système dans son ensemble ; une technologie plus simple peut être compensée par une application plus intelligente de la solution.

Les systèmes d’identification du code inconnu qui ne reposent pas sur les signatures sont scindés en deux catégories. La première est composée de systèmes HIPS indépendants tels que ceux repris dans les exemples Prevx ou Cyberhawk. La deuxième reprend des logiciels antivirus importants qui ont évolué à la recherche d’une plus grande efficacité vers les technologies qui ne reposent pas sur les signatures. Les avantages d’une catégorie ou de l’autre sont évidents : spécialisation étroite qui permet d’améliorer la qualité dans le premier cas et grande expérience dans la lutte multilatérale contre les programmes malveillants dans le deuxième cas.

La sélection d’un logiciel ou d’un autre doit être réalisée sur la base des impressions personnelles sur l’utilisation et sur les résultats des tests indépendants.

Sources

Tests indépendants de logiciels antivirus :

Tests indépendants de système HIPS :


1 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. L’émulation est assurée par un logiciel et/ou par du matériel.

2 Le bac à sable (sandbox en anglais) 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. Cf. http://fr.wikipedia.org/wiki/Sandbox.

3 Les astuces utilisées contre l’émulation reposent sur le fait que l’émulateur réagit différemment du processeur à certaines commandes. Le programme malveillant peut ainsi détecter l’émulation et réaliser des actions déterminées, par exemple s’arrêter ou s’exécuter selon un autre algorithme.


Evolution des technologies d’identification des codes malveillants

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

 

Rapports

Etude des menaces mobiles en 2016

En 2016, l’augmentation du nombre de trojans publicitaires qui peuvent utiliser les autorisations root s’est maintenue. Sur l’ensemble de l’année, cette menace n’a jamais quitté la tête du classement et rien n’indique que cette tendance va changer pour l’instant.

Spam en 2016

Les flux de spam ont enregistré plusieurs modifications en 2016. La plus marquante d’entre elles a été l’augmentation de la diffusion de ransomwares. Etant donné la disponibilité de ce genre de malware sur le marché noir, il faut s’attendre à ce que cette tendance se maintienne et le volume de spam malveillant va certainement se maintenir en 2017.

Kaspersky Security Bulletin 2016. Rétrospective de l’année. Statistiques globales de l’année 2016

Les tensions et les remous ont été au rendez-vous dans le cyberespace en 2016, depuis les gigantesques réseaux de zombies de l’Internet des objets jusqu’aux campagnes de cyberespionnage ciblées en passant par le vol d’argent, l’hacktivisme et autres pratiques. La rétrospective et les statistiques présentées par Kaspersky Lab fournissent un compte-rendu détaillé. La synthèse, quant à elle, est accessible ici.

Kaspersky Security Bulletin 2016. La révolution du ransomware

De janvier à septembre 2016, les attaques de ransomwares contre des entreprises ont triplé, avec une attaque toutes les 40 secondes. Vu l’explosion des activités du secteur du ransomware en tant que service et le lancement du project NoMoreRansom, Kaspersky Lab a désigné le ransomware comme problématique clé en 2016.

Abonnez-vous à nos emails hebdomadaires

La recherche la plus excitante dans votre boîte de réception