Чи можливо, що саме швидкість вашого процесора ставить під загрозу вашу безпеку? Щоб зрозуміти, як процесори досягають своєї швидкості , ми повинні врахувати, що вони працюють, «передбачаючи майбутнє»... Ні, вони не магічні і не мають крихітної кришталевої кулі...
Процесори працюють таким чином, що замість того, щоб чекати, яким шляхом пройде програма, чіп передбачає ймовірний маршрут і передбачає його. Якщо прогноз неправильний, робота відкидається, але сліди залишаються в пам'яті. Саме тут і з'являється Spectre , одна з найважливіших вразливостей, виявлених за останні роки. З моменту її відкриття зловмисники навчилися зчитувати ці сліди, створюючи дедалі складніші варіанти; TONTOU — одна з таких нових вразливостей.
Дослідники Массачусетського технологічного інституту виявили TONTOU (Time-of-Neutralization to Time-of-Use) — нову складну техніку використання вразливостей Spectre v2 , яка дозволяє зчитувати пам'ять ядра з простору користувача.
Хоча виробники та розробники роками розробляли різні механізми захисту від прогнозних атак, зловмисникам вдалося виявити нові маршрути, і це нове дослідження CSAIL демонструє, як обійти ці захисти.
Дослідники виявили, що між моментом очищення буфера та моментом використання прогнозів існує неминучий часовий проміжок , і саме в цей невеликий проміжок код (іноді лише кілька інструкцій) вводиться через системні переривання, що дозволяє повторно забруднити обладнання та витягти критично важливі дані.
Щодо атаки: перебої та порушення Safe-RET
AMD має захист від вразливостей SRSO (Speculative Return Stack Overflow) під назвою Saferet, який очищає механізм прогнозування безпосередньо перед кожним використанням. Це залишає вікно вразливості , яке можна використати за кілька десятків наносекунд. Щоб атакувати таке невелике вікно, дослідники розробили техніку, яку вони назвали «Interrupt Injection».
Процесори постійно призупиняють свої завдання для обробки переривань, і звичайні програми можуть налаштовувати ці таймери . З огляду на це, дослідники точно налаштували таймер і, використовуючи техніку уповільнення процесора, спричинили переривання процесора в невідповідний момент . Під час цього переривання зловмисник може примусово виконати велику кількість викликів, переповнивши стек адрес. Коли помилкове виконання завершується, процесор відкидає процес, але отримані дані залишаються в спільних кешах , звідки їх можна витягти, проаналізувавши час доступу.
Вилучення паролів та тестування на реальних системах
Щоб продемонструвати серйозність TONTOU, команда створила робочий експлойт на системі AMD з поточним ядром Linux. Першою перешкодою було обійти захист, який рандомізує позицію операційної системи в пам'яті, що їм вдалося зробити за десять спроб, займаючи близько дев'яти хвилин на тест.
Згодом вони продемонстрували локальну атаку від імені непривілейованого користувача для визначення хешу пароля root, успішно витягуючи дані зі швидкістю 5.47 байт за секунду з точністю 91.97%. У 50% тестів (які тривали в середньому 18 хвилин) їм вдалося виявити та витягти вміст файлу паролів. Хоча це низька швидкість, її більш ніж достатньо для критичного зломлення сервера.
Вплив на Intel, AMD та патч для пом'якшення наслідків
Команда протестувала чотири покоління процесорів Intel та AMD, досягнувши збоїв прогнозування на обох архітектурах. Хоча метод виявився життєздатним на сімействах AMD Zen 1–4 , на чіпах Intel атака обійшла два різні захисти , хоча між різними поколіннями Intel спостерігалася невідповідна поведінка , що свідчить про те, що номінальні засоби захисту реалізовані по-різному в апаратному забезпеченні.
Як рішення, дослідники пропонують очистити механізм прогнозування вдруге після завершення переривання. Хоча цей захід видається життєздатним для AMD, він може бути контрпродуктивним для Intel, оскільки атака залежить від того, що переривання залишає узгоджений стан, і може зробити атаку надійнішою.
Дослідники повідомили AMD та Intel на початку лютого, а розробників ядра Linux — у березні. В результаті, 5 серпня блокування коду для зменшення вразливості було інтегровано в ядро Linux.
Зрештою, якщо ви зацікавлені дізнатися більше, ви можете знайти деталі за наступним посиланням.