DS0706 - Sécurité de la société numérique

Applications JavaScript: Analyses Certifiées et Sécurité – AJACS

Résumé de soumission

Nous utilisons de plus en plus des applications web, que ce soit dans notre vie personnelle, professionnelle ou sociale. Nous les utilisons pour communiquer, travailler sur des documents partagés, gérer nos comptes bancaires ou interagir avec des administrations. Dans tous ces cas, nous leur confions des données personnelles. De plus, ces applications sont intrinsèquement distribuées: nous les utilisons au travers d'un navigateur web en téléchargeant et exécutant des scripts qui communiquent avec des services web. Pour des raisons de performances, une part de plus en plus grande de ces applications est exécutée directement par le navigateur. Celui-ci est ainsi devenu une machine virtuelle pour applications web.

La conjonction de ces aspects, c'est à dire l'utilisation massive d'applications manipulant des données personnelles et s'exécutant dans un même environnement, est le point de départ de notre programme de recherche: jusqu'à quel point pouvons-nous faire confiance à ces applications ?

La réponse apportée en pratique est une compartimentation par le navigateur selon la "same origin policy" (SOP): un script envoyé par un site peut seulement accéder à des informations associées à ce site, que ce soit ses données, par exemple des cookies, ou d'autres scripts. Malheureusement, non seulement l'implémentation cohérente de cette compartimentation est particulièrement complexe, elle va également à l'encontre de la construction de "mashups": l'intégration de plusieurs applications web pour fournir un nouveau service, comme l'affichage de critiques de restaurants provenant d'un site sur une carte interactive fournie par un autre site. Une deuxième faiblesse de la SOP est qu'elle fait implicitement confiance au site web visité: l'origine des scripts atteste leur innocuité. Cependant, il arrive parfois qu'un site utilise de tels scripts afin de suivre ses utilisateurs sans les en informer. Un site peut également avoir des failles qui, lorsque exploitées, conduisent à l'injection de scripts illégitimes comme s'ils provenaient du site initial. Cette attaque, connue sous le nom de "cross-site scripting", est une des vulnérabilités les plus communes des applications web, et permet à un attaquant de modifier impunément une page web ou d'accéder à des informations sensibles comme des identifiants de session.

Pour dépasser ces limitations, nous proposons dans le cadre du projet AJACS de certifier les applications web directement du côté de l'utilisateur, un environnement bien plus contrôlable permettant ainsi des analyses plus précises. L'approche que nous préconisons est la suivante: définition formelle de la sémantique de JavaScript, le langage le plus utilisé pour développer la partie client des applications web; développement d'analyses certifiées, en particulier des analyses de flots d'informations; définition de sous-langages pour dériver des analyses plus précises et compilation certifiée vers ces sous-langages; enfin développement de mécanismes garantissant la sécurité et la confidentialité de réelles applications web.

Coordination du projet

Alan Schmitt (Centre de recherche Inria Rennes - Bretagne Atlantique)

L'auteur de ce résumé est le coordinateur du projet, qui est responsable du contenu de ce résumé. L'ANR décline par conséquent toute responsabilité quant à son contenu.

Partenaire

INRIA Saclay - Ile-de-France/Equipe projet TOCCATA INRIA - Centre de recherche Saclay - Ile-de-France - Equipe projet TOCCATA
Inria - Sophia Antipolis Méditerranée Institut National de Recherche en Informatique et en Automatique
Inria Paris-Rocquencourt Institut National de Recherche en Informatique et Automatique
INRIA - Centre de Nancy Grand Est Equipe CAMUS INRIA Nancy
Imperial College Department of Computing, Imperial College
Inria Rennes - Bretagne Atlanque Centre de recherche Inria Rennes - Bretagne Atlantique

Aide de l'ANR 547 558 euros
Début et durée du projet scientifique : septembre 2014 - 42 Mois

Liens utiles

Explorez notre base de projets financés

 

 

L’ANR met à disposition ses jeux de données sur les projets, cliquez ici pour en savoir plus.

Inscrivez-vous à notre newsletter
pour recevoir nos actualités
S'inscrire à notre newsletter