Які вразливості Spectre і Meltdown?

click fraud protection

Дві з найбільш поширених уразливостей у 2010-х роках були дуже тісно пов’язані один з одним. Замість того, щоб бути вразливими місцями в програмному забезпеченні, Spectre і Meltdown є вразливими місцями у фундаментальній конструкції ЦП, що ускладнює вирішення проблеми. Самі проблеми є особливо серйозними, що дозволяють розкривати пам’ять від інших програм та операційної системи.

Огляд

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

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

Уразливість Meltdown заснована на деяких методах пам’яті, а також на згаданій вище системі спекулятивного виконання. Він використовує «умову змагання» між виконанням процесу та перевіркою привілеїв і дозволяє шкідливій програмі отримати доступ до пам’яті інших програм та операційної системи.

Порада: «Умова гонки» — це проблема, коли одне завдання має покладатися на інше, але правильний порядок виконання не виконується. Це може призвести до того, що «другий» процес буде запущений першим і використовуватиме неініціалізовану пам’ять, яка мала б містити результат «першого» процесу, витікаючи попередній вміст цієї пам’яті. У цьому конкретному випадку процес не повинен запускатися, доки перевірка дозволів не підтвердить, що це дозволено, але перевірка дозволу може відбутися вдруге через оптимізацію продуктивності.

Ефекти

У середині 2017 року кілька команд незалежно відкрили та повідомили про Meltdown і Spectre приватно виробникам процесорів, які розробляли виправлення. Через виправлення, націлені на оптимізацію продуктивності, вони знизили продуктивність ЦП до 30% у найгіршому випадку, при цьому зниження продуктивності на 2-14% є більш репрезентативним для людей переживання.

Уразливості торкнулися багатьох процесорів x86, процесорів IBM POWER і деяких процесорів на базі ARM. Збій впливає на обладнання, яке зазвичай зустрічається в персональних комп’ютерах, а також на хмарних серверах. Spectre впливає на персональні комп’ютери, хмарні сервери та мобільні пристрої. Усі процесори Intel з 1995 до середини 2018 року були вразливі до проблем (за винятком лінійок Itanium і Atom до 2013 року). Процесори AMD не зазнали впливу Meltdown, але були вразливі до Spectre.

Виправлення програмного забезпечення були розроблені та випущені постачальниками операційних систем, які вирішують більшість проблем. З середини 2018 року Intel оновила дизайн свого ЦП, включивши апаратні засоби пом’якшення проблем.

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