LINUX.ORG.RU

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

 , , , ,


10

8

Разработчики из 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

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

Ответ на: Энергопотребление от BattleCoder

Re: Энергопотребление

автономность батарей ещё сильнее упадёт?

У богоизбранных уже есть решение)

anonymous ()

Intel
JavaScript
уязвимости

А ведь покойный Мыщъх был прав.

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

Между прочим, запустил код из spectre.pdf https://gist.github.com/ErikAugust/724d4a969fb2c6ae1bbd7b2a9e3d4bb6 - работает.

Откопал для теста древний проц уровня п3 на сокете 370 (это уже минимум 1999 год) с такими характеристиками:

$ cat /proc/cpuinfo 
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 11
model name	: Intel(R) Celeron(TM) CPU                1000MHz
stepping	: 1
microcode	: 0x1c
cpu MHz		: 668.046
cache size	: 256 KB
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 2
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pse36 mmx fxsr sse up
bogomips	: 1336.09
clflush size	: 32
cache_alignment	: 32
address sizes	: 36 bits physical, 32 bits virtual
power management:
На нем не сработало, выдав Illegal instruction.

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

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

У нас теперь есть WebAssembly.

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

Meltdown латается, но с потерей производительности, Spectre же требует редизайна процессоров. Весьма плохие новости, что тут скажешь. Единственное, что провернуть атаку непросто, однако задетектить её тоже проблематично. Сраный JS повсюду в вебе даёт возможность разгуляться. Короче, без NoScript в интернеты не выходить. Да и пора браузерам существенно ограничить JS в потенциально опасных возможностях (ведь на что-то типа Lua они явно не заходят спрыгивать).

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

Гулаг написал, что в 64 версии ждите исправления безопасноти. Мозила тоже подтвердила возможность атаки через браузёр.

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

Запретить JavaScript в интернете - и баг уже не такой и критический был бы ;-)

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

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

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

PoC работает как скаженный... что тут скажешь АНБ заботится о нас, так то...

P.S. Intel Core i3 2370M

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

A Lua простите каким боком должна спасать?

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

на T5550 с ядром 4.9.72 тоже не сработало

может какие-то особые флаги у gcc включить нужно, но со всякими On результат: Недопустимая инструкция

dmitry_1983 ()

Вопрос. В конфиге ядра для Ubuntu Artful (17.10) я нашел только один вот что:

$ grep -i isolation /boot/config-4.13.0-21-generic 
CONFIG_MEMORY_ISOLATION=y

$ grep -i mapping /boot/config-4.13.0-21-generic 
CONFIG_PGTABLE_MAPPING=y
# Mapping drivers for chip access
CONFIG_MTD_COMPLEX_MAPPINGS=y

Оно релевантно? Или еще в убунту не пофикшено?

Просто в других тредах проскакивало другое название опции (CONFIG_PAGE_TABLE_ISOLATION)

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

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

Такой максимализм приличен юношам лет 15 и только им.

ugoday ★★★★★ ()
Ответ на: А что с Android? от anonymous

Re: А что с Android?

что делать с Android?

То же, что и раньше: ничего.

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

O2 портит нам праздник, лучше вообще собери без оптимизаций.

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

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

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

Такой максимализм приличен юношам лет 15 и только им.

(пожимая плечами) Как скажешь.

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

не волнуйтесь, гугл уже пилит js-антивирус для своего монстра :)

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

Шо то NSA, шо это ФСБ и оба они такие НКВД шо пользовался я деревянными счетами.

А потом окажется, что на заводе спицы из намагниченной стали ставят, а в костяшки для прочности и красоты встроено несколько витков медной проволоки и ещё какой требухи. И дампит твои расчёты ФСБ на радиоприёмник. Вот и будешь ждать, когда производитель новое руководство пользователя пришлёт. Дескать, чтоб энергии на передачу не хватало, водите костяшками по спицам на 5-30% медленнее.

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

не так давно рассказывавших мне что NoScript ненужен.

так и ничего не изменилось

fornlr ★★★★★ ()

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

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

не так давно рассказывавших мне что NoScript ненужен.

так и ничего не изменилось

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

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

Оно релевантно? Или еще в убунту не пофикшено?

Это не то. Пофикшено с 4.14.11.

Просто в других тредах проскакивало другое название опции (CONFIG_PAGE_TABLE_ISOLATION)

Да, это оно (PTI).

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

для клоунов ничего никогда не меняется

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

покойный

епт, вот такие новости узнаешь из новостей...

PtiCa ★★★★★ ()

Достала желтизна про arm64. Кому он интересен если уязвимы contex-a8, a9, a15?
Про 32битные армы уже можно не говорить?

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

Нет.

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

Не катит же.

ЗЫ: и про клоунаду - надо просто трезво смотреть и оценивать векторы атак.

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

не так давно рассказывавших мне что NoScript ненужен.

так и ничего не изменилось

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

Нет.

