Сучасні процесори, ймовірно, постійно переслідуються недоліками безпеки привидів

З тих пір, як було виявлено ряд недоліків безпеки Spectre і Meltdown, виникли питання про те, наскільки безпечними можуть бути сучасні процесори, які ми використовуємо. У той же час, різниця, в якій компанії піддавалися конкретним атакам, створювала плутанину щодо того, як зважувати докази. Або, скажемо прямо - чи була Spectre дійсно лише проблемою для Intel, з випадковою експозицією для інших компаній?
Група дослідників Google має відповідь на це питання, і це не одна людина, яка не сподобається. Цитуємо:
Уразливості від спекулятивного виконання не є помилками процесорів, але більш належним чином вважаються фундаментальними недоліками конструкції, оскільки вони не виникають з помилок. Ці фундаментальні недоліки в дизайні десятиліттями не помічалися. У нашій роботі показано, що ці витоки є не тільки недоліками дизайну, але насправді є фундаментальними, на самій основі теоретичних обчислень.

Дослідницькі групи оцінювали безліч ідей, включаючи максимальне можливе вимкнення спекулятивного виконання за допомогою використання інструкції LFENCE, з використанням стратегій пом'якшення таймерів (коригування точності різних таймерів системи), а також використання матриці без відгалуження, замість того, щоб покладатися на інструкції гілок ввести в дію те, що не довіряє коду. Жодне з цих рішень не є повним виправленням проблеми. Ніхто з них не може розраховувати на те, щоб забезпечити безпеку від усіх типів атак із бічних каналів, і навіть комбінація передового досвіду програмного і апаратного забезпечення не змогла захистити від будь-якого типу експлуатації.
Немає легких виправлень, немає швидких рішень
На думку дослідників, стан мікроархітектур у чорній коробці та їхня залежність від ІС закритого джерела представляє величезний бар'єр для дослідження та вирішення подвигів побічних каналів. Ще важче знати, як розробити стратегії ефективного довгострокового пом'якшення в майбутніх продуктах.
Вони пишуть:
Комп'ютерні системи стали масово складними в переслідуванні цілей першого виду виконання. Ми були надзвичайно успішні в тому, щоб зробити їх більш швидкими і потужними, але й більш складними, полегшеними багатьма способами створення абстракцій. Башта абстракцій дозволила нам завоювати довіру до наших проектів через окремі міркування та перевірку, розділяючи апаратне забезпечення від програмного забезпечення, і впроваджуючи межі безпеки. Але ми знову бачимо, що наші абстракції протікають, бічні канали існують поза нашими моделями, і тепер, в глибині апаратних засобів, де ми не повинні були бачити, є вразливості в самих чіпах, які ми розгортали в усьому світі. Наші моделі, наші ментальні моделі, неправильні; ми постійно торгували безпекою продуктивності та складності і не знали цього.
Ступінь, якою ми зробили або не «знали» про ці речі, здається, є предметом інтерпретації. Звичайно, ідея, що спекулятивне виконання може представляти загрозу безпеці, була концептуально відома десятиліттями. Збільшення кількості транзисторів процесора з кожним поколінням продуктів, як правило, було сприйнято як хороша річ, навіть якщо стало важче охолодити ці транзистори або запустити їх на високій тактовій частоті.
До теперішнього часу в природі не спостерігали подій, спрямованих на Spectre і Meltdown. Це виглядає як випадок «коли», а не «якщо», але гравці в галузі ЦП не хочуть розглядати їх як ігнорують ці проблеми. Водночас, не зрозуміло, чи можна їх вирішити, не відкинувши спекулятивне виконання, а також величезні переваги, які вона надає.