Meltdown and Spectre
От: Cyberax Марс  
Дата: 04.01.18 07:49
Оценка: 38 (4)
Стали известны детали Meltdown и Spectre. Если кратко: всё плохо.

Meltdown специфичен для Intel и позволяет из userspace-процесса прочитать всю физическую память, включая ядро и гипервизор. Защита только через KAISER для Линукса ( https://lwn.net/Articles/741878/ ) или аналогичное изменение для NT. AMD не подвержен конкретно этой уязвимости.

Spectre является более общей уязвимостью и полной защиты от неё пока что нет.
Sapienti sat!
Re: Meltdown and Spectre
От: wildwind Россия  
Дата: 04.01.18 10:09
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Стали известны детали Meltdown и Spectre. Если кратко: всё плохо.


Мое (скромное) мнение: плохо, но все же не смертельно.

C>Spectre является более общей уязвимостью и полной защиты от неё пока что нет.


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

Да и AMD утверждает обратное:

Variant One Bounds Check Bypass Resolved by software / OS updates to be made available by system vendors and manufacturers. Negligible performance impact expected.

http://www.amd.com/en/corporate/speculative-execution

Re: Meltdown and Spectre
От: vsb Казахстан  
Дата: 04.01.18 10:28
Оценка:
Уязвимость это, конечно, плохо, но непонятно, зачем замедлять все компьютеры из-за этого. У меня на компьютере из "левого" кода только жаваскрипт в браузере, остальному коду я доверяю. Браузерописатели используют свои способы для митигации этой уязвимости, то бишь и через жаваскрипт эта атака не пройдёт, когда браузеры пропатчатся. Ну и к чему весь этот кипиш? Продавцам виртуалок плохо, тут вопросов нет, а всем остальным зачем тормозить. Линуксоиды-то пропишут nopti себе, а остальным, похоже, придётся идти за новым процессором.
Re[2]: Meltdown and Spectre
От: wildwind Россия  
Дата: 04.01.18 10:58
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>У меня на компьютере из "левого" кода только жаваскрипт в браузере, остальному коду я доверяю.


Правда? И какие у тебя основания доверять? Ведь этот "остальной код" регулярно обновляется (я надеюсь!), как и JavaScript в браузере.

vsb>Ну и к чему весь этот кипиш? Продавцам виртуалок плохо, тут вопросов нет, а всем остальным зачем тормозить. Линуксоиды-то пропишут nopti себе, а остальным, похоже, придётся идти за новым процессором.


Это ты не кипишуй. "Идти за новым процессором" придется тем, у кого он загружен на 100%, то есть продавцам виртуалок.
Re[2]: Meltdown and Spectre
От: Pavel Dvorkin Россия  
Дата: 04.01.18 11:05
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Уязвимость это, конечно, плохо, но непонятно, зачем замедлять все компьютеры из-за этого. У меня на компьютере из "левого" кода только жаваскрипт в браузере,


Как утверждают здесь, уязвимость можно эксплуатировать из javascript

https://spectreattack.com/spectre.pdf


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


И плугины тоже ?
With best regards
Pavel Dvorkin
Re: Meltdown and Spectre
От: Pavel Dvorkin Россия  
Дата: 04.01.18 11:12
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Meltdown специфичен для Intel и позволяет из userspace-процесса прочитать всю физическую память, включая ядро и гипервизор. Защита только через KAISER для Линукса ( https://lwn.net/Articles/741878/ ) или аналогичное изменение для NT. AMD не подвержен конкретно этой уязвимости.


С Windows что-то не совсем понятное.

Википедия утверждает, что MS уже выпустила патч, вчера

https://en.wikipedia.org/wiki/Meltdown_(security_vulnerability)

и вот его описание

https://www.theverge.com/2018/1/3/16846784/microsoft-processor-bug-windows-10-fix

Но при этом

>Sources familiar with Microsoft’s plans tell The Verge.


что заставляет относиться к этому с некоторой осторожностью.

От самой MS действительно есть патч от 3 января

https://support.microsoft.com/en-us/help/4056892/windows-10-update-kb4056892

но там сказано

You can also type About your PC in the Search box on your taskbar to confirm that your device is using OS Build 16299.125.

Проверил — именно этот билд при том, что никаких апдейтов в этом году не было.
With best regards
Pavel Dvorkin
Re[3]: Meltdown and Spectre
От: vsb Казахстан  
Дата: 04.01.18 11:19
Оценка:
Здравствуйте, wildwind, Вы писали:

vsb>>У меня на компьютере из "левого" кода только жаваскрипт в браузере, остальному коду я доверяю.


W>Правда? И какие у тебя основания доверять? Ведь этот "остальной код" регулярно обновляется (я надеюсь!), как и JavaScript в браузере.


Основания простые — этот код имеет доступ к моим паролям, моим проектам и всему остальному, что для меня действительно важно. А доступ к ядру ОС, честно говоря, это вообще пофиг. Так получается, что все программы в современных ОС запускаются более-менее от одного пользователя и имеют доступ к данным друг-друга, поэтому тут уже какие-то дополнительные уязвимости особой роли не играют. Поэтому к выбору софта я стараюсь относиться ответственно.

vsb>>Ну и к чему весь этот кипиш? Продавцам виртуалок плохо, тут вопросов нет, а всем остальным зачем тормозить. Линуксоиды-то пропишут nopti себе, а остальным, похоже, придётся идти за новым процессором.


W>Это ты не кипишуй. "Идти за новым процессором" придется тем, у кого он загружен на 100%, то есть продавцам виртуалок.


Я лично процессор покупаю для пиковой производительности, а не для средней загрузки. Думаю большинство делает так же. Хоть средняя нагрузка процессора у меня в районе 1%, это не значит, что мне можно пересаживаться на 386 процессор.
Re[3]: Meltdown and Spectre
От: vsb Казахстан  
Дата: 04.01.18 11:21
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

vsb>>Уязвимость это, конечно, плохо, но непонятно, зачем замедлять все компьютеры из-за этого. У меня на компьютере из "левого" кода только жаваскрипт в браузере,


PD>Как утверждают здесь, уязвимость можно эксплуатировать из javascript


PD>https://spectreattack.com/spectre.pdf


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

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


PD>И плугины тоже ?


Насчёт плагинов не знаю, я ими не пользуюсь и давно не интересовался, как там всё устроено. Если всё аналогично коду на странице, видимо тоже.
Re[2]: Meltdown and Spectre
От: Michael7 Россия  
Дата: 04.01.18 11:44
Оценка: 18 (1)
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, Cyberax, Вы писали:


C>>Meltdown специфичен для Intel и позволяет из userspace-процесса прочитать всю физическую память, включая ядро и гипервизор. Защита только через KAISER для Линукса ( https://lwn.net/Articles/741878/ ) или аналогичное изменение для NT. AMD не подвержен конкретно этой уязвимости.


PD>С Windows что-то не совсем понятное.


В принципе, кое-какой код для Windows уже доступен для проверить самому https://github.com/turbo/KPTI-PoC-Collection
Re: Meltdown and Spectre
От: Michael7 Россия  
Дата: 04.01.18 11:58
Оценка: 1 (1) +7
Здравствуйте, Cyberax, Вы писали:

C>Стали известны детали Meltdown и Spectre. Если кратко: всё плохо.


Эх, мыщъх-а нет, может он бы если был бы жив рассказал, что же нашел в 2008 году

https://lenta.ru/news/2008/07/15/kris/

Российский хакер, известный как Крис Касперски, обнаружил уязвимость в процессорах Intel, которая позволяет совершить удаленный взлом системы при помощи скрипта на JavaScript или TCP/IP-пакета вне зависимости от операционной системы. Об этом пишет PC World со ссылкой на краткое описание презентации, подготовленной Касперски.

Re[4]: Meltdown and Spectre
От: wildwind Россия  
Дата: 04.01.18 12:19
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>к выбору софта я стараюсь относиться ответственно.


"Ответственный выбор софта" как-то избавляет от появления в нем уязвимостей время от времени?


W>>Это ты не кипишуй. "Идти за новым процессором" придется тем, у кого он загружен на 100%, то есть продавцам виртуалок.


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


Тут ты, пожалуй, прав, отчасти.
Re[3]: Meltdown and Spectre
От: Pavel Dvorkin Россия  
Дата: 04.01.18 13:50
Оценка:
Здравствуйте, Michael7, Вы писали:

M>В принципе, кое-какой код для Windows уже доступен для проверить самому https://github.com/turbo/KPTI-PoC-Collection


Собрал и запустил.

Ни на Intel i5-2300, ни на AMD Phenom II X4 955 guess и real при 20-30 итерациях не совпадают.
Ждать, пока окончится цикл while(TRUE), не стал , тем более что к тому времени совпадения могут быть просто в силу теории вероятности.

Для желающих попробовать выложил EXE. Потребуется установка рантайм библиотеки от VS2017.

http://files.rsdn.org/187/KPTI.exe

Если будете пробовать — отпишитесь
With best regards
Pavel Dvorkin
Отредактировано 04.01.2018 14:09 Pavel Dvorkin . Предыдущая версия .
Re: Meltdown and Spectre
От: Pzz Россия https://github.com/alexpevzner
Дата: 04.01.18 13:59
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Meltdown специфичен для Intel и позволяет из userspace-процесса прочитать всю физическую память, включая ядро и гипервизор. Защита только через KAISER для Линукса ( https://lwn.net/Articles/741878/ ) или аналогичное изменение для NT. AMD не подвержен конкретно этой уязвимости.


А объясни, пожалуйста, мине, тупому, каким образом возможность разнюхать kernel pages layout из user space превращается в возможность прочитать содержимое ядерной памяти?
Re[2]: Meltdown and Spectre
От: wildwind Россия  
Дата: 04.01.18 14:26
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>А объясни, пожалуйста, мине, тупому, каким образом возможность разнюхать kernel pages layout из user space превращается в возможность прочитать содержимое ядерной памяти?


В результате speculative execution область памяти ядра загружается в кэш. Оттуда его можно достать с помощью техники, аналогичной Spectre.
Re[3]: Meltdown and Spectre
От: Pzz Россия https://github.com/alexpevzner
Дата: 04.01.18 14:29
Оценка:
Здравствуйте, wildwind, Вы писали:

Pzz>>А объясни, пожалуйста, мине, тупому, каким образом возможность разнюхать kernel pages layout из user space превращается в возможность прочитать содержимое ядерной памяти?


W>В результате speculative execution область памяти ядра загружается в кэш. Оттуда его можно достать с помощью техники, аналогичной Spectre.


Первое понятно. А можно выделенное чуть подробнее?
Re: Meltdown and Spectre
От: Михaил  
Дата: 04.01.18 14:30
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Стали известны детали Meltdown и Spectre. Если кратко: всё плохо.


C>Meltdown специфичен для Intel и позволяет из userspace-процесса прочитать всю физическую память, включая ядро и гипервизор. Защита только через KAISER для Линукса ( https://lwn.net/Articles/741878/ ) или аналогичное изменение для NT. AMD не подвержен конкретно этой уязвимости.


C>Spectre является более общей уязвимостью и полной защиты от неё пока что нет.


Это для абсолютно всех процессоров intel, или только начиная с какой-то серии?
Вот arm тоже пишут о возможных проблемах.
Re[4]: Meltdown and Spectre
От: wildwind Россия  
Дата: 04.01.18 14:55
Оценка:
Здравствуйте, Pzz, Вы писали:

W>>В результате speculative execution область памяти ядра загружается в кэш. Оттуда его можно достать с помощью техники, аналогичной Spectre.


Pzz>Первое понятно. А можно выделенное чуть подробнее?


Почитай тут, "Theoretical explanation".
Если совсем кратко:
1) при чтении по определенному адресу, путем измерения времени доступа, можно определить, были ли данные считаны из кэша или из самой памяти;
2) во время speculative execution читаем из нужного адреса в регистр и тут же читаем из незакэшированной области по смещению, зависящему от значения регистра;
3) определяем по п. 1), какая область закэшировалась, вычисляем, что было в регистре.
Re[5]: Meltdown and Spectre
От: Pzz Россия https://github.com/alexpevzner
Дата: 04.01.18 15:42
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Почитай тут, "Theoretical explanation".


Ну, я тебя допрашиваю потому, что ты уже почитал и разобрался

W>Если совсем кратко:

W>1) при чтении по определенному адресу, путем измерения времени доступа, можно определить, были ли данные считаны из кэша или из самой памяти;
W>2) во время speculative execution читаем из нужного адреса в регистр и тут же читаем из незакэшированной области по смещению, зависящему от значения регистра;
W>3) определяем по п. 1), какая область закэшировалась, вычисляем, что было в регистре.

Примерно понятно. Интересно, а с какой скоростью таким методом можно данные вычитывать?
Re[6]: Meltdown and Spectre
От: andrey.desman  
Дата: 04.01.18 15:46
Оценка: 3 (1)
Здравствуйте, Pzz, Вы писали:

Pzz>Примерно понятно. Интересно, а с какой скоростью таким методом можно данные вычитывать?


В зависимости от ОС и метода от 122 до ~500 КБ/с.
Re[7]: Meltdown and Spectre
От: Grizzli  
Дата: 04.01.18 18:23
Оценка:
Здравствуйте, andrey.desman, Вы писали:

AD>В зависимости от ОС и метода от 122 до ~500 КБ/с.


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