Description
Date depot: 2 avril 2025
Titre: Analyse et réparation dans chaînes d'approvisionnement logicielles
Directeur de thèse:
Pascal POIZAT (LIP6)
Encadrante :
Joyce EL HADDAD (LAMSADE)
Domaine scientifique: Sciences et technologies de l'information et de la communication
Thématique CNRS : Programmation et architecture logicielle
Resumé: Le décret Biden de 2021 et l'EU Cyber Resilience Act de 2024 ont mis en avant l'importance du concept de chaîne d’approvisionnement (Software Bill of Materials, SBOM) en termes de sécurité des logiciels.
Il s'agit d'un inventaire formel, et analysable par une machine, de ce qui concourt à la création d’un artéfact logiciel.
Un SBOM permet entre autres de savoir si un logiciel est concerné théoriquement par des vulnérabilités, et de réagir en conséquence.
Les dépendances logicielles d'un projet, qu'elles soient directes ou indirectes, sont l'un des éléments clés de sa chaîne d'approvisionnement.
Dans le cadre d'une précédente thèse, en collaboration avec un partenaire industriel, nous avons proposé des solutions outillées pour l'analyse des dépendances logicielles d'un projet, capables de passer à l'échelle d'un écosystème complet de dépendances (type Java/Maven avec ses millions de librairies et ses centaines de millions de relations de dépendances entre elles). Nous avons aussi proposé une solution basée sur l'optimisation multi-objectif multi-critères pour la construction de plans d'évolution de dépendances, en intégrant à la fois des critères de qualité, de sécurité, et la prise en compte de possibles changements cassants. La mise à jour de dépendance peut en effet dans ce dernier cas être partiellement incompatible avec le code ou les tests du projet concerné. Les jeux de données et les outils développés dans le cadre de ce premier travail ont été utilisés pour le défi lié à la fouille de grands volumes de données logicielles d'une conférence majeure du domaine.
La thèse proposée ici a pour objectif de pousser plus loin les contributions réalisées en s'attaquant à plusieurs verrous scientifiques :
- définition d'un modèle formel pour la description de SBOM, plus cadré que les standards qui émergent ;
- extension de l'approche d'analyse de dépendances à la prise en compte du caractère plus large des SBOM (par exemple intégration des parties liées aux versions de langages, compilateurs et builders, dans la construction des artéfacts logiciels). Cette extension devra permettre de détecter les risques d'un SBOM en termes de compromission ou d'obsolescence logicielle ;
- prise en compte de l'impact effectif des risques : par opposition aux approches actuelles basées sur la simple analyse de chemins de dépendances (le SBOM déclare une dépendance directe ou indirecte à un élément vulnérable), il conviendra d'analyser le code sous son angle sémantique (le contexte d'usage fait que la vulnérabilité est effectivement déclenchable) pour écarter les faux négatifs ;
- proposition d'algorithmes permettant la mise à jour de SBOM afin répondre à ces problématiques ;
- solutions pour la réparation automatique de code, basé sur l'analyse d'impact des changements du SBOM et des modification similaires détectées dans le graphe de dépendance des écosystèmes logiciels concernés.
Ce sujet se positionne à l'intersection des sciences du logiciel, du génie logiciel empirique, de l'analyse abstraite de programmes, de la fouille de données et de la mise en oeuvre d'algorithmes sur des graphes de grande taille. Il correspond à l'un des défi mis en avant dans le cadre du renouvellement du GDR GPL du CNRS.