Les faits

Sur un total de 300 000 pages inspectées provenant de 150 000 noms de serveurs différents, environ 300 pages se sont révélées malveillantes lors de l'étude du Honeynet (donc 1 pour 1000). En scindant ces pages par catégorie (pornographie, news, piratage, musique, etc.), on se rend compte que certaines sont plus propices à avoir des ennuis. On pouvait s'y attendre, les pages pornographiques sont loin devant puisque les chiffres en pourcentage des pages inspectées sont :

  • pornographie : 0.57%
  • issues de liens dans les messages spam : 0.16%
  • piratage : 0.06% et faux sites web[1] : 0.06% chacun
  • news : 0.04%
  • contenus modifiable par le visiteur[2] : 0.03%
  • musique et liens sponsorisés : 0.02% chacun

Ceci dit, vu la diversité des catégories, cela montre aussi que tout le monde peut-être touché par un serveur malveillant. Une étude plus poussée de ces 300 pages a ensuite montré qu'elles ne sont pas malveillantes en permanence. Comme pour tromper l'ennemi, leur nocivité ne se manifeste que de temps en temps. On peut donc supposer que les chiffres obtenus au-dessus sous-estiment la réalité et correspondent plus à la probabilité d'être touché qu'à la proportion de pages malveillantes.

D'ailleurs pour jeter le trouble sur les chiffres, une étude Google similaire, The Ghost in the Browser: Analysis of Web-based Malware[3] (fichier PDF), a conduit certains à annoncer un peu trop abruptement 10% de sites comme étant dangereux[4] ! Leur étude porte sur une durée de 1 an (de mars 2006 à mars 2007) contre 3 semaines pour le Honeynet. Leur méthode est similaire (voir en fin de billet) mais leur objectif est de comptabiliser des pages web corrompues parmi celles pouvant véhiculer des codes malveillants. A contrario l'étude du Honeynet rapporte le chiffre à la population totale sondée, sensée être représentative du web. On peut aussi citer l'étude de l'université de Washington, A Crawler-based Study of Spyware on the Web[5] (fichier PDF), qui rapporte que le taux de pages malveillantes est très variable d'une période à l'autre : deux mesures à 5 mois d'intervalle ont donné chez eux 3.4% et 1.6% de pages touchées respectivement.

Comment y échapper ?

Un bref calcul : si vous consultez 20 pages différentes chaque jour, au bout d'un an ça fait dans les 6000 pages donc, statistiquement, il y a facilement de quoi tomber sur une de ces pages malveillantes. Mais qu'on se rassure tout de suite, l'étude du Honeynet tend aussi à montrer qu'il est pour le moment assez facile d'échapper à ces pages web puisqu'au moins trois méthodes donnent des résultats :

  1. utiliser Firefox ou Opéra plutôt que le navigateur généralement livré avec votre système d'exploitation ;-) (on ne cessera jamais de le dire)
  2. bien effectuer toutes les mises à jour de votre navigateur
  3. mettre en place un système de liste noire de sites web malveillants[6]

On pourra ajouter comme autre méthode :

  • bloquer les publicités car l'étude The Ghost in the Browser les rapporte parmi les quatre sources principales de malveillance dans les pages web
  • bloquer JavaScript qui est le principal vecteur pour lier un site honnête à un site malveillant
  • changer pour un autre système que Windows® ;-)

