TONTOU – атака срещу CPU Intel и AMD, позволяваща да се заобиколи защитата от уязвимости Spectre v2.

Изследователи от Масачузетския технологичен институт откриха техника за атака TONTOU (Време на неутрализация до време на използване), която предлага нов начин за експлоатация на микроархитектурни уязвимости от клас Spectre v2. Уязвимостта позволява определянето на съдържанието на паметта на ядрото по време на изпълнението на експлойта в пространството на потребителя. Кодът за блокиране на експлоатацията на уязвимостта беше приет в ядрото на Linux на 5 август и включен в версии 7.1.7, 6.18.43, 6.12.102, 6.6.149, 6.1.181, 5.15.214 и 5.10.263.

Изследователите показаха възможността локален непривилегирован потребител да извърши атака за определяне на хаша на паролата на потребителя root, съхраняван в файла /etc/shadow и зареден в паметта по време на аутентикацията в системата. Успяха да постигнат изтичане на данни от паметта на ядрото с производителност 5.47 байта в секунда и точност 91.97%. От 10 тестови стартирания на експлойта, които средно продължиха 18 минути, в половината случаи успяха успешно да определят наличието на файла /etc/shadow в паметта и да извлекат съдържанието му.

Експлойтът беше демонстриран на системи с AMD процесори и може да се прилага с CPU AMD от семейства Zen 1-4. На системи с Intel атаката също е възможна, но експлоатацията е по-сложна. За защита от препълване на стека на адресите за връщане и блокиране на уязвимостта SRSO (Спекулативно препълване на стека за връщане) в AMD процесорите се използва защитен механизъм Safe-RET, който изчиства буфера за предсказване на преходи след всяка употреба и свива прозореца за провеждане на атака до 2 инструкции, изпълнявани за няколко десетки наносекунди.

За да се заобиколи тази защита и да се разшири прозорецът за осъществяване на атака, е реализирана техника за забавяне на CPU, която позволява на атакуващия да извърши подмяна на прекъсването в точния момент, за да пренасочи потока на изпълнение в ядрото и да използва обработчика на прекъсвания за модифициране на записа в буфера за предсказване на преходи. За експлоатация на уязвимостта SRSO, атакуващият може да създаде условия, при които блокът за предсказване на преходи спекулативно да извърши голям брой неправилно предсказани извиквания CALL, достатъчни за да пренасочи стека на адресите за връщане и да презапише правилно предсказаните точки за връщане, разположени в началото на стека. В крайна сметка, началните елементи на стека могат да бъдат презаписани с избраните от атакуващия стойности, което впоследствие ще доведе до използването на тези заменени стойности при спекулативното изпълнение на инструкциите RET в контекста на друг процес.

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

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

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