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)

Accéder à ce document
Disponible
Libre accès au texte intégral dans PolyPublie
Texte Texte • 781kB •

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.

Programme:
Génie informatique
Directeurs ou directrices:
Adresse URL de PolyPublie:
Université/École:
Polytechnique Montréal
OAI:
oai:publications.polymtl.ca:3998
ORCID
Date du dépôt:
11 oct. 2019 09:47
Dernière modification:
14 oct. 2026 10:42
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