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)

Выше на странице есть про T2300. Он уязвим. Там же для него есть патч.

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

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

Действительно, Core. Нужно дорабатывать пример. Выше есть вариант для какого-то ещё более старого Txxxx, попробуй. Чудес не бывает, просто PoC не универсальный.

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

«ко-ко-ко Эльбрус не нужен, ко-ко-ко какой Эльбрус дорогой куд-кудах»

В Эльбрусе тоже спекулятивное исполнение команд. Кудахтай дальше.

Если оно спекулятивное, это ещё не значит, что оно подвержено данной уязвимости

И, что характерно, ты никак не можешь это проверить. Так что... продолжай.

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

Если у тебя проблема с поддержкой инструкции сброса кэша — это не защищает от уязвимости.

Это только к Spectre или и к Meltdown тоже относится?

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

Есть уже какие-нибудь PoC подобного рода для теста?

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

Выясняется, что не так уж и погорячился Крис, когда заявлял в 2008-ом, что аппаратные баги уже настолько серьёзны, что можно на JS эксплот писать.

А потом он баг не раскрыл, но внезапно разбогател. И так же внезапно разбился на парашюте. Всё сходится!

Кто ещё сомневается что его пк не под колпаком АНБ?

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

это ещё не значит, что оно подвержено данной уязвимости

Где тесты и отчёты?

И в статье про эльбрус ничего не написано.

А, ну тогда можно спать спокойно. Окей.

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

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

На A10-7850k то же самое. Таки всё, праздник у бульдозеристов?
А эксплойта для ARM я пока не нашёл.

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

> Зачем этот цирк, если можно указать правильную архитектуру с 64-битными инструкциями?

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

ZenitharChampion ★★★★★
()

Ого, и Power туда же, эпичненько.

ncrmnt ★★★★★
()

А вообще интересно. Году эдак в 2014 несколько крупных производителей софта начали собирать 32-битные бинари с sse2, хотя раньше они так делали только с 64-битными. Например Adobe Flash с версии 11.2 стал требовать проц с sse2 (в 11.1 не требовал), а Skype - с версии 4.3 (в 4.2 не требовал). Может и в sse2 что-то есть?

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

пришлось аж залогинится.

Я так понимаю такой проблемы не было у интела со времен Pentium FDIV bag.

И тут читаем вики:

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

Стремление производителя утаить проблему и реакция на её обнаружение вызвали недовольство потребителей и обширную критику в СМИ, в том числе жесткий репортаж CNN. В результате компания изменила позицию и объявила, что будет свободно обменивать дефектные процессоры всем желающим. Энди Гроув принес публичные извинения. История стоила Intel более половины прибыли за последний квартал 1994 г. — $475 млн

да и ошибка F0 0F C7 C8 как говорит та же вики приводила к бесплатной замене процессоров.

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

Zhelezniy_Felix
()

Кстати акции Интел упали, AMD - поднялись.

теперь ещё и прогеров кормить нечем будет

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

На данный момент времени по тому же Spectre нет ни отрицательных, ни положительных отчётов от немногочисленных специалистов имеющих доступ к Elbrus'ам.

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

EXL ★★★★★
()

Есть куча старых процов, даже пень ммх и курикс, надо будет проверить

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

будут ли судебные иски домохозяек?

Я думаю, что будут судебные иски не от домохозяек, а от Гугла, Микрософта, Амазона и прочих облачных провайдеров. Но это если Spectre умеет читать данные других процессов - что-то не могу найти четкого заявления, что это так.

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

И вопрос номер два, будет ли в природе утиль из разряда - нажал кнопку, проверил и всё понятно. Статистика по процам моментально соберется, вполне для целого канала на ютубе хватит.

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

Нахватало еще чтобы про это поделие серьезные люди писали)

anonymous
()

Амуде рулит, мельдоний не пройдет. Что касается Spectre, то и без него жабаскрипт - говнище.

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

На харде потеря примерно 40 секунд в традиционной компеляции

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

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

Zhelezniy_Felix
()

С точки зрения уязвимости конечного пользователя в современной OS права за чтение памяти мало чем отличаются от прав на запись в эту память. Действительно, ну какая разница, как именно у вас уведут пароль, кредитку или какой-нибудь токен, с rootа или без?

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

У меня есть смутные ощущения, что мы вернулись во времена Windows 98. Только теперь это уже касается Android, iOS и тех fullscreen-приложений под Win10. Из маркетов можно многого понаставить.

Может меня кто-нибудь разубедит? А то я спать плохо буду.

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

Ну тогда я думаю тут домохозяйки развернутся, продан продукт с заведомо заложенной проблемой безопасности и нарушения конфиденциальности. Особенно если кто нибудь докажет что у него именно из за этого что нибудь например украли. Помню была такая надпись и значок на процах «Windows compatible» из за того что всякие гринцпу не переваривали винду. Тут интелу новые процы тоже придется как то клеймить что бы успокоить покупателей.

Zhelezniy_Felix
()

Все так парят мозг с отключение JavaScript, мол браузеры уязвимы... При этом мне так и не удалось нагуглить хоть одного рабочего варианта реализации уязвимости через JS.

