Meltdown и Spectre: угроза, которая всегда с тобой

2018 год начался с сущего переполоха в IT-сфере, причем в настолько глобальных масштабах, что аналогичного по мощи ЧП трудно припомнить. И это тот редкий случай, когда даже журналистов нельзя упрекнуть в раздувании инфоповодов и делании из мухи слона. Под угрозой оказались пароли и иная секретная информация практически на всех рабочих станциях и серверах за редкими исключениями. Источником проблем стали уязвимости в целых семействах процессоров, получившие наименования Meltdown и Spectre.

Ничто не предвещало…

Гром среди ясного неба грянул 2 января – британское издание The Register опубликовало заметку весьма зловещего характера. Шла речь о том, что якобы в почти всех процессорах Intel, произведенных начиная с далекого 1995 года, кроются катастрофические уязвимости. Эти «дыры» теоретически позволяют злоумышленникам незаметно похищать любую информацию с компьютера жертвы, включая пароли ко всему, что только можно. И весь драматизм здесь даже не в том, что эти уязвимости безнаказанно существовали более 20 лет. Самое страшное, что слабость заложена в самой архитектуре процессоров, в фундаментальных принципах их работы.

Спустя несколько дней информацию The Register подтвердили признанные эксперты, а в довесок еще и оказалось, что прорехи были практически одновременно обнаружены сразу четырьмя группами программистов в разных уголках мира. Эти группы никак раньше друг с другом не взаимодействовали и не сговаривались. Тут уже даже прожженные скептики готовы были поверить если не в коллективный разум, то по крайней мере в конспирологию. Действительно, почему эти серьезнейшие уязвимости 22 года никто не замечал, и вдруг в 2018, чуть ли не в новогоднюю ночь, как по звонку их нашли сразу несколько команд?

Справедливости ради заметим, что первым все-таки был 22-летний программист из команды Project Zero компании Google. Специализация Project Zero — поиск неизвестных ранее уязвимостей — так называемых «уязвимостей нулевого дня». Но выявил он эту беду еще в июне прошлого года, и еще тогда удивился, что за два десятка лет никто на эту проблему не наткнулся, хотя она не так уж неочевидна.

В чем суть угрозы

Можно сказать, что эти уязвимости – это некий побочный эффект того, что наши компьютеры и носимые гаджеты работают именно с такой скоростью. И вот, спустя 20 с лишним лет пришла «расплата». Все дело в одном из принципов работы процессоров, который называется немного странным, но вполне безобидным словосочетанием – «спекулятивные вычисления». Проясним, что это значит сразу в контексте выявленных угроз.

Meltdown

Центральные процессоры многозадачны – это раз, а во-вторых, они просчитывают эти самые задачи далеко не в том же порядке, в котором поступают команды от пользователя. Здесь под командами имеется в виду широкий спектр действий – движения и клики мышкой, нажатия кнопок на клавиатуре, голосовые команды и прочее.

Так вот, в определенные моменты, когда у процессора есть свободное время, он пытается предугадать, какое действие совершит пользователь. Это тоже может быть что угодно: нажатие на гиперссылку в браузере, открытие изображения, запуск программы и т. д. И, приняв решение о наиболее вероятных последующих действиях пользователя, процессор начинает подгружать необходимые данные, как если бы это действие уже произошло. Происходит эта подгрузка и «как бы» выполнение в специально выделенном участке памяти.

Если прогноз процессора оправдался, то пользователь приходит на все готовенькое и для него субъективно операция выполняется значительно быстрее. Если же процессор с функцией «ясновидящего» не справился, подгруженные данные просто стираются. Конечно, алгоритмы не столь совершенны, чтобы предугадывать большую часть поведения пользователя, но в сумме такой подход дает весьма ощутимую экономию процессорного времени и, соответственно, повышение скорости работы.

И вот однажды программисты пришли к идее, которая и обнаружила злополучные уязвимости. Что если одна из таких «холостых» задач, которая просчитана наперед, но не должна выполниться, сможет ненадолго заглянуть в само ядро операционной системы, где хранятся пароли и всяческие другие защищенные данные? Да, может. И на этот случай предусмотрен механизм, который «стирает память» программе. Вроде бы все в порядке. Но на самом деле стирание памяти происходит не мгновенно, и за этот короткий промежуток программа может успеть занести в кэш значение случайной ячейки памяти жесткого диска. Затем, после стирания памяти зловредное приложение может запросить это самое значение, но уже из кэша, куда доступ уже ничем не ограничен. И вот так, байт за байтом теоретически возможно вытащить из ядра системы все что угодно, включая самые секретные пароли и ключи доступа.

Описанный процесс в воображении программистов, обнаруживших проблему, приобрел черты «таяния» или «расплавления» казавшегося непреодолимым барьера между ядром операционной системы и внешними процессами. Так эта уязвимость и получила свое название – Meltdown и «логотип» в виде плавящегося щита. При всей серьезности проблемы, ее достаточно несложно залатать. Но вот вторая обнаруженная уязвимость гораздо более грозная, и с ней как раз не вполне понятно, что делать.