Comme toujours en matière de sécurité informatique, il est difficile d'être catégorique sur le niveau de sécurité obtenu par chaque méthode. Le mieux est donc d'en combiner le plus possible, par exemple : utiliser exclusivement Firefox et activer ses mises à jour automatiques. Ça ne coûte pas grand chose : Firefox est libre et gratuit, les mises à jour sont rapides et ne nécessitent pas de redémarrer le système (c'est un peu comme Linux finalement ;-) ).

On pourra aussi lui adjoindre l'extension Adblock Plus qui bloque les publicités et l'extension NoScript qui bloque sélectivement les scripts JavaScript des pages visitées. En ce qui concerne ce dernier, malheureusement trop nombreux sont les sites web qui utilisent JavaScript pour afficher leurs pages, sans raison technique valable. NoScript peut donc certainement se révéler agaçant pour une partie des utilisateurs, on ne le recommandera ainsi qu'aux utilisateurs avisés.

L'avenir

Ces études ne sont pas rassurantes sur l'avenir d'Internet pour plusieurs raisons :

  1. on ne peut pas désactiver totalement JavaScript et, avec les sites de plus en plus interactifs type Ajax, on le pourra de moins en moins
  2. on ne peut pas bloquer systématiquement les JavaScript cryptés qui ne sont pas l'apanage des pages malveillantes[7]
  3. les attaques des pirates se déplacent des serveurs web vers les clients - nous -, les serveurs sont nombreux à être mal sécurisés, ne parlons pas des clients...
  4. à part Internet Explorer, les navigateurs principaux fonctionnent sur plusieurs plate-formes (Linux, Mac OS X, Windows ®), on peut donc imaginer qu'une faille exploitée sur l'un d'eux puisse servir sur plusieurs plate-formes

Alors qu'en entreprise on envisage de ne pas autoriser la connexion au réseau local d'une machine qui n'aurait pas au préalable prouvé son innocuité, sur Internet c'est toujours la jungle et l'anarchie, pour le plus grand bonheur des mafia du Monde[8]. L'avenir d'Internet passera peut-être lui aussi par ce genre de solution. Toute la question est de faire en sorte que ceci ne puisse être détourné à d'autres fins... Qui a dit validation de licence ou DRM ?

Et Microsoft ?

C'est le moment de mettre sur le tapis l'étude de Microsoft Recherche, Automated Web Patrol with Strider HoneyMonkeys[9] (fichier PDF)... Elle nous révèle que, dès mai 2005, Microsoft sait d'une manière ou d'une autre que les failles de son navigateur son exploitées à travers des pages web apparemment honnêtes, et pour une proportion non négligeable. Cette étude a en outre permis de prouver en juillet 2005 l'existence d'attaques « zero-day »[10] sur Internet Explorer via des pages web malveillantes. Les méthodes employées par les codes malveillants trouvés sont les mêmes que pour les codes analysés par le projet Honeynet.

Qu'à alors fait Microsoft depuis deux ans et demi ?

  • information et mise en garde des utilisateurs ?
  • mise à jour simplifiée et rapide d'Internet Explorer ?
  • intégration d'une liste noire de sites ?
  • blocage des JavaScript site par site ?
  • blocage complet des fenêtres popup ?
  • blocage optionnel des publicités ?

Deux petites pistes :

(Fermons maintenant cette parenthèse distractive.)

Comment fonctionne une page web malveillante ?

Une page web malveillante est obtenue en détournant une page web normale de son rôle par ajout d'un code, généralement écrit en JavaScript, qui ne laisse pas de trace visuelle dans la page[11]. Par exemple si les visiteurs d'un site ont la possibilité de modifier le contenu des pages (via les commentaires, forum, wiki, etc.), le pirate va simplement insérer son code comme un visiteur normal ajouterait son texte. Dans le cas contraire il lui faudra s'introduire sur le serveur convoité afin de compromettre les pages hébergées.

Un point particulièrement intéressant de l'étude du Honeynet est qu'ils ont disséqué deux pages malveillantes afin de comprendre comment le code malveillant agit. Dans le premier cas, la page compromise contient un code pour importer discrètement le contenu d'une autre page hébergée par un serveur malveillant. Dans le second cas, le code inséré importe un JavaScript malveillant hébergé lui aussi par un autre serveur. À chaque fois des techniques de cryptage font que le code malveillant inséré est incompréhensible et doit être décodé pour en déceler l'objectif. Il est ainsi plus difficile pour un logiciel anti-machin de reconnaître le caractère malveillant du code chargé par le navigateur...[12]

L'action du code malveillant de ces deux pages a également été analysée. Dans le premier cas, le code tente d'exploiter des failles de sécurité[13], d'abord dans le navigateur, puis dans des plugins ou des logiciels tiers : QuickTime, Winzip et Microsoft web view. Une fois qu'une de ces failles a permis d'installer le logiciel malveillant final, celui-ci s'exécute en permanence dans le système afin de collecter vos données de connexion à des sites web.

Dans le second cas, l'effet est certainement plus vicieux : un petit message qui ressemble à ceux de Windows® (voir l'image ci-dessous) vous informe que Windows® a détecté un logiciel espion sur votre machine. Pour corriger le problème, il vous propose ensuite d'acquérir un logiciel en fournissant votre numéro de carte bancaire... Vous avez alors donné votre carte bancaire à des mafieux et installé vous-même un logiciel malveillant, certes à votre insu !

windows pop

Image hébergée sur le site http://www.honeynet.org/

Comment Honeynet a pu scanner 300 000 pages ?

Le scan du web s'est déroulé durant 3 semaines au mois de mai dernier (2007). Impossible de scanner manuellement 300 000 pages en si peu de temps ! L'équipe du projet Honeynet a donc employé un genre particulier de pot de miel[14] qui, au lieu de simuler un serveur à introduire, simule la navigation d'utilisateurs sur Internet dans le but de se faire infecter. L'outil qu'ils ont utilisé se base sur un vrai navigateur s'exécutant dans un (vrai ?) système d'exploitation : Internet Explorer 6 SP2 et Windows ® XP SP2. On est ainsi en conditions réelles et d'éventuelles techniques de masquage du code malveillant n'empêchent pas sa détection puisqu'il faut bien qu'il tourne dans le navigateur à un moment ou un autre.

