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)

Короче, оказывается timing-атаки давным-давно известный метод чтения секретных данных, таких, как криптоключи.

Например, статья 2005-го года https://cr.yp.to/antiforgery/cachetiming-20050414.pdf, где умудряются угадать ключ аж по сети, даже не на том же хосте

Cache-timing attacks on AES

This pap er rep orts successful extraction of a complete AES key from a net work serv er on another computer. The targeted serv er used its key solely to encrypt data using the Op enSSL AES implemen tation on a Pentium III. The successful attac k was a very simple timing attac k. Presumably the same technique can extract complete AES keys from the more complicated serv ers actually used to handle Internet data, although the attac ks will often require extra timings to average out the e ects of variable net work dela ys. Are attacks of this type limited to the Pentium III? No. Every chip I have tested|an AMD Athlon, an Intel Pentium III, an Intel Pentium M, an IBM PowerPC RS64 IV, and a Sun UltraSPARC III has shown comparable levels of OpenSSL AES timing variabilit y. Presumably it is possible to carry out similar attac ks against soft ware running on all of these CPUs. I chose to focus on the Pentium III because the Pentium III is one of the most common CPUs in today's Internet serv ers. Was there some careless mistak e in the Op enSSL implemen tation of AES? No. The problem lies in AES itself: it is extremely difficult to write constant-time high-sp eed AES soft ware for common general-purp ose CPUs. The underlying problem is that it is extremely difficult to load an arra y entry in time that does not dep end on the entry's index.

Впрочем, что 2005-й год, в этой статье есть ссылки на статью от 1996-го http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.40.5024&rep=rep1...

Cryptosystems often tak e sligh tly di eren t amoun ts of time to pro cess di eren t inputs. Reasons include p erformance optimizations to b ypass unnecessary op- erations, branc hing and conditional statemen ts, RAM cac he hits, processor instructions (suc hasm ultiplication and division) that run in non- xed time, and awidev ariet y of other causes. P erformance c haracteristics t ypically dep end on b oth the encryption k ey and the input data (e.g., plain text or ciphertext). While it is known that timing channels can leak data or keys across a controlled perimeter, in tuition migh t suggest that unin ten tional timing c haracteristics w ould only rev eal a small amoun t of information from a cryptosystem (suc h as the Ham- ming w eigh tofthe k ey). Ho w ev er, attac ks are presen ted whic h can exploit timing measuremen ts from vulnerable systems to nd the en tire secret k ey .

Уже в 96-м это было known.

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

Между прочим, запустил код из spectre.pdf https://gist.github.com/ErikAugust/724d4a969fb2c6ae1bbd7b2a9e3d4bb6 - работает. (Для компиляции надо немного пропатчить строчку с #define - убрать скобки)

Работает.

vendor_id       : AuthenticAMD
cpu family      : 16
model           : 4
model name      : AMD Phenom(tm) II X4 810 Processor
stepping        : 2
microcode       : 0x10000c6
anonymous
()
Ответ на: комментарий от utf8nowhere

TLB and Pagewalk Coherence in x86 Processors (2015)

Короче, оказывается timing-атаки давным-давно известный метод чтения секретных данных, таких, как криптоключи.

И вот ещё статья за август 2015

https://web.archive.org/web/20170505011705/http://blog.stuffedcow.net:80/2015...

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

Если это тот трюк с мапингом libcrypt.so, что описан выше - думаю, оно решается ASLR. Кэши виртуально-индексируемые, угадать адрес шансов мало.

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

"Time-travelling exploits with Meltdown" by @pwnallthethings

https://medium.com/@pwnallthethings/time-travelling-exploits-with-meltdown-11...

First things first: if you’re a normal user at home, there’s nothing special you need to do. Install updates for your OS and software and you’ll be fine. You don’t need to buy a new computer or throw your processor away. The fixes slow down your computer but in such a tiny way you won’t notice. Install the update.

