Intel y AMD están desarrollando conjuntamente un conjunto extendido de instrucciones ChkTag (Etiquetado de Memoria x86), que se estandarizará para su implementación unificada en procesadores x86 de diversos fabricantes. Las capacidades de ChkTag son similares a las de la extensión MTE (MemTag) ya disponible en procesadores ARM y, además, impiden la explotación de vulnerabilidades causadas por el acceso a bloques de memoria ya liberados, desbordamientos de búfer o acceso a la memoria antes de la inicialización.
ChkTag introduce nuevas instrucciones de procesador que permiten la vinculación de etiquetas a ubicaciones de memoria a nivel de hardware y la verificación del uso de punteros. Se espera que los compiladores utilicen estas instrucciones para garantizar un acceso seguro a la memoria sin afectar el rendimiento de la aplicación. Además, las aplicaciones que usan ChkTag seguirán siendo compatibles con procesadores antiguos que no son compatibles con ChkTag por hardware, lo que simplifica la implementación de la protección.
El método de protección implementado implica la creación de una etiqueta para cada bloque de memoria, que actúa como clave de acceso a dicha memoria (por ejemplo, en la implementación de MTE, se crea una etiqueta de 4 bits por cada 16 bytes). La aplicación genera la etiqueta para el área de memoria asignada mediante instrucciones especiales de la CPU y luego la almacena en los bits superiores no utilizados del puntero, así como en un área reservada de memoria lineal/virtual inaccesible para las aplicaciones. Al acceder a la memoria mediante un puntero etiquetado, el procesador comprueba si la etiqueta asociada al puntero coincide con las etiquetas asociadas a los bloques de memoria y solo concede acceso si las etiquetas coinciden.
La tecnología ChkTag se desarrolló como parte del trabajo conjunto de Intel y AMD en el EAG (Grupo Asesor del Ecosistema x86), formado hace un año para colaborar en garantizar la compatibilidad entre plataformas x86, estandarizar las interfaces entre productos de Intel y AMD, simplificar el desarrollo de software para sistemas x86 e identificar las necesidades de los desarrolladores en cuanto a extensiones de arquitectura. Además de Intel y AMD, entre los miembros del grupo se encuentra Linus Torvalds, el creador del kernel. LinuxTim Sweeney, fundador de Epic Games y uno de los desarrolladores clave del motor de juegos Unreal Engine, así como representantes de Broadcom, Dell, Google, Hewlett Packard, Lenovo, Meta, Microsoft, Oracle y Red Hat.
Además de ChkTag, Intel y AMD también estandarizaron y unificaron las implementaciones del modelo de manejo de interrupciones Flexible Return and Event Delivery (FRED), el conjunto de instrucciones vectoriales AVX10 y las extensiones de multiplicación de matrices Advanced Matrix Extensions (ACE).
Fuente: opennet.ru
