| Version imprimable |
| Secrets in compiler : detection of secret-related weaknesses in GCC static analyzer (Secrets dans le compilateur : détection de faiblesses liées au secret dans l’analyseur statique de GCC) | ||
Philippe, Pierrick - (2025-12-10) / Université de Rennes Secrets in compiler : detection of secret-related weaknesses in GCC static analyzer Langue : Anglais Directeur de thèse: Fouque, Pierre-Alain Laboratoire : IRISA Ecole Doctorale : MATISSE Thématique : Informatique | ||
Mots-clés : Analyse Statique, GCC, Analyseur Statique de GCC, Teinte, Mise à Zéro, GnuZero, GnuSecret, Logiciels -- Vérification Résumé : Les systèmes logiciels sont omniprésents dans les sociétés modernes. Qu'il s'agisse de smartphones ou de services publics essentiels, nombre d'entre eux traitent des données sensibles, rendant critique leur protection contre les fuites et les erreurs de gestion de ces données. Parmi les faiblesses récurrentes, comme l'illustrent la CWE-200 et ses descendants, la divulgation involontaire d'information est une menace persistante. Cette thèse explore comment l'analyse statique intégrée au sein d'un compilateur peut détecter automatiquement de telles faiblesses. Nous commençons par disséquer l'analyseur statique de GCC, en documentant son moteur d'exécution symbolique, son modèle mémoire, et son système de diagnostique, le mettant ainsi en évidence comme un bon candidat pour des analyses de sécurité. En nous appuyant sur cette base, nous proposons GnuZero, un outil basé sur GCC pour détecter des mises à zéro manquantes de données sensibles, identifiées par les CWE-226 et CWE-244, grâce à un ensemble d'attributs dédiés et d'une analyse de propagation de teinte basée sur la durée de vie des variables, validée sur des bancs d'essai et des logiciels du monde réel. Nous généralisons ensuite cette approche avec GnuSecret, un cadriciel unifiant le suivi de secrets pour capturer des faiblesses plus larges de divulgation d'informations, détectant avec succès des vulnérabilités connues et nouvelles. Ensemble, ces contributions démontrent la faisabilité et l'efficacité des analyses mises en œuvre dans un compilateur largement utilisé. Résumé (anglais) : Software systems are ubiquitous in modern societies. From smartphones to critical state services, many handle sensitive data, making their protection against leaks and improper management critical. Among recurring weaknesses, as illustrated CWE-200 and its descendants, unintended information disclosure remains a persistent threat. This thesis explores how compiler-integrated static analysis can automatically detect such vulnerabilities. We first dissect the GCC Static Analyzer, documenting its symbolic execution engine, memory model, and reporting system, thereby highlighting it as a good fit for security-oriented analyses. Building on this groundwork, we propose GnuZero, a GCC-based tool to detect missing zeroization of sensitive data, identified by CWE-226 and CWE-244, through dedicated attributes and taint-propagation analysis based on variables' lifetime, validated on benchmarks and real-world software. We then generalize this approach with GnuSecret, a framework unifying secrecy tracking to capture broader information disclosure weaknesses, successfully detecting both known and new vulnerabilities. Together, these contributions demonstrate the feasibility and effectiveness of analyses implemented within a broadly used compiler. Identifiant : rennes1-ori-wf-1-21885 | ||
| Exporter au format XML |