If you work as a technology person in a company, your cloud VMs will have already rebooted by now. That was your cloud provider fixing the cloud hypervisors, but you should still patch the OS on your cloud VMs too. Apparently Azure did some special witchcraft so even if your guest OS isn’t updated you will be immune from this bug, but Amazon definitely didn’t, and if you’re not installing security updates on your Azure VMs you’re a mad person and it’s only a matter of time before your customer’s data is on pastebin. So suck it up and install the updates.

If you’re a software developer, you also probably don’t need to care. The main exceptions are:

  • You‘re a software developer who writes the memory/trap code for virtual machine hypervisors. My condolences to you.
  • You’re a software developer who writes the memory manager for a major operating system (hi Landy!)
  • You’re a software developer who works on the JIT component of a web-browsers’ JavaScript execution engine.

But it’s still a cool bug even if you don’t need to do anything special to fix it.

...

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

Если это тот трюк с мапингом libcrypt.so, что описан выше - думаю, оно решается ASLR. Кэши виртуально-индексируемые, угадать адрес шансов мало.

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

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

Вроде как только L1 индексируется по виртуальному адресу, L3 по физическому (L2 вроде тоже по виртуальному).

Собственно основная просадка по перфомансу при KPI патче от этого и идет, при сисколе меняется PageTable что приводит к сбросу L1 и L2 кешей но L3 остается как был ...

zaz ★★★★
()

всем пофик что эта «уязвимость» изучается на первых уроках по Си/С++ при прохождении массивов и ссылок, когда ученик видит что его программа «течет» и выдает куски рандомнй оперативки

это воспринималось нормально 10 лет назад когда я в школе был

или вы все ринулись хайпить хайп, и пофик на детали, окей тогда

supppalulxd
()
Ответ на: комментарий от utf8nowhere

Да, я был неправ.

С другой стороны, он манипулировал plaintext-ами. Вряд ли на этом можно построить практичную атаку.

tailgunner ★★★★★
()

Релиз Firefox 57.0.4 с исправлениями Meltdown/Spectre

https://twitter.com/aprilmpls/status/949053354642235392

This is a public service announcement that Firefox 57.0.4 has just been released. It contains mitigations for the Spectre and Meltdown timing attacks, so please update your installations as soon as possible.

https://www.mozilla.org/en-US/firefox/57.0.4/releasenotes/

Ночнушки

https://www.mozilla.org/en-US/firefox/59.0a1/releasenotes/?utm_campaign=whats...

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

ах да напомню также что Для Взлома Любой игровой консоли/телефона с 2000 года по сегодняшний день-достаточно просто иметь возможность запуска своего кода, а доступ к «памяти ядра и ОС»(сам код взломщика) получалась именно через «код с неинициализированными указателями»

тоесть это использовалось уже давно придавно

пиар ради пиара а не уязвимость

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

всем пофик что эта «уязвимость» изучается на первых уроках по Си/С++ при прохождении массивов и ссылок, когда ученик видит что его программа «течет» и выдает куски рандомнй оперативки

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

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

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

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

для рядового пользователя в том, что после очередного обновления он получит -30% производительности

Не получит. Рядовой пользователь никаких -30% не заметит.

Хорошо бы какое-то предупреждение или список ядер без патчей.

Есть опция nopti.

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

1) Рядовой пользователь заметит, он любит играть.
2) опция есть, как мне ею пользоваться(без всякого комппиляния).

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

1) Рядовой пользователь заметит, он любит играть.

На игрульках этот фикс практически не сказывается:

http://esxi.z-lab.me:666/~exl_lab/screens/igrulki.jpg

Более того, в том же GeekBench разницы тупо нет:

Разработчики Linux и Windows работают над закрытием аппаратной уязвимости процессоров Intel (комментарий)

2) опция есть, как мне ею пользоваться(без всякого комппиляния).

Научиться использовать Grub или что там у тебя стартует Linux.

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

или вы все ринулись хайпить хайп, и пофик на детали, окей тогда

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

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

Не обязательно же выполнять на своем ПК, можно просто почитать код на Github'е.

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

