Google демонструє використання вразливостей Spectre за допомогою JavaScript у браузері

Google представив кілька днів тому різні експериментальні прототипи які демонструють можливість використання вразливостей класу Spectre при виконанні коду JavaScript у браузері, без проходження вищезазначених методів безпеки.

Експлойти можна використовувати для отримання доступу до пам'яті процесу який обробляє веб-вміст на поточній вкладці. Для тестування експлуатації експлоїту було запущено веб-сайт із негерметичною сторінкою, а код, що описує логіку операції, розміщений на GitHub.

Пропонований прототип призначений для системи атаки з Процесори Intel Core i7-6500U в середовищі Linux та Chrome 88, хоча це не виключає можливості внесення змін для використання експлоїту в інших середовищах.

Спосіб операції не є специфічним для процесори Intel: після належної адаптації, Експлойт підтверджено для роботи на системах із сторонніми центральними процесорами, включаючи Apple M1 на базі архітектури ARM. Після незначних допрацювань експлойт також працює на інших операційних системах та інших браузерах на базі движка Chromium.

В середовищі, заснованому на стандартних процесорах Chrome 88 та Intel Skylake, ми досягли витоку даних із процесу, відповідального за рендеринг веб-вмісту на поточній вкладці Chrome (процес візуалізації) зі швидкістю 1 кілобайт на секунду. Крім того, були розроблені альтернативні прототипи, наприклад, експлойт, що дозволяє за рахунок зниження стабільності збільшити швидкість витоку до 8 кБ / с при використанні таймера performance.now () з точністю до 5 мікросекунд (0.005 мілісекунд ). Також був розроблений варіант, який працював з таймером з точністю до однієї мілісекунди, який можна було використовувати для організації доступу до пам'яті іншого процесу зі швидкістю близько 60 байт в секунду.

Опублікований демо-код складається з трьох частин:

  • Частина перша відкалібруйте таймер, щоб оцінити час роботи операцій, необхідних для отримання даних, які залишаються в кеші процесора в результаті спекулятивного виконання інструкцій центрального процесора.
  • Частина друга Визначає макет пам'яті, який використовується при виділенні масиву JavaScript.
  • Третя частина безпосередньо використовує вразливість Spectre для визначення вмісту пам'яті поточного процесу в результаті створення умов для спекулятивного виконання певних операцій, результат яких процесор відкидає після визначення невдалого прогнозу, але сліди виконання осідають у спільному кеші і можуть бути відновлені за допомогою методи визначення вмісту кешу за допомогою сторонніх каналів, які аналізують зміну часу доступу до кешованих та некешованих даних.

Запропонована техніка експлуатації виключає високоточні таймери доступний через API performance.now () і без підтримки типу SharedArrayBuffer, що дозволяє створювати масиви у спільній пам'яті.

Експлойт включає пристрій Spectre, який викликає кероване спекулятивне виконання коду, та аналізатор витоків бічного каналу, який визначає, які дані були кешовані під час спекулятивного виконання.

Гаджет реалізований за допомогою масиву JavaScript, в якому робиться спроба отримати доступ до області за межами буфера, який впливає на стан блоку передбачення гілок через наявність перевірки розміру буфера, додану компілятором (процесор спекулятивно виконує доступ заздалегідь, але повертає стан після перевірки).

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

Google опублікував прототип експлойту, щоб показати доцільність атак за допомогою вразливостей класу Spectre та заохочувати веб-розробників використовувати методи, що мінімізують ризики таких атак.

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

Фуенте: https://security.googleblog.com


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.