Description du projet
Supprimer les données malveillantes pour protéger les logiciels
L’assurance d’une protection efficace constitue une préoccupation majeure pour les logiciels de système, et il y a lieu de déployer des efforts considérables pour trouver une solution. On estime toutefois que chaque mois, près de 60 bogues de sécurité sont détectés. Cela est dû au fait que les logiciels de système sont vulnérables aux bogues de bas niveau résultant d’un comportement indéfini. Le projet CodeSan, financé par l’UE, propose une méthode complète qui améliore la qualité du code. Le logiciel d’assainissement du code permet la détection automatique des bogues pendant la phase de développement et protège les logiciels établis au moyen de mesures d’atténuation réflectives (reflective alleviations en anglais). CodeSan propose une méthode captivante, complète et flexible qui permet de gérer efficacement les comportements indéfinis dans les systèmes logiciels complexes. Elle est capable de défendre de manière fiable de grands systèmes logiciels, tels que Google Chromium et Mozilla Firefox.
Objectif
Despite massive efforts in securing software, about 60 security bugs are publicly reported each month. Systems software is prone to low level bugs caused by undefined behavior (memory corruption, type confusion, or API confusion). Exploits abuse undefined behavior to execute attacker specified code, or to leak information. We propose code sanitization (CodeSan), a comprehensive approach to improve code quality. CodeSan will sanitize software by (i) automating bug discovery during development through software testing and (ii) protecting deployed software through reflective mitigations. CodeSan trades formal completeness for practical scalability in three steps: First, policy-based sanitization makes undefined behavior (through violations of memory safety, type safety, or API flow safety) explicit and detectable given concrete test inputs. Second, automatic test case generation increases testing coverage for large programs without the need for pre-existing test cases, enabling broader and automated use of policy-based sanitization. Third, for deployed software, reflective mitigations place runtime checks precisely where they are needed based on data-flow and control-flow coverage from our testing efforts. CodeSan complements formal approaches by protecting software that is currently out of reach due to its size, complexity, or low level nature.
CodeSan is a compelling, comprehensive, and adaptive approach to thoroughly address undefined behavior for complex software. The three proposed thrusts complement each other naturally and will immediately guard large software systems such as Google Chromium, Mozilla Firefox, the Android system, or the Linux kernel, making them resilient against attacks.
In line with PI Payer’s track record on open sourcing his group’s research artifacts on cast sanitization, transformative fuzzing, or control-flow hijacking mitigations, all prototypes produced during CodeSan will be released as open-source.
Champ scientifique
Mots‑clés
Programme(s)
Thème(s)
Régime de financement
ERC-STG - Starting GrantInstitution d’accueil
1015 Lausanne
Suisse