Quelques tabous de la sécurité revisités: (1) l’anti-virus

Quelques tabous de la sécurité revisités: (1) l’anti-virus

L’antivirus ne bloque pas TOUS les virus…


Le plus grand tabou de toute l’industrie de la sécurité, est probablement le fait de ne pas divulguer que les anti-virus (sans autre dispositif
supplémentaire) ne bloquent qu’une partie des codes malicieux, et ceci par construction. Autrement dit, croire qu’un simple anti-virus protège complètement votre
ordinateur est un leurre.

Petit historique des anti-virus.

Les anti-virus ont été conçus initialement pour bloquer les virus en comparant leur code à une base de « signatures ». Or, avec la multiplication des
types de virus et des variantes, très vite cette base a atteint des proportions considérables de plusieurs centaines de milliers d’entrées, qui ralentissent considérablement le fonctionnement
des PC, en consommant à la fois du temps processeur et de la mémoire.

 

virus-astro


Les éditeurs de solutions d’anti-virus ont donc travaillé dans trois directions : « nettoyer » la base des virus les plus anciens et non actifs
statistiquement – utiliser des algorithmes « heuristiques » pour détecter une menace virale, non par sa signature, mais par sa « typologie », par exemple « c’est un
worm générique » on ne sait pas précisément lequel, mais il se comporte comme un vers. Donc on le bloque. Sont apparus alors des dispositifs dits « comportementaux » qui
n’analysent pas le code ou sa signature, mais plutôt l’activité de celui-ci et notamment s’il cherche à modifier la base de registres de Windows ou bien s’il cherche à s’exécuter en mémoire
vive.

En combinant le nettoyage de la base, l’heuristique et le comportemental, les solutions d’anti-virus sont arrivées plus ou moins bien à nous protéger jusqu’à
aujourd’hui. Le problème est le suivant : beaucoup de gens croient que l’anti-virus protège de tous les virus (au moins connus) et que s’il en arrive de nouveaux le simple fait d’avoir une
base à jour va les protéger et ceci de manière certaine. C’est faux. Il existe des catégories entières de codes malicieux qui peuvent attaquer avec succès un ordinateur protégé par un
anti-virus parfaitement à jour. J’en distinguerai quatre catégories.

Patchez ! Patchez ! Patchez !

Tout d’abord certains codes malicieux utilisent des exploits permis par l’absence de correctifs de sécurité (les patches), sur des machines qui n’ont pas appliqué
le Windows Update ou équivalent. Ces codes sont largement répandus sur Internet ( METASPLOIT http://www.metasploit.com/
) et à la portée de la plupart des hackers débutants. Autrement dit, une machine avec un anti-virus à jour mais sans les patches est une machine très vulnérable. L’action
complémentaire à effectuer est donc de considérer une machine sécurisée comme combinant un anti-virus à jour ET tous les correctifs de sécurité à jour.

Tu navigues, je te pirate…

Ensuite, le navigateur web est une cible des hackers (d’abord Internet Explorer, puis tous ceux qui ont du succès comme Firefox), parce qu’il
s’exécute en mode « système » dans la machine. Autrement dit, si on parvient à installer un code malicieux dans le navigateur, celui-ci s’exécutera même si l’anti-virus est censé
empêcher ce code en mémoire vive et si les patches sont à jour. Il s’agit de vulnérabilités sur les contrôles ActiveX et autres Java plug-ins, petits modules qui s’exécutent dans le navigateur
pour ajouter des fonctions à celui-ci, ou de codes mutants ou polymorphiques, qui changent à chaque détection. Et là les benchmarks de résultats de détection par les anti-virus classiques sont
beaucoup moins glorieux que ceux qui ne font que les comparer entre eux…

 

anti-virus-1.png


100% étant le meilleur et 0% le plus mauvais de chaque catégorie – (source PASSMARK.COM)

Mais lorsqu’il s’agit de trouver des virus polymorphiques …

 

anti-virus2.png


