Екип от изследователи от Свободния университет в Амстердам и IBM

...
Екип от изследователи от Свободния университет в Амстердам и IBM
Коментари Харесай

Това няма да има край: GhostRace е хардуерна атака срещу механизма за спекулативно изпълнение в процесорите на Intel, AMD, ARM и IBM

Екип от откриватели от Свободния университет в Амстердам и IBM е създал нов вид на офанзива против механизма за спекулативно осъществяване в актуалните процесори. Той носи кодовото име GhostRace (CVE-2024-2193). Проблемът се демонстрира в процесорите, създавани от Intel, AMD, ARM и IBM. За да се показват правилата на офанзивата, е оповестен първообраз на експлойт, който разрешава добиване на данни от паметта на ядрото на Linux със скорост 12 KB в секунда. Нивото на надеждност е типично за офанзивите от клас Spectre. При офанзивите против системите за виртуализация атакуващият от гостуваща система може да дефинира наличието на паметта на хост средата или на другите гостуващи системи.

Предложеният способ за офанзива манипулира възникването на спекулативни условия на конкуренция. Те могат да доведат до достъп до към този момент освободени области от паметта, ако процесорът погрешно предвижда разклоненията в кода, който извършва условни интервенции с примитиви за синхронизация на влакна, като mutex и spinlock. Получените спекулативни достъпи до паметта се отхвърлят от процесора след разкриване на неправилното предсказание. Само че следите от тяхното осъществяване се съхраняват в кеша на процесора и по-късно могат да бъдат възобновени посредством разбор от трети страни.

Подобно на експлоатирането на уязвимостта Spectre v1, офанзивата GhostRace изисква съществуването на избрани последователности от указания (gadgets) в ядрото. Именно те водят до спекулативно осъществяване на код според от външните условия, които могат да бъдат повлияни от атакуващия. За задачите на оптимизацията процесорът стартира да извършва такива програмни фрагменти в умозрителен режим. Ноа в случай че по-късно откри, че предсказването на условния преход се е провалило, връща интервенциите в начално положение.

Атаката се образува от елементи от кода, в които положението се ревизира в безконечен цикъл и цикълът се приключва след унищожаване на блокировката за достъп до даден запас. Съответно по време на спекулативното осъществяване на инструкциите е допустимо да се реализира подправено задействане на прехода и осъществяване на набора от указания, предпазени от блокировката. Въпреки обстоятелството, че в реалност блокировката на ресурса остава отключена.

За да се блокира офанзивата, се предлага да се употребява сериализация на примитивите за синхронизация. Тоест да се добави процесорната директива LFENCE след инструкцията cmpxchq, която ревизира положението на заключване. Методът за отбрана, препоръчан за включване в ядрото на Linux, води до понижаване на продуктивността с почти 5% при прекосяване на теста LMBench. Причината е, че извикването LFENCE не разрешава изпреварващото осъществяване на идващите указания, преди да е завършило заключването на всички предходни интервенции.

Какво ще е забавянето в Оценка за съвместимост Windows към този момент не е известно.

Източник: kaldata.com

СПОДЕЛИ СТАТИЯТА


Промоции

КОМЕНТАРИ
НАПИШИ КОМЕНТАР