Identification automatique des vulnérabilités de sécurité dans les systèmes logiciels - INRIA - Institut National de Recherche en Informatique et en Automatique Accéder directement au contenu
Thèse Année : 2020

Automatic identification of security vulnerabilities in software systems

Identification automatique des vulnérabilités de sécurité dans les systèmes logiciels

Résumé

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.
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.
Fichier principal
Vignette du fichier
2020theseBenabidallahR.pdf (2.55 Mo) Télécharger le fichier
Origine : Version validée par le jury (STAR)

Dates et versions

tel-03326519 , version 1 (26-08-2021)

Identifiants

  • HAL Id : tel-03326519 , version 1

Citer

Raounak Benabidallah. Identification automatique des vulnérabilités de sécurité dans les systèmes logiciels. Cryptographie et sécurité [cs.CR]. Université de Bretagne Sud, 2020. Français. ⟨NNT : 2020LORIS573⟩. ⟨tel-03326519⟩
206 Consultations
743 Téléchargements

Partager

Gmail Facebook X LinkedIn More