Нова атака BHI върху Intel CPU, която позволява заобикалянето на защитата в ядрото на Linux

Група изследователи от Свободния университет на Амстердам откри нов метод на атака „Native BHI“ (CVE-2024-2201), който позволява на системи с Intel процесори да определят съдържанието на ядрото на Linux при изпълнение на експлойт в пространството на потребителя. Прилагането на атаката върху системи за виртуализация позволява на атакуващия от гост-система да определи съдържанието на паметта на хост-околната среда или на други гост-системи.

Методът Native BHI предлага нова техника за експлоатация на уязвимостта BHI (Branch History Injection, CVE-2022-0001), която заобикаля предишно реализираните защити. Предложеният през 2022 година метод на атака BHI предвиждаше експлоатация на уязвимостта в рамките на един и същи ниво на привилегии, като експлойтът се основаваше на изпълнението на eBPF програма, заредена от потребителя в ядрото. За да се блокира уязвимостта, достатъчно е да се ограничи достъпът до изпълнение на кода на eBPF за обикновените потребители.

Новият метод Native BHI не изисква достъп до eBPF и позволява атака от непривилегирован потребител в пространството на потребителя. Методът се основава на изпълнението на съществуващи в кода на ядрото гаджети — последователности от команди, които водят до спекулативно изпълнение на инструкции. За намирането на подходящи гаджети в ядрото е разработен специален инструментариум InSpectre Gadget, който при анализа на ядрото 6.6-rc4 е открил 1511 Spectre гаджета и 2105 помощни гаджета за управление.

Нова атака BHI върху Intel CPU, която позволява заобикалянето на защитата в ядрото на Linux

Въз основа на намерените гаджети, изследователите са подготвили експлойт, който позволява извличането на паролата на потребителя root, заредена от файла /etc/shadow, от буферите на ядрото. Скоростта на извличане на данни от паметта на ядрото е приблизително 3.5 Кб в секунда.

Възпроизведи видео

Метод BHI представлява разширен вариант на атака Spectre-v2, при който за заобикаляне на добавената защита (Intel eIBRS и Arm CSV2) и организиране на leaking на данни се използва заместване на стойности в буфер с глобална история на преходите (Branch History Buffer), използван в CPU за повишаване на точността на предсказване на клонове чрез вземане под внимание на историята на миналите преходи. По време на атаката чрез манипулации с историята на преходите се създават условия за неправилно предсказване на прехода и спекулативно изпълнение на необходимите инструкции, резултатът от което остава в кеша.

Разликите от атаката Spectre-v2 се състоят в използването на буфер с история на преходите (Branch History Buffer) вместо буфер за предсказване на клонове (Branch Target Buffer). За извличане на данни от паметта, атакуващият трябва да създаде условия, при които при изпълнение на спекулативна операция адресът да бъде взет от област, която трябва да се определи. След изпълнението на спекулативния индиректен преход, считаният от паметта адрес на прехода остава в кеша, след което за неговото извличане може да се приложи един от начините за определяне на съдържанието на кеша на базата на анализ на промяната на времето на достъп до прокеширани и не прокеширани данни.

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

За защита от новия вариант на атака в ядрото на Linux е добавена промяна с реализация на допълнителен режим на защита, който използва предложените от компанията Intel хардуерни средства за защита (BHI_DIS_S) или алтернативна софтуерна защита, реализирана за защита на хипервизора. KVM. Разработчиците на хипервизора Xen също пуснаха корекция, основана на използването на режима BHI_DIS_S, който ограничава предсказанията на базата на историята на преходите. Подкрепата за BHI_DIS_S е налична в процесори, започващи с Intel Alder Lake, както и в сървърни CPU, започващи с Intel Sapphire Rapids. Достъпен е и софтуерен режим на защита, основан на използването на последователности за изчистване на буфера на историята на преходите, но той води до по-значително намаляване на производителността.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster