Identification automatique des vulnérabilités de sécurité dans les systèmes logiciels / Raounak Benabidallah ; sous la direction de Salah Sadou et de Isabelle Borne

Date :

Type : Livre / Book

Type : Thèse / Thesis

Langue / Language : français / French

Catalogue Worldcat

Systèmes informatiques -- Mesures de sûreté -- Évaluation

Statistique

Systèmes informatiques -- Mesures de sûreté -- Modèles mathématiques

Classification Dewey : 005.8

Sadou, Salah (Directeur de thèse / thesis advisor)

Borne, Isabelle (Directeur de thèse / thesis advisor)

Urtado, Christelle (Président du jury de soutenance / praeses)

Bissyande, Tegawende (1985-....) (Rapporteur de la thèse / thesis reporter)

Tibermacine, Chouki (1979-....) (Rapporteur de la thèse / thesis reporter)

Université de Bretagne Sud (Organisme de soutenance / degree-grantor)

École doctorale Mathématiques et sciences et technologies de l'information et de la communication (Rennes) (Ecole doctorale associée à la thèse / doctoral school)

Institut de recherche en informatique et systèmes aléatoires (Rennes) (Laboratoire associé à la thèse / thesis associated laboratory)

Résumé / Abstract : La menace posée par les vulnérabilités logicielles croît de manière exponentielle. Ce phénomèneest dû, d'une part, à l'omniprésence des logiciels, et d'autre part, au nombre important de failles existantes. Pour faire face à ce problème, plusieurs stratégies ont été élaborées au fil du temps. Certaines visent à mettre en place de bonnes pratiques de développement et les intégrer dès la phase de conception tandis que d'autres consistent à effectuer des inspections de sécurité en indiquant les zones vulnérables. Cette thèse s’inscrit dans la deuxième catégorie de travaux et porte essentiellement sur la construction de modèles de prédiction de vulnérabilités. La création de ces derniers soulève différents problèmes. Le plus important étant le manque de données sur les vulnérabilités logicielles. À cet effet, nous mettons en place une chaîne de traitement complète allant de la création et l’annotation automatique d’un corpus de sécurité jusqu’à la construction et l’évaluation des modèles de prédiction de vulnérabilités. La première contribution de cette thèse est plus axée sur l'approche de construction de corpus que sur le corpus lui-même. L’approche est basée sur la conception de méta-scanners de vulnérabilités permettant d'identifier des vulnérabilités de code efficacement. Cela consiste à combiner plusieurs outils d'analyse statique en se basant sur leurs performances individuelles pour chaque catégorie de vulnérabilités. Notre deuxième contribution correspond au corpus SecureQualitas qui consiste en un corpus d'applications Java annotées avec les vulnérabilités qu'elles contiennent. Nous construisons ce corpus en utilisant un méta-scanner construit à l’aide de trois outils d’analyse de vulnérabilités. Enfin, notre troisième contribution est de construire un modèle de prédiction du code vulnérable. Nous avons opté pour l'utilisation de métriques de qualité pour caractériser le code et nous avons étudié les performances des modèles à la fois sur des catégories de vulnérabilités apprises par les modèles et sur des catégories non encore connues par le modèle. Les résultats de nos expérimentations ont montré l'efficacité des modèles sur les deux populations de vulnérabilités : connues et non connues.

Résumé / Abstract : The threat caused by software vulnerabilities is growing exponentially. This phenomenon is due, on the one hand, to the omnipresence of software, and on the other hand, to the large number of existing vulnerabilities. To deal with this problem, several strategies have been developed over time. Some aim to establish good development practices and integrate them right from the design phase, while others consist of carrying out security inspections by identifying vulnerable areas. This thesis is related to the second category of work and focuses on the construction of vulnerability prediction models. The creation of the latter raises various problems. The most important one is the lack of data on software vulnerabilities. For this purpose, we are setting up a complete processing chain from the creation and annotation of a security corpus to the construction and evaluation of vulnerability prediction models. The first contribution of this thesis focuses more on the corpus construction approach than on the corpus itself. The approach is based on the design of vulnerability meta-scanners allowing to identify code vulnerabilities efficiently. This consists in combining several static analysis tools based on their individual performance for each category of vulnerabilities. Our second contribution corresponds to the SecureQualitas corpus which consists of a corpus of Java applications annotated with the vulnerabilities they contain. We build this corpus using a meta- scanner built with three vulnerability analysis tools. Finally, our third contribution is to build a prediction model of vulnerable code. We opted and studied the use of quality metrics to characterize code and we have studied the performance of the models both on categories of vulnerabilities learned by the models and on categories not yet known by the model. The results of our experiments showed the efficiency of the models on both populations of vulnerabilities: known and unknown.