Assiste.com - Sécurité informatique - Vie privée sur le Web - Neutralité d'Internet

cr  01.01.2012      r+  01.06.2024      r-  15.07.2024      Pierre Pinard.         (Alertes et avis de sécurité au jour le jour)

Les « bases de signatures » n’existent plus sous ce nom dans les antivirus qui utilisent désormais des « moteurs de détection » introduisant des technologies avancées comme des « machines virtuelles » et des « sandboxes ». Bien entendu, les « bases de signatures » existent toujours, mais ne sont plus qu’un composant parmi un ensemble d’autres méthodes beaucoup plus avancées de détection des virus et autres formes de malveillances et malveillances dans le cyberespace.




Les bases de signatures ne sont pas l'appanage des antivirus, mais c'est de cet usage dont nous allons parler ci-après.

L'une des méthodes pour identifier et classifier un code informatique, au sens de son inocuité ou de sa nocivité, est l'usage de « bases de signatures ».

Les « bases de signatures » sont des fichiers (des bases de données), mis à jour en continue par les éditeurs de solutions de sécurité, contenant des éléments remarquables des malveillances, permettant de reconnaître la « signature » d'une malveillance (un ou des bouts de codes particuliers, une méthode ou habitude de programmation d'un cybercriminel, un ensemble de comportements, etc.).

Ces « signatures » sont identifiées, essentiellement, par un travail humain d'analyse des codes. Selon la nature de l'analyseur de l'antivirus, une signature peut être :

  • Le hashcode (le condensat) d'un extrait significatif (une bribe, un segment).

  • Le hashcode (le condensat) du fichier entier.

  • Des motifs (patterns, modèles) significatifs, qui sont observés de manière univoque (auxquels il faut adjoindre des exclusions [listes blanches] pour éviter les faux positifs).

  • L'identification d'un ensemble de comportements (dans une analyse comportementale du code, à l'intérieur d'une sandbox ou d'une machine virtuelle). Si le code a, par exemple, les comportements X, Y et Z simultanément, c'est probablement une malveillance (une suspicion à signaler à l'utilisateur car il n'y a pas de certitude à ce stade). L'inventaire des combinaisons anormales de comportements simultanés constitue une « bases de signatures » comportementales.

Les « signatures » permettent de détecter des virus ou malveillances inconnus basés sur le code (ou variante) d'une malveillance antérieurement identifiée. Ceci est parfois appelé :

Dès qu'une nouvelle signature est identifiée, elle est injectée dans la base de signatures qui est mise à disposition des utilisateurs. Les solutions de sécurité proposent trois méthodes de mise à jour de ces bases de signatures :

  • La requête par la solution de sécurité se trouvant dans la machine de l'utilisateur (téléchargement des « bases de signatures » depuis les serveurs de l'éditeur). Généralement, la fréquence des requêtes est paramétrable (une fois par jour, une fois par semaine, etc.) Par exemple, Malwarebytes permet des fréquences aussi rapprochées que « toutes les quinze minutes ». Des fréquences plus rapprochées, lorsque l'éditeur a des centaines de milliers d'utilisateurs, aboutiraient à un véritable déni de service (DDoS - Distributed Denial of Service) écroulant la capacité de réponse et de service des serveurs de l'éditeur.

  • Le « push ». Dès qu'une base de signatures est modifiée, elle est poussée par les serveurs de l'éditeur dans tous les ordinateurs de ses utilisateurs. La fréquence est à la discrétion de l'éditeur et tiend compte de l'urgence.

  • Le « cloud ». Dans cette approche, les bases de signatures sont centralisées sur les serveurs des éditeurs et il n'y a rien, ou juste l'essentiel stable, dans les machines des utilisateurs. Le problème des « cloud » et du « cloud computing » est que la solution de sécurité devient un « client » dans une relation « client Bases de signatures serveur » et que :
    Chaque entête de chaque requête HTTP est LE cheval de Troie de la violation de nos vies privées.

