Разбираемся с Meltdown и Spectre: что нужно знать о новых уязвимостях, которые обнаружены практически во всех CPU

Original author: Ryan Smith
  • Translation
Похоже, производители процессоров получили серьезный удар: за несколько дней все новостные сайты заговорили сразу о двух хардварных уязвимостях под названием Meltdown и Spectre. Должен сказать, что это очень горячая неделя, какую давно не видели в технологической отрасли. Но не буду спешить, так что разберемся со всем по порядку.



Исследователи безопасности, работающие в группе Google Project Zero, наряду с другими исследовательскими группами и академическими институтами, обнаружили ряд угроз безопасности, связанных с спекулятивным выполнением. Спекулятивное выполнение является одним из краеугольных камней высокой производительности современных процессоров и, по существу, все процессоры имеют более высокую производительность, чем встроенный микроконтроллер. В результате практически каждый современный высокопроизводительный процессор на рынке, выпущенный за последние несколько десятилетий, уязвим для одного или более эксплойтов.

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

Между тем второй тип эксплойта называется Spectre, а число процессоров, подверженных риску эксплуатации, еще шире. По сути, каждый высокопроизводительный процессор, когда-либо созданный — Intel, AMD, ARM и POWER — считается уязвимым. Подобно Meltdown, атака Spectre злоупотребляет спекулятивным выполнением, чтобы получить информацию, которая должна быть изолирована. Однако особенность Spectre заключается в том, что это более сложная и гораздо коварнейшая атака; в то время как Meltdown основан на злоупотреблении конкретной реализацией спекулятивного выполнения, Spectre можно рассматривать как (ранее неизвестную) фундаментальную уязвимость спекулятивного исполнения, которую теперь можно использовать для атак. Spectre требует больше усилий по подготовке, чтобы принудить целевое приложение к утечке информации, но фундаментальная природа риска означает, что уязвимость Spectre намного сложнее устранить, и она еще не полностью исследована.



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

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

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

Поспешный релиз не раскрыл всю ситуацию


В информационное пространство обрушился не спланированный поток новостей о Meltdown и Spectre, и в результате исследователи, поставщики hardware и software, да и общественность в целом пытались понять, что же произошло и что с этим делать. Теперь мы знаем, что упомянутые уязвимости были обнаружены прошлым летом, с тех пор вектор действий поставщиков и исследователей безопасности нацелен на понимание последствий эксплойтов и разработку необходимых исправлений и рекомендаций. Было принято решениео том, что информация о Meltdown и Spectre не должна публиковаться до вторника, 9 января – даты выхода первого патча этого года.

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

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

НЕ ПАНИКУЙ


Говорят, что, несмотря на множество вопиющих (а иногда и фатальных) неточностей, путеводитель «Автостопом по Галактике» превзошел по популярности «Галактическую Энциклопедию», потому что он немного дешевле и потому, что имеет слова «НЕ ПАНИКУЙ», написанные большими веселыми буквами на обложке.

Прежде чем погрузиться в некоторые из глубоких технических аспектов Meltdown и Spectre, я думаю, что лучше начать с обзора сложившейся ситуации на более высоком уровне. Это включает в себя риски, связанные с новыми эксплойтами, как с ними бороться, и что отдельные пользователи должны делать (если есть такая возможность) перед лицом опасности.

Для начала хорошая новость: если вы не поставщик облачных услуг, непосредственный риск от этих атак очень низок. Плохая новость заключается в том, что, поскольку эти эксплойты основаны на уязвимости hardware, потребуется некоторое время для исправления. И есть очень много устройств, на которых работает множество различных ОС, и все это необходимо исправлять.

Что нам известно:



Это локальные атаки: и Meltdown, и Spectre — локальные атаки, требующие выполнения вредоносного кода на целевой машине. Это означает, что эти атаки не являются (напрямую) атакой удалённого запуска кода – как были Nimda или Code Red – а значит, системы нельзя атаковать, просто подключившись к сети. Понятно, что они ближе к атакам эскалации привилегий, классу атак, которые помогают глубже проникнуть в систему (к которой у вас уже есть доступ). Однако, исследователи показали, что они могут выполнять атаки на основе Spectre, используя JavaScript, поэтому веб-браузер может запустить вредоносный файл JavaScript, и таким образом позволить атаку.

