Ph.D. thesis (2011)
|
Open Access to the full text of this document Terms of Use: All rights reserved Download (1MB) |
Abstract
Automated tools can be helpful for doing maintenance tasks on computer software. Many
kinds of tools are available for doing so; in this study we concentrate on four kinds of tools that
are: detection tools, evolution tools, corrective tools and testing tools. In this thesis we study
those four kinds of tools in the perspective of doing maintenance related to SQL-injections
vulnerabilities in applications written in PHP. We propose to use static analysis, dynamic
analysis, source code reengineering and a genetic algorithm for doing theses tasks. An interprocedural
model of the PHP source code is built for detecting SQL-injections vulnerabilities.
A model of legitimate SQL queries is built by using static analysis and dynamic analysis;
this model is used in an automated source code reengineering that implement an automated
protection against SQL-injections vulnerabilities. An approach to automatically generate
targeted testing cases by using a genetic algorithm is also presented. A case study using
theses approaches have been done. We have used phpBB that is a software known for
the abundance of SQL-injection vulnerabilities. An experimentation using the approach of
inter-procedural static analysis has detected vulnerabilities in phpBB v2.0.0. These results
have been reproduced using model checking instead of static analysis in the objective of
gaining more confidence in both static analysis and model checking approaches. Also, 31
versions of phpBB have been used for studying the evolution of SQL-injections vulnerabilities.
Finally, a genetic algorithm is used to automatically generate targeted testing cases. This
last experimentation has been done on the DB2 database SQL query optimizer, results show
that the genetic algorithm is faster then a random generator to generate targeted testing
cases.
Résumé
Il est utile de disposer d'outils pour aider à effectuer des opérations de maintenances dans
les logiciels. Plusieurs types d'outils sont disponibles à cet effet, pour cette étude nous nous
concentrerons sur quatre types d'outils soit, les outils de détection, d'évolution, de correction
et de tests. Cette thèse étudie ces quatre types d'outils en fonction de la maintenance
à effectuer en rapport avec les défaillances de type SQL-injection dans une application Web
écrite en PHP. Les approches que nous proposons emploient l'analyse statique, l'analyse dynamique,
la réingénierie du code source et un algorithme génétique pour réaliser ces tâches
de maintenance. Un modèle inter-procédural du code source en PHP est construit et est
utilisé pour détecter et faire le suivi de l'évolution des vulnérabilités identifiées. Un modèle
de requêtes SQL légitimes est construit par analyse statique et dynamique afin de protéger
automatiquement les applications Web écrite en PHP. Une approche pour la génération automatique
de tests basée sur un algorithme génétique est aussi présentée. Ces approches ont
été validées en les appliquant sur plusieurs version d'une application connue pour contenir
des vulnérabilités SQL-injections soit : le logiciel phpBB qui est une application gérant un
babillard électronique qui utilise la base de données MySql pour stocker l'information d'une
manière persistante. Une expérimentation a été réalisée avec la version 2.0.0 de phpBB et
a permis de détecter automatiquement des vulnérabilités en utilisant une analyse statique
de flux inter-procédurale. Ces résultats ont été reproduits en utilisant le modèle checking
ce qui vient confirmer et renforcer l'approche. Aussi, 31 versions de phpBB ont été utilisées
pour suivre l'évolution des vulnérabilités identifiées. Un algorithme génétique est utilisé pour
générer des cas de tests qui visent un cas particulier dans l'application. Cette expérimentation
a été effectuée sur l'optimiseur de requêtes de la base de données DB2. Les résultats
montrent que l'algorithme génétique permet de générer des cas de tests plus rapidement
qu'un générateur aléatoire.
Department: | Department of Computer Engineering and Software Engineering |
---|---|
Program: | Génie informatique |
Academic/Research Directors: |
Ettore Merlo |
PolyPublie URL: | https://publications.polymtl.ca/717/ |
Institution: | École Polytechnique de Montréal |
Date Deposited: | 17 Feb 2012 15:17 |
Last Modified: | 08 Nov 2022 10:19 |
Cite in APA 7: | Letarte, D. (2011). Détection, protection, évolution et test de défaillances à l'aide d'un modèle inter-procédural simple [Ph.D. thesis, École Polytechnique de Montréal]. PolyPublie. https://publications.polymtl.ca/717/ |
---|---|
Statistics
Total downloads
Downloads per month in the last year
Origin of downloads