Как Intel хранила секрет уязвимостей Meltdown и Spectre на протяжение 7 месяцев

3169

Издание The Verge выяснило, каким образом компании и широкая публика узнали об уязвимостях процессоров Meltdown и Spectre. Оказалось, проблему замалчивали семь месяцев, после чего случилась роковая утечка. Редакция AIN.UA приводит адаптированный перевод материала.

Когда исследователь Грацского технического университета Михаэль Шварц впервые связался с Intel, то думал, что испортит компании день. Вместе со своими коллегами он обнаружил серьезную проблему с их чипами. Работу над эксплоитом они завершили 3 декабря и, осознавая потенциальную угрозу своего открытия, немедленно отправили письмо в Intel.

Ответ пришел через девять дней.

Однако в телефонном разговоре Шварца ждал сюрприз: в компании уже знают о уязвимости и активно работают над ее устранением. Поэтому представитель Intel попросил Шварца держать сведения в секрете, до оглашения нужного срока.

Уязвимость, обнаруженная Шварцем — и как, оказалось, многими другими — имела потенциально разрушительный эффект: аппаратный баг, который мог замедлить каждый процессор в мире, и который не получится просто так исправить. Была затронута каждая крупная компания: от Amazon со своими серверными фермами до производителей вроде Intel и ARM. Но была и вторая проблема. Как можно хранить настолько большой секрет достаточно долго, чтобы проблему успели исправить?

Раскрытие тайн — давняя проблема в мире безопасности. Когда исследователь обнаруживает баг, следует предоставить вендорам несколько месяцев на устранение проблемы, прежде чем ею успеют воспользоваться плохие парни. Но чем больше компаний и продуктов затрагивает вопрос, тем сильнее усложняется эта игра. В случае с Meltdown и Spectre, многосторонние договоренности сорвались и секрет обнаружился до того, как кто-либо подготовился.

Слив информации имел последствия. Все начали путаться в простейших вопросах, вроде того, подвержены ли проблеме чипы AMD (да) или работает ли Meltdown только на чипах Intel (ARM-чипы тоже уязвимы). Антивирусы случайно блокировали важные патчи, в то время как другие патчи провоцировали отключение устройств. Одним из лучших инструментов для устранения последствий оказалась утилита Retpoline, созданная отделом быстрого реагирования в Google — однако и ее код не опубликовали в свободном доступе до момента официального оглашения бага из-за наложения эмбарго.

Что, возможно, наиболее тревожно — многие авторитетные организации и вовсе были оставлены за бортом. Так случилось с подразделением CERT из Университета Карнеги-Меллон, которое сотрудничает с Министерством внутренней безопасности США. В CERT не знали о проблеме до момента запуска сайтов, посвященных Meltdown и Spectre. В итоге их первая публикация называла единственным решением замену CPU — технически, совет был верный, но спровоцировал только панические настроения. Несколькими днями позже ведущий аналитик CERT Уилл Дорманн вместе с коллегами обновил отчет, советуя просто устанавливать все нужные патчи. По его словам, знай они о проблеме раньше, документ вышел бы гораздо более аккуратным. И все таки, даже Дорманн признается, что шумихи было не избежать:

С уязвимостью такого масштаба нет варианта, что все тихонько уляжется и все будут довольны.

Первый шаг к публичному раскрытию Meltdown и Spectre сделали за шесть месяцев до открытия, найденного Шварцем. 1 июня Жан Хорн из Google Project Zero отправил письма в Intel, AMD и ARM с описанием обнаруженной уязвимости и просьбой осторожно распространить сведения среди нужных компаний — в самой Google не осведомлены были даже остальные подразделения.

Определить пострадавших оказалось непросто. Для начала были производители чипов, однако вскоре стало понятно, что патчи необходимы и операционным системам. Самой лакомой целью, наверняка, станут браузеры, а также облачные платформы от Google, Microsoft, и Amazon. В конце-концов, под ударом оказалась почти каждая компания со всех уголков технологической индустрии.

Официальная политика Project Zero дает 90 дней на устранение багов, прежде чем о них заявляют публично. Однако в этом случае «окно для патчей» увеличили почти вдвое. И пока проходили месяцы, компании начали выпускать собственные исправления. Incident Response Team из Google уведомили о проблеме в июле, через месяц после первого предупреждения от Project Zero. Участники программы Microsoft Insiders получили «тихий» патч в ноябре. Тогда же CEO Intel запустил процедуру продажи собственных акций. 14 декабря пользователей Amazon Web Server уведомили, что волна серверных перезагрузок, запланированная на 5 января, может сказаться на производительности. Другой патч от Microsoft выпустили уже в канун Нового года — вероятно, команда работала на износ в это время, но пользователи не догадывались о настоящих причинах выпуска апдейтов.

