Spook.js, новий метод використання вразливостей Spectre в Chrome

Група дослідників про це повідомили американські, австралійські та ізраїльські університети описав нову техніку атаки що дозволяє використовувати вразливі місця Клас "привид" у веб-переглядачах на базі Chromium.

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

Оскільки Chrome запускає різні сайти в різних процесах, практичні атаки обмежуються службами, які дозволяють різним користувачам розміщувати свої сторінки. Метод атаки Spook.js дає можливість зі сторінки, на яку зловмисник може вставити свій код JavaScript, визначити наявність інших сторінок, відкритих користувачем того ж сайту та вилучати конфіденційну інформацію з них, наприклад, облікові дані або банківські реквізити, замінені системою автозаповнення у веб -формах.

Іншим застосуванням методу є атака на плагіни браузера, що дозволяє, коли встановлений плагін, керований зловмисником, витягати дані з інших плагінів.

Spook.js застосовується до будь -якого веб -переглядача на базі движка Chromium, включаючи Google Chrome, Microsoft Edge та Brave. Дослідники також вважають, що метод можна адаптувати для роботи з Firefox, але оскільки двигун Firefox сильно відрізняється від Chrome, робота над створенням такого експлоїту залишена в майбутньому.

Для захисту від атак, пов'язаних із спекулятивним виконанням інструкцій через браузер, у Chrome реалізована сегментація адресного простору: ізоляція пісочниці дозволяє JavaScript працювати тільки з 32-розрядними вказівниками та розподіляє пам'ять контролера у стеках неперекриваються 4 ГБ.

Щоб організувати доступ до всього адресного простору процесу та уникнути 32-розрядних обмежень, дослідники застосували техніку плутанини типів, яка дозволяє механізму JavaScript обробляти об’єкт неправильного типу, дозволяючи сформувати 64-розрядний код на основі комбінації двох 32-розрядних значень.

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

Оскільки тип шкідливого об'єкта не відповідає типу оброблюваного масиву, за звичайних умов такі дії блокуються в Chrome механізмом деоптимізації коду, що використовується для доступу до масивів. Щоб вирішити цю проблему, код атаки Type Confusion поміщається в умовний блок "if", який не запускається за звичайних умов, але працює в умовному режимі, якщо процесор неправильно передбачає більше гілок.

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

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

Дослідники випустили прототип експлоата, який працює у Chrome 89 en системи з Intel i7-6700K та i7-7600U. Експлойт був створений з використанням прототипів коду JavaScript, раніше опублікованого Google для здійснення атак Spectre.

Нарешті дослідники згадують про це вдалося підготувати робочі експлойти для систем на базі процесорів Intel та Apple M1, яким надається можливість організувати читання пам'яті зі швидкістю 500 байт в секунду і точністю до 96%. Метод повинен бути застосовним до процесорів AMD, але підготувати повністю функціональний експлойт не вдалося.

Фуенте: https://www.spookjs.com


Зміст статті відповідає нашим принципам редакційна етика. Щоб повідомити про помилку, натисніть тут.

Будьте першим, щоб коментувати

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

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

*

*

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