З'явилася нова атака на віртуальні машини

Дослідник-безпечники Софія Д'Антуан (Sophia D'Antoine) з Trail of Bits опублікувала в блозі компанії опис нового методу передачі даних між ізольованими віртуальними машинами, процеси яких виконуються на одному фізичному процесорі (так званий метод апаратного стороннього каналу).

Створення стороннього каналу для віртуальних машин не є чимось новим. Існують атаки, засновані на тому, що віртуальні машини, запущені на одній і тій же фізичній машині, використовують один і той же апаратне забезпечення - зокрема, кеш-пам'ять процесора. Так як кожен процес системи здатний керувати станом кеша за допомогою команд вивантаження і завантаження вмісту оперативної пам'яті в кеш-пам'ять, одна віртуальна машина може витягувати з кеша вміст пам'яті інший віртуальної машини. Подібні атаки застосовні для крадіжки ключів шифрування, ідентифікації фізичної машини з віртуальної машини в хмарі, прямого обміну даними між віртуальними машинами через фізичний рівень.

Метод стороннього каналу, запропонований Д'Антуан, полягає в використанні артефактів процесорного конвеєра, що виникають при оптимізації порядку виконання інструкцій (out-of-order execution). Експлойт поміщає в конвеєр потік інструкцій, що провокує зміну порядку виконання. Якщо на тому ж процессорном ядрі виповнюється потік з іншої віртуальної машини, зміна порядку виконання призводить до того, що дані з одного потоку використовуються при обробці іншого потоку. Таким чином, порівнюючи отриманий результат виконання інструкцій з очікуваним результатом, експлойт отримує дані, що належать іншій віртуальній машині.

Дослідник відзначає, що модель пам'яті архітектури x86 / 64 відноситься до суворих, це означає, що навіть при зміні порядку виконання інструкцій конвеєр буде дотримуватися порядку інструкцій завантаження і вивантаження з пам'яті. Але при цьому можуть перемішуватися команди завантаження і вивантаження, що відносяться до різних потоків, що і дозволяє одному потоку «красти» дані іншого.

Але при цьому можуть перемішуватися команди завантаження і вивантаження, що відносяться до різних потоків, що і дозволяє одному потоку «красти» дані іншого

«Висновок в тому, що, навіть якщо ваша віртуальна машина ізольована від чужих віртуальних машин, конвеєр не здатний відрізнити інструкції з ваших процесів від інструкцій чужих процесів, і ми можемо використовувати це в своїх інтересах», - написала Д'Антуан.

Запропонований метод атаки фактично експлуатує фундаментальна вада в процесорної архітектури х86 / 64, що робить скрутним протидія йому. Поки немає повідомлень про створення експлойта докази концепції.

Дополнительная информация

rss
Карта