Тем не менее, нельзя переписать базовую инфраструктуру, на которой зиждется интернет, и не вызвать ни у кого подозрений.

Основная проблема была в Linux — на этой операционке работает большая часть облачных сервисов, а любые изменения публикуются в открытом Git-репозитории. С выходом таинственных патчей, якобы обусловленных внедрением функции «page table isolation», самые внимательные начали о чем-то догадываться.

Главным источником подозрений стал внесенный Линусом Торвальдсом патч, который изменял способ взаимодействия ядра Linux и процессоров на архитектуре x86. Предыдущий апдейт вышел днем ранее и то, что Торвальдс решил не дожидаться нового обновления, а выпустить патч в срочном порядке, да еще и без оглядки на возможное замедление процессоров, вызывало вопросы. Кроме того, объявились письма, в которых предлагалось применить обновления ко всем старым процессорам «задним числом». На фоне этого ветеран Linux-сообщества Джонатан Корбет предположил, что вся история с «page table isolation» — исправление проблем безопасности, которое выпускается в сжатые сроки.

И все таки, это была лишь часть правды. Page Table Isolation — это способ изоляции ядра от пользовательского пространства. Так что было очевидно, причиной стала какая-то утечка в ядре. Но подробности оставались неизвестны.

Следом обозвались и сами производители чипов. После патча Linux, все совместимые с x86-архитектурой чипы обозначили как уязвимые, что не понравилось AMD. На следующий день после Рождества инженер Том Лендански опубликовал открытое письмо с пояснением насчет того, что чипам AMD не требуется обновление.

Это и оказалось настоящим триггером — сотрудник AMD открыто заявил, что проблемы спровоцированы особенностью функционирования современных процессоров, которая используется на протяжении последних 20 лет. Причиной называлась ошибка реализации спекулятивного выполнения команд, из-за которой процессор игнорирует права доступа к страницам. И хотя исследователи давно копали в этом направлении, оформить наработки в рабочий баг не получалось. Было лишь понятно, что его последствия окажутся очень плохи.

Неделя после публикации открытого письма была наполнена распространением слухов о баге в Twitter и на форумах. Кроме того, вопросу добавили огласки результаты бенчмарка с 17% падением производительности после установки патча. К Новому году шумиху невозможно было игнорировать.

Первой серьезной тематической публикацией стал текст сайта The Register, вышедший 2 января. В нем были собраны предыдущие сведения о уязвимости, а также описана ее потенциальная опасность. И хотя все в технологической индустрии полагали, что следует дожидаться снятия эмбарго, в редакции The Register понимали — тайну к тому времени все равно не удалось сохранить. Официальный анонс был запланирован на 9 января, однако под давлением запросов прессы и общественного интереса, его в спешке перенесли на 3 января, 14:00 по тихоокеанскому времени.

В «нулевой час» все исследовательские материалы опубликовали на двух брендированных сайтах, с готовыми логотипами для каждого бага. Появились публикации в ZDNet, Wired, и The New York Times, часто написанные по мотивам сведений, отправленных за час до этого. После семи месяцев подготовки, секрет наконец-то раскрыли.

Как отмечает автор текста Рассел Брендон, стоимость такого раннего «слива» оценить сложно. Патчи продолжают выпускать, а бенчмарки показывают падение производительности. Сгладила бы проблему лишняя неделя на подготовку, или так можно было только отложить неизбежное — до сих непонятно.

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

Это, наверное, наилучший исход. Стандарты МОС указывают, на что обратить внимание, но не дают прямых указаний, что делать в конкретный момент. Это что-то вроде чтения инструкции во время упражнение по пожаротушению. Хорошо иметь план, но когда твой дом вспыхнет, действия не будут ему соответствовать.

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

Моассурис тоже списывает это на современные реалии:

В 90-х мы привыкли мыслить в формате отдельных уязвимостей и вендоров, ведь такими были большинство наблюдаемых багов. Сейчас почти все требует некой координации. Просто мы увидели, что так совместное разглашение и выглядит.

Оставить комментарий

Комментарии | 0

Поиск