Правда ли, что Meltdown и Spectre слишком фундаментальны для того, чтобы выпустить для них патч? Один эксперт считает именно так.
Как определить и исправить такие ошибки, как Spectre и Meltdown? Этот вопрос был самой горячей темой среди энтузиастов микропроцессоров в этом году. На одном из главных академических событий индустрии, конференции Hot Chips, эксперты согласились, что окончательное решение проблемы может потребовать – да, ещё больше разговоров.
На встрече в Купертино профессора Марка Хилла из Висконсинского университета попросили порассуждать о последствиях атак по сторонним каналам или атак на спекулятивное выполнение команд у современных процессоров, которые изготавливают компании ARM, Intel, и другие. Он перечислил такие решения, как специализированные ядра, сброс кэша при смене контекста и бизнес-идеи вроде увеличения платы за эксклюзивные виртуальные машины.
Но реальным ответом, как сказал он и другие выступающие, будет улучшение сотрудничества разработчиков софта и оборудования – и, возможно, полная переработка сегодняшних микропроцессоров.
Как целая индустрия чипов получила удар исподтишка
Информацию о Meltdown и Spectre неожиданно раскрыли в конце 2017 года, незадолго до того, как эти уязвимости должны были формально, по-тихому раскрыть на CES в январе 2018 года. Их обнаружила команда поиска уязвимостей нулевого дня из Google, Google Project Zero. Атаки пользуются такой возможностью современных микропроцессоров, как спекулятивное выполнение команд, когда процессор, по сути, «угадывает», какую ветвь инструкций нужно выполнять. Пол Тёрнер, инженер и руководитель основного костяка разработчиков Google, присутствовавший на конференции, рассказал, что никто из членов Project Zero не предупредил об открытии своих коллег; они узнали об этом вместе со всеми.
В течение 20 лет разработчики микропроцессоров считали, что неверная «догадка» просто отбрасывает данные, не создавая рисков для безопасности. Они ошибались, что и доказали атаки по сторонним каналам.
С практической точки зрения это означает, что одна вкладка браузера может просматривать содержимое другой, или одна виртуальная машина может заглядывать в другую. Это побудило производителей процессоров, в частности, Intel, совместно с Microsoft, выпустить исправляющие положение программы, или заплатки. Это наиболее эффективный способ защиты вашего ПК от Spectre, Meltdown, или любых других последующих атак, например, Foreshadow.
К счастью, проверка такой информации требует времени — в некоторых случаях, довольно много. NetSpectre, способный удалённо воспользоваться уязвимостью Spectre, можно использовать для взлома облачного сервиса или удалённой машины. С одной стороны, данные могут утекать не быстрее 1 бита в минуту, как говорит Джон Хеннесси, знаменитый разработчик микропроцессоров, член совета директоров Alphabet. С другой стороны, среднее время между взломом сервера и обнаружением этого факта составляет 100 дней, добавил он – что может дать уязвимости время поработать.
Процессоры Intel следующего поколения, вероятно, не смогут полностью исправить первый вариант Spectre, как сказал Хеннесси, несмотря на то, что разработка мер по устранению этого недостатка начнётся этой осенью, в проекте нового процессора Xeon, Cascade Lake.
Патчить или переделывать?
ARM, Intel, AMD и другие гиганты индустрии могут исправить проблему, приняв необходимые меры довольно быстро, добавил Хилл. Но для полного устранения проблемы могут потребоваться более фундаментальные изменения, сказал он.
«В долгосрочной перспективе встаёт вопрос, как правильно описать этот процесс, чтобы потенциально полностью устранить проблему, — сказал Хилл. – Или нам придётся относиться к ней как к преступлениям, которые мы только пытаемся сдерживать».
Спекулятивное выполнение команд – одна из причин, по которым микропроцессор, а следовательно, и ПК, достигли рекордных продаж, отметил участник конференции Джон Мастерс, архитектор компьютерных систем из Red Hat. Но такое выполнение расценивали как «волшебный чёрный ящик», сказал он, без соответствующих вопросов со стороны пользователей или клиентов. Этот джинн уже тоже выпущен из бутылки. Устраните спекулятивное выполнение – и это замедлит работу процессора в двадцать раз, сказал Хилл.
Среди предложенных Хиллом решений – изолирование элемента предсказания ветвления, добавление рандомизации, реализация улучшенной защиты оборудования. Одним решением может быть добавление более медленных и безопасных режимов исполнения; другим – разделение механизма исполнения команд между «быстрыми ядрами» и «безопасными ядрами». Он также предложил бизнес-решения, среди которых увеличение стоимости виртуальных машин – вместо разделения ресурсов оборудования между несколькими виртуалками, облачный провайдер мог бы обеспечивать эксклюзивный доступ. Наконец, Хилл отметил, что атаки вроде Spectre могут также привести к возрождению ускорителей: логики фиксированного назначения, оптимизированной для одной задачи, и не полагающейся на спекуляции.
Но фундаментальным решением этой проблемы была бы полная переработка архитектуры, сказал Хилл. Архитектура компьютера определяет, как процессор выполняет набор инструкций программы при помощи арифметических устройств, устройств для работы с плавающей запятой, и прочих. Сегодняшние чипы были разработаны для удовлетворения требований оригинальной модели. Но если базовая архитектурная модель имеет фундаментальный недостаток, сказал он, возможно, пришло время для новой модели. Иначе говоря, Spectre и Meltdown – это не баги, а недостатки в дизайне современных чипов, из-за чего может потребоваться новая модель.
В итоге участники конференции сошлись на простых истинах, вроде той, что оборудование необходимо разрабатывать, помня о программном обеспечении, и наоборот – и обе стороны должны усиливать безопасность. «Часто бывает так, что разработчики оборудования создают какую-то прекрасную машину, и мы прекращаем говорить о ней, или разработчики ПО говорят – ну, это же железо, мне-то что до него. Пора это прекращать», — сказал Мастерс.