Нова спекулятивна атака під назвою TIKTAG націлена на розширення тегування пам’яті (MTE) ARM для витоку даних з імовірністю успіху понад 95%, що дозволяє хакерам обійти функцію безпеки.
Як повідомляє BleepingComputer, документ, підписаний групою корейських дослідників із Samsung, Сеульського національного університету й Технологічного інституту Джорджії, демонструє атаку на Google Chrome і ядро Linux.
MTE – це функція, додана в архітектуру ARM v8.5-A (і пізніших версій), призначена для виявлення та запобігання пошкодженню пам’яті.
Система використовує тегування з низькими витратами, призначаючи 4-бітові теги 16-байтовим фрагментам пам’яті, щоб захистити від атак пошкодження пам’яті, гарантуючи, що тег у покажчику відповідає області пам’яті, до якої здійснюється доступ.
MTE має три режими роботи: синхронний, асинхронний і асиметричний, збалансовуючи безпеку і продуктивність.
Дослідники виявили, що використовуючи два гаджети (код), а саме TIKTAG-v1 і TIKTAG-v2. Вони можуть використовувати спекулятивне виконання для витоку тегів пам’яті MTE із високим коефіцієнтом успішності й за короткий проміжок часу.
Витік цих тегів не відкриває конфіденційні дані, як-от паролі, ключі шифрування чи особисту інформацію. Проте теоретично це може дозволити зловмисникам підірвати захист, наданий MTE, зробивши систему безпеки неефективною проти прихованих атак із пошкодженням пам’яті.
TIKTAG атакує
TIKTAG-v1 використовує скорочення спекуляцій у прогнозуванні розгалужень і поведінці попередньої вибірки даних ЦП для витоку тегів MTE.
Дослідники виявили, що TIKTAG-1 ефективний в атаках на ядро Linux, в основному функції, які включають спекулятивний доступ до пам’яті, хоча потрібні деякі маніпуляції з покажчиками ядра.
Зловмисник використовує системні виклики для виклику спекулятивного шляху виконання та вимірює стан кешу для визначення тегів пам’яті.
TIKTAG-v2 використовує поведінку перенаправлення від магазину до завантаження у спекулятивному виконанні, послідовність, коли значення зберігається за адресою пам’яті та негайно завантажується з тієї ж адреси.
Якщо теги збігаються, значення пересилається і завантаження виконується успішно, впливаючи на стан кешу, тоді як у разі невідповідності пересилання блокується, а стан кешу залишається незмінним.
Таким чином, досліджуючи стан кешу після спекулятивного виконання, можна зробити висновок про результат перевірки тегів.
Дослідники продемонстрували ефективність гаджетів TIKTAG-v2 проти браузера Google Chrome, зокрема двигуна V8 JavaScript, що відкриває шлях до використання вразливостей, пов’язаних із пошкодженням пам’яті у процесі візуалізації.
Засоби пом’якшення атак TIKTAG:
- Змініть конструкцію апаратного забезпечення, щоб запобігти спекулятивному виконанню змінювати стани кешу на основі результатів перевірки тегів.
- Вставте спекулятивні бар’єри (наприклад, інструкції sb або isb), щоб запобігти спекулятивному виконанню критичних операцій пам’яті.
- Додайте інструкції доповнення, щоб розширити вікно виконання між інструкціями розгалуження та доступами до пам’яті.
- Перевірте механізми ізольованого програмного середовища, щоб обмежити спекулятивні шляхи доступу до пам’яті виключно безпечними регіонами пам’яті.
Хоча ARM визнала серйозність ситуації й опублікувала бюлетень кілька місяців тому, вона не вважає це компромісом вказаної функції.
«Оскільки теги розподілу не повинні бути секретом програмного забезпечення в адресному просторі, спекулятивний механізм, який розкриває правильне значення тегу, не вважається компромісом принципів архітектури», – йдеться в бюлетені ARM.
Команда безпеки Chrome визнала наявність проблем, але вирішила не виправляти вразливості, оскільки пісочниця V8 не призначена для гарантування конфіденційності даних пам’яті й тегів MTE.
Крім того, браузер Chrome наразі не вмикає захист на основі MTE за замовчуванням, що робить його менш пріоритетним для негайних виправлень.
Раніше ми повідомляли, що було випущено Kali Linux 2024.2 із 18 новими інструментами, змінами Y2038.
Підписуйтеся на ProIT у Telegram, щоб не пропустити жодної публікації!