DRAMA: Нова атака дозволяє приховано викрадати дані з ізольованих віртуальних машин



На що проходила з 1 по 4 листопада в Лондоні конференції Black Hat Europe австрійські дослідники представили нову атаку, використовує особливості реалізації взаємодії CPU з DRAM. Метод дозволяє зловмисникам за допомогою JavaScript красти чутливу інформацію прямо з віртуальних машин. Атака отримала назву DRAMA.

Як це працює
Дослідники Андерс Фог (Anders Fogh) і Міхаель Шварц (Michael Шварц) в ході свого виступу продемонстрували кілька крос-процесорних атак. Перша частина дослідження була представлена на заході USENIX Security Symposium в серпні цього року.

На Black Hat автори показали, як зловмисники за допомогою JavaScript можуть перехоплювати невеликі «порції» чутливих даних, начебто паролів або приватних ключів, з віртуальних машин, які навіть не підключені до мережі.

Існує два сценарії розвитку атаки:

  • У першому випадку два процесу — у віртуальній машині і в основній системі — можуть спілкуватися один з одним.
  • У другому — один процес може стежити за адресами пам'яті, який використовує інший.
Розглянемо перший сценарій. Мета атаки в даному випадку полягає в передачі даних з віртуальної машини (ВМ), що має доступ до мережі, в основну систему (ОС), звідки зловмисник вже завантажує її по мережі.

Це можливо завдяки особливості пристрою пам'яті DRAM — зокрема тому, що процес-відправник (знаходиться в ВМ) і процес-одержувач даних (ОС) використовують адреси пам'яті, що знаходяться в одному банку пам'яті (DRAM bank). Механізм працює таким чином, що в тому випадку, якщо процес недавно працював з пам'яттю з певного банку, то повторні звернення будуть проходити швидко.

Якщо відправник працював з пам'яттю між двома зверненнями одержувача, то друге звернення займе більше часу — це буде інтерпретовано як біт 1. У тому випадку, якщо відправник не працював з пам'яттю в проміжок між двома зверненнями, цей факт буде позначений як 0.

Головне завдання тут — отримати адреси в загальному банку пам'яті (або декількох банках для прискорення процесу) і вірно визначити часові точки для взаємодії двох процесів. Для її вирішення автори використовували особливості роботи багатьох сучасних систем — наприклад, в них часто використовуються великі сторінки пам'яті (>2 МБ) і певна частота опитування адреси (на стороні одержувача), яка перевищує частоту запису (на стороні відправника) у кілька разів. Знаючи це дослідники змогли побудувати припущення про поведінку цільової системи.

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

Немає простих способів захисту
Дослідникам вдалося розробити атаку, для проведення якої не потрібно експлуатація будь-які вразливостей або запуск шкідливого софту на хост-системі. Вони просто відкривають прихований канал між віртуальною машиною і основною системою.

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

Дослідники фокусувалися на тестуванні свого методу атаки на платформі Intel x86-64, однак їм вдалося з'ясувати, що інші архітектури — наприклад, ARM-процесори в смартфонах — також уразливі

Оскільки розроблена атака використовує особливості механізму DRAM, простих способів протидії їй не існує, впевнені дослідники. Тим не менш, вони не прогнозують великого числа подібних атак в реальних системах в найближчі роки. Але сама ймовірність таких атак показує, що розробникам потрібно підвищувати захищеність не тільки софта, але і саме «залізо».
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.