Developpez.com

Le Club des Développeurs et IT Pro

COWL : une API DOM pour éviter aux scripts JavaScript de voler des données

Il empêche le code de communiquer avec des machines non autorisées

Le 2014-10-07 22:45:28, par Amine Horseman, Expert éminent sénior
Des chercheurs de l'université de Stanford et de l'UCL (University College London) en partenariat avec des chercheurs de Mozilla et Chrome ont mis au point un nouveau système de confidentialité qui permet d'ajouter une couche de sécurité supplémentaire aux navigateurs web modernes.

Le système, appelé COWL (Confinement with Origin Web Labels), tente de protéger les sites web reposants sur des bibliothèques JavaScript tierces de voler des mots de passe secrètement ainsi que d'autres données sensibles. Ceci, en introduisant un accès contrôlé basé sur des étiquettes et des contextes de navigation.

« Les développeurs pourront, non seulement limiter avec qui ils partagent des données, mais pourront aussi imposer des restrictions sur la façon dont leurs données sont diffusées une fois qu'elles ont été partagées ».

L'équipe qui a réalisé ce système affirme qu'il ne réduit que légèrement la vitesse de traitement du navigateur. En effet, quatre applications web ont été testées avec COWL, dont essentiellement un gestionnaire de mots de passe, et un site web qui inclut jQuery. Les résultats publiés par l'équipe de recherche démontrent que le ralentissement ne dépasse pas les 16 millisecondes, ce qui est « imperceptible par les utilisateurs ». De plus, l'API est assez facile à utiliser, un exemple est disponible sur ce lien (anglais).

COWL est implémenté en tant qu'API DOM pour Firefox et Chrome. Il devrait aussi être compatible avec Safari puisque celui-ci utilise un webkit similaire à Chrome.

Une première version du système devrait être disponible prochainement en téléchargement gratuit, sous une licence open source.

Exemple d'utilisation de COWL pour la protection de mots de passe

Source : Site web de COWL

Et vous ?

Pensez-vous que ce système sera efficace pour lutter contre les bibliothèques JavaScript frauduleuses ?
  Discussion forum
3 commentaires
  • SylvainPV
    Rédacteur/Modérateur
    Je n'ai pas bien compris comment COWL "marquait" (taints ?) le contexte dans le code du site distant pour l'empêcher de faire ce qu'il veut avec les données. D'après moi, dès que la donnée sort de notre domaine, elle devient publique. Donc je suis un peu estomaqué par l'exemple choisi : utiliser un service distant potentiellement non fiable pour vérifier à la volée la sécurité des mots de passe de nos utilisateurs ??? Vous le voyez aussi, le panneau clignotant "MAUVAISE IDEE" ?

    Dans tous les cas, si l'on utilise des bibliothèques JavaScript depuis un domaine extérieur, on est vulnérable. Si le serveur distant est piraté et que les scripts peuvent être altérés, ce sera une avalanche de XSS snippets ; ces bouts de code dont le but est de récolter le plus d'infos ou de faire le plus de dégâts dès lors qu'une faille XSS est exploitable.
  • TiranusKBX
    Expert confirmé
    une méthode de sur-encapsulation de javascript
    une idée intrigante mais elle ne fait que retarder les problèmes
  • BubbleChien
    Futur Membre du Club
    C'est vrai qu'il fallait bien ça, encore une couche supplémentaire sur des navigateurs aux performances déjà miraculeuses vu ce qu'ils ont à effectuer pour éviter de responsabiliser les développeurs ainsi que les utilisateurs. Bon ok je trolle un peu mais c'est une tendance qui se dégage tout de même, et jusqu'à maintenant c'est étrange mais je me suis jamais fait voler un seul mot de passe, je me demande bien comment dis donc