Pour gérer vos consentements :
Categories: Sécurité

Sécurité : Microsoft expérimente CHERI pour résoudre ses problèmes de mémoire

La sûreté temporelle reste problématique, tout comme la mémoire non initialisée et la protection des adresses de retour. Ce sont là les principaux points d’amélioration que Microsoft fait ressortir après avoir mis CHERI à l’épreuve.

L’université de Cambridge pilote ce projet qui vise à lutter contre les failles de sécurité liées à la mémoire. Il intéresse d’autant plus Microsoft que la majorité des vulnérabilités que corrige l’éditeur entrent dans cette catégorie.

Face à ces failles, Microsoft s’est notamment appuyé sur Rust, le langage « origine Mozilla ». Il a expérimenté la réécriture de certains composants Windows. Ainsi que la création d’un langage dérivé, dans le cadre de l’initiative Project Verona menée avec l’Imperial College de Londres.

Avec CHERI, on touche au matériel. L’acronyme signifie en l’occurrence « Capability Hardware Enhanced RISC Instructions ». Le principe : développer un « modèle de protection » qui étende les architectures de jeux d’instructions.

À leur démarrage en 2010, les travaux portaient sur MIPS64. Avec le support de la DARPA, ils se sont étendus depuis lors à RISC-V et à ARM64. Avec, pour ce dernier, un SoC expérimental annoncé pour fin 2021 sur base Neoverse N1. L’architecture x64 est arrivée plus récemment sur la feuille de route.

Les capacités de CHERI

Au cœur de CHERI, il y a des « capacités ». Définies en langage Sail, elles constituent une extension des pointeurs, à travers l’ajout de métadonnées de protection.

Les « capacités » offrent aussi une alternative à l’isolation de processus basée sur la mémoire virtuelle. Plus légère en l’occurrence, car exploitable au sein des espaces d’adressage.

En première ligne du projet, les langages C et C++, particulièrement exposés aux failles « de mémoire ».
Au catalogue des prototypes logiciels, on trouve des extensions d’outils de développement (Clang/LLVM, GDB), de systèmes d’exploitation (FreeBSD, FreeRTOS) et d’applications (WebKit, OpenSSH, PostgreSQL).

Pour sa mise à l’épreuve, Microsoft a considéré les « failles de mémoire » que son Centre de réponse aux problèmes de sécurité a enregistrées en 2019. Sur les 456 qu’il a finalement retenues, CHERI en aurait bloqué 45 %. En y couplant l’initialisation de la pile et du tas, on dépasse les 50 %.

Test effectué avec CheriBSD (dérivé de FreeBSD) sur QEMU. Toutes les failles prises en compte ont fait l’objet d’un classement en indice de criticité « sévère ».

Illustration principale :« NEC VR5000 die » by Birdman CC BY 2.0

Recent Posts

Pour son premier LLM codeur ouvert, Mistral AI choisit une architecture alternative

Pour développer une version 7B de son modèle Codestral, Mistral AI n'a pas utilisé de…

18 heures ago

Microsoft x Inflection AI : l’autorité de la concurrence britannique lance son enquête

L’Autorité de la concurrence et des marchés (CMA) britannique ouvre une enquête sur les conditions…

21 heures ago

Thomas Gourand, nouveau Directeur Général de Snowflake en France

Thomas Gourand est nommé Directeur Général pour la France. Il est chargé du développement de…

23 heures ago

Accord Microsoft-CISPE : comment Google a tenté la dissuasion

Pour dissuader le CISPE d'un accord avec Microsoft, Google aurait mis près de 500 M€…

23 heures ago

Vers des mises à jour cumulatives intermédiaires pour Windows

Pour réduire la taille des mises à jour de Windows, Microsoft va mettre en place…

23 heures ago

RH, finances, stratégie… Les complexités de la Dinum

De l'organisation administrative à la construction budgétaire, la Cour des comptes pointe le fonctionnement complexe…

2 jours ago