Это read-only атаки (доступ к информации). Хотя мы и упомянули, что атаки не могут быть проведены удаленно, в случае если Meltdown и Spectre удалось запустить в локальной системе, характер эксплойта заключается в том, что это read-only атаки. То есть, все что они могут – это прочитать информацию из системы. Они не могут напрямую принудительно произвести выполнение кода в ядре ОС, других виртуальных машинах или других программах. И все же атаки раскрытия информации могут быть очень разрушительными в зависимости от того, какая информация получена. Всегда есть риск использования этой информации для проведения успешной атаки уже путем выполнения кода, а значит, угроза все же существует. Но реальный риск заключается именно в использовании этих уязвимостей злоумышленниками для похищения информации, а не для контроля над системой.

Чем является / не является обнаруженная уязвимость:



ЭТО:

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

ЭТО НЕ:

— атака отключения сервисов
— сетевая атака
— способ инъекции измененного кода или подмены содержимого памяти.

В основном это угроза для распределенных сред размещения. Учитывая вышеизложенное, эти атаки наиболее опасны для общедоступных хостинговых сред, где несколько пользователей могут выполнять код в одной системе. В результате провайдеры облачных сервисов, такие как Amazon и Microsoft, уже принимают меры по защите своих сервисов от атак. Отдельные системы и устройства, в сравнении с облачными, имеют гораздо меньший практический риск. Злоумышленнику по-прежнему необходимо запустить вредоносный код в отдельной системе, прежде чем он сможет начать атаку; но если злоумышленник все же сможет это сделать, то указанная отдельная система окажется в очень незавидном положении.

Защититься от Meltdown и Spectre можно софтварно: поскольку корень проблемы Meltdown и Spectre находится на аппаратном уровне, в идеале, это оборудование стоило бы заменить. Однако замена всех систем, выпущенных за 20 лет уж никак не выглядит привлекательной затеей. Как и другие ошибки процессора, ее можно смягчить комбинацией микрокода процессора и обновлений операционной системы. Поставщики, такие как Microsoft, Apple и дистрибутивы Linux, уже находятся в процессе развертывания этих исправлений, в том числе мы наблюдали ультра-редкое внеплановое обновление от Microsoft в среду вечером.



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

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

Это плохая неделя для Intel: Intel является доминирующим поставщиком ЦП для провайдеров облачных услуг, которые, в свою очередь, подвергаются наибольшему риску от Meltdown и Spectre. В сочетании с тем фактом, что Intel гораздо сильнее подвержена влиянию более насущной угрозы Meltdown, чем любой другой поставщик, означает, что клиенты высокооплачиваемых серверов Intel в первую очередь оказываются в зоне риска таких атак. А это, в свою очередь, плохо отражается на репутации Intel.

Касательно процессоров, уязвимых к атаке: Intel подтвердила, что это все Core-based архитектуры, включая первое поколение (Nehalem). Стоит обратить внимание, что нельзя исключать и более ранние процессоры.

Для AMD эта неделя получше (но тоже не подарок): AMD, наоборот, имеет и хорошие новости.

Если говорить коротко, их процессоры не уязвимы для атак Meltdown – и это единственный поставщик среди Big 3, которого разрушительная новость обоша стороной. Учитывая, что Meltdown является более насущным риском, это означает, что AMD и ее пользователи несут риски несравнимо меньшие, чем пользователи Intel. Однако процессоры AMD по-прежнему уязвимы для атак Spectre, и в долгосрочной перспективе все еще остается слишком много неизвестных моментов: насколько опасен Spectre, и насколько вообще возможно от него защититься.

И что неизвестно:


Когда полные обновления для защиты будут доступны для каждой платформы: как отмечалось выше, развертывание обновлений для защиты от эксплойтов займет несколько дней или недель. С точки зрения ПК, обновление Microsoft — это всего лишь одна часть головоломки, хотя, возможно, самая важная, поскольку она может снизить риск Meltdown без обновления микрокода. Однако мы все еще ожидаем обновления микрокодов, чтобы повысить защиту от Spectre на процессорах Intel (это в равной мере касается процессоров AMD).

С другой стороны, Google объявила о том, что они уже выпустили обновления Android с рекомендованными ARM защитными мерами для поддерживаемых устройств Nexus и Pixel, но эти обновления не содержат всех необходимых исправлений для ядра Linux.

Наши меры безопасности:


Мы принимаем комплекс мер, чтобы предоставить наиболее безопасные платформы. Это включает в себя комбинацию из патчей для операционных систем и прошивок, разработанных в сотрудничестве с партнерами по индустрии, поставщиками операционных систем и OEM поставщиками.

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