Т.е. кое-что изменилось - теперь ты знаешь, что JS может красть данные.

Не катит же.

Но тебя это не убеждает. Ты крепок в вере сайтам, на которые ходишь.

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

Т.е. кое-что изменилось - теперь ты знаешь, что JS может красть данные.

Что значит теперь? :D

Я сам раньше занимался мамкиным каперством на корявых сайтах.

Ты крепок в вере сайтам, на которые ходишь.

Опять мимо.

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

Та новость - о Meltdown; Spectre - другая вещь, и от нее KPTI не защищает.

tailgunner ★★★★★ ()

speсtre на amd a8-7600 показывает

spectre 
Reading 40 bytes:
Reading at malicious_x = 0xffffffffffdffac0... Success: 0xFF=’�’ score=0 
Reading at malicious_x = 0xffffffffffdffac1... Success: 0xFF=’�’ score=0 
Reading at malicious_x = 0xffffffffffdffac2... Success: 0xFF=’�’ score=0 
Reading at malicious_x = 0xffffffffffdffac3... Success: 0xFF=’�’ score=0 
Reading at malicious_x = 0xffffffffffdffac4... Success: 0xFF=’�’ score=0 
Reading at malicious_x = 0xffffffffffdffac5... Success: 0xFF=’�’ score=0 
Reading at malicious_x = 0xffffffffffdffac6... Success: 0xFF=’�’ score=0 
Reading at malicious_x = 0xffffffffffdffac7... Success: 0xFF=’�’ score=0
.........

на Intel Core i5-3230M

spectre 
Reading 40 bytes:
Reading at malicious_x = 0xffffffffffdffac0... Success: 0x54=’T’ score=17 (second best: 0x05 score=6)
Reading at malicious_x = 0xffffffffffdffac1... Success: 0x68=’h’ score=2 
Reading at malicious_x = 0xffffffffffdffac2... Success: 0x65=’e’ score=2 
Reading at malicious_x = 0xffffffffffdffac3... Success: 0x20=’ ’ score=2 
Reading at malicious_x = 0xffffffffffdffac4... Success: 0x4D=’M’ score=2 
Reading at malicious_x = 0xffffffffffdffac5... Success: 0x61=’a’ score=7 (second best: 0x05 score=1)
Reading at malicious_x = 0xffffffffffdffac6... Success: 0x67=’g’ score=2 
Reading at malicious_x = 0xffffffffffdffac7... Success: 0x69=’i’ score=2 
Reading at malicious_x = 0xffffffffffdffac8... Success: 0x63=’c’ score=2 
Reading at malicious_x = 0xffffffffffdffac9... Success: 0x20=’ ’ score=2 
Reading at malicious_x = 0xffffffffffdffaca... Success: 0x57=’W’ score=2 
Reading at malicious_x = 0xffffffffffdffacb... Success: 0x6F=’o’ score=2 
Reading at malicious_x = 0xffffffffffdffacc... Success: 0x72=’r’ score=2 
Reading at malicious_x = 0xffffffffffdffacd... Success: 0x64=’d’ score=2 
Reading at malicious_x = 0xffffffffffdfface... Success: 0x73=’s’ score=2 
Reading at malicious_x = 0xffffffffffdffacf... Success: 0x20=’ ’ score=2 
Reading at malicious_x = 0xffffffffffdffad0... Success: 0x61=’a’ score=7 (second best: 0x05 score=1)
..........

и тут amd не шмогла в решето?

Novell-ch ★★★★★ ()
Ответ на: комментарий от fornlr

Что значит теперь? :D

«Теперь» значит, что раньше ты не знал об атаках, которые обходят любые песочницы.

Я сам раньше занимался мамкиным каперством

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

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

Пофикшено с 4.14.11.

Спасибо за ответ. Просто в Ubuntu (как известно) свой особый способ нумерования версий ядра. Т.е. могли бекпортировать. По ссылке выше https://people.canonical.com/~ubuntu-security/cve/2017/CVE-2017-5754.html

тоже говорится, что в пакете «linux» не пофикшено, а для linux-lts-* почему-то уже

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

Для примера; скрипты с серьёзными ограничениями, в том числе на время исполнения. Конечно, современным веб-кодерам такое не понравится. Да и без JS всё меньше сайтов не просто работоспособны, а вообще контент показывают.

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

Судя по этой таблице http://sseplus.sourceforge.net/fntable.html, функция _mm_clflush требует поддержки sse2, которой нет для этого процессора. sse2 появилось начиная с Pentium 4. Так что spectre.c надо переписывать без этой функции.

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

«Теперь» значит, что раньше ты не знал об атаках, которые обходят любые песочницы.

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

ЗЫ: воровмтвом я никогда не занимался, не ври.

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

«Теперь» значит, что раньше ты не знал об атаках, которые обходят любые песочницы.

Да, ладно. MacOS уже залатана

Ты вообще читал хедпост? В MacOS залатали Meltdown, но не Spectre.

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