Mémoire CPU : maillon faible et exploitée par les cybercriminels
Jeff Wittich, Chief Product Officer chez Ampere
La faille d’Heartbleed et le ransomware WannaCry en 2017 ont un point commun : dans les deux cas, les cybercriminels ont exploité les failles de la mémoire tampon du processeur. Ces événements sont la preuve que la mémoire peut devenir un vecteur pour les cybercriminelles. L’étiquetage de la mémoire appliqué par le processeur apparait comme une solution prometteuse pour améliorer la sécurité de la mémoire et protéger les systèmes d’exploitation contre de tels risques.
Fonctionnement de l’étiquetage de la mémoire (memory-tagging) par le processeur
Le tagging de la mémoire par le processeur s'appuie sur deux niveaux qui intègrent à la fois des composants matériels et logiciels afin de protéger la mémoire dans sa globalité. Cette intégration garantit la sécurité de la mémoire en continu, sans nécessiter l'intervention d’un développeur au moment de l'exécution.
Sur le plan de l’infrastructure, chaque adresse mémoire [LD1] du CPU se voit attribuer une référence unique, soit une étiquette ou tag. Les pointeurs (pointer) reçoivent chacun le même tag, qui autorise l’accès à certaines zones de la mémoire. Avant qu’un pointeur puisse accéder à une adresse, le CPU vérifie que le tag corresponde. Si ce n’est pas le cas, le CPU lancera une alerte et interdira l’accès aux applications, aux appareils ou aux utilisateurs sans autorisation. Cette procédure ne nécessite aucune intervention de la part du programmeur, c’est ce qui rend l’étiquetage de la mémoire efficace et fiable pour lutter contre les cybercriminels.
Les systèmes d'exploitation et les applications jouent un rôle important, surtout au niveau du logiciel d’étiquetage de la mémoire, car ils adaptent leur méthode au matériel. Une fois la configuration et la mise à jour des applications assurées, le logiciel peut assurer pleinement la fonction d’étiquetage de la mémoire du hardware.
[LD1]Les adresses mémoires servent de système de cartographie ou d'indexage, permettant au processeur de l'ordinateur d'accéder et de gérer efficacement les données stockées dans sa mémoire. Sans adresses mémoires, le processeur n'aurait aucun moyen de savoir où se trouvent les données dans la mémoire.
Exemple d’étiquetage de la mémoire par le processeur : pendant l'exécution du programme, le système vérifie si les tags des pointeurs correspondent aux tags des adresses mémoire respectives. Ce mécanisme de sécurité garantit l'intégrité des données et prévient les erreurs de mémoire critiques et les pannes d'application.
Les avantages d’étiquetage de la mémoire décuplés par les CPU
L’étiquetage de la mémoire par le processeur réduit considérablement la surface d'attaque pour les cybercriminels. Ce système d’authentification renforcée rend plus difficile la recherche de failles par les cybercriminels. Il prévient des risques fréquents tels que la surcharge de la mémoire tampon ou les erreurs d'utilisation après libération. Il rend les applications et les systèmes plus résilients face aux attaques potentielles, protège l'intégrité et la confidentialité des données et garantit la stabilité du système.
En outre, l’étiquetage de la mémoire s'intègre parfaitement dans le paysage de la sécurité et renforce les mesures existantes, comme les revues de code, les méthodes de programmation sécurisées et l'analyse des vulnérabilités. Les entreprises bénéficient ainsi d'une architecture de sécurité plus robuste qui leur permet de faire face efficacement aux risques d'attaques et de violations de sécurité fructueuses.
Comme le paysage des menaces évolue constamment et que le besoin de solutions de sécurité robustes pour la mémoire augmente, le recours à l’étiquetage de la mémoire par le CPU sera de plus en plus courant à l’avenir. Dans ce contexte, nous pouvons nous attendre à une amélioration du support matériel et à une standardisation des différentes architectures de CPU. Cette dernière faciliterait considérablement l'intégration de l’étiquetage de la mémoire dans des environnements multiples, ce qui permettrait de transférer les avantages dans différents domaines et de traiter les nouveaux risques. Plus la conception des CPU et la gestion de la mémoire s'amélioreront, plus les processus d’étiquetage de la mémoire seront efficaces et performants, devenant essentiels à la sécurité informatique moderne.