Optimisation du code source pour les systèmes critiques de sécurité
Auteur / Autrice : | Wendlasida Ouedraogo |
Direction : | Lutz Strassburger |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique, données, IA |
Date : | Soutenance le 15/09/2023 |
Etablissement(s) : | Institut polytechnique de Paris |
Ecole(s) doctorale(s) : | École doctorale de l'Institut polytechnique de Paris |
Partenaire(s) de recherche : | Laboratoire : Laboratoire d'informatique de l'École polytechnique (Palaiseau ; 1988-....) - Laboratoire d'informatique de l'École polytechnique [Palaiseau] |
Jury : | Président / Présidente : Catherine Dubois |
Examinateurs / Examinatrices : Lutz Strassburger, Tristan Crolard, Pierre-Evariste Dagand, Danko Ilik, Claude Marché, Jean-Marie Madiot, Sylvain Baro | |
Rapporteurs / Rapporteuses : Tristan Crolard, Pierre-Evariste Dagand |
Mots clés
Mots clés contrôlés
Résumé
Un système informatique est dit critique de sécurité lorsqu'il peut causer de graves dommages matériels, environnementaux ou humains.Ce type de système est nécessairement complexe, car les interactions entre logiciel, matériel et environnement,nécessitent l'implémentation de mesures de sécurité aussi bien au niveau logiciel que matérielpendant leur conception, leur développement, leur compilation et leur exécution. Ces mesures de sécurité qui varient un système à un autreconduisent très souvent à des dégradations de performances, en particulier l'augmentation du temps d'exécution.Ce travail de recherche se situe dans le contexte du système CBTC (Communication-Based Train Control) deSiemens Mobility France, un système de contrôle de train certifié EN-50128 et SIL-4 (le plus haut niveau de sûreté) dans le développement de nombreux systèmes de pilote automatiqueà travers le monde, en particulier sur les lignes 1, 4 et 14 du métro parisien.Dans ce contexte, le but de cette thèse est de trouver des solutions pour réduire le temps d'exécution de ces systèmes tout en conservantles garanties de sécurité déjà acquises.La réponse apportée par cette thèse est une optimisation formellement vérifiée du code source. Une première contribution est un compilateur VCP Ada (un sous-ensemble d'Ada)vers VCP Ada, qui optimise le code source tout en préservant la sémantique des programmes. Ce compilateur a été implémenté avecl'assistant de preuve Coq et fourni des preuves en Coq qui garantissent l'équivalence entre le programme original et le programme optimisé.Ce compilateur tient aussi compte des complexités liées aux mesures de sécurité matérielle qui sont potentiellement incompatibles avec l'utilisation des compilateursformellement vérifiés existants. Par ailleurs, le choix de l'application des optimisations sur le code source présente des avantages méthodologiques parrapport aux optimisations utilisant de nombreux langages intermédiaires, car ils permettent de simplifier et de réduire l'effort de preuve nécessaire.Une deuxième contribution concerne la vérification formelle des analyseurs lexicaux des compilateurs, qui n'a jusqu'à présent, pas reçu beaucoup l'attention de la part deschercheurs, créant donc un maillon faible dans la chaîne de compilation. Nous avons développé CoqLex, le premier générateur d'analyseur lexical formellement vérifié en Coq, basé sur unemodification d'une implémentation existante en Coq des expressions régulières via les dérivés de Brzozowski.La théorie et les outils développés ont été utilisés pour optimiser les programmes VCP Ada des systèmes CBTC, composés de milliers de fichiers sources, avec desrésultats prometteurs.