Компаниите Intel и AMD съвместно развиват разширен набор от инструкции ChkTag (x86 Memory Tagging), който ще бъде стандартизиран за унифицирана реализация в x86 процесорите на различни производители. По своите възможности ChkTag наподобява разширението MTE (MemTag), което вече се предлага в ARM процесорите, и също така позволява блокиране на експлоатацията на уязвимости, причинени от достъп до вече освободени блокове памет, препълване на буфера или достъп до паметта преди инициализацията.
ChkTag предлага нови процесорни инструкции, които на хардуерно ниво свързват тагове с области в паметта и организират проверка на коректността на използването на указатели. Обявено е, че прилагането на тези инструкции от компилаторите ще осигури безопасна работа с паметта без намаляване на производителността на приложенията. При това приложенията, които използват ChkTag, ще останат съвместими със стари процесори, които нямат хардуерна поддръжка за ChkTag, което ще улесни внедряването на защита.
Реализираният метод на защита се състои в създаването на таг за всеки блок памет, който служи като ключ за достъп до тази памет (например, при реализиране на MTE за всеки 16 байта се създава 4-битов таг). Тагът се генерира от приложението за заделената област памет с помощта на специални инструкции от CPU, след което се съхранява в горните неизползвани битове на указателя, както и в резервираната и недостъпна за приложенията област на линейната/виртуалната памет. При достъп до паметта, използвайки тагиран указател, процесорът проверява съответствието на тага, свързан с указателя, с таговете, свързани с блоковете памет, и разрешава достъпа само ако таговете съвпадат.
Технологията ChkTag е разработена в рамките на съвместната работа на Intel и AMD в групата EAG (Група за съвети относно x86 екосистемата), основана преди година за сътрудничество по осигуряване на съвместимост между платформите x86, стандартизиране на интерфейсите на продуктите на Intel и AMD, опростяване на разработката на софтуер за системи x86 и идентифициране на потребностите на разработчиците от разширяване на архитектурата. Освен Intel и AMD, участници в групата са Линус Торвалдс, създател на ядрото Linux, Тим Суини, основател на Epic Games и един от ключовите разработчици на игровия двигател Unreal Engine, както и представители на компаниите Broadcom, Dell, Google, Hewlett Packard, Lenovo, Meta, Microsoft, Oracle и Red Hat.
В допълнение към ChkTag, компаниите Intel и AMD също стандартизираха и унифицираха реализации на модела за обработка на прекъсвания FRED (Гъвкава доставка на събития и връщане), набора векторни инструкции AVX10 и разширенията за умножение на матрици ACE (Разширени матрични разширения).
Източник: opennet.ru
