Information Flow Control for the Web Browser through a Mechanism of Split Addresses - INRIA - Institut National de Recherche en Informatique et en Automatique Accéder directement au contenu
Thèse Année : 2017

Information Flow Control for the Web Browser through a Mechanism of Split Addresses

Contrôle du flux d'informations pour le navigateur Web via un mécanisme de séparation d'adressage

Résumé

The modern world has evolved to the point where many services such as banking and shopping are provided thanks to web applications. These Web applications depend on server-side as well as client-side software. Because these web applications provide to users sensitive services such as banking and shopping, their security is of pivotal importance. From the server side, the range of the security threats includes attacks such as denial of service, security misconfiguration and injection of malicious code (i.e. SQL injection). From the client side, major part of the security issues come with the web browser that is the interface between the users and server side application: as any software, it can be subject to attacks such as buffer overflows. However, it is not sufficient to independently prevent security threats from each side, because some security issues of web applications are intrinsic to the web applications themselves. For instance, the modern internet consists of several webpages which are mashup webpages. A mashup, in web development, is a web page, or web application, that uses content from more than one source to create a single new service displayed in a single graphical interface. More generally, the difficulty of web application security lies in the fact that exploiting a server-side vulnerability can have a client-side impact, and vice versa. It must be noted that many vulnerabilities on the server side such as Cross-Site Scripting (XSS) and Cross-Site Request Forgery (CSRF) have a direct impact on the web browser.In this thesis, we focus on the client side security of the web browsers, and limit ourselves to the context of Javascript. We do not consider solving the vulnerabilities themselves but providing a mechanism where user’s sensitive information is protected from disclosure (confidentiality) as well as unauthorized modifications (integrity) despite the vulnerability being exploited. For that purpose, we affirm that the vulnerabilities based on malicious script are characterized by illegal information flows. Hence, we propose an approach based on Information Flow Control (IFC). Indeed, IFC-based approaches are more encompassing in their scope to solve problems and also provide more streamlined solutions to handling the information security in its entirety. Our approach is based on a practical IFC model, called Address Split Design (ASD), that consists in splitting any variable that contains sensitive data and maintaining the symbol table to protect accesses to the secret part of these variables. We have implemented our model on the chromium V8 engine, a full-fledged JavaScript engine. Following the implementation, performance and conformance testing have been done on our implementation. The measured performance drop is significantly smaller than other comparative approaches. We further showed that implementation of our approach does not affect the general working of existing websites by performing such a test over the top websites of the internet. Further, we have also been able to verify that our model can be used to protect variables in several scenarios that would have otherwise caused disclosure of secret information.
Le monde moderne a évolué au point où de nombreux services tels que la banque et le shopping sont fournis grâce aux applications web. Ces applicationsWeb dépendent de logiciels reposant sur le modèle client-serveur. Parce que ces applications Web fournissent aux utilisateurs des services sensibles tels que la banque et le shopping, leur sécurité est d’une importance cruciale. Du côté serveur, la gamme des menaces de sécurité comprend des attaques telles que le déni de service, la mauvaise configuration de sécurité et l’injection de code malveillant par exemple, l’injection SQL). Du côté client, la majeure partie des problèmes de sécurité relève du navigateurWeb qui est l’interface entre les utilisateurs et l’application côté serveur: comme n’importe quel logiciel, il peut être sujet à des attaques telles que des dépassements de tampon. Cependant, il n’est pas suffisant d’empêcher indépendamment les menaces de sécurité côté client et côté serveur, car certains problèmes de sécurité des applicationsWeb sont intrinsèques aux applications Web elles-mêmes. Par exemple, dans l’Internet moderne, une page Web se compose de plusieurs pages Web aggrégées. Cette aggrégation de pages Web permet de construire une application Web qui utilise le contenu de plusieurs sources pour créer un seul nouveau service accessible via une interface graphique unique. Plus généralement, la difficulté de la sécurité des applications web réside dans le fait que l’exploitation d’une vulnérabilité côté serveur peut avoir un impact côté client, et inversement. Il est à noter que de nombreuses vulnérabilités côté serveur telles que Cross-Site Scripting (XSS) et Cross-Site Request Forgery (CSRF) ont un impact direct sur le navigateur Web.Dans cette thèse, nous nous concentrons sur la sécurité côté client, c’est-à-dire des navigateurs web, et nous nous limitons au contexte de Javascript. Nous ne considérons pas la résolution des vulnérabilités elles-mêmes, mais fournissons un mécanisme dans lequel les informations sensibles de l’utilisateur sont protégées de la divulgation (confidentialité) ainsi que des modifications non autorisées (intégrité) malgré la vulnérabilité exploitée. À cet effet, nous affirmons que les vulnérabilités basées sur des scripts malveillants sont caractérisées par des flux d’informations illégaux. Par conséquent, nous proposons une approche basée sur le contrôle du flux d’information (IFC - Information Flow Control). En effet, les approches basées sur IFC sont plus globales dans leur portée pour résoudre les problèmes et fournissent également des solutions plus simples pour gérer la sécurité de l’information dans son intégralité. Notre approche est basée sur un modèle IFC concret, appelé Address Split Design (ASD), qui consiste à séparer toute variable contenant des données sensibles et à maintenir la table de symboles pour protéger les accès à la partie secrète de telles variables. Nous avons implémenté notre modèle dans le moteur V8 chrome, un moteur JavaScript à part entière. Après la mise en oeuvre, des tests de performance et de conformité ont été effectués sur notre implémentation. La baisse de performance mesurée est significativement plus faible que d’autres approches comparatives. Nous avons également démontré que la mise en oeuvre de notre approche n’affecte pas le fonctionnement général des sites Web existants en effectuant un test sur les principaux sites Web d’Internet. De plus, nous avons également pu vérifier que notre modèle peut être utilisé pour protéger des variables dans plusieurs scénarios qui auraient autrement provoqué la divulgation d’informations secrètes.
Fichier principal
Vignette du fichier
2017_SUBRAMANIAN_archivage.pdf (3.22 Mo) Télécharger le fichier
Origine : Version validée par le jury (STAR)
Loading...

Dates et versions

tel-02865026 , version 1 (11-06-2020)

Identifiants

  • HAL Id : tel-02865026 , version 1

Citer

Deepak Subramanian. Information Flow Control for the Web Browser through a Mechanism of Split Addresses. Web. CentraleSupélec, 2017. English. ⟨NNT : 2017CSUP0006⟩. ⟨tel-02865026⟩
121 Consultations
397 Téléchargements

Partager

Gmail Facebook X LinkedIn More