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

cr  01.04.2012      r+  22.10.2024      r-  22.10.2024      Pierre Pinard.         (Alertes et avis de sécurité au jour le jour)

Les antivirus utilisent diverses méthodes pour déterminer si un objet (un fichier, un document, un script, etc.) est dangereux ou malveillant. Essentiellement :

  • Les méthodes à base de signatures (analyses par signatures) - voir « base de signatures ».

  • Les méthodes heuristiques (analyses heuristiques) - voir « analyses heuristiques ».

  • Les méthodes comportementales en environnement réel (analyses comportementales).

  • Les méthodes comportementales en machines virtuelles - voir « sandbox » et « analyses comportementales en sandbox » dit « sandboxing ».

  • Les méthodes de contrôle d'intégrité basées sur l'inventaire des condensats (hashcodes) des objets (fichiers) réputés sains (base de données de condensats en liste blanche). Ces méthodes relèvent des contrôleurs d'intégrité, mais les antivirus peuvent les utiliser pour mettre hors de cause les objets dont le comportement (analyse comportementale) normal, en machine virtuelle, pourrait causer de fausses alertes (faux positifs).

Les analyses heuristiques reposent sur un ensemble de règles, propres à chaque éditeur de solution antivirale, permettant de déterminer statistiquement si le fichier analysé ressemble à un virus. Les analyses heuristiques sont donc basées sur des calculs de probabilité et, dans tous les antivirus, il y a un curseur permettant de choisir entre une analyse heuristique rapide, intermédiaire ou sévère (agressive). En fonction de ce choix, l'antivirus produira plus ou moins de faux positifs ou de faux négatifs.

Les méthodes d'analyses heuristiques permettent de régler certains problèmes insolubles sinon :

  • Problèmes de temps
    Les méthodes d'analyses heuristiques permettent de résoudre un problème de manière plus rapide que de la manière classique. En matière de virus et autres malveillances, la méthode classique d'analyse est celle d'humains qui déterminent la malveillance de l'objet, puis en extraient des traces signifiantes, appelées « signatures » (« empreintes », « fingerprint », « fingerprinting »), introduisent ces « signatures » dans les « bases de signatures » et attendent que l'antivirus vienne chercher ces mises à jour (ou « poussent » [« push »] ces mises à jour). Il y a assez peu de virus dont l'analyse relève nécessairement de l'humain. La méthode classique est beaucoup trop lente.

  • Problèmes d'inexactitudes
    Les méthodes d'analyses heuristiques permettent de résoudre un problème par approximation (voir le § Analyses heuristiques appliquées aux antivirus) lorsque la méthode classique ne peut produire une solution exacte.

  • Problèmes de volume
    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 de signatures » exhaustive 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. Les solutions de sécurité se parent alors du terme pompeux et à la mode de « solution antivirus dans le cloud ».

    Cela introduit alors un nouveau problème, car les « requêtes HTTP » que va faire l'outil de sécurité sont le « cheval de Troie » de la « charge utile » que sont les « entêtes HTTP ». Les utilisateurs, déniaisés par les révélations d'Édouard Snowden et les tombereaux de révélations quotidiennes de même nature, sont frileux, voire totalement hostiles aux « clouds », devant les opérations de tracking et surveillances que permettent ces solutions.

    Nécessité des analyses heuristiques - 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 chaque mois.

    • Ces chiffres sont en augmentation constante et rapide

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

    • Une « base de signatures » comporte les signatures de plusieurs années de malveillances et, si elle se veut exhaustive, pèse plusieurs gigaoctets, même si on y supprime les signatures de malveillances n'existant plus.

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

