Le aziende Intel e AMD stanno sviluppando congiuntamente un insieme avanzato di istruzioni ChkTag (x86 Memory Tagging), che sarà standardizzato per un'implementazione unificata nei processori x86 di diversi produttori. In termini di funzionalità, ChkTag ricorda l'estensione MTE (MemTag), già fornita nei processori ARM, e consente di bloccare l'esploitazione delle vulnerabilità causate dall'accesso a blocchi di memoria già liberati, da overflow di buffer o dall'accesso alla memoria prima dell'inizializzazione.
ChkTag offre nuove istruzioni per processori che consentono, a livello hardware, di associare tag a aree di memoria e di organizzare la verifica della correttezza nell'uso dei puntatori. È stato dichiarato che l'uso di tali istruzioni da parte dei compilatori garantirà un utilizzo sicuro della memoria senza compromettere le prestazioni delle applicazioni. Inoltre, le applicazioni che utilizzano ChkTag rimarranno compatibili con i vecchi processori privi di supporto hardware per ChkTag, semplificando così l'implementazione della protezione.
Il metodo di protezione implementato consiste nella creazione di un'etichetta per ogni blocco di memoria, che funge da chiave per accedere a quella memoria (ad esempio, nell'implementazione MTE, per ogni 16 byte vengono generati 4 bit di etichetta). L'etichetta viene generata dall'applicazione per l'area di memoria allocata utilizzando istruzioni speciali della CPU e quindi viene memorizzata nei bit superiori non utilizzati del puntatore, così come in un'area di memoria lineare/virtuale riservata e inaccessibile alle applicazioni. Quando si accede alla memoria utilizzando un puntatore etichettato, la CPU verifica la corrispondenza dell'etichetta associata al puntatore con le etichette associate ai blocchi di memoria, consentendo l'accesso solo se le etichette coincidono.
La tecnologia ChkTag è stata sviluppata grazie alla collaborazione tra Intel e AMD all'interno del gruppo EAG (x86 Ecosystem Advisory Group), formato un anno fa per cooperare nel garantire la compatibilità tra le piattaforme x86, standardizzare le interfacce dei prodotti Intel e AMD, semplificare lo sviluppo di software per sistemi x86 e identificare le esigenze degli sviluppatori per l'espansione dell'architettura. Oltre a Intel e AMD, i partecipanti al gruppo includono Linus Torvalds, creatore del kernel Linux, Tim Sweeney, fondatore di Epic Games e uno dei principali sviluppatori del motore di gioco Unreal Engine, così come rappresentanti di aziende come Broadcom, Dell, Google, Hewlett Packard, Lenovo, Meta, Microsoft, Oracle e Red Hat.
Oltre a ChkTag, le aziende Intel e AMD hanno anche standardizzato e unificato le implementazioni del modello di gestione delle interruzioni FRED (Flexible Return and Event Delivery), del set di istruzioni vettoriali AVX10 e delle estensioni per il moltiplicatore di matrici ACE (Advanced Matrix Extensions).
Fonte: opennet.ru
