Изследователи откриха начин да заобиколят последните защити срещу атаки по страничен канал, свързани със спекулативно изпълнение от тип Spectre v2, и разработиха експлоит за извличане на секретна информация от машини под Linux.

Методът работи срещу защитите за Spectre v2 при процесори на AMD и Intel, които се основават на прочистване или изолиране на предсказателите на разклонения, които изследователите наричат накратко „защити, базирани на неутрализация“.

Spectre v2 е известен също като Branch Target Injection (BTI) и е вариант на класа уязвимости Spectre.

Той експлоатира индиректния предсказател на разклонения на процесора и го кара да предвиди погрешно целта на индиректно разклонение, което води до спекулативно изпълнение по път на кода, повлиян от атакуващия.

Модерните процесори използват предсказване на разклонения, за да отгатнат най-вероятния път на изпълнение, и спекулативно изпълнение, за да стартират инструкции по този предвиден път, преди резултатът от разклонението да е известен.

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

При защитите, базирани на неутрализация (eIBRS при Intel и Safe RET при AMD), съществува времеви прозорец между момента, в който предсказателят на разклонения се изолира, и момента, в който се използва от разклонението на жертвата.

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

Изследователите обаче представиха примитив, който позволява повторно заразяване на състоянието на процесора след изчистването, но преди то да бъде използвано.

Даниел Трухильо, докторант, и доцент Менгджия Ян от Лабораторията за компютърни науки и изкуствен интелект на MIT (CSAIL) откриха техника за експлоатиране на този прозорец от времето на неутрализация до времето на използване (TONTOU), за да извличат чувствителни данни.

„Атакуващият, без да има специален достъп, може да чете произволна памет от системата, включително чувствителни данни като хеширани пароли“, споделя Трухильо пред BleepingComputer.

Изследователите са разработили атака с инжектиране на прекъсвания (Interrupt Injection), при която „непривилегировани потребителски програми могат да планират таймерни прекъсвания, които да възникнат по време на изпълнение на ядрото“.

„Следователно можем да принудим ядрото да бъде пренасочено към инструмента за обработка на прекъсвания и да използваме този инструмент, за да заразим микроархитектурните състояния в рамките на прозореца след неутрализацията“, обясняват изследователите.

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

Ян и Трухильо тестваха атаката, тръгвайки от предположението, че атакуващият може да изпълнява произволен, непривилегирован код на целева Linux машина, за да извлича данни от ядрото.

На AMD Zen 2 хост с най-новите защити за Spectre v2, двамата изследователи успешно преминаха през всички етапи на TONTOU атака: неутрализация, пренасочване, заразяване и използване на заразените предсказатели на разклонения.

Успешното експлоатиране на проблема изисква преодоляване на няколко препятствия, включително пренасочване на контролния поток на ядрото, прецизно съгласуване на прекъсванията с прозореца след неутрализация и използване на инструмента за обработка на прекъсвания за заразяване на записа в предсказателя на разклонения, свързан с целевото индиректно разклонение.

Изследователите се справят с тези предизвикателства чрез инсталиране на „таймери“ за задействане на хардуерни прекъсвания, често инжектиране на прекъсвания и чрез активни и пасивни методи за заразяване.

Атаката е тествана както на процесори на Intel, така и на AMD. На система с AMD Zen 2, работеща с Linux версия 6.14.0-37-generic с 16GB RAM, изследователите демонстрираха, че тя може да извлича произволна памет от ядрото със скорост от 5.47 байта в секунда и 91.97% точност, включително съдържанието на файла /etc/shadow, в който се съхраняват хешовете на паролите.

В рамките на 10 тестови пускания атаката успешно локализира и извлече файла в пет от случаите, като всеки опит отнема средно 18 минути.

Макар че атаката е възможна и на машини с Intel, те отбелязаха, че допълнителните софтуерни изисквания правят задачата по-сложна.

Изследователите отбелязват, че инжектирането на прекъсвания позволява контролирано от атакуващия заразяване на буфера на стека за връщане (RSB), причинявайки спекулативни грешни предвиждания на целите за връщане.

Тъй като пасивното замърсяване на RSB е по-малко надеждно, те комбинират инжектирането на прекъсвания с Inception – по-рано разкрита атака, за чието разработване е помогнал Даниел Трухильо.

От AMD публикуваха становище днес, в което се отбелязва, че проблемът с инжектирането на прекъсвания „изглежда е свързан“ с начина, по който в Linux е имплементирана защитата Safe RET срещу потенциални атаки за разкриване на информация.

Даниел Трухильо и Менгджия Ян представиха своите констатации днес на конференцията за сигурност Black Hat USA. Те също така ще споделят подробностите на USENIX Security 2026 между 27 и 29 октомври.