SQUIP - атака на процесори AMD, що призводить до витоку даних по стороннім каналам

Група дослідників з Грацького технічного університету (Австрія), раніше відома розробкою атак MDS, NetSpectre, Throwhammer і ZombieLoad, розкрила відомості про новий метод атаки по сторонніх каналах (CVE-2021-46778) на черзі планувальника процесорів AMD, які застосовуються для планування виконання різних виконавчих блоках CPU. Атака, що отримала назву SQUIP, дозволяє визначити дані, що використовуються при обчисленнях в іншому процесі або віртуальній машині, або організувати прихований канал зв'язку між процесами або віртуальними машинами, що дозволяє обмінюватися даними в обхід системних механізмів розмежування доступу.

Проблемі схильні до CPU AMD на базі мікроархітектур Zen першого, другого і третього поколінь (AMD Ryzen 2000-5000, AMD Ryzen Threadripper, AMD Athlon 3000, AMD EPYC) при використанні технології одночасної багатопоточності (SMT). Процесори Intel атаці не схильні, тому що в них використовується одна черга планувальника, у той час як у вразливих процесорах AMD для кожного виконавчого блоку застосовуються окремі черги. Як обхідний шлях для блокування витоку інформації компанія AMD рекомендувала розробникам використовувати алгоритми, математичні обчислення в яких завжди виконуються за постійний час, незалежно від характеру даних, що оброблюються, а також уникати розгалуження на основі секретних даних.

Атака заснована на оцінці рівня виникнення конфліктів (contention level) у різних чергах планувальника та проводиться через вимірювання затримок при запуску перевірочних операцій, що виконуються в іншому потоці SMT на тому самому фізичному CPU. Для аналізу вмісту використано метод Prime+Probe, що передбачає заповнення черги еталонним набором значень та визначення змін через час доступу до них при повторному заповненні.

В ході експерименту дослідникам вдалося повністю відтворити закритий 4096-бітовий RSA-ключ, що використовується для створення цифрових підписів за допомогою криптографічної бібліотеки mbedTLS 3.0, в якій для зведення числа в ступінь модуля застосовується алгоритм Монтгомері. Для визначення ключа потрібно виконати 50500 38 трасувань. Загальний час атаки зайняв 0.89 хвилин. Продемонстровано варіанти атаки, що забезпечують витік між різними процесами та віртуальними машинами, керованими гіпервізором KVM. Також показано, що метод можна використовувати для організації прихованої передачі між віртуальними машинами зі швидкістю 2.70 Mbit/s і між процесами зі швидкістю 0.8 Mbit/s при рівні помилок менше XNUMX%.

Джерело: opennet.ru

Додати коментар або відгук