Витік даних через кільцеву шину CPU Intel

Група дослідників з університету Іллінойсу розробила нову техніку атаки по сторонніх каналах, що маніпулює витоком інформації через кільцеву шину (Ring Interconnect) процесорів Intel. Атака дозволяє виділяти відомості про роботу з пам'яттю в іншій програмі та відстежувати інформацію про час натискання клавіш. Дослідники опублікували інструментарій для проведення супутніх вимірів та кілька прототипів експлоїтів.

Запропоновано три експлоїти, які дозволять:

  • Відновити окремі біти ключів шифрування при використанні реалізацій RSA та EdDSA, вразливих до атак по сторонніх каналах (якщо затримки при обчисленні залежать від даних). Наприклад, витоку окремих бітів з інформацією про вектор ініціалізації (nonce) EdDSA достатньо застосування атак по послідовному відновленню всього закритого ключа. Атака труднореализуемая практично і може бути здійснена за великої кількості застережень. Наприклад, успішна експлуатація показана при відключенні SMT (HyperThreading) та сегментування LLC-кешу між ядрами CPU.
  • Визначити параметри затримки між натисканням клавіш. Затримки залежать від положення клавіш і дозволяють через проведення статистичного аналізу з певною ймовірністю відтворити дані, що вводяться з клавіатури (наприклад, більшість людей зазвичай набирають «s» після «a» значно швидше, ніж «g» після «s»).
  • Організувати прихований канал зв'язку для передачі даних між процесами зі швидкістю близько 4 мегабіт в секунду, в якому не використовується пам'ять, що розділяється, процесорний кеш і специфічні для ядер CPU ресурси і процесорні структури. Зазначається, що запропонований метод створення прихованого каналу дуже важко блокувати існуючими методами захисту від атак сторонніми каналами.

Експлоїти не вимагають підвищених привілеїв та можуть бути використані звичайними непривілейованими користувачами. Зазначається, що потенційно атака може бути адаптована для організації витоку даних між віртуальними машинами, але це питання вийшло за рамки дослідження та тестування систем віртуалізації не проводилося. Запропонований код випробуваний на CPU Intel i7-9700 в оточенні Ubuntu 16.04. Загалом метод атаки протестований на настільних процесорах сімейства Intel Coffee Lake і Skylake, а також потенційно застосовний до серверних процесорів Xeon сімейства Broadwell.

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

Атаки на внутрішні шини CPU утруднені відсутністю інформації про архітектуру та методи роботи шини, а також високим рівнем шуму, що ускладнює виділення корисних даних. У принципах роботи шини вдалося розібратися через проведення зворотного інжиніригу протоколів, які застосовуються під час передачі даних через шину. Для відокремлення корисної інформації від шуму було застосовано модель класифікації даних, засновану на методах машинного навчання. Запропонована модель дозволила організувати моніторинг затримок при обчисленнях у конкретному процесі, в умовах коли кілька процесів одночасно звертаються до пам'яті та певна частина даних надається з процесорних кешів.

Додатково можна відзначити виявлення слідів застосування під час атак на системи Linux експлоїту для першого варіанта вразливості Spectre (CVE-2017-5753). Виток інформації по стороннім каналам в експлоїті використовується для пошуку суперблоку в пам'яті, визначення inode файлу /etc/shadow і обчислення адреси сторінки пам'яті для вилучення файлу з дискового кешу.

Джерело: opennet.ru

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