Solution contre les failles cross-site scripting (XSS)

Mécanisme très compliqué au premier abordSuite à l’affaire du piratage du domaine WebRankInfo.com, semble-t-il lié à une faille de son compte GMail de la famille des failles XSS, Oliviez Duffez, le propriétaire légitime de WebRankInfo, a prodigué quelques conseils que sa malheureuse expérience lui a appris. Je me suis moi-même permis de faire le point sur le vol de nom de domaine. Aujourd’hui, je vous propose de nous pencher sur une solution contre les failles de sécurité de type cross-site scripting (XSS). En effe, elles peuvent toucher d’autres applications web que les webmails.

Exploitation d’un faille XSS

Pour mémoire, le principe d’une faille de sécurité de type XSS est généralement le suivant :

  1. L’internaute se connecte sur un site légitime protégé par un mot de passe.
  2. L’internaute quitte le site légitime sans s’en déconnecter ou continue à naviguer dans d’autres fenêtres ou onglets de son navigateurs pendant qu’il reste connecté au site légitime protégé.
  3. L’internaute visite un site malveillant.
  4. Le site malveillant récupère, généralement via un script spécifique, une information de connexion (cookie, identifiant de session, URL référente, etc.) au site légitime visité de manière authentifiée par l’Internaut.
  5. Le pirate responsable du site malveillant usurpe l’identité de l’internaute auprès du site légitime pour y faire des opérations malveillantes.

Bien entendu, l’exploitation d’un faille XSS implique tout d’abord que le site légitime ait une faille, ou encore que le navigateur web en possède une. Or, ceci n’est pas si exceptionnel, puisque tous les logiciels possèdent des bugs, certains étant des failles de sécurité, parmi lesquelles des failles XSS connues ou inconnues, exploitées par des individus malveillants ou non. Les services web n’échappent pas à cette règle.

Solution contre les failles XSS

Une parade efficace contre les failles XSS serait de ne pas naviguer sur des sites malveillants. Malheureusement, compte tenu des divers actes de piratage à moyenne et grande échelles, même un logiciel de protection à jour ne permet pas d’éviter toutes les failles. En revanche, les systèmes d’exploitation les plus populaires disposent de navigateurs web multiples.

Par conséquent, la solution simple contre les failles XSS consiste à utiliser un navigateur web dédié aux sites de confiance nécessitant une identification préalable et peu susceptibles de contenir des failles de sécurité en eux-mêmes (tels les sites de votre FAI, de votre webmail ou de votre banque), et un autre navigateur web pour tous les autres usages.

Une solution alternative consisterait à utiliser des comptes (de préférence non administrateurs) distincts de votre système d’exploitation, les navigateurs web stockant chacun les informations de chaque utilisateur dans des emplacements distincts. Cependant, cette deuxième solution est beaucoup plus contraignante et difficile à exploiter à l’usage, en particulier lorsqu’on se connecte fréquemment sur les sites de confiance.

Liste de navigateurs web

En plus de votre navigateur habituel, il est donc conseillé d’installer un navigateur secondaire dédié aux sites de confiance exclusivement. Voici quelques navigateurs alternatifs qui peuvent faire l’affaire (par ordre alphabétique) :

ou bien encore (par ordre alphabétique) :

ainsi qu’une multitude d’autres alternatives.

Limites

Attention toutefois : cette solution a ses limites.

Ainsi, si vous naviguez sur votre service webmail avec votre navigateur « sécurisé » et que vous affichez un email malveillant ou que vous cliquez sur un lien externe pointant sur un site malveillant, la sécurité des services laissés connectés pourrait être compromise au même titre que si vous n’utilisiez qu’un unique navigateur pour l’ensemble de vos opérations. Mieux vaut, par précaution, nettoyer régulièrement les informations du navigateur, tels les cookies, historique ou mémoire cache.

Cette solution n’a pas vocation à vous prémunir d’autres failles logicielles que les failles XSS. Si la sécurité de votre système est compromise du fait d’un keylogger, par exemple, l’utilisation de plusieurs navigateurs n’améliorera pas la sécurité de votre système.

Enfin, malgré les standards, les sites web, de plus en plus riches et interactifs, sont souvent spécifiques à certains navigateurs, et le palmarès de la compatibilité avec le plus grand nombre de sites et services en ligne reviennent à Internet Explorer, tout d’abord, suivi de Firefox, ensuite. Les faibles parts de marché des autres navigateurs impliquent qu’ils sont souvent ignorés par les développeurs et intégrateurs web, en particulier au niveau des fonctionnalités JavaScript, et ce, quel que soit le respect des standards web garantis par le navigateur.

Conclusion

Dédier un navigateur web à un type d’utilisation est un bon moyen de limiter les risques liés aux failles XSS. Cependant, c’est une solution relativement contraignante et dont la compatibilité n’est pas parfaite. Néanmoins, cela reste un bon compromis entre sécurité et contraintes.