Вариант в https://spectreattack.com/spectre.pdf - не работает.

Раздули из мухи слона.

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

У него уже есть встроенный. Ищи там чтоб по умолчанию скрипт был запрещен.

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

Знала ли Интел о проблеме, а если знала - можно ли это доказать - неизвестно. Но, похоже, впереди много интересного.

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

Неееееет! Только не мои биткоины!

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

И дампит твои расчёты ФСБ на радиоприёмник

Раз за разом всплывают IME, Prism, TLB, АНБ, но хомячки все ссутся с ФСБ.

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

С 300 я уже попробовал и выше отписал, всё работает.
А со 140 работает частично:

Reading 40 bytes:
Reading at malicious_x = 0xffffffffffdfecf8... Success: 0xFF=’�’ score=0 
Reading at malicious_x = 0xffffffffffdfecf9... Success: 0xFF=’�’ score=0 
Reading at malicious_x = 0xffffffffffdfecfa... Success: 0xFF=’�’ score=0 
Reading at malicious_x = 0xffffffffffdfecfb... Success: 0xFF=’�’ score=0 
Reading at malicious_x = 0xffffffffffdfecfc... Success: 0xFF=’�’ score=0 
Reading at malicious_x = 0xffffffffffdfecfd... Success: 0xFF=’�’ score=0 
Reading at malicious_x = 0xffffffffffdfecfe... Success: 0xFF=’�’ score=0 
Reading at malicious_x = 0xffffffffffdfecff... Success: 0x69=’i’ score=2 
Reading at malicious_x = 0xffffffffffdfed00... Success: 0x63=’c’ score=2 
Reading at malicious_x = 0xffffffffffdfed01... Success: 0x20=’ ’ score=2 
Reading at malicious_x = 0xffffffffffdfed02... Success: 0x57=’W’ score=2 
Reading at malicious_x = 0xffffffffffdfed03... Success: 0x6F=’o’ score=2 
Reading at malicious_x = 0xffffffffffdfed04... Success: 0x72=’r’ score=2 
Reading at malicious_x = 0xffffffffffdfed05... Success: 0x64=’d’ score=2 
Reading at malicious_x = 0xffffffffffdfed06... Success: 0x73=’s’ score=2 
Reading at malicious_x = 0xffffffffffdfed07... Success: 0x20=’ ’ score=2 
Reading at malicious_x = 0xffffffffffdfed08... Success: 0x61=’a’ score=2 
Reading at malicious_x = 0xffffffffffdfed09... Success: 0x72=’r’ score=2 
Reading at malicious_x = 0xffffffffffdfed0a... Success: 0x65=’e’ score=2 
Reading at malicious_x = 0xffffffffffdfed0b... Success: 0x20=’ ’ score=2 
Reading at malicious_x = 0xffffffffffdfed0c... Success: 0x53=’S’ score=2 
Reading at malicious_x = 0xffffffffffdfed0d... Success: 0x71=’q’ score=2 
Reading at malicious_x = 0xffffffffffdfed0e... Success: 0x75=’u’ score=2 
Reading at malicious_x = 0xffffffffffdfed0f... Success: 0x65=’e’ score=2 
Reading at malicious_x = 0xffffffffffdfed10... Success: 0x61=’a’ score=2 
Reading at malicious_x = 0xffffffffffdfed11... Success: 0x6D=’m’ score=2 
Reading at malicious_x = 0xffffffffffdfed12... Success: 0x69=’i’ score=2 
Reading at malicious_x = 0xffffffffffdfed13... Success: 0x73=’s’ score=2 
Reading at malicious_x = 0xffffffffffdfed14... Success: 0x68=’h’ score=2 
Reading at malicious_x = 0xffffffffffdfed15... Success: 0x20=’ ’ score=2 
Reading at malicious_x = 0xffffffffffdfed16... Success: 0x4F=’O’ score=2 
Reading at malicious_x = 0xffffffffffdfed17... Success: 0x73=’s’ score=2 
Reading at malicious_x = 0xffffffffffdfed18... Success: 0x73=’s’ score=2 
Reading at malicious_x = 0xffffffffffdfed19... Success: 0x69=’i’ score=2 
Reading at malicious_x = 0xffffffffffdfed1a... Success: 0x66=’f’ score=2 
Reading at malicious_x = 0xffffffffffdfed1b... Success: 0x72=’r’ score=2 
Reading at malicious_x = 0xffffffffffdfed1c... Success: 0x61=’a’ score=2 
Reading at malicious_x = 0xffffffffffdfed1d... Success: 0x67=’g’ score=2 
Reading at malicious_x = 0xffffffffffdfed1e... Success: 0x65=’e’ score=2 
Reading at malicious_x = 0xffffffffffdfed1f... Success: 0x2E=’.’ score=2

Со 150 отрабатывает полностью корректно.

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

да у же разобрался. оказалось надо было собирать с -O0 и код пропатчить. бинарник запустился, но эксплоит всё равно не работает. в смысле - не срабатывает

Увеличь цифру в THRESHOLD с 80 до чего-нибудь поболее, например, 140 или 300

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

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

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

конечно знала, она же разработчик продукта

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

tailgunner ★★★★★
()

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

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