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

Bases de données cloud : quels fournisseurs se détachent ?

Gartner livre son premier Magic Quadrant consacré au marché des bases de données cloud. Qui…

16 heures ago

Cybersécurité : Sectigo acquiert SSL247 et Xolphin

Les sociétés franco-britannique SSL247 et néerlandaise Xolphin deviennent des filiales de Sectigo, fournisseur d'insfrastructures à…

16 heures ago

Oracle ajoute l’analytique in-memory à son MySQL managé

Oracle greffe à son offre MySQL Database Service un moteur analytique en mémoire. L'ensemble est…

20 heures ago

Actifio : le pionnier du copy data management se vend à Google

Dit sur la voie d'une IPO, Actifio (spécialiste de la gestion des copies de données)…

22 heures ago

Pourquoi HPE transfert son siège au Texas

HPE déménage son siège social de la Californie au Texas pour réduire ses coûts et…

2 jours ago

« Score de productivité » : Microsoft règle le curseur vie privée

Sous la pression, Microsoft supprime toute identification des individus au sein du « score de…

2 jours ago