Dans l'explosion, savamment organisée par les cybercriminels, 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 :

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 (calcul de condensats sur des segments significatifs du code, reconnaissance et identification de la « patte » d'un cybercriminel) de manière certaine, dans une malveillance servant de matrice initiale et dont toutes les autres variantes sont de la même famille.

Dans les analyses heuristiques, les recherches ne se font donc pas sur la présence exacte d'une signature, mais sur les variantes possibles et inconnues de ces signatures connues. Les recherches sont donc des recherches d'approximations (inexactitudes) en introduisant des jokers (wildcard) aux endroits où peuvent résider des différences dans des chaînes de caractères qui ne sont plus des chaînes de caractères contigus. Ceci permet de détecter des virus même si du code non significatif variable (dummy) est injecté au milieu du code de la malveillance.

Les méthodes d'analyses heuristiques n'ont rien à voir et ne doivent pas être confondues avec les méthodes d'analyses comportementales.

Les méthodes d'analyses heuristiques, selon le degré de sensibilité demandé, peuvent produire de très nombreux faux positifs.

Analyses heuristiques appliquées aux antivirusAnalyses heuristiques appliquées aux antivirus

Les analyses heuristiques appliquées aux antivirus sont l'art de la divination, de la supposition, de l'hypothèse, de l'incertitude. C'est assez étonnant dans un monde fait de certitudes, de zéros ou de un, de portes ouvertes ou fermées, mais jamais d'à-peu-près, de plus ou moins, d'approximations.

L'hypothèse heuristique doit permettre de produire une idée directrice de recherches et, par mesure de prudence, une alarme, indépendamment de la vérité absolue.

Les analyses heuristiques (ou algorithmes heuristiques, méthodes heuristiques, etc.) d'un objet (un fichier, un flux, etc.) servent à aider à la découverte de nouveaux parasites (virus, etc.) par la recherche de « faits » (actions conduites par le code du programme analysé et, mieux encore, combinaisons d'actions) qui :

  • dans des cas qui se sont présentés antérieurement, ont généralement conduit à l'affirmation que l'objet était ou contenait un parasite

  • habituellement, ne se produisent pas

Les « faits » recherchés sont, par exemple, des bouts de code dont les actions trouvées simultanément dans un même objet le rendent suspicieux, sans pouvoir affirmer qu'il s'agit réellement d'un parasite.

Par exemple, le chiffrement (cryptage) du code peut être considéré comme un élément de suspicion. Les méthodes heuristiques utilisent un système de « poids » (de « notation ») des suspicions et la somme de ces notes, pondérées par leurs interactions, fait basculer, en fin d'analyse, l'objet en suffisamment « suspicieux » pour alerter l'utilisateur ou « inoffensif ».

Les analyses heuristiques servent donc à écarter ou appuyer un doute. Tout le problème de ces outils d'intelligence artificielle qui intègrent sans arrêt les résultats précédents (ces outils sont en perpétuelles phases d'autoapprentissage) et donc évoluent sans cesse est le poids qu'ils accordent à leurs suspicions - à partir de quand leur susceptibilité leur fait déclarer suspicieux un objet complètement anodin (et donc leur fait produire une fausse alarme - un faux positif) ou l'inverse (absence de production d'une alarme sur un objet hostile - faux négatif).

Les analyses heuristiques permettent, plus ou moins, de dire qu'un objet analysé embarque ou non les conditions de comportement pour qu'il soit un objet hostile, mais ne permettent pas d'affirmer qu'il s'agit d'un objet hostile ou inoffensif.

Les analyses heuristiques, très complexes, ont permis de détecter, dans le meilleur des cas, de 40 à 60% de parasites dans des lots de parasites totalement nouveaux (inconnus des « bases de signatures »). C'est peu et beaucoup à la fois. Une suspicion soulevée par une méthode heuristique doit être suivie d'une analyse approfondie de l'objet suspicieux par des méthodes produisant des certitudes et seul l'être humain est capable de le faire, même s'il s'appuie de plus en plus sur des outils plus avancés que les méthodes heuristiques, comme les « sandbox » et les machines virtuelles.

Un bon antivirus doit être bon dans la durée

Le comportement proactif (la qualité des analyses heuristiques [produisant pas ou très peu de faux positifs], et de la machine virtuelle, donc, la capacité à détecter des menaces inconnues), le plus souvent utilisé lors des analyses « on-access » ou « on-execution », ainsi que le comportement face à la Wild List, sont les deux comportements sur lesquels on portera toute notre attention lors du choix d'un antivirus :

  • Avoir un très bon comportement
  • Avoir ce très bon comportement s'inscrivant dans la permanence, dans la durée (durant plusieurs années consécutives).

Le comportement réactif (qualité / quantité de la base de signatures) est quasiment sans intérêt.

L'utilisateur ne doit pas être versatile et son choix ne se fera pas sur le tout dernier test comparatif des antivirus. Le tout dernier test seul, qu'il soit à 100% de détection, ou un peu moins, n'est pas significatif : un antivirus est acheté pour des années (au moins 12 mois) et il faut s'attacher à la capacité d'un éditeur à être, d'une manière constante, d'une année à l'autre durant de nombreuses années consécutives, au sommet de son art.