Американські дослідники знайшли спосіб обійти механізми захисту від вразливостей класу Spectre v2 для процесорів AMD та Intel і розробити експлойт для крадіжки даних з машин під керуванням Linux.

Джерело зображення: Brian Kostiuk / unsplash.com
Схема атаки на вразливості класу Spectre v2 базується на експлуатації механізму непрямого передбачувача гілок на процесорі — вона змушує процесори неправильно передбачати ціль непрямої гілки, внаслідок чого стає можливим виконати код, на який впливає зловмисник, і це загрожує витоком конфіденційних даних. Для захисту від Spectre v2 розроблено рішення Intel eIBRS та AMD Safe RET.
Активні методи захисту від Spectre v2 виходять з того, що зловмисник не зможе використати на свою користь невеликий проміжок часу між очищенням стану передбачувача гілок та його використанням. Але дослідники розробили спосіб, який дозволяє повторно втручатися у стан процесора після ізоляції його стану, але до використання результатів передбачення. Схему атаки вони назвали TONTOU — «від часу нейтралізації до часу використання».
Під час атаки відбувається впровадження переривань, при якому «непривілейовані користувацькі програми можуть планувати переривання за таймером» під час роботи ядра. Обробник переривань використовується для зміни станів процесора на рівні мікроархітектури станів після нейтралізації базової загрози Spectre v2. Для успішної реалізації схеми атаки доводиться задіяти кілька ресурсів: перенаправляти потік керування ядра, точно вирівнювати переривання за часом після нейтралізації Spectre v2 та використовувати обробник переривань для підстановки потрібних даних до записів передбачувача гілок.
Атака застосовна до систем на процесорах Intel та AMD. У випадку процесора AMD Zen 2 на системі з 16 Гбайт оперативної пам’яті під Linux 6.14.0-37 вони досягли вилучення даних зі швидкістю 5,47 байт/с з точністю 91,97 %. У п’яти випадках з десяти це дозволило витягти дані каталогу «/etc/shadow», в якому зберігаються хеші паролів, в середньому за 18 хвилин. Атака на системи з процесорами Intel здійснюється за складнішою схемою. В AMD припустили, що проблема пов’язана з особливостями реалізації захисного механізму Safe RET під Linux.
За даними порталу: 3dnews.ru
