Les entreprises Intel et AMD collaborent au développement d'un ensemble étendu d'instructions ChkTag (x86 Memory Tagging), qui sera standardisé pour une mise en œuvre unifiée dans les processeurs x86 de différents fabricants. En termes de capacités, ChkTag ressemble à l'extension MTE (MemTag), déjà intégrée dans les processeurs ARM, et permet également de bloquer l'exploitation des vulnérabilités causées par l'accès à des blocs de mémoire déjà libérés, les débordements de tampon ou l'accès à la mémoire avant son initialisation.
ChkTag offre de nouvelles instructions processeur permettant, au niveau matériel, d'associer des balises aux zones de mémoire et d'organiser la vérification de la validité des pointeurs. Il est annoncé que l'utilisation de ces instructions par les compilateurs garantira un fonctionnement sécurisé en mémoire sans compromettre les performances des applications. En outre, les applications utilisant ChkTag resteront compatibles avec les anciens processeurs ne disposant pas d'un support matériel de ChkTag, simplifiant ainsi la mise en œuvre de la protection.
La méthode de protection mise en œuvre consiste à créer une balise pour chaque bloc de mémoire, qui sert de clé d'accès à cette mémoire (par exemple, dans l'implémentation de MTE, pour chaque 16 octets, une balise de 4 bits est créée). La balise est générée par l'application pour la zone de mémoire allouée à l'aide d'instructions CPU spéciales, puis elle est stockée dans les bits supérieurs non utilisés du pointeur, ainsi que dans une zone de mémoire linéaire/virtuelle réservée et inaccessible aux applications. Lors de l'accès à la mémoire en utilisant un pointeur balisé, le processeur vérifie la correspondance entre la balise associée au pointeur et les balises associées aux blocs de mémoire, et n'autorise l'accès que si les balises correspondent.
La technologie ChkTag a été développée dans le cadre d'une collaboration entre Intel et AMD au sein du groupe EAG (x86 Ecosystem Advisory Group), formé l'année dernière pour travailler ensemble à garantir la compatibilité entre les plateformes x86, à standardiser les interfaces des produits Intel et AMD, à simplifier le développement de logiciels pour les systèmes x86 et à identifier les besoins des développeurs en matière d'extension de l'architecture. En plus d'Intel et d'AMD, les participants au groupe comprennent Linus Torvalds, le créateur du noyau Linux, Tim Sweeney, le fondateur d'Epic Games et l'un des principaux développeurs du moteur de jeu Unreal Engine, ainsi que des représentants des entreprises Broadcom, Dell, Google, Hewlett Packard, Lenovo, Meta, Microsoft, Oracle et Red Hat.
En plus de ChkTag, Intel et AMD ont également standardisé et unifié les mises en œuvre du modèle de traitement des interruptions FRED (Flexible Return and Event Delivery), de l'ensemble d'instructions vectorielles AVX10 et des extensions pour la multiplication de matrices ACE (Advanced Matrix Extensions).
Source : opennet.ru
