Нов вариант на BHI засяга Linux на компютри с Intel и Apple силикон

inspectre-джаджа

InSpecter Gadget доказа своята ефективност чрез представяне на първия нативен Spectre-v2 експлойт

Отскоро в екипа Изследователи пуснаха новината за нов вариант на BHI, наречен "Native BHI" и вече е каталогизиран под CVE-2024 2201-. Този метод позволява на базирани на Intel системи да получат достъп до съдържанието на паметта на ядрото на Linux чрез изпълнение на експлойт от потребителското пространство.

Този нов вариант беше открит от „InSpectre Gadget“ инструмент, проектиран от изследователи за откриване на общи уязвимости. Използва усъвършенствани техники за символно изпълнение, за да изследва устройства Spectre в детайли и оценете неговата експлоатируемост. Този инструмент не само идентифицира устройства, които могат да се използват, но също така моделира сложни техники за експлоатация, за да разбере по-добре заплахата, която представляват тези устройства.

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

Native BHI представя различна техника за използване на уязвимостта на BHI избягване на прилагани преди това методи за защита. BHI включваше използване на уязвимост в процесора на ниво привилегии, чрез изпълнение на заредена от потребителя eBPF програма в ядрото. За да смекчи този тип атака, достъпът до изпълнението на eBPF код беше ограничен до потребители без привилегии.

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

BHI представлява еволюция на атаката Spectre-v2, при която буферът за история на разклонения (BHB) вместо целевият буфер за разклонения (BTB) се манипулира, за да се заобиколят допълнителни защити (Intel eIBRS и Arm CSV2) и да се получи достъп до чувствителни данни. BHB е от решаващо значение за подобряване на точността на прогнозирането на разклоненията чрез отчитане на историята на минали преходи в процесора. По време на BHI атаката историята на прехода се манипулира, за да причини неправилно прогнозиране и да изпълни спекулативни инструкции, което води до изтичане на данни в кеша.

За разлика от атаката Spectre-v2, BHI се фокусира върху използването на BHB вместо BTB, тъй като нападателят създава условия за спекулативна операция вземете адреса на определената област, последван от спекулативен индиректен скок, който оставя адреса за скок в кеша. След това се използва анализ на времето за достъп до кеша и без кеша, за да се извлекат данни от кеша.

За противодействие на Native BHI атака се използват инструкции като Intel IBT (Indirect Branch Tracking) и защитния механизъм FineIBT в ядрото на Linux. FineIBT съчетава хардуерни инструкции на IBT със софтуерна защита kCFI (интегритет на контролния поток на ядрото), за да блокира отклонения от нормалния контролен поток. Това се постига чрез разрешаване на индиректно изпълнение на преход само в случай на прескачане към инструкцията ENDBR, поставена в началото на функцията, и чрез проверка на хешовете, за да се гарантира целостта на указателите.

Струва си да се спомене това беше внедрен в ядрото на Linux, допълнителен режим на защита, предлаган от Intel и допълнително алтернативна софтуерна защита, внедрена за KVM хипервайзора. Решението е интегрирано във всички текущи версии на ядрото и в допълнение разработчиците на хипервайзора Xen пуснаха решение, базирано на режима BHI_DIS_S, за ограничаване на прогнозите въз основа на историята на прехода.

За да демонстрират уязвимостта, изследователите са разработили експлойт от идентифицираните устройства, позволявайки низ с хеша на паролата на root потребителя да бъде извлечен от файла /etc/shadow, намиращ се в буферите на ядрото. Този процес има скорост на възстановяване на данни от приблизително 3,5 KB в секунда.

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