[ON] Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
Модератор: Модераторы разделов
[ON] Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
Компании Intel, ARM и AMD раскрыли информацию о двух новых уязвимостях в механизме спекулятивного выполнения инструкций. Для полного устранения проблем требуется установка обновления микрокода и внесение изменений на стороне операционной системы. Бета-версия обновления микрокода Intel пока предоставлена только OEM-производителям. Для ядра Linux уже предложены необходимые патчи (защита действует только при обновлённом микрокоде). Обновления пакетов с ядром сформированы для RHEL и Ubuntu, и ожидаются для Debian и SUSE. По предварительной оценке исправление проблем приведёт к снижению производительности на 2-8%.
Нераскрытыми остаются детали о ещё 6 уязвимостях (четыре с высоким уровнем опасности, а две со средним), публикация детальной информации по которым ожидается в августе, после истечения эмбарго. Раскрытым уязвимостям присвоен средний уровень опасности. Первая из раскрытых проблем (Spectre 3a, буква добавлена чтобы избежать путаницы, так как вариант 3 может трактоваться как уязвимость Meltdown) позволяет прочитать содержимое системных регистров, а вторая (Spectre 4) даёт возможность прочитать данные из закрытых областей памяти. Проблемы не специфичны для архитектуры x86 и кроме процессоров Intel и AMD, также проявляются в CPU ARM и IBM (POWER 8, POWER 9, System z).
Определённую опасность представляет Spectre 4 (CVE-2018-3639, SSB - Speculative Store Bypass) - метод атаки напоминает Spectre 1, но базируется на восстановлении осевших в процессорном кэше данных после отбрасывания результата спекулятивного выполнения операций при обработке чередующихся операций записи и чтения с использованием косвенной адресации. Когда операция чтения следует за операцией записи (например, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), смещение адреса для чтения уже может быть известно из-за выполнения похожих операций (операции чтения выполняются значительно чаще и чтение может быть выполнено из кэша) и процессор может спекулятивно выполнить чтение раньше записи, не дожидаясь пока будет вычислено смещение косвенной адресации для записи. Если после вычисления смещения выявлено пересечение областей памяти для записи и чтения, процессор просто отбросит уже спекулятивно полученный результат чтения и повторит эту операцию.
Данная особенность позволяет инструкции чтения получить доступ к старому значению по некоторому адресу во время пока операция сохранения ещё не завершена. После отбрасывания неудачной спекулятивной операции в кэше остаются следы от её выполнения, после чего для его извлечения может применяться один из способов определения содержимого кэша на основе анализа изменения времени доступа к прокэшированным и не прокэшированным данным.
Практически атака Spectre 4 осуществима только в рамках привилегий одного уровня, т.е. привилегии атакующего должны допускать доступ к исследуемой памяти. Наиболее опасным применением уязвимости является атака на браузеры и системы совместного изолированного выполнения кода (например, JVM, изоляция кода в sandbox, системы с JIT). В контексте браузера атака позволяет получить доступ к памяти с данными других вкладок при помощи выполнения JavaScript-кода, но возможность проведения атак по восстановлению содержимого кэша уже достаточно эффективно блокируется в актуальных выпусках web-браузеров, благодаря ограничению точности таймера.
Опасность совершения атак в системах массового доступа (серверы хостинга, системы виртуализации и облачные платформы и т.п.) находится под вопросом, так как прототипы совершения атаки подтверждены только в рамках одного уровня привилегий. Чтобы использовать уязвимость для чтения привилегированных областей системной памяти, атакующему необходимо контролировать старое значение по определённому адресу в системной памяти.
Проблема независимо выявлена исследователями Google Project Zero и Microsoft Security Response Center (MSRC). Для защиты на уровне операционной системы для процессоров Intel предложена техника SSBD (Speculative Store Bypass Disable), основывающаяся на применении нового MSR-бита, который будет доступен после обновления микрокода. Так как блокирование проблемы сопряжено с потерей производительности, а тотальная защита от Spectre 4 не всегда целесообразна, в исправлении для ядра Linux предусмотрена опция speculative_store_bypass_disable, позволяющая отключить защиту. В случае активации защиты для приложений предложен новый интерфейс prctl, при помощи которого программы могут определять наличие защиты и выборочно отключать её для отдельных процессов.
Что касается Spectre 3a (CVE-2018-3640, RSRE - Rogue System Register Read), то уязвимость может привести к чтению содержимого системных регистров с информацией о состоянии оборудования, доступ к которым имеется только у ядра, драйверов и гипервизоров. Проблема выявлена исследователями из компании SYSGO AG.
Дополнительно можно отметить публикацию исследователей из компании Eclypsium, которые показали, что уязвимость Spectre v1 может применяться для атаки на режим системного управления процессора SMM (System Management Mode), более приоритетного, чем режим гипервизора и нулевое кольцо защиты. В ходе эксперимента была продемонстрирована возможность восстановления данных из SMRAM (System Management RAM), области физической памяти в которой сохраняются данные SMM.
Источник: https://www.opennet.ru/opennews/art.shtml?num=48639
(opennet.ru, основная лента)
Нераскрытыми остаются детали о ещё 6 уязвимостях (четыре с высоким уровнем опасности, а две со средним), публикация детальной информации по которым ожидается в августе, после истечения эмбарго. Раскрытым уязвимостям присвоен средний уровень опасности. Первая из раскрытых проблем (Spectre 3a, буква добавлена чтобы избежать путаницы, так как вариант 3 может трактоваться как уязвимость Meltdown) позволяет прочитать содержимое системных регистров, а вторая (Spectre 4) даёт возможность прочитать данные из закрытых областей памяти. Проблемы не специфичны для архитектуры x86 и кроме процессоров Intel и AMD, также проявляются в CPU ARM и IBM (POWER 8, POWER 9, System z).
Определённую опасность представляет Spectre 4 (CVE-2018-3639, SSB - Speculative Store Bypass) - метод атаки напоминает Spectre 1, но базируется на восстановлении осевших в процессорном кэше данных после отбрасывания результата спекулятивного выполнения операций при обработке чередующихся операций записи и чтения с использованием косвенной адресации. Когда операция чтения следует за операцией записи (например, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), смещение адреса для чтения уже может быть известно из-за выполнения похожих операций (операции чтения выполняются значительно чаще и чтение может быть выполнено из кэша) и процессор может спекулятивно выполнить чтение раньше записи, не дожидаясь пока будет вычислено смещение косвенной адресации для записи. Если после вычисления смещения выявлено пересечение областей памяти для записи и чтения, процессор просто отбросит уже спекулятивно полученный результат чтения и повторит эту операцию.
Данная особенность позволяет инструкции чтения получить доступ к старому значению по некоторому адресу во время пока операция сохранения ещё не завершена. После отбрасывания неудачной спекулятивной операции в кэше остаются следы от её выполнения, после чего для его извлечения может применяться один из способов определения содержимого кэша на основе анализа изменения времени доступа к прокэшированным и не прокэшированным данным.
Практически атака Spectre 4 осуществима только в рамках привилегий одного уровня, т.е. привилегии атакующего должны допускать доступ к исследуемой памяти. Наиболее опасным применением уязвимости является атака на браузеры и системы совместного изолированного выполнения кода (например, JVM, изоляция кода в sandbox, системы с JIT). В контексте браузера атака позволяет получить доступ к памяти с данными других вкладок при помощи выполнения JavaScript-кода, но возможность проведения атак по восстановлению содержимого кэша уже достаточно эффективно блокируется в актуальных выпусках web-браузеров, благодаря ограничению точности таймера.
Опасность совершения атак в системах массового доступа (серверы хостинга, системы виртуализации и облачные платформы и т.п.) находится под вопросом, так как прототипы совершения атаки подтверждены только в рамках одного уровня привилегий. Чтобы использовать уязвимость для чтения привилегированных областей системной памяти, атакующему необходимо контролировать старое значение по определённому адресу в системной памяти.
Проблема независимо выявлена исследователями Google Project Zero и Microsoft Security Response Center (MSRC). Для защиты на уровне операционной системы для процессоров Intel предложена техника SSBD (Speculative Store Bypass Disable), основывающаяся на применении нового MSR-бита, который будет доступен после обновления микрокода. Так как блокирование проблемы сопряжено с потерей производительности, а тотальная защита от Spectre 4 не всегда целесообразна, в исправлении для ядра Linux предусмотрена опция speculative_store_bypass_disable, позволяющая отключить защиту. В случае активации защиты для приложений предложен новый интерфейс prctl, при помощи которого программы могут определять наличие защиты и выборочно отключать её для отдельных процессов.
Что касается Spectre 3a (CVE-2018-3640, RSRE - Rogue System Register Read), то уязвимость может привести к чтению содержимого системных регистров с информацией о состоянии оборудования, доступ к которым имеется только у ядра, драйверов и гипервизоров. Проблема выявлена исследователями из компании SYSGO AG.
Дополнительно можно отметить публикацию исследователей из компании Eclypsium, которые показали, что уязвимость Spectre v1 может применяться для атаки на режим системного управления процессора SMM (System Management Mode), более приоритетного, чем режим гипервизора и нулевое кольцо защиты. В ходе эксперимента была продемонстрирована возможность восстановления данных из SMRAM (System Management RAM), области физической памяти в которой сохраняются данные SMM.
Источник: https://www.opennet.ru/opennews/art.shtml?num=48639
(opennet.ru, основная лента)
Последний раз редактировалось rssbot 22.05.2018 19:28, всего редактировалось 3 раза.
Причина: Updated upstream
Причина: Updated upstream
Re: [ON] Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
Интересно, какая все таки реальная производительность современных процессоров, если убрать всякие спекулятивные "улучшения" производителей? Понятно, что все вокруг стремятся обмануть ради прибыли, но если помечтать...
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: [ON] Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
devilr
Что значит реальная? Спекулятивное выполнение не притворяется, что производительность выше, оно повышает производительность.
Что значит реальная? Спекулятивное выполнение не притворяется, что производительность выше, оно повышает производительность.
Спасибо сказали:
Re: [ON] Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
Само по себе понятие "спекулятивное" предполагает, что происходит некий обман, пускай и в благих целях. Хотя это и просто неблагозвучный термин.
P.S. Производительность то оно повышает, но, судя по произошедшим событием, весьма дорогой ценой...
P.S. Производительность то оно повышает, но, судя по произошедшим событием, весьма дорогой ценой...
- Bizdelnick
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: [ON] Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: [ON] Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
devilr
Какая, для потребителя, разница - за счёт чего происходит этот "обман" - за счёт гонки мегагерц или за счёт спекулятивного исполнения?
Можно утверждать, что повышение тактовой частоты процессора при большей затрате тактов на команду, чем у некого сферического процессора в вакууме, - это такой же обман потребителя, который больше платит за электроэнергию и дышит менее качественным воздухом. И все из-за капиталистов, стремящихся к извлечению прибыли. =)
Какая, для потребителя, разница - за счёт чего происходит этот "обман" - за счёт гонки мегагерц или за счёт спекулятивного исполнения?
Можно утверждать, что повышение тактовой частоты процессора при большей затрате тактов на команду, чем у некого сферического процессора в вакууме, - это такой же обман потребителя, который больше платит за электроэнергию и дышит менее качественным воздухом. И все из-за капиталистов, стремящихся к извлечению прибыли. =)
Re: [ON] Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
Что вы прицепились к словам? Для меня обман, это то, за что есть статья (или была). Спекуляция - это статья 154 УК РСФСР от 27-10-60. Но это тонкости и моё брюзжание.
Я имел в виду, что если взять гипотетический процессор, в котором все инструкции выполнялись бы честно, с надлежащим контролем прав доступа и сравнить с современным процессором - на сколько он был бы медленнее? Просто все эти патчи - это по сути костыли к, видимо, ущербной архитектуре.
Я имел в виду, что если взять гипотетический процессор, в котором все инструкции выполнялись бы честно, с надлежащим контролем прав доступа и сравнить с современным процессором - на сколько он был бы медленнее? Просто все эти патчи - это по сути костыли к, видимо, ущербной архитектуре.
- Bizdelnick
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: [ON] Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
На случай, если Вы не шутите: это второе, совершенно отдельное значение слова.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: [ON] Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
devilr
Видимо, имеет место подмена понятий. Мало ли в каком смысле использовалось слово в законодательстве СССР.
Так можно дойти и до того, что VPN - это оружие психически-неуравновешенного человека и террориста, просто потому, что так Киселев сказал. )
Видимо, имеет место подмена понятий. Мало ли в каком смысле использовалось слово в законодательстве СССР.
Так можно дойти и до того, что VPN - это оружие психически-неуравновешенного человека и террориста, просто потому, что так Киселев сказал. )
Re: [ON] Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
Вот за это я и обожаю русскоязычные форумы: можно просто зацепиться за какое-нибудь слово и обсуждать его. А ещё лучше: обсуждать того, кто это слово произнёс.
Я то говорил за совсем другое. Хотя, если никто не хочет (или не может) обсудить саму проблему - так тому и быть.
Я то говорил за совсем другое. Хотя, если никто не хочет (или не может) обсудить саму проблему - так тому и быть.
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: [ON] Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
devilr
Какое слово?
Давайте заменим это гадкое слово, смысл не изменится:
Какая, для потребителя, разница - за счёт чего происходит этот "обман" - за счёт гонки мегагерц или за счёт спекулятивного упреждающего исполнения?
Какое слово?
Давайте заменим это гадкое слово, смысл не изменится:
Какая, для потребителя, разница - за счёт чего происходит этот "обман" - за счёт гонки мегагерц или за счёт спекулятивного упреждающего исполнения?
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: [ON] Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
Да, это большая проблема и согласен, особенно свойственная, рунету, но к этой теме не имеет никакого отношения. Тут, кажется, уже почти все поняли, что вы неправильно понимаете фичу, в чьем название имеется то самое противное слово. )
Последний раз редактировалось serzh-z 22.05.2018 20:16, всего редактировалось 1 раз.
Re: [ON] Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
Я не за обман говорил. Основная фраза была
А затемИнтересно, какая все таки реальная производительность современных процессоров, если убрать всякие спекулятивные "улучшения" производителей?
Я имел в виду, что если взять гипотетический процессор, в котором все инструкции выполнялись бы честно, с надлежащим контролем прав доступа и сравнить с современным процессором - на сколько он был бы медленнее?
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: [ON] Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
devilr
Что такое "честно" по отношению к выполнению инструкций процессора? Оптимизировать поток выполнения - это нечестно?
А использовать результат из кеша - честно? А использовать такие транзисторы, благодаря которым на исполнение команды процессор будет тратит один такт, а не два - это вообще, наверное, чит?
Что такое "честно" по отношению к выполнению инструкций процессора? Оптимизировать поток выполнения - это нечестно?
А использовать результат из кеша - честно? А использовать такие транзисторы, благодаря которым на исполнение команды процессор будет тратит один такт, а не два - это вообще, наверное, чит?
- Bizdelnick
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: [ON] Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
Самая большая проблема рунета — любители обсуждать проблемы рунета.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: [ON] Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
Честно - это вначале проверять права доступа к определённому адресу, затем получать данные по этому адресу, а только затем помещать эти данные в кеш. А не предполагать, что тот, кто запрашивает данные по определённому адресу, точно имеет права на чтение этих данных. Собственно, в этом и проблема.
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: [ON] Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
Bizdelnick
Не принимай это на свой счет. =)
Не принимай это на свой счет. =)
Re: [ON] Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
Мне, как потребителю, вся проблема выглядит как обман. Выяснили, что если программист не просто знает ассемблер, а может на уровне машинных инструкций понимать как именно выполняются программы и этот программист может запустить на моём ПК свою программу с большими привилегиями, то (о боже) он в некоторых случаях может прочитать мой пароль из кеша процессора.Понятно, что все вокруг стремятся обмануть ради прибыли, но если помечтать...
Простите, знаю пример только для винды. Чтобы спасти меня от программы типа ArtMoney они устроили истерику в СМИ и снижают мне патчами производительность моего процессора. Вот это я понимаю обман!