En aucun cas, cependant, cette solution ne doit être employée comme seule sécurité. En effet, elle doit obligatoirement s’accompagner d’une démarche de sécurisation globale du système d’information, notamment par la mise à jour régulière du système d’exploitation et des navigateurs web (notamment), mais aussi par l’installation et l’utilisation de logiciels de protection adaptés sur le poste de travail, tels que pare-feu, anti-virus et anti-malware.

Comments

  1. Très mauvais article : on a l’impression que le seul moyen d’échapper à ce genre de hack tiens dans le choix du navigateur. A mon sens, le navigateur est fautif dans 5% des cas, et il y a bien un millier d’autres cas de failles pour lesquelles le navigateur ne pourra absolument rien…On frôle la désinformation…ou le manque de compétence !

  2. @Lilian : Je t’encourage à relire l’article pour mieux le comprendre, car ce n’est pas la solution que je présente ici, mais une solution. Par ailleurs, le problème n’est pas un problème lié à un navigateur en particulier, mais est général au fonctionnement des cookies et aux sites malveillants volant des cookies à d’autres sites mal protégés (notamment via l’utilisation d’une connexion sécurisée comme c’est désormais possible depuis le mois d’août 2008 sur GMail). De plus, cantonner un navigateur aux sites sûrs et auxquels on se connecte exclusivement avec ce navigateur particulier empêche les failles de type XSS d’être exploitées par les sites malveillants visités par d’autres navigateurs. La solution préconisée ici — il y en a d’autres — est donc tout à fait bonne, d’autant qu’elle est simple à mettre en œuvre, même si elle nécessite une certaine discipline.

    Enfin, je t’invite à mesurer tes propos avant de passer pour quelqu’un qui lit en diagonale, ne comprend pas et réagit à chaud, car ce n’est pas moi qui passe pour un désinformateur ou un incompétent ici…

  3. Solution contraignante mais efficace, bonne idée merci.

  4. Es-tu sur de ce que tu prétends dans ton article ?
    Pour moi une faille XSS est une faille utilisée par un pirate pour défacer un site en injectant du code exécutable dans des endroits qui ne devraient normalement pas en contenir (par exemple dans les formulaires etc…).
    Exemple, je suis un webmaster, sur mon site je met à disposition un formulaire de commentaires.
    Tous les commentaires sont affichées après l’envoi sur la page de l’article (sans traitement contre les failles!).
    Imaginons qu’un petit malin envoie un commentaire de redirection en javascript.
    Eh bien tous les visiteurs ayant javascript activé qui vont aller sur l’article seront redirigés vers un autre site (peut-être malveillant).

  5. Bonjour,
    Je suis d’accord avec Babygeek pour moi étant webmaster, une faille xss est la définission que BabyGeek à donné. Je ne dit pas que votre définition est fausse bien au contraire mais bon, je pense que ce tutoriel aurait put être mieux éxpliqué.
    Cordialement Kaizer38

  6. @BabyGeek/Kaizer38: La faille XSS consiste généralement à l’injection, mais pas tout le temps ;)

  7. est-ce de la mauvaise info ??? à ma connaissance(?) les failles xss ne sont pas l’extraction des cookies lors de la visite (volontaire) d’un site web malveillant sur un site normal (cad sans qu’il y ait une faille sur le site qu’on est en train de consulter) mais l’injection par un pirate de code executable dans la page du site pour effecteur tout un TAS d’operation diverses autres que voler les cookies, comme par ex bloquer le site pour le plaisir (cad qu’il faut une faille pour que ca marche -pas filtrer les entrées/sorties-). eventuellement rediriger l’internaute sur un site malveillant, la oui (involontaire)
    je crois que vous confondez la cause et la consequence.
    le choix du navigateur me semble avoir rien à voir la-dedans:
    – du point de vue de site web, si les formulaires sont pas protegé, c’est pas le navigateur qui va empecher l’injection…
    – du point de vue de celui qui navigue sur le site infecté par le script, c’est pas le navigateur qui va pouvoir l’empecher d’executer le code que le pirate a injecté sur le site (comme une redirection ou un pourrissage du site avec des boites de dialogue, etc..)

    voir la vrai definition: http://glossaire.infowebmaster.fr/xss
    « Le XSS est l’abréviation de cross-site scripting. Il s’agit d’un type de faille de sécurité sur les sites web. Cette faille repère l’endroit où des sites web dynamique (forum, blog …) récupère des données entré par un utilisateur sans les avoir FILTRE au préalable. Si les données utilisateurs contienne du code HTML par exemple, et que ce n’est pas filtré, alors il est possible d’insérer du code JAVASCRIPT (ou autre…) malicieux. »
    en quoi le navigateur change quelque chose ??

Speak Your Mind

*