Ну, вот и Сноуден подтянулся ;-)

You may have heard about @Intel's horrific #Meltdown bug. But have you watched it in action? When your computer asks you to apply updates this month, don't click «not now.» (via spectreattack.com & @misc0110)

https://twitter.com/Snowden/status/949047283357806593

atsym ★★★★★
()
Ответ на: комментарий от ls-h

Помните, когда-то давно хакер Крис Касперски (мышихъ) обещал раскрыть уязвимость/закладку в процессорах, а потом уехал в Штаты. Разные околохакерские ресурсы долго спекулировали на эту тему, мол дыра настолько фундаментальная, что достаточно зайти на сайт и вне зависимости от ОС, антивируса и браузера, можно систему поиметь. Насколько я помню он ничего такого и не рассказал так. Хотя я могу и ошибаться. Чем там дело кончилось?

Его смертью при прыжке с парашютом, не?

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

всем пофик что эта «уязвимость» изучается на первых уроках по Си/С++ при прохождении массивов и ссылок, когда ученик видит что его программа «течет» и выдает куски рандомнй оперативки
это воспринималось нормально 10 лет назад когда я в школе был

Что бы без вас делали? Надо срочно звонить в интел и успокоить их!

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

1) Рядовой пользователь заметит, он любит играть.

Данный патч замедляет не игры

NextGenenration ★★
()
Ответ на: PoC для Meltdown от atsym

Уже вроде есть PoC в виде GTK-апликухи на Linux

Видео

https://twitter.com/misc0110/status/948706387491786752

GIF

https://twitter.com/mlqxyz/status/948887352226799617

Но код этого PoC пока-что не раскрывают

https://twitter.com/misc0110/status/948869631313399809

We did not want to show a specific application, so it is only a demo app (a simple GTK application on Linux). For brevity, we don't show how to get the address here. If you are not convinced, wait for the PoC code and try it yourself ;)

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

ах да напомню также что Для Взлома Любой игровой консоли/телефона с 2000 года по сегодняшний день-достаточно просто иметь возможность запуска своего кода, а доступ к «памяти ядра и ОС»(сам код взломщика) получалась именно через «код с неинициализированными указателями»

дядя Петя, ты дурак? ©

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

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

anonymous
()

"Meltdown and Spectre Vulnerability Slides" by RenditionSec

https://www.renditioninfosec.com/2018/01/meltdown-and-spectre-vulnerability-s...

Update: SANS has made the webcast freely available on YouTube here.

Thanks to all who joined the SANS Webcast on Meltdown and Spectre. The system unfortunately had issues that wouldn’t allow everyone to join that wanted to. I know SANS is pushing the recording and slides out later today, but ahead of that I’d like to get slides out for those that need them but couldn’t get on the webcast due to technical difficulties.

Please feel free to use these slides to understand the vulnerabilities and their probable impacts. As always, feel free to reach out Rendition Infosec for your cyber security needs!

Slide download (no registration required)

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

Рандомной, но СВОЕЙ. А тут - ЧУЖОЙ.

Spectre can only read memory from the current process, not the kernel and other physical memory

и почемуже это считают экслопитом, пояснишь?

anonymous
()
Ответ на: Релиз Firefox 57.0.4 с исправлениями Meltdown/Spectre от atsym

Pale Moon 27.7 с исправлениями Meltdown/Spectre

https://github.com/MoonchildProductions/Pale-Moon/issues/1568

Pale Moon already has a courser-clamped performance timer than Firefox did prior to their patch. That was already mitigated in Oct of 2016.
Further in-depth changes will be included in the 27.7 release

atsym ★★★★★
()

Meltdown и Spectre

казалось бы причём здесь мельдоний и спектра из доты.

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

На игрульках этот фикс практически не сказывается. Более того, в том же GeekBench разницы тупо нет.

Ну что ж ты про это. Большинство же тут волнуется о производительности майнинга :D

Хоп и стал зарабатывать на 5% меньше.

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