Rechercher
Contactez-nous Suivez-nous sur Twitter En francais English Language
 





















Abonnez-vous gratuitement à notre NEWSLETTER

Newsletter FR

Newsletter EN

Vulnérabilités

Se désabonner

Javascript : une catastrophe en termes de cybersécurité ?

juillet 2016 par Yves Duchesne, Expert en cybersécurité chez ACCEIS

Les pratiques et la physionomie du web évoluent, les technologies stars d’hier tombent en désuétude au gré de l’émergence de nouveaux langages, de nouveaux frameworks, etc. Cette évolution transforme évidemment les métiers du développement, qui doivent accompagner ces changements sous peine d’obsolescence, mais impacte également les professionnels de la cybersécurité.

Autrefois cantonné au côté client, souvent pour exécuter des tâches sommaires, subalternes, le langage Javascript a depuis été porté côté serveur, notamment avec l’apparition de Node.js. La transposition de ce langage de script a été accompagnée par l’apparition de nouveaux frameworks, comme AngularJS ou Ember.js. Cette nouvelle donne a transformé la physionomie des sites web sur plusieurs plans, notamment :
 Utilisation de Web Services REST sans état
 Utilisation du format JSON pour sérialiser les échanges entre le client et le serveur
 Fonctionnement asynchrone, dans lequel l’interface communique directement avec le serveur, sans rechargement des pages

Le Web Storage

Une des évolutions notoires de cette mutation concerne la gestion des sessions de l’utilisateur. Autrefois, le problème semblait réglé : le serveur transmettait un jeton aléatoire au client sous la forme d’un cookie, qui était utilisé pour maintenir le contexte. La sécurité de ce cookie était donc primordiale et des options existaient pour le protéger des attaques. Aujourd’hui, un nouveau système a été pensé : le Web Storage, qui utilise un stockage côté client pour conserver les données de session.

Ce moyen de stockage apporte de la simplicité dans la gestion de ces informations, qui sont référencées sous forme de paires clés/valeurs, ce qui permet un référencement et un parcours plus aisé que les cookies, qui étaient présentés sous formes de chaînes de caractères brutes.

Des applications plus sensibles à certaines vulnérabilités...

La vulnérabilité Cross-Site Scripting (XSS) est un défaut d’encodage fréquent de caractères dangereux au sein des interfaces web, qui permet à un attaquant d’exécuter des scripts chez les client d’un site. Ce script est traditionnellement utilisé pour aller lire la valeur de jeton de session dans les cookies, et la transmettre à un utilisateur. Pour protéger ce jeton, une option (httpOnly) empêchait ces scripts d’y accéder en lecture. Web Storage ne propose pas d’équivalent à cette option, et les données de session des clients sont plus exposées que par le passé, faisant peser une menace plus grande sur les application web l’utilisant.

...et moins sensibles à d’autres

La vulnérabilité Cross-Site Request Forgery (CSRF) est un défaut de validation de la part du serveur, qui ne vérifie pas que les actions du client ont bien été envoyées volontairement. En effet, les cookies étant envoyés automatiquement avec toutes les requêtes que le navigateur génère, des actions frauduleuses pouvaient être déclenchées par un attaquant en incitant une victime à ouvrir un site piégé. Web Storage n’utilise pas les cookies pour héberger les données de session, elles ne sont plus ajoutées automatiquement à chaque requête et les attaques CSRF deviennent inopérantes.

Le modèle évolue

En définitive, ces nouvelles technologies ne changent pas fondamentalement la donne en matière de sécurité des applications web. Les vulnérabilités et les attaques restent en effet les mêmes, mais la sensibilité des applications à ces menaces augmente ou diminue selon les cas de figure et ces fluctuations obligent les experts en cybersécurité (consciencieux) à un travail de veille sur le sujet.


Voir les articles précédents

    

Voir les articles suivants