Spectre

Природа этой прорехи в защите похожа на ту, что и в Meltdown – использование кэша для «атомарной» переброски защищенных данных в незащищенное место. Только здесь слив информации происходит не из глубин ядра операционной системы, а при содействии вполне безобидных приложений. Вредоносный код может теоретически быть написан даже на банальном Javascript и впоследствии обвести браузер вокруг пальца, заставив предоставить нужную информацию.

Что касается Spectre, то реализовать на практике ту угрозу, которая выявлена в теории, очень и очень сложно. Сей факт должен бы хоть немного успокаивать, если бы не другая проблема. Устранить эту угрозу можно… никак! По крайней мере на текущий момент специалисты не видят эффективного способа защиты от Spectre, который бы не предполагал полною перестройку архитектуры современных процессоров. Программные заплатки решают проблему лишь частично.

Именно поэтому Spectre изображен в виде злобного призрака, который как бы всегда находится где-то рядом и в любую секунду может проявиться в реальности.

Угрозам Meltdown и Spectre подвержены практически все современные процессоры
Угрозам Meltdown и Spectre подвержены практически все современные процессоры

Кто в группе риска?

Практически сразу после обнаружения Meltdown стало ясно, что этому типу уязвимости подвержены практически все процессоры Intel, выпущенные с 1995 года за исключением только всей серии серии Itanium и процессоров Atom не позднее модификаций 2013 года. AMD не без гордости заявляли, что их процессорам эта беда не грозит. И если бы все осталось на таком же уровне, это был бы чудовищный удар по репутации Intel, после которого корпорация вряд ли бы оправилась.

Но очень быстро выяснилось, что угрозе Spectre подвержены почти все, в том числе и чипы AMD, и даже однокристальные системы ARM, которыми оснащено множество носимых гаджетов. Вся ситуация оказалась ярким воплощением крылатой фразы «беда не приходит одна», и в группе риска оказались до кучи еще и миллионы современных смартфонов, планшетов и других носимых устройств.

Представители ARM честно подтвердили, что ряд их процессоров действительно подвержены атакам. Это в первую очередь высокопроизводительные ядра Cortex-A15, A57, A72 и A75 – они бессильны как перед Spectre, так и перед Meltdown. Серии Cortex-M данные опасности, к счастью, не грозят.

С процессорами ARM ситуация еще более непростая хотя бы по причине их совершенно немыслимого количества на рынке. На прошедшей выставке CES 2018 присутствовал лично исполнительный директор компании Саймон Сегарс, и журналисты не упустили шанса задать ему самые каверзные вопросы.

Сегарс сообщил, что уязвимостям подвержены лишь около 5% технологических решений компании. Но учитывая то, что на текущий момент насчитывается около 120 миллиардов (!) чипов (это число сопоставимо с количеством звезд в нашей галактике), использующих в той или иной мере архитектуру ARM, конечная цифра существующих в мире уязвимых систем не поддается осмыслению. И это речь идет еще только об эталонных решениях. На самом же деле продукция лицензиатов нередко выходит на рынок с существенными изменениями во внутреннем дизайне. Так, например, абсолютно все процессоры Apple A одинаково боятся как Spectre, так и Meltdown.

В завершение беседы исполнительный директор ARM заверил представителей прессы, что все будущие серии процессоров Cortex будут полностью неуязвимы перед обоими типами угроз.

Меры пресечения

Масштабы бедствия заставили объединить усилия и начать сотрудничать перед лицом общего врага даже прямых конкурентов, таких как Intel и AMD. После непродолжительного мрачного молчания Intel официально сообщила, что действует сообща с AMD и ARM в направлении решения проблемы. Само собой, производители чипов также начали тесно взаимодействовать и с производителями операционных систем. Опишем в сжатом виде, чего на текущий момент удалось достичь самым крупным игрокам рынка.

Intel

Хотя проблема коснулась всех производителей чипов, в Intel полетело (и еще полетит) больше всего шишек, по многим причинам. Поэтому компания довольно мало уделяет времени пиару на пепелище и больше действительно занята делом. Так, первые заплатки для операционных систем и системного ПО при содействии Intel были выпущены уже в первые дни после первых тревожных новостей.

Спустя некоторое время глава департамента дата-центров корпорации Навин Шеной сообщил, что выпущенные исправления уже покрывают около 90% всех микропроцессорных систем, выпущенных Intel в течение предыдущих пяти лет. Но Шеной тут же уточнил, что «впереди компанию ждет еще очень много работы». И работа действительно ведется очень интенсивно.

Apple

Представители Apple тоже поспешили сообщить, что заплатки против Meltdown включены в самые свежие апдейты iOS 11.2 и tvOS 11.2. В ближайшем будущем следует ожидать дополнительных, более совершенных и глубоко продуманных средств защиты. Apple Watch, по словам «яблочных» экспертов, перед атаками типа Meltdown неуязвимы. Что касается Spectre, компания выпустила обновленные версии браузера Safari для iOS и macOS. Это должно хоть как-то помочь в той ситуации, когда стопроцентная защита невозможна в принципе.