Ensuite pour détecter qu'une intrusion a eu lieu dans le système, l'outil suit en permanence certains paramètres :

  • altération de la base de registres
  • liste des processus en cours d'exécution
  • fichiers créés ou détruits

On évite ainsi le problème inhérent aux anti-virus d'ancienne génération : point de détection si le code malveillant n'est pas déjà connu. Enfin l'astuce pour remettre d'aplomb la machine une fois la compromission détectée, c'est d'utiliser pour héberger le système non pas une vraie machine mais une machine virtuelle[15]. Il suffit alors de restaurer l'image saine de la machine virtuelle qui aura été sauvegardée au début de l'opération.

L'unique limitation de l'étude est que seuls les codes malveillants s'installant à l'insu de l'utilisateur sont détectés. En effet le logiciel pot de miel n'est pas assez perfectionné pour pouvoir répondre à la place de l'utilisateur par exemple si une boîte de dialogue apparaît. En mai 2007, la probabilité de rencontrer une page malveillante sur Internet était donc supérieure à 0.1%, mais on ne sait pas dans quelle proportion.

Pour terminer, voici l'information qui fait le titre choc de ce billet : le Honeynet a comparé les 3 navigateurs Internet Explorer 6 SP2, Firefox 1.5.0 and Opera 8.0.0 sur les pages de la catégorie adulte. D'après SecurityFocus, Firefox 1.5 part avec un lourd handicap au moment de l'étude : plus de 60 vulnérabilités connues, contre environ 35 pour Internet Explorer et moins de 5 pour Opéra. Bien sûr les navigateurs ne seront pas mis à jour avant le test afin de préserver toutes leurs vulnérabilités. Résultat des courses :

  • Firefox 1.5 : aucune attaque réussie
  • Internet Explorer : quasiment 200 attaques réussies
  • Opéra : aucune attaque réussie

Ainsi le nombre de vulnérabilités publiquement révélées n'est pas un critère pertinent vis-à-vis du risque encouru sur Internet, alors même que Firefox atteint un taux d'utilisation de l'ordre de 20 à 25%. Les auteurs du Honeynet ont émis comme hypothèse explicative que Firefox, par son processus léger et rapide de mise à jour, est un logiciel rarement vulnérable et en mutation permanente. Au contraire de nombreux utilisateurs de Windows® ont désactivé à tord les mises à jour automatiques, trop longues, trop contraignantes. Ajoutons à cela le fait que Mozilla publie des correctifs pour Firefox nettement plus rapidement que Microsoft pour Internet Explorer et que les Windows® piratés ne peuvent plus se mettre à jour en guise de punition.

Aller le mot de la fin : vive Firefox ! Longue vie à Firefox !

Épilogue : la différence avec l'étude Google

L'étude de Google a consisté à pré-filtrer les milliards de pages qu'ils ont enregistrées sur leurs serveurs afin de réduire le domaine d'analyse. Pour cela, ils ont appliqué des outils qui repèrent des éléments de page web couramment utilisés par les pages malveillantes (typiquement des balises Html iframe ou du JavaScript crypté). Sur les 4.5 millions de pages qui ont passé ce filtrage, 450 000 se sont révélées malveillantes, donc 10%, mais 10% de ce qui a été filtré !

Notes

[1] sites intégrant une erreur typographique dans le nom pour induire en erreur

[2] forum, wiki, blog, etc.

[3] « Un fantôme dans le navigateur : analyse de logiciels malveillants basés sur les pages web »

[4] cf. l'article Google: 10 percent of sites are dangerous, « Google : 10% des sites sont dangereux »

[5] « Une étude des logiciels espion sur Internet basée sur un robot d'indexation »

[6] c'est prévu en standard dans la version 3 de Firefox qui sortira prochainement ;-), cf. Les nouveautés de Firefox 3 en images

[7] certains estiment qu'ils programment tellement bien qu'il ne faut pas que les autres voient ce qu'ils font

[8] cf. Pourquoi pirater le PC de Monsieur Tout Le Monde ?

[9] « Patrouille automatique sur le web avec le Strider HoneyMonkeys »

[10] il s'agit d'attaques ciblant des failles d'un logiciel pour lequel il n'existe pas encore de mise à jour fournie par l'éditeur

[11] des propriétés standard d'apparence des pages web permettent de ne pas afficher certains éléments de la page

[12] c'est une technique classique employée depuis des années par les virus afin de générer une quasi infinité de variantes en partant d'un seul code malveillant

[13] erreurs de programmation ou de conception d'un logiciel qui peuvent permettre de le détourner de son rôle initial; tous les logiciels un peu conséquents ont des failles de sécurité, connues ou non

[14] outil servant à piéger des pirates, voir le billet Pots de miel et menace sur Internet

[15] logiciel qui simule un ordinateur afin de pouvoir y installer un autre système et d'autres applications que ceux de sa vraie machine