TikTag: атака, която заобикаля защитата на MemTag на ARM процесори

Спекулативен пясъчен ауспух на V8 двигател

Преди няколко дни беше съобщена новината, че Екип от изследователи от университета в Сеул и Samsung разработи техника за атаканаречен TikTag, способен да заобиколете хардуерния защитен механизъм MemTag (Разширение за маркиране на паметта, MTE) на чипове, базирани на архитектурата ARMv8.5-A.

Тази атака използва изтичане на данни в резултат на спекулативно изпълнение на инструкции на процесора за определяне на съдържанието на таговете на паметта (MemTags) на произволни адреси на паметта.

Атаката TikTag ви позволява да идентифицирате тагове, свързани с блокове памет и заобиколете защитата на MemTag. Изследователите демонстрираха осъществимостта на атаката чрез използване на уязвимости в ядрото на Linux и браузъра Chrome. Използвайки последователности от инструкции (джаджи), присъстващи в тези продукти, те извършиха спекулативно изпълнение на код.

Тези джаджи, когато работят в спекулативен режим използвайки код, който работи с указатели, позволяват четене на метаданни на MemTag въз основа на външни условия манипулиран от нападателя. При неправилна прогноза резултатът от спекулативното изпълнение се отхвърля, но получените данни остават в кеша и могат да бъдат възстановени чрез анализ на страничния канал.

MemTag е технология, предназначена да свързва тагове към области на паметта и да извършва проверки за правилно използване на указатели, за да блокира използването на уязвимости като достъп до вече освободени блокове памет, препълване на буфер и достъп преди инициализация. За всеки 16 байта физическа памет се създава 4-битов таг, който действа като ключ за достъп до тази памет.

Приложенията генерират етикета за разпределената област на паметта с помощта на специални инструкции на процесора и го съхранява в горните неизползвани битове на указателя. При достъп до паметта с помощта на етикетиран указател, процесорът проверява дали етикетът, свързан с указателя, съвпада с етикетите на блоковете памет и позволява достъп само ако етикетите съвпадат.

Изтичане на MTE етикет

В проведените тестове, вероятността за успешно преодоляване на MemTag защитата е оценена на 95% ако атаката се изпълни за приблизително 4 секунди. Тази уязвимост представлява значителен риск за сигурността на системите, разчитащи на архитектурата ARMv8.5-A, и подчертава необходимостта от непрекъснати подобрения на механизмите за защита на хардуера.

В обобщение откриваме, че трябва да бъдат изпълнени следните три условия, за да може шаблонът да филтрира MTE етикета: (i)  CHECK трябва да включва поне две натоварвания с guessptr ; (ii)  TEST трябва да има достъп testptr (независимо дали товарене или складиране, зависимо или независимо от CHECK ); и (iii)  CHECK трябва да е близо до BR (по-малко от 5 цикъла на процесора), докато TEST трябва да е далеч от CHECK (повече от 10 цикъла на процесора).

Изследователите споменават това са идентифицирали два вида джаджи, които изпускат информация за MemTags в техниката за атака на TikTag:

  • В първия случай спекулативното изпълнение възниква, когато разклонението е неправилно предвидено и условията за изпълнение на притурката могат да бъдат манипулирани чрез системни извиквания. Този тип джаджа е ефективна при атака на ядрото на Linux.
  • Във втория случай спекулативното изпълнение се възползва от грешки при прогнозиране на връзката между четения и записи, използвайки оптимизация STLF (Store-To-Load-Forwarding). Този тип притурка е полезна за атака на V8 JavaScript двигателя, използван в базирани на Chromium браузъри.

ARM потвърди че Процесорите Cortex-X2, Cortex-X3, Cortex-A510, Cortex-A520, Cortex-A710, Cortex-A715 и Cortex-A720 са податливи към този тип атака, но посочи, че няма планове да прави промени в процесора, за да смекчи този проблем. Те твърдят, че MemTags не са чувствителни данни за приложения при текущата архитектура.

По отношение на смекчаващите мерки, изследователите предлагаме да използвате инструкции като sb или isb, за да деактивирате спекулативното изпълнение по време на критични операции с паметта. Освен това се препоръчва да се включи подпълване на други инструкции между инструкциите за разклоняване и инструкциите за достъп до паметта като допълнителна мярка за предотвратяване на експлоатацията на тези джаджи.

И накрая, заслужава да се спомене, че изследователите Те публикуваха прототип на TikTag атака в GitHub, подчертавайки способността му да използва тези два типа джаджи в уязвими среди.

Ако се интересувате да научите повече за това, можете да се консултирате с подробности в следваща връзка.