LINUX.ORG.RU

Meltdown и Spectre — названия двух атак на процессоры Intel/AMD/ARM64/Power

 , , , ,


10

9

Разработчики из Google Project Zero опубликовали детали уязвимостей, которые затрагивают не только процессоры Intel и ARM64, но и AMD тоже (есть сообщения, что только при включении BPF JIT в ядре, что по умолчанию выключено). Названия им дали: Meltdown и Spectre (расплавление ядерного реактора и призрак).

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

Spectre создаёт брешь в изоляции различных приложений и позволяет атакующему обманным способом получить данные чужого приложения. Этой атаке подвержены процессоры Intel, AMD, ARM64, Power8 и 9. По неподтвержденным данным узявимы практически все процессоры, умеющие спекулятивное исполнение кода. Для Intel это процессоры, начиная с Pentium Pro (1995 год), кроме Itanium и Atom. Есть сообщения о том, что уязвимость проверена на Pentium-M 1.5 ГГц (2004 год).

Эксплоит, эксплуатирующий Meltdown позволяет читать память ядра со скоростью 2000 байт в секунду на процессоре Intel Xeon архитектуры Haswell.

Уязвимостям назначены следующие CVE: CVE-2017-5753, CVE-2017-5715 и CVE-2017-5754.

Напомню, что пользователи ежедневно запускают чужой код на своих компьютерах, посещая веб сайты с JavaScript (>99%), поэтому применение патча (здесь и здесь) обязательно, если вы дорожите своими данными. Есть PoC (п.4.3) , демонстрирующий атаку с этой уязвимостью через JavaScript.

Разработчики ARM приводят подробности атаки для ARM, заявляют о том, что уязвимы лишь некоторые процессоры ARM, дают их список и меры по повышению безопасности.

Технические подробности про spectre (есть пример кода в конце файла)
Код из spectre.pdf выложенный отдельно.
Технические подробности про meltdown
Еще про meltdown
Видео, демонстрирующее утечку памяти meltdown
Технические детали для ARM-процессоров
Отчёт от Red Hat, упоминающий процессоры IBM Power как уязвимые.

UPD: Хорошая статья на русском языке про meltdown
UPD2: Продолжение про два вида Spectre

>>> Подробности

★★★★★

Проверено: anonymous_incognito ()
Последнее исправление: hobbit (всего исправлений: 24)

Ответ на: комментарий от praseodim

Насколько нынче открытые драйвера AMD юзабельны вообще и особенно в 3D? Поддерживают ли OpenCL?

Увы, ничего сказать не могу. Такой карточки не имею.

Odalist ★★★★★
()
Ответ на: комментарий от praseodim

Есть сообщения, что эти обновы не дружат с драйверами nvidia

Как вариант, может имеет смысл откатится на свободный драйвер?

Odalist ★★★★★
()
Ответ на: комментарий от Odalist

На свободных дровах с невидией жизни нет.

Deleted
()
Ответ на: комментарий от tailgunner

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

dzidzitop ★★
()
Ответ на: комментарий от Odalist

Как вариант, может имеет смысл откатится на свободный драйвер?

Можно конечно, но в случае nvidia они скорее затычка, чем то с чем можно работать. 3D там точно или нет или рудиментарное.

praseodim ★★★★★
()
Ответ на: комментарий от Odalist

Как вариант, может имеет смысл откатится на свободный драйвер?

ничего не сломалось при апгрейде ядра. демъян впоряде. нвидиа-блоб тоже норм.

sloan ★★
()
Ответ на: комментарий от I-Love-Microsoft

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

WitcherGeralt ★★
()
Ответ на: комментарий от ZenitharChampion

Вышло ядро 4.9.75 с исправлением узявимости. Сейчас буду добавлять в свой OBS-репозиторий.

В стабильный Debian в 4.9.65 тоже вроде прибежало уже.

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)

Баян?
Похороникс на проводе:
https://www.phoronix.com/scan.php?page=article&item=linux-kpti-pcid&num=3

Вроде как Хасвел, возможно что и пронесло в плане пенальти. Хотя не совсем и хасвел, 4790К.

На всякий случай цёмкнул и почесал за ушком свой xeon 1230v3.

Deleted
()
Ответ на: комментарий от wieker

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

dzidzitop ★★
()
Ответ на: комментарий от WitcherGeralt

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

Есть такие замки Барьер, так их только болгаркой, мастера уверяют что подбирать ключ в такой замок очень тяжело.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от wieker

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

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

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

dzidzitop ★★
()
Ответ на: Матрица уже близко, Нео! от atsym

С учётом нынешней стоимости Bitcoin, каждый из таких добровольцев смог бы заработать за год лежания около $3.

Как много! Выстроившаяся очередь поражает воображение!

NextGenenration ★★
()
Ответ на: комментарий от vasyan

так spectre это не уязвимость. это предоставляемый почти каждым современным процессором способ атаки.

dzidzitop ★★
()
Ответ на: комментарий от cheshire_cat

А ты что, уже проверил все уголки космоса? Не умничай).

Неужели на Земле нет? Неужели?

NextGenenration ★★
()
Ответ на: комментарий от akarin

это не ошибка - это особенность любой микропроцессорной архитектуры с кэшами и out-of-order execution. а meltdown - это уже ошибка.

dzidzitop ★★
()
Ответ на: комментарий от ZenitharChampion

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

dzidzitop ★★
()
Ответ на: комментарий от akarin

Этог когда производители пофиксят на аппаратном уровне? Где-то в 2019?

Теперь есть новое развлечение - при анонсе нового процессора можно поинтересоваться не только термопастой, отключением ring -3, но и ещё этим.

Хотя я сомневаюсь что раньше 2020 будет. Особенно если кинутся скупать

NextGenenration ★★
()
Ответ на: комментарий от Ushenin

Средняя себестоимость процессора ~$50 для замены 100 миилионов процессоров потребуется всего $5 миллиардов. Для Intel это вполне по силам. Естественно менять стали бы только процессоры у которых не истек срок гарантии.

А почему количество такое маленькое? Они же уязвимы как бы не с ~95?

NextGenenration ★★
()
Ответ на: комментарий от Odalist

лол, уже stretch стабильный. а я всё ещё на jessie сижу и не заметил как он oldstable стал.

dzidzitop ★★
()
Ответ на: комментарий от praseodim

Насколько нынче открытые драйвера AMD юзабельны вообще и особенно в 3D? Поддерживают ли OpenCL?

Пакет mesa с OpenCL есть, но на деле я его не проверял.
Сами дрова юзабельны. Лучше, чем nuaveau.
В 3D не все хорошо. Dying Light у меня не работает, порты от Feral работают плохо:
* в Company of Heroes 2 максимальный fps ниже чем, на блобе nvidia, но в слайдшоу не разваливается;
* в HITMAN 2016 fps скачет дико - можно просто смотреть в одну сторону и иметь 60fps, после чего fps может упасть до 20. Я думал это на локации что-то не так, но в этот момент можно поставить игру на паузу и секунд через 5-10 продолжить - fps снова будет 60;
* в играх на движке source все хорошо, но бывают микрофризы, как и на блобе nvidia. Под виндой я таких микрофризов не наблюдал. Они случаются в первые 10-15 минут после запуска игры, после не проявляются.
* в ShadowWarrior все отлично, в других нативных играх думаю тоже все будет хорошо.
* ну и gallium nine дает ощутимый буст по сравнению с CSMT в wine

P.S. Vulkan на AMD говно. Даже тот, которому тут все так радовались, тоже говно.

SR_team ★★★★★
()
Последнее исправление: SR_team (всего исправлений: 1)
Ответ на: комментарий от wieker

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

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

NextGenenration ★★
()
Ответ на: комментарий от wieker

у тебя свои мозги есть или ты только на авторитеты ссылаться можешь?

лучше ссылаться на авторитетов, чем на собственную глупость

NextGenenration ★★
()
Ответ на: комментарий от I-Love-Microsoft

Их наличие еще надо доказать, а вот в «цивилизованных» и «умеренных» бэкдорах мир уже захлёбывается.

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

NextGenenration ★★
()
Ответ на: комментарий от wieker

ну это простые процы без спекуляции. на mipsfpga вон тоже нет

Зато под них есть линукс или как минимум винда

NextGenenration ★★
()
Ответ на: комментарий от NextGenenration

Ожидаю появления в продаже второй серии, а это весна-лето 2018.

ЗЫ предыдущая аватарка была лучше

Оффтоп, знаешь откуда? Эту мангу читаешь?

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от SR_team

Хм, спасибо, интересная информация. То есть, для AMD свободное 3D получается, что в принципе юзабельно в отличие от nouveau, хотя и не без косяков.

praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от NextGenenration

Как будто нативный код безопасен

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

praseodim ★★★★★
()
Ответ на: комментарий от praseodim

Насколько нынче открытые драйвера AMD юзабельны вообще и особенно в 3D? Поддерживают ли OpenCL?

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

dogbert ★★★★★
()
Ответ на: комментарий от templarrr

Гарантийный срок закончился - давай до свиданья?

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

NextGenenration ★★
()
Ответ на: комментарий от praseodim

Больше всего напрягает невнятный статус поддержки видеокарт AMD опенсорсным драйвером, чето новое выходит - и опять AMD не успело добавить поддержку. Вот когда качественная 100% производительная версия драйверов будет выходить без задержек - тогда и дело другое. А может моя инфа устарела?

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Ожидаю появления в продаже второй серии, а это весна-лето 2018.

Напишешь?

Оффтоп, знаешь откуда? Эту мангу читаешь?

Смотрел. Впечатления в начале не сравнятся с тем что стало происходить под конец.

NextGenenration ★★
()
Ответ на: комментарий от EXL

AMD C-60

у него внеочередное выполнение есть.

onon ★★★
()
Ответ на: комментарий от NextGenenration

Напишу, будут скриншоты фото, много тестов и бенчмарков, x86 САПРы буду пытаться запускать. Уже готова райзер-карта PCIe чтобы разные карточки тестить. Попутно заигнорю всяких протестуток и кукаретиков, коих ожидаю гроздьями повалятся в мои треды :)

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от dzidzitop

AMD-шникам удалось распространить защищённый режим работы процессора в том числе и на «спекулятивные» данные. Интелам не удалось, и эти данные может взять любое приложение.
Upd: Забыл про Spectre. Значит, AMD тоже не удалось.

ZenitharChampion ★★★★★
()
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от atsym

Да. Вот такие пироги.

Раз уж это всем известно, кроме меня, то никто не пострадает если и я узнаю с помощью какой такой магии это провернуть

NextGenenration ★★
()
Ответ на: комментарий от EXL

на младшем AMD C-50 пок spectre отрабатывает даже слишком хорошо :(

issumbosy
()
Ответ на: комментарий от NextGenenration

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

Напрямую? Без всяких привилегий?

Привилегии собственно на что? Память процесса - это и есть та память, которую система и CPU выделили конкретной программе. Кто же браузерописцам доктор, если те ради скорости делают песочницу внутри того же процесса.

praseodim ★★★★★
()
Ответ на: комментарий от NextGenenration

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

dzidzitop ★★
()
Ответ на: комментарий от praseodim

Привилегии собственно на что? Память процесса - это и есть та память, которую система и CPU выделили конкретной программе

Не на память процесса, очевидно же. А на всю память.

NextGenenration ★★
()
Ответ на: комментарий от ZenitharChampion

meltdown - т.е. экскалация ring0 на спекулятывные вычисления ring3 - это аппаратный баг.

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

Как будут бороться и будут ли вообще с тайминг атаками на кэш разрабочтики процессоров - посмотрим. Но без спекулятивного выполнения на данный момент будет серьёзная просадка производительности. Можно считать, что это допинг с побочными последствиями. От out-of-order execution не откажутся в любом случае.

Если что - то в spectre.c секрет можно прочитать просто обратившись по нужному адресу в памяти. Это вообще не уязвимость, а ещё один способ атаки, который может работать в песочницах managed кода или в сочетании с какими-то уязвимостями.

dzidzitop ★★
()
Последнее исправление: dzidzitop (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.