Des millions de développeurs utilisent JavaScript pour créer des sites Web et des applications mobiles, ce qui en fait l’un des langages de programmation les plus populaires au monde. Mais selon les chercheurs de Johns Hopkins, des milliers de sites Web JavaScript sont vulnérables à une faille de sécurité qui pourrait entraîner la manipulation de l’URL du site ou le vol des informations de profil d’un utilisateur.
Connue sous le nom de pollution de prototype, la faille permet aux attaquants de modifier ou de “polluer” un prototype, qui est une propriété intégrée d’un objet JavaScript. Un attaquant qui parvient à modifier un prototype d’objet JavaScript peut exécuter diverses actions malveillantes.
Avec un cadre qu’ils appellent ProbeTheProto, des chercheurs du Johns Hopkins Information Security Institute ont analysé un million de sites Web fonctionnant sur JavaScript et ont découvert que plus de 2 700 sites Web, dont certains sont les plus visités au monde, présentaient de multiples failles qui pourraient les exposer à la pollution prototype. .
Dix des sites figuraient parmi les 1 000 sites Web les plus visités de l’année, notamment Weebly.com, CNET.com et McKinsey.com.
“Notre outil ProbeTheProto peut détecter automatiquement et avec précision un large éventail d’attaques potentielles. Et nous avons constaté que de nombreux développeurs sont heureux que nous les aidions à garder une longueur d’avance sur les menaces de cybersécurité.”
Yinzhi Cao
Professeur adjoint d’informatique
“Ce n’est que récemment que les chercheurs ont commencé à examiner de près la pollution des prototypes et à se rendre compte que c’est un sujet de grande préoccupation”, a déclaré l’expert en cybersécurité Yinzhi Cao, professeur adjoint d’informatique à la Johns Hopkins Whiting School of Engineering. “De nombreux membres de la communauté des développeurs ne savent peut-être pas que les vulnérabilités des prototypes à la pollution peuvent avoir de graves conséquences.”
En Javascript, un objet est une collection de données ou de fonctionnalités associées ; par exemple, un objet de compte d’utilisateur peut contenir des données telles que des noms d’utilisateur, des mots de passe et des adresses e-mail. Une fois qu’un attaquant apporte une modification à un prototype d’objet, cela affectera le fonctionnement de l’objet dans l’ensemble de l’application et ouvrira la porte à des vulnérabilités plus graves, ajoute Cao.
Lui et son équipe ont entrepris d’étudier cet effet boule de neige à l’aide de l’analyse dynamique des altérations, une méthode dans laquelle les entrées de l’application sont étiquetées avec un marqueur spécial “entaché” et les chercheurs observent comment les données entachées se propagent dans le programme. Si le marqueur est toujours là à la sortie du programme, les chercheurs savent que l’application est vulnérable aux attaques d’entrée exploitables qui pourraient conduire à une action non planifiée.
“Imaginez un très long tuyau dans une grande boîte noire et je veux savoir si les points A et B sont connectés. S’ils le sont, je peux mettre un liquide toxique au point A pour attaquer le point B. Ce que nous faisons, c’est laisser tomber un peu de colorant rouge dans l’eau au point A, puis observez la couleur de l’eau au point B. Si je peux voir que le point B est également rouge, je sais que A et B sont connectés et nous pouvons alors lancer des attaques », a déclaré Cao.
Les chercheurs ont identifié trois attaques d’entrée majeures qui pourraient être causées par la pollution des prototypes : les scripts intersites (XSS), la manipulation des cookies et la manipulation des URL. De telles vulnérabilités sur les sites Web publics offrent de nombreuses possibilités aux cybercriminels de détourner des mots de passe et d’installer des logiciels malveillants, entre autres activités néfastes.
Cao dit que les chercheurs ont la responsabilité de signaler les vulnérabilités des prototypes de pollution aux propriétaires de sites Web et même de recommander le meilleur correctif pour leur code. Grâce à l’équipe de Cao qui a tiré la sonnette d’alarme, jusqu’à présent, 293 vulnérabilités ont déjà été corrigées par les développeurs.
“Les organisations ne savent même pas que ces vulnérabilités existent. Notre outil ProbeTheProto peut détecter automatiquement et avec précision un large éventail d’attaques potentielles. Et nous avons constaté que de nombreux développeurs sont heureux que nous les aidions à garder une longueur d’avance sur les menaces de cybersécurité”, a déclaré Cao. .
Les étudiants diplômés en informatique Zifeng Kang et Song Li ont contribué à la recherche. Les membres de l’équipe présenteront leur article, “Probe the Proto: Measuring Client-Side Prototype Pollution Vulnerabilities of One Million Real-world Websites”, lors du Network & Distributed System Security Symposium du 24 au 28 avril à San Diego.