<  Retour au portail Polytechnique Montréal

Différences de protection entre les versions d'un logiciel : étude de cas des changements, liens causaux et perspectives pour la réparation automatique des défaillances

Karl Julien

Mémoire de maîtrise (2019)

Document en libre accès dans PolyPublie
[img]
Affichage préliminaire
Libre accès au plein texte de ce document
Conditions d'utilisation: Tous droits réservés
Télécharger (781kB)
Afficher le résumé
Cacher le résumé

Résumé

Les applications Web mettent en place des politiques de contrôle d'accès pour protéger leurs utilisateurs en restreignant les accès aux actions et aux données. Lors de l'évolution de l'application, en introduisant des nouvelles fonctionnalités ou en corrigeant des erreurs, les développeurs peuvent accidentellement briser la politique de contrôle d'accès et injecter des vulnérabilités dans l'application. L'une des techniques applicables pour prévenir et réparer l'injection de ces vulnérabilités est l'utilisation d'analyses statiques afin d'étudier les propriétés du programme, et de comparer les propriétés de deux versions successives. Si les propriétés sont différentes, il est possible qu'une vulnérabilité ait été injectée. Pour aborder ce problème, nous extrayons donc les propriétés de protection des instructions d'un programme par Analyse de Flux de Traversement de Motif (PTFA), et nous considérons les différences de protection entre deux versions d'un projet comme un ensemble de vulnérabilités à corriger. Après avoir revu l'antériorité de l'étude du problème de réparation automatique de logiciel, nous étudions les cas de différence de protection afin de proposer deux modèles de réparation de ces différences, en recherchant des patchs dans deux espaces différents. Le premier consiste à réverser les changements faits entre les deux versions que l'on soupçonne comme responsables des différences de protection. Cette solution s'appuie sur l'étude des Changements Impactant la Protection (PIC), et est précédée d'une étude des limites de ceux-ci. Nous définissons un cadre pour ce modèle et nous démontrons formellement qu'il permet de générer un patch corrigeant les vulnérabilités ciblées. Nous le mettons ensuite en application afin de mesurer ses performances sur trois jeux de données, comportant au total 148 paires de versions issues de deux applications php différentes, WordPress et MediaWiki, et à deux niveaux de granularité de versionnage différents. Le deuxième consiste à insérer des motifs de sécurité aux emplacements adéquats du programme. Nous définissons un cadre pour ce modèle et nous montrons formellement qu'il permet de générer un patch corrigeant les vulnérabilités ciblées.

Abstract

Web applications need access control policies to restrict the access to data and actions in order to protect their users. During the evolution of the application, while adding functionalities and correcting bugs, developers can unintentionally break the access control policy and introduce vulnerabilities into the application. A possible approach to prevent and repair the introduction of these vulnerabilities is the application of static analysis in order to extract the properties of the application, and to compare the properties between two successive versions. When the properties are different, a vulnerability has possibly been introduced. To study this problem, we extract protection properties of the statement of the program with a Pattern Traversal Flow Analysis (PTFA), and we take the protection differences between two versions as a set of vulnerabilities to correct. After having reviewed the state-of-the-art of software automatic repair and patch generation, we study the protections difference in order to introduce two models to repair those differences, using two distinct research spaces. The first model uses a partial reversion of the changes suspected to be the cause of the protection differences. This approach is based on the Protection Impacting Changes (PIC) analysis, and is deduced from a study of the limits of this analysis. We define a scope for this model and we prove that it successfully produces patch correcting the targetted vulnerabilities. In order to measure its performance, we apply this model on three data sets, adding up to 148 version pairs, from two distinct php applications, WordPress and MediaWiki, and two granularity levels of versioning. The second model uses the insertion of security patterns at the appropriate places. We define a scope for this model, and we prove that it successfully produces patch correcting the targetted vulnerabilities.

Département: Département de génie informatique et génie logiciel
Programme: Génie informatique
Directeurs ou directrices: Ettore Merlo
URL de PolyPublie: https://publications.polymtl.ca/3998/
Université/École: Polytechnique Montréal
Date du dépôt: 11 oct. 2019 09:47
Dernière modification: 28 sept. 2024 21:08
Citer en APA 7: Julien, K. (2019). Différences de protection entre les versions d'un logiciel : étude de cas des changements, liens causaux et perspectives pour la réparation automatique des défaillances [Mémoire de maîtrise, Polytechnique Montréal]. PolyPublie. https://publications.polymtl.ca/3998/

Statistiques

Total des téléchargements à partir de PolyPublie

Téléchargements par année

Provenance des téléchargements

Actions réservées au personnel

Afficher document Afficher document