Spectre и Meltdown: месяц спустя

С момента появления информации об уязвимостях Spectre и Meltdown прошёл месяц. Основная волна публикаций схлынула, но некоторые любопытные подробности продолжают появляться. В этой статье мы расскажем о нескольких таких деталях, о которых не писали раньше.

К середине января стало ясно, что в ряде случаев исправления порождают больше проблем, чем решают. Если с Meltdown всё оказалось сравнительно просто, и патчи на уровне операционной системы эффективны, то Spectre во всех вариациях создаёт проблемы и производителям железа, и авторам операционных систем. Оказалось, что идеального решения, да и просто хорошего — когда пользователи просто расплатятся частью производительности — проблема не имеет. Уже сейчас ясно, что окончательное изгнание «призрака» (так переводится на русский язык название Spectre) возможно только с выходом на рынок новых поколений процессоров, которые, к сожалению, ещё не разработаны. От уже выпущенных исправлений в некоторых случаях переставали работать драйвера различных устройств, а одно из обновлений от Microsoft откатило предыдущее, содержавшее защиту от Spectre, чтобы избежать непрерывного цикла перезагрузок некоторых устройств. К аналогичному решению несколько раньше пришли в RedHat.

Производители процессоров продолжили реагировать на события. В Intel призвали не ставить их собственные обновления микрокода на процессоры семейств Skylake, Haswell и Broadwell. В AMD выпустили документ, описывающий возможные способы обойти корень зла — выполнение веток кода, которые не должны выполняться — на процессорах AMD. Но, скорее всего, полезен этот документ будет только для авторов компиляторов — предлагаемые решения слишком низкоуровневые для обычных программистов.

В Intel выпустили аналогичный документ, описывающий защиту от Spectre в новых моделях процессоров. Для активации этой защиты при загрузке системы должен выставляться специальный флаг. Документ был резко раскритикован Линусом Торвальдсом — он считает, что правильным было бы включать эту защиту по умолчанию. Не устраивает Торвальдса и то, что Intel не даёт простого способа отличить процессоры с принятыми контрмерами от процессоров, подверженных угрозам — это значит, что не удастся минимизировать последствия на уровне операционной системы. А на современных процессорах стоимость защиты в плане потери производительности очень велика — до 20%, по сообщениям Amazon.

Ну и напоследок несколько деталей, показавшихся любопытными журналистам, пишущим о компьютерах. Одна из них — смерть так называемого «закона Мура», эмпирического утверждения, что вычислительная мощность современных компьютеров удваивается каждые полтора года. Это правило выполнялось более 50 лет, но с появлением январских уязвимостей производительность отброшена на годы назад. Нельзя не отметить информацию о том, что Intel передал информацию об уязвимостях китайскому правительству и крупным компаниям (таким, как Lenovo и Alibaba) раньше, чем американскому правительству. Пресса и эксперты в области безопасности считают правильной точкой входа CERT-ы, а не крупные компании, сколь бы важными не представлялись они для бизнеса Intel.

Из курьёзов можно отметить попытку сделать абсолютно детерминизированную программную архитектуру и оценить мыслимые потери производительности. Такая попытка, применённая к игре Doom, выпущенной ещё в эпоху 386-х процессоров, показала совершенно чудовищную производительность. А это означает, что нам всё-таки придётся ждать новых архитектурных решений и надеяться, что там не будет уязвимостей такого масштаба, которые обнаружились в этом году.

Брюс Шнайер в своём эссе, посвящённом Spectre и Meltdown, охарактеризовал открытие этих уязвимостей как новую эпоху в компьютерной безопасности, которая будет куда сложнее предыдущих. Он упоминает и другие атаки на аппаратную часть современных устройств, в частности, на Intel ME, о которой мы уже писали, и подчёркивает возрастающие требования к кооперации между компаниями для исправления уязвимостей и то, что в наше время, даже в случае выпуска исправлений, огромное количество устройств, применяемых по всему миру, окажется не защищёнными от каких-либо атак.

Чтобы подтвердить пессимизм Шнайера, приведём статистику. Уже сейчас выявлено более 100 образцов вредоносного кода, призванного эксплуатировать Spectre и Meltdown. Почти все они основаны на оригинальном коде исследователей, впервые разгласивших уязвимость, но новые подходы, как всегда в области компьютерной безопасности — дело времени.


Автор:  Дмитрий Белявский (ТЦИ)

Возврат к списку