Есть и неофициальные данные о перестраховке Apple в отношении декабрьской версии macOS 10.13.2, в которой чудесным образом независимыми энтузиастами был выявлен код исправлений, который решает большую часть проблем со спекулятивными вычислениями процессоров Intel.

Google

Все это время Google по части информирования общественности отрабатывала за себя и за всех остальных участников процесса, предоставляя самые подробные и расширенные отчеты по проблеме. Так, относительно собственных облачных платформ, корпорация сообщила, что почти все они необходимые заплатки уже получили, и никакие дополнительные действия клиентов не требуются. Исключение составили Cloud Dataproc, Kubernetes Engine, Google Compute Engine и Cloud Dataflow – здесь кроме усилий самой компании необходимы будут еще некие действия со стороны пользователей. Все они получили детальные инструкции.

По словам представителей поискового гиганта, Android-гаджеты с установленными самыми свежими апдейтами безопасности проблеме Meltdown и Spectre (насколько это вообще возможно) подвержены не будут. Между делом Google также сообщила, что ни одной атаки по обсуждаемым уязвимостям пока не было зарегистрировано. Отдельно компания сообщила о полной защите приложений App Engine и Google Apps, равно как и устройств Google Wi-Fi, Google Home, Pixel и др.

Владельцы операционной системы Chrome OS 63 могут воспользоваться специальной функцией «Site Isolation», призванной тоже устранять проблему уязвимости спекулятивных вычислений при работе в интернете. Функция помещает каждый сайт в отдельное и независимое адресное пространство. «Site Isolation» пока работает в тестовом режиме, но уже с 64-й версии Chrome и Chrome OS она будет включена по умолчанию.

Microsoft

Корпорация Microsoft поспешила заявить, что инфраструктура Azure по большей части уже получила максимально возможную защиту от новых угроз. На момент этого заявления фрагменты платформы еще находились в стадии обновления, и для активации заплаток необходима была перезагрузка виртуальных машин.

Необходимые обновления получили SQL Server, а также стандартные интернет-браузеры Microsoft (Edge и Internet Explorer) для версий Windows от 7-й до 10-й.

Обновления безопасности от Microsoft устанавливаются не без проблем. Так, компания заранее уведомила пользователей, что возможны несовместимости с некоторыми антивирусами, которые могут просто не дать установить необходимый апдейт. Для решения этой проблемы представители компании тесно работают с разработчиками «проблемных» антивирусов.

Mozilla

Представители Mozilla подтвердили, что специфические виды атак и «хитрые» способы анализа данных в контексте обсуждаемых уязвимостей действительно могут представлять опасность даже при безобидном интернет-серфинге. Компания объявила, что уже с 57-й сборки Firefox в браузер будут внесены серьезные изменения, которые минимизируют риски насколько это возможно. Представители Mozilla также подчеркнули, что продолжают трудиться над решением проблем и в будущем обещают найти более совершенные способы устранения угроз.

Остальные

К массовому выпуску заплаток подключились и другие компании, имеющие хоть какое-то отношение к выпуску «железа» или ПО. Так, первые официальные патчи выпустила компания VMware. Они должны закрыть дыры в безопасности в Workstation Pro, vSphere ESXi и VMware Fusion Pro.

Также вышли новые прошивки для некоторых материнских плат. Первыми поспешили это сделать в ASUS. Суть прошивок в том, что они изменяют поведение модуля прогноза ветвлений в процессорах Intel путем задействования менее агрессивного алгоритма. Как и большая часть любых других мер по блокированию угроз Meltdown и Spectre, это неминуемо повлечет снижение производительности – процессор будет в целом дольше ожидать разрешения на доступ к памяти.

К решению возникшей проблемы подключились абсолютно все: крупные компании, мелкие, независимые эксперты и рядовые энтузиасты. Но «самые решительные действия» предпринял все-таки Главный исполнительный директор Intel Corp. Брайан Кржанич. Он… продал большую часть своих акций Intel еще до того, как информация об уязвимостях просочилась в прессу.

Выводы и прогнозы

Несмотря на честные усилия игроков рынка по борьбе с угрозами Meltdown и Spectre, в целом ситуация довольно грустная.

Напомним, если вы уже успели подзабыть – полностью защититься от Spectre невозможно в принципе, а можно только минимизировать угрозу.

Обновления защиты неминуемо приводят к падениям производительности, и если рядовых пользователей это не особо затрагивает, то крупные дата-центры и облачные хранилища уже в ужасе от перспективы чудовищных просадок скорости работы.

И в целом с обновлениями далеко не все гладко. В массовом порядке поступают жалобы на случайные перезагрузки устройств, как на iOS, так и на Windows. Потребители в ярости, и в таком же массовом порядке готовят коллективные судебные иски.

Учитывая все происходящее и трезво оценивая перспективы, можно сказать, что Spectre и Meltdown пришли всерьез и надолго. И это, заметим, еще не было ни одной реальной атаки.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *