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)
Ответ на: комментарий от tailgunner

Хорошо известные закладки - это уже не закладки.

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

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

Ты про те, что выглядят как ошибки проектирования?

intel me, amd psp, arm trustzone(но тут несколько спорно) не выглядят ошибками, а вполне преднамеренны. Пожалуй все кто хотел про них знать уже знает.

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

Хорошо известные закладки - это уже не закладки.

Сколько лет про me было известно?

А, так у тебя ME - закладка? Тогда вопросов нет.

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

Забавно, что ответить «да» ты пока не решился.

имхо ответ «да» очевиден. Если нет, то да, я считаю что это закладка.

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

Уязвима ли OpenBSD к Meltdown?

Да, вестимо.

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

tailgunner ★★★★★
()

ещё десять лет назад Тео тонны кирпичей откладывал с эрраты intel c2d. но всё и всем как всегда, откаты, попилы и 1%-2% роста производительности.
ссылку можно в шапку как показатель капитализма и маркетинга интела в десятилетнем промежутке.

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

Тео гневается:

if only the millionares and billionares benefit from receiving
information to make improvements to the so-called open and free
software stack, then the ecosystem has truly grown up to become
captured and will soon gain all the market benefits of other supply
chains — such as ensuring you have inexpensive salmonella spinach on
your table from purchased from a smallselection of vendors. But not
safety, security, diversity, and choice.

Some people should be ashamed of themselves, but they probably
purchased options.

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

meltdown таки косяк intel, на amd64 не работает. почему надо всех «сравнять» патчами - можно гадать сколько угодно.

а вот spectre это баг, причем - насколько я понял, вообще у всех у кого есть out of order, и чтоб его не было надо фиксить по (хотя логичнее всего таки делать что то с железом). Но суть бага такова, что (тут уже сто раз тыкали ссылками) можно получить доступ к данным одного пространства через кеш, что плохо для этих ваших js. но и, вероятно, для каких либо сервисов, например в одном пространстве будет работать сессия с высокими привелегиями и соответственно содержать ключи в plain text, и какая нибудь с типа guest привелегиями, и если вот в сессии с guest через другой баг заюзать этот - то можно слить ключик. А вот насчет того что spectre позволяет читать память чужого пространства или там глядеть в ядро - не нашел такого.

нужен ли патч для meltdown - да нужен, нужен ли он там где не совсем intel - не нужен.

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

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

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

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

там где intel будет патч, там где его нет, его не будет. зачем еще что то прописывать в grub и как это вообще относится к теме я не понял.

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

Ясен красен, что прочитать CPU ID и понять что код работает на intel или amd - проще простого. Почему тогда на разных форумах, в частности Ubuntu, говорят про опцию ядра? Не попалась инфа про «там где intel будет патч, там где его нет, его не будет». Возможно инфа быстро устарела.

Как это относится к теме? Вот что ты написал:

почему надо всех «сравнять» патчами - можно гадать сколько угодно

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

Но суть бага такова, что (тут уже сто раз тыкали ссылками) можно получить доступ к данным одного пространства через кеш, что плохо для этих ваших js. но и, вероятно, для каких либо сервисов, например в одном пространстве будет работать сессия с высокими привелегиями и соответственно содержать ключи в plain text, и какая нибудь с типа guest привелегиями, и если вот в сессии с guest через другой баг заюзать этот - то можно слить ключик. А вот насчет того что spectre позволяет читать память чужого пространства или там глядеть в ядро - не нашел такого.

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

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

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

строго говоря это таки баг.

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

не думаю что это хорошая идея трогать компилятор, мне кажется надо занятся масштабнее всем этим делом. a) выпилить me, psp, tz; b) опубликовать все инструкции (да, с пруфом что еще больше нет их - это делается); с) таки создать какие то открытые спецификации для cpu;

иначе мы все очень быстро окажемся в мире с опасными прозрачными домами...

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

Как это относится к теме? Вот что ты написал:

а теперь внимательно посмотри патчи да. и посмотри как эта «опция» работает.

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

мне кажется надо занятся масштабнее всем этим делом. a) выпилить me, psp, tz; b) опубликовать все инструкции (да, с пруфом что еще больше нет их - это делается); с) таки создать какие то открытые спецификации для cpu;

Ни интелу, ни амд это не надо. Нэ?

dk-
()
Ответ на: комментарий от alwayslate

строго говоря это таки баг.

Ты сказал еще про недокументированные инструкции. Можно spectre считать чем-то вроде хитрой недокументированной инструкции чтения памяти, которая вовсе не нарушает (не нашли как) защитные механизмы процессоров. То есть, если память защищена, то она не поможет преодолеть защиту.

Разработчики интерпретаторов JS про эту инструкцию однако не знали и понадеялись, что полностью контролируют исполнение кода внутри незащищенной области.

Баг ли это? В общем-то да. Но вопрос философский, в чем именно, в CPU или в коде программ-интерпретаторов JS? Я считаю, что скорее в коде JS

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

Ни интелу, ни амд это не надо. Нэ?

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

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

Ни интелу, ни амд это не надо. Нэ?

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

