Se faire infecter par un mail contenant un virus (en fait un ver la plupart du temps) nécessite (sauf exception) avec un lecteur de courrier à jour, de cliquer sur une pièce jointe. Tous les internautes avertis savent que c'est un comportement dangereux si l'origine du mail n'est pas attestée. Mais se faire infecter "à l'insu de son plein gré" en visitant une page web piégée est malheureusement beaucoup plus difficile à éviter. D'où l'intérêt capital de repérer les failles des navigateurs pour les corriger avant qu'elles ne soient exploitées.

au sommaire


    Fuzzing : la chasse aux bugs des navigateurs est ouverte

    Fuzzing : la chasse aux bugs des navigateurs est ouverte

    Mais repérer une faille n'est pas facile : d'abord, seuls les navigateurs libres ont leur code source disponible. Et même dans ce cas il faut être un expert pour repérer un défaut éventuellement exploitable parmi des milliers de lignes de code. On peut aussi chercher à tester directement le navigateur en recherchant certains types de vulnérabilités classiques, tel que le débordement de mémoire tampon, la mauvaise gestion d'URL trop longues ou contenant des caractères insolites, les fonctions mal protégées de javascript... Tout ceci demande une grande expérience et beaucoup de flair.

    Mais il y a une autre solution : utiliser la force brute des ordinateurs pour bombarder le navigateur de codes volontairement mal formés ou avec des combinaisons insolites. Il existe à cet effet un certain nombre de programmes téléchargeables, voire conçus pour faire des tests en ligne. Ces outils utilisent la technique de fuzzing (fuzzy, mot anglais signifiant flou) et ces programmes sont appelés fuzzers. Le principe est en effet de générer de façon aléatoire ces codes destinés à tester les navigateurs.

    Il existe toute une série de fuzzers : certains sont destinés à tester les failles des objets COM ou les ActiveXActiveX. Ils détecteront les vulnérabilités d'InternetInternet Explorer. D'autres testent les éléments DOM et le DHTML, les CSSCSS ou tout simplement la réaction du navigateur face à du code HTMLcode HTML mal formé. Ces fuzzers permettront donc de trouver des failles dans l'ensemble des navigateurs.

    Que se passe-t-il face à ce bombardement ? Dans la plupart des cas le navigateur ne va pas se laisser abuser par ces codes aberrantsaberrants : il restera stable. Mais dans quelques cas il pourra manifester un comportement anormal ou, tout simplement, se figer ou "crasher" complètement. On aura alors mis en évidence un bugbug. Déjà l'existence de bugs de ce type montre qu'il est possible de "planter" le navigateur avec une page contenant un code mal formé. Mais toute la question est alors de savoir si ce bug peut être exploité pour faire exécuter un code malveillant par le navigateur. En effet ces comportement anormaux sont la voie royale par laquelle il est souvent possible de faire agir des malwaresmalwares.

    Récemment H.D Moore a mis en oeuvre de tels outils pour un test intensif de divers navigateurs. Il a mis en évidence des bugs dans Internet Explorer, Firefox, Opera, Safari, Konqueror... et il a décidé de publier un bug par jour dans son blogblog (intitulé ironiquement Browser Fun) durant tout le mois de juillet. C'est donc un mois douloureux pour les navigateurs !

    Mais c'est peut-être l'occasion d'une prise de conscience de la part des éditeurs, d'autant que les virus et vers classiques paraissent bien innocents (malgré leur grave pouvoir de nuisancenuisance) face aux malwares les plus récents qui sont extrêment difficiles à éradiquer lorsqu'ils ont contaminé un ordinateur.