Позачергове і спекулятивне виконання стали пролом у безпеці майже всіх комп'ютерів

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


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


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

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

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

Обидві виявлені вразливості є кроссплатформенними, тобто їх можна використовувати на комп'ютерах, смартфонах, планшетах та іншій подібній техніці незалежно від того, під управлінням якої операційної системи вона знаходиться. За даними фахівців, які виявили вразливості, для їх усунення необхідні комплексні дії - одного лише оновлення наборів інструкцій і алгоритмів у процесорах недостатньо. Необхідне також внесення виправлень в операційні системи. Компанії Microsoft і Apple в даний час розробляють патчі для своїх операційних систем, причому в Microsoft, як пише Engadget, вже заявили, що нові виправлення будуть встановлюватися не на всі комп'ютери, а тільки лише на ті, на яких стоїть «схвалений» антивірус. Списку антивірусів поки немає.

Як очікується, виробники операційних систем і програмного забезпечення почнуть публікувати патчі з 9 січня 2018 року. При цьому спільнота Linux вже виклала оновлене ядро операційної системи, що на рівні самої системи усуває вразливості (на рівні процесора вони повинні бути закриті виробниками процесорів). Як зазначає TechCrunch, усунення вразливостей призведе до помітного зменшення продуктивності комп'ютерів. Падіння продуктивності в кращому випадку складе п'ять відсотків, а в гіршому - 30 відсотків. Найменше постраждають користувачі сучасних процесорів, для яких падіння продуктивності буде мінімальним, але все ж відчутним.

Виправлення у своє програмне забезпечення, що частково закриває вразливості, у свої програми внесла і компанія VMWare. Вона найбільш відома, як розробник віртуальних машин. Слід зазначити, що навіть закриття вразливості на рівні операційної системи все одно дозволить зловмисникам використовувати через інше програмне забезпечення, в тому числі і браузери. У Google заявили, що включення в Chrome функції ізоляції сайтів дозволяє частково вирішити проблему. При цьому повністю вразливості будуть закриті з релізом браузера Chrome 64. Виправлення будуть внесені і в браузер Firefox після його оновлення компанією Mozilla до версії 57. Про роботу над виправленнями та їх застосування оголосили і деякі хмарні сервіси, включаючи DigitalOcean, Microsoft, Google і AWS.


COM_SPPAGEBUILDER_NO_ITEMS_FOUND