Az Intel és az AMD közösen fejleszti a ChkTag (x86 Memory Tagging) kiterjesztett utasításkészletét, amelyet standardizálnak az x86 processzorok egységes megvalósításához különböző gyártók számára. A ChkTag képességei hasonlítanak az ARM processzorokban már elérhető MTE (MemTag) kiterjesztéshez, és lehetővé teszik a már felszabadított memória blokkok, a buffertúltöltés vagy a memória inicializálása előtti hozzáférés miatti sebezhetőségek kihasználásának blokkolását.
A ChkTag új processzor utasításokat kínál, amelyek lehetővé teszik a címkék hardveres szinten történő hozzárendelését a memórián belüli területekhez, valamint a mutatók helyes használatának ellenőrzését. Azt állítják, hogy ezeknek az utasításoknak a fordítók általi alkalmazása biztonságos memóriahasználatot biztosít anélkül, hogy csökkentené az alkalmazások teljesítményét. Ezen felül a ChkTag-ot használó alkalmazások kompatibilisek maradnak a régi processzorokkal, amelyek nem rendelkeznek a ChkTag hardveres támogatásával, megkönnyítve ezzel a védelem bevezetését.
A megvalósított védelmi módszer lényege, hogy minden memória blokkhoz egy címkét rendelünk, ami hasonló a hozzáférési kulcshoz e memória eléréséhez (például az MTE megvalósításában minden 16 bájt után egy 4 bites címkét hoznak létre). A címkét az alkalmazás generálja a memoria területének elkülönítésekor speciális CPU utasítások segítségével, majd elmenti a mutató felső, fel nem használt biteibe, valamint a lineáris/virtuális memória egy fenntartott és az alkalmazások számára elérhetetlen területére. Amikor a memória címkézett mutatóval történik elérése, a processzor ellenőrzi a mutatóhoz rendelt címke és a memória blokkokhoz rendelt címkék megfelelését, és csak akkor engedélyezi a hozzáférést, ha a címkék egyeznek.
A ChkTag technológia az Intel és az AMD közötti együttműködés keretében jött létre az EAG (x86 Ecosystem Advisory Group) csoportban, amely egy évvel ezelőtt alakult a x86 platformok közötti kompatibilitás biztosítása, az Intel és AMD termékek interfészeinek standardizálása, a x86 rendszerek szoftverfejlesztésének egyszerűsítése és a fejlesztők architektúrával kapcsolatos igényeinek feltárása érdekében. Az Intel és AMD mellett a csoport tagjai között megtalálható Linus Torvalds, a Linux kernel alkotója, Tim Sweeney, az Epic Games alapítója és az Unreal Engine játékfejlesztő motor egyik kulcsfontosságú fejlesztője, valamint a Broadcom, Dell, Google, Hewlett Packard, Lenovo, Meta, Microsoft, Oracle és Red Hat cégek képviselői.
A ChkTag mellett az Intel és az AMD a FRED (Flexible Return and Event Delivery) megszakításkezelési modell, az AVX10 vektorinstrukciókészlet és az ACE (Advanced Matrix Extensions) mátrixszorzási kiterjesztések megvalósításait is standardizálták és egységesítették.
Forrás: opennet.ru