Неясно, как повлияют такие меры безопасности на производительность: возвращаясь к вопросу комплекса мероприятий по защите от Meltdown, неясно, каково будет влияние на производительность. Чисто теоретически, отдельные операции и рабочие нагрузки могут быть замедлены на 30%, но в значительной степени это будет зависеть от того, насколько часто задача переключается на ядро. На практике все же ожидается, что средний эффект в реальности менее «пагубный», особенно для пользователей настольных компьютеров. А вот пользователям серверов (что касается производительности) менее повезло.

Между тем влияние на производительность защит от Spectre практически неизвестно, отчасти потому, что поиск защиты от Spectre продолжается. Основываясь на том, что опубликовали поставщики оборудования, воздействие должно быть минимальным.

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

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

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

До сих пор неясны масштабы угрозы уязвимости Spectre: в то время как Meltdown — это более насущная угроза, уже ясно, как это работает и что нужно сделать для защиты. Spectre, однако, попросту переменная с неизвестным значением. Существует множество доказательств таких атак, но, в более широком смысле, атаки Spectre — это новый класс атак, не совсем похожих на то, что мы встречали ранее. В результате никто не уверен, что полностью понимает возможные последствия применения эксплойта. Существует риск того, что атаки Spectre могут использоваться гораздо более широко, чем мы себе это представляем.

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

Что могут пользователи сделать сейчас?


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


Кумулятивное обновление Windows 10 Version 1703 для x64 систем (KB4056891)

Была обнаружена проблема с безопасностью в продуктах Microsoft, которая может влиять на вашу систему. Вы можете помочь нам защитить вашу систему, установив обновление от Microsoft. Чтобы просмотреть полный список исправлений, обратитесь к соответствующей главе в Базе Знаний Microsoft. После установки обновления понадобится перезагрузка.

Ответ на вопрос «что же делать пользователю» как бы простой, но не особо полезный: мало что можно сделать в принципе. Обновления программного обеспечения и микрокода для защиты от этих эксплойтов будут распространяться обычным путем, поэтому обновление ваших систем и мобильных устройств до последней версии ОС — самый важный шаг, который можно предпринять. Как упоминалось ранее, все поставщики уже выпустили или находятся в процессе развертывания необходимых обновлений программного обеспечения. Но в случае, если для атаки будет применен специально разработанный узконаправленный инструмент, пользователю попросту будет нечем защититься. Задача производителей как можно быстрее найти решение данной проблемы.

И напоследок

Обязательно держите себя в курсе событий, читайте дополнительную информацию об этих атаках. В частности, я хочу продолжить изучение важности спекулятивного выполнения и почему атака на него может иметь существенные последствия для проектирования ЦП. Спекулятивное выполнение — довольно важная функция для повышения производительности на современных процессорах, но, как показали эти атаки, даже (казалось бы) идеально реализованная, она имеет некоторые нерешенные проблемы с безопасностью, что в нынешнюю эпоху вычислений, увы, неприемлемо.

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

На правах рекламы. Успейте воспользоваться в новом году интересным предложением и получить скидку в размере 25% на первый платеж при заказе на 3 или 6 месяцев!

Это не просто виртуальные серверы! Это VPS (KVM) с выделенными накопителями, которые могут быть не хуже выделенных серверов, а в большинстве случаев — лучше! Мы сделали VPS (KVM) c выделенными накопителями в Нидерландах и США (конфигурации от VPS (KVM) — E5-2650v4 (6 Cores) / 10GB DDR4 / 240GB SSD или 4TB HDD / 1Gbps 10TB доступными по уникально низкой цене — от $29 / месяц, доступны варианты с RAID1 и RAID10), не упустите шанс оформить заказ на новый тип виртуального сервера, где все ресурсы принадлежат Вам, как на выделенном, а цена значительно ниже, при гораздо более производительном «железе»!

Как построить инфраструктуру корп. класса c применением серверов Dell R730xd Е5-2650 v4 стоимостью 9000 евро за копейки? Dell R730xd в 2 раза дешевле? Только у нас 2 х Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 ТВ от $249 в Нидерландах и США!
  • +2
  • 21.6k
  • 3
ua-hosting.company
380.70
Хостинг-провайдер: серверы в NL / US до 100 Гбит/с
Share post

Comments 3

    +5
    мало статей на эту тему на хабре, а главное все такие разные…
      +1
      Тема сложная.
      Специалистов мало.
      Да и сами производители темнят…
      0
      Интересно, а для эксплуатирования Meltdown на старых INTEL CPU программный код будет отличаться? Т.е. надо ли для каждого отдельного проца писать свой код или он будет одинаковый для всех INTEL CPU?

      Only users with full accounts can post comments. Log in, please.