на самом деле чтоб всех следить достаточно решений на уровне OS, правда да.

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

Ты сказал еще про недокументированные инструкции. Можно spectre считать чем-то вроде хитрой недокументированной инструкции чтения памяти, которая вовсе не нарушает (не нашли как) защитные механизмы процессоров. То есть, если память защищена, то она не поможет преодолеть защиту.

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

Разработчики интерпретаторов JS про эту инструкцию однако не знали и понадеялись, что полностью контролируют исполнение кода внутри незащищенной области.

однако это не только js, раз, два подобный side-effect должен быть где то в superuber cpu developer manual не ? как и кстати инструкции (привет всему отличному от risc да).

Но вопрос философский

философский вопрос это тупая дебильная борьба с курением, а это не философский вопрос это технический.

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

Ни интелу, ни амд это не надо. Нэ?

не только надо, а оказалось очень выгодно. Тео был прав.

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

Патч Ярославны. Весь интерпрайз колбасится в истерике.

xenia
()
Ответ на: комментарий от anonymous

ага у меня тоже Intel(R) Core(TM)2 Duo CPU P8400 @ 2.26GHz ./spectre Reading 40 bytes: Недопустимая инструкция (сделан дамп памяти)

sap78
()
Ответ на: комментарий от x3al

на Centos 6 уже ядро готово с патчем

https://access.redhat.com/errata/RHSA-2018:0008

Resolving Dependencies
--> Running transaction check
---> Package kernel.x86_64 0:2.6.32-696.18.7.el6 will be installed
---> Package kernel-firmware.noarch 0:2.6.32-696.16.1.el6 will be updated
---> Package kernel-firmware.noarch 0:2.6.32-696.18.7.el6 will be an update
---> Package kernel-headers.x86_64 0:2.6.32-696.16.1.el6 will be updated
---> Package kernel-headers.x86_64 0:2.6.32-696.18.7.el6 will be an update
---> Package microcode_ctl.x86_64 1:1.17-25.el6 will be updated
---> Package microcode_ctl.x86_64 1:1.17-25.2.el6_9 will be an update
--> Finished Dependency Resolution
--> Running transaction check
---> Package kernel.x86_64 0:2.6.32-696.3.2.el6 will be erased
--> Finished Dependency Resolution

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

вот сниму кв или выкупать буду, то подумаю, пока по апартаментам живу курить не брошу.

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

alwayslate ★★
()

Подскажите, тред уже побил рекорд по количеству комментариев за все время, или еще нет?

turboNOMAD
()

"MELTDOWN AND SPECTRE" by XKCD

Meltdown и Spectre обзавелись именным комиксом от XKCD
>>> http://xkcd.com/1938

atsym ★★★★★
()

Запретить к псам жабаскрипт, оставить веб макакам html и css! Пусть проявляют творчество в строго ограниченных рамках! Как это было в добрый период рассвета интернета

NoviceNIX
()
Ответ на: комментарий от alwayslate

иначе мы все очень быстро окажемся в мире с опасными прозрачными домами...

гони чёрта в дверь он в окно влезет. ведроид, ай-ос, вин10 открыть было-бы неплохо. после открытия проанализировать исходники. после открытия(гипотетической) спецификаций на процессоры произвести анализ. кто будет платить за работу специалистам, куда деть «гэбню» чтоб своих не втёрла в рабочие группы, под чьим флагом она бы не была, и кто организует этот коммунизм в масштабе планеты? и нужен-ли он этот «коммунизм»? А то как в «золотом телёнке» когда О.Бендер спросил толпу «кто будет свидетелем» толпы и сочувствующих внезапно не стало, так и не станет радетелей за приватность когда от государственных аппаратов в лице силовых ведомств их спросят «о любви к Родине». я боюсь думать про массовую ОС отечественного производства в плане приватности хотя хотел-бы видеть такую ось.

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

Сколько уж раз говорилось, что автозависимости от хипстарепо - зло злющее. Не, пока реально не налетят на земную ось, так и не проснутся.

AlexAT
()
Ответ на: комментарий от VKraft

гони чёрта в дверь он в окно влезет. ведроид, ай-ос, вин10 открыть было-бы неплохо. после открытия проанализировать исходники. после открытия(гипотетической) спецификаций на процессоры произвести анализ. кто будет платить за работу специалистам, куда деть «гэбню» чтоб своих не втёрла в рабочие группы, под чьим флагом она бы не была, и кто организует этот коммунизм в масштабе планеты? и нужен-ли он этот «коммунизм»? А то как в «золотом телёнке» когда О.Бендер спросил толпу «кто будет свидетелем» толпы и сочувствующих внезапно не стало, так и не станет радетелей за приватность когда от государственных аппаратов в лице силовых ведомств их спросят «о любви к Родине». я боюсь думать про массовую ОС отечественного производства в плане приватности хотя хотел-бы видеть такую ось.

не понимаю здесь при чем коммунизм. открывать сорцы ios или там win10 никто не просит, надо проанализировать железо, и сделать возможным использование железа (спеки да, никто не просит за бесплатно писать компаниям всякие драйвера).

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

alwayslate ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.