Pour constituer une base de signatures compacte, il est donc essentiel de trouver, dans les malveillances, des extraits significatifs et, surtout, ne pouvant pas être retrouvés dans des codes sains et légitimes (risques de faux positifs) et obligation de maintenir une liste blanche d'applications saines à exclure des signalements et destructions, même si elles contiennent un bout de code identique à une signature.




Les méthodes d'analyses heuristiques permettent de résoudre le problème, sinon insoluble, de l'explosion du nombre de signatures, rendant toute tentative de créer une base de données exhaustive des signatures impossible car sa taille serait gigantesque et totalement inexploitable.

Avec les générateurs de variantes virales (le même virus est modifié à chaque implantation pour ne jamais avoir deux fois la même signature), ce sont plusieurs centaines de milliers de nouveaux virus qui sont détectés chaque jour, dont il est impossible de mettre toutes les signatures en base de données locales. Lire :

Les consultations en ligne d'une base de données illimitée, sur les serveurs de l'éditeur, peuvent apporter une réponse à ce problème de volume mais les utilisateurs sont frileux, voire totalement hostiles, à tout ce qui touche aux « clouds » et au « cloud computing » devant les opérations de surveillance que permettent ces solutions parfois appelées d'un terme pompeux et à la mode : « cloud » (un « cloud » est une nébuleuse d'ordinateurs appartenant à on ne sait qui, se trouvant dans un pays inconnu [donc relevant d'une législation inconnue, voir hostile, ou pas de législation du tout] et que l'on ne maîtrise pas).

Statistiques : nouveaux virus ajoutés mensuellement (Avast)
Statistiques : nouveaux virus ajoutés mensuellement (Avast)
Si chaque signature pèse 128 octets, une base de données exhaustive augmenterait, chaque mois, sur la seule référence de décembre 2014 selon Avast, de 314 129 * 128 / 1 000 000 000 = 40 mégaoctets soit, sur 1 an, près de 500 mégaoctets.

  • Ces chiffres sont en augmentation constante et rapide

  • D'autres éditeurs annoncent des chiffres encore plus élevés.

  • Une base de données comporte les signatures de plusieurs années de malveillances et, si elle se veut exhaustive, pèse plusieurs gigaoctets.

Sans les méthodes heuristiques, ces bases de données seraient totalement impossibles à utiliser : elles ne monteraient même pas en mémoire !

Dans l'explosion du nombre de virus, il y a trois cas de figure qui relèvent du même but : empêcher l'exhaustivité des bases de signatures par saturation du nombre de signatures et être le plus furtif possible par crétinisation des calculs de condensats :

  • Un virus, ou une malveillance quelconque informatique, une fois mis au point, est passé à un générateur de variantes qui va produire des millions ou des milliards de copies, toutes légèrement modifiées afin de ne jamais avoir de condensats identiques ni de signatures identiques. Le générateur crée des clones comportant des singularités (raison pour laquelle on les appelle des clones singuliers).

  • Le virus informatique est doté de capacités polymorphiques : il mute en se propageant. C'est une forme brillante d'écriture informatique, mais la propagation virale de la malveillance (la méthode classique et ancienne de propagation, qui fait qu'une malveillance est un virus) est en voie de disparition par rapport aux drive-by download, mécanismes publicitaires, utilisation d'un cheval de Troie, sponsoring, repacking, spam, ingénierie sociale, etc.

  • Un virus, ou une malveillance quelconque informatique, une fois mis au point par un attaquant, est amélioré par un autre attaquant. Le nouveau virus est de la même famille mais n'a pas le même code, donc ne contient pas les mêmes segments de code servant de signatures pour identifier le virus originel.

Il reste malgré tout, dans les variantes par clonage ou par polymorphisme, ou dans la réécriture améliorée, des traces plus ou moins révélatrices. Les méthodes heuristiques sont donc des chemins plus courts, plus rapides que les méthodes humaines pour arriver à trouver, dans un objet inconnu, des traces partielles de signatures déjà identifiées, de manières certaines, dans une malveillance servant de matrice initiale et dont toutes les autres variantes sont de la même famille.