(Source : http://www.av-comparatives.org/seit… )

On voit clairement que le taux de détection n’est pas parfait, voire est totalement nul…

La porte dérobée…

Les spywares et autres backdoors s’installent sur toutes les machines qui ont été infectées par un clic malheureux sur un site ou un e-mail « piégé » ou
bien par le téléchargement d’un logiciel douteux. Ces codes constituent en fait la grande majorité des attaques réelles sur Internet, et ne sont pas prises en compte dans les études de taux de
détection des anti-virus !

Que faut-il faire pour se prémunir de ce type d’attaque ? Il faut attaquer le problème autrement, en empêchant le programme malicieux de « sortir »
de la machine. Tous ces programmes utilisent un « port », par exemple le port 12345. Le web utilise lui le port 80 ou l’email le port 25. Si on bloque tous les ports SAUF ceux que
l’on utilise –à savoir principalement le port 80- on obtient une bonne protection de la machine. Autrement dit, il faut compléter l’anti-virus par un firewall personnel sur chaque machine.
C’est pour cela que les éditeurs d’anti-virus ont proposé des solutions dites (globales) parce qu’en fait ils ont rajouté un firewall personnel à l’anti-virus initial, sur chaque poste. Ainsi,
désactiver le firewall personnel ou s’appuyer uniquement sur le firewall perimetrique de l’entreprise est désastreux pour la sécurité du poste. C’est pour cela
que Microsoft à publié le service pack 2 pour Windows XP, car cette série de correctifs de sécurité inclut également un firewall personnel. Ce n’est certainement pas le
meilleur, ni le plus fonctionnel, mais il est hors de question de le désactiver, sauf si on en utilise un autre.

Le Graal de la sécurité des systèmes.

Le dernier point est le plus subtil : En fait un « virus », mais plus généralement un « code malicieux » s’exécute forcément dans
la mémoire du PC
. Il y a une solution très simple (sur le concept) pour bloquer tous les « virus » présents, passés et à venir, c’est de les empêcher de s’exécuter en
mémoire, et -comme on est sympa- de les empêcher de se répandre chez nos voisins, collègues et contacts. Mais on peut très bien envisager d’être un « porteur sain » dans un premier
temps et de se concentrer sur le fait de les empêcher de s’exécuter en mémoire vive.

L’idée qui a germé chez Microsoft et chez la plupart des éditeurs de systèmes d’exploitation, a été de créer un nouveau système qui –par construction- empêcherait
un code non connu de s’exécuter en mémoire… Ainsi plus besoin d’anti-virus ou de firewall, puisque même si on est contaminés ça ne fait rien à la santé du PC… C’est un peu comme les êtres
humains, on a des quantités de virus dans notre corps mais ils n’arrivent pas à agir, car nous avons des anti-corps. C’est le principe même du vaccin…


Ce « Graal » de la sécurité des systèmes, a déjà été découvert… Oui, oui il s’appelle Windows … VISTA ! La nouveauté dans VISTA a
été d’introduire un « UAC » User Access Control, qui dès qu’un programme cherche à s’exécuter en mémoire, prévient et demande à l’utilisateur s’il est d’accord pour qu’il s’exécute.
Les programmes préalablement signés et connus par Microsoft sont bien entendu autorisés, ainsi que ceux autorisés par le réseau SPYNET combinés à Windows Defender. Ainsi, j’ai pu
désinstaller mon anti-virus
qui ne me servait plus à rien, à part ralentir ma machine, voire à la faire dysfonctionner… J’ai gouté très vite aux joies de la vitesse, puisque exactement
la même machine dont dispose un de mes amis (il se reconnaitra ;), met 17 mn pour démarrer et être opérationnelle, alors que la mienne met 1mn45s essentiellement à cause du chiffrement
complet du disque dur, sinon moins de 30s !

Donc pour moi, VISTA a été une percée (maladroite ?) mais significative en sécurité… On retrouve le même dispositif dans Windows 7, que
j’utilise depuis plusieurs mois, en plus affiné et avec un système plus stable et performant.


La vérité c’est que la bataille n’est pas finie. En effet, les systèmes d’exploitation souffrent tous d’une tare de conception plus ou moins
importante. Le système s’exécute en mode coopératif dans l’anneau 0 de l’architecture du processeur (Intel), ainsi que la plupart des drivers et autres modules périphériques. (Il faudra que
quelqu’un m’explique un jour à quoi servent les anneaux 1 et 2…). Les programmes s’exécutent en mode séparé dans l’anneau 3, et ne peuvent plus crasher le système, même si eux-mêmes se
crashent. Le problème s’est donc décalé vers les éléments périphériques au système qui s’exécutent en mode « système ». Il suffit alors de trouver une faille dans un pilote
d’impression ou un module graphique, pour que le système soit pénétré…
C’est ce qui se passe en ce moment en « R&D » chez les hackers…

Comment protéger définitivement son système alors ?

Il faudrait un système qui ne fonctionne plus en mode coopératif monolithique avec un seul noyau, mais en mode micro-noyaux. Ou bien que
l’anti-virus et les autres dispositifs soient intégrés dans le système et non plus fournis par un tiers. Microsoft en intégrant dans Windows tous les modules de sécurité possibles est en train
de choisir cette deuxième voie. Pour la première voie, celle du système micro-noyaux, ce type de système n’existe qu’en mode expérimental (comme le MINIX de Tannenbaum http://en.wikipedia.org/wiki/Andrew… ), bien que Mac OS X s’en rapproche le plus dans sa conception, et les Linux, plus
que Windows. Mais on est à plusieurs centaines d’années-homme de développements d’un tel système pour le grand public.


16-copie-1
Lien :
Joanna Rutkowska, Invisible Things Labs :
La solution réside dans les systèmes à micro-noyaux
   

Voilà : A partir d’un « tabou » sur les anti-virus nous arrivons au futur « totem » de l’informatique : les netbooks et les
tablet PC vont devenir nos futurs systèmes clients :
rapides, sécurisés (peut-être), versatiles, simples…


La suite, pour le prochain tabou, traitera des deux frères « Terrieur » : Alain et Alex…