OSDev

для всех
Текущее время: 29 мар 2024, 14:07

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Speculation Execution security bug!
СообщениеДобавлено: 25 янв 2018, 12:52 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
4 января 2018 года опубликована информация о двух серьёзных уязвимостях — Spectre и Meltdown, присутствующих в большинстве современных процессоров. Уязвимости найдены компанией Гугл в середине прошлого года и имеют чисто аппаратных характер, что означает невозможность обновления микрокода и необходимость существенных изменений в операционных системах. Суть проблемы заключается в наличии в микропроцессорах кэш-памяти, блоков предсказания переходов и спекулятивного выполнения инструкций. Сочетание этих факторов приводит к появлению атаки типа side-channel, позволяющей для атаки Meltdown легко и быстро прочитать любые данные, находящиеся в закрытой для текущего уровня привилегий памяти. Суть проблемы состоит в том, что спекулятивное выполнение позволяет выполнять последовательность инструкций, которые не могут быть выполнены при текущем уровне привилегий. При этом не важно, что эти инструкции не будут в итоге приняты — в результате их выполнения в зависимости от содержимого защищённой памяти пробные данные попадают или не попадают в кэш и наличие их в кэше легко проверяется таймированием времени доступа к ним. Уязвимости не подвержены только очень старые процессоры 80486.
По сути, надёжным способом защиты является отсутствие каких-либо критичных данных (явок/паролей) в адресном пространстве процесса. Практика показывает, что такая защита замедляет работу приложений до 30%. Соответственно, всем разработчикам ОС необходимо иметь это ввиду.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Speculation Execution security bug!
СообщениеДобавлено: 25 янв 2018, 17:03 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Возможно, я чего-то недопонимаю, но, как по мне, это не является уязвимостью для достаточно реальных применений. Доступ к самим данным получить возможно? Прямо -- нет, защита памяти не даст. Косвенно вычислить по времени доступа? Отдельные значения, может, и удастся, в целом -- нет, т.к. спекулятивное выполнение далеко не забегает, плюс ограничения по адресам (бОльшая часть адресного пространства в 64-разрядных системах недоступна), не говоря уже о том, что ещё надо найти подходящий для этой цели привилегированный код.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Speculation Execution security bug!
СообщениеДобавлено: 25 янв 2018, 18:00 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Уязвимость Spectre действительно не так просто эксплуатировать, это верно. Возможность чтения зависит от кода вызываемых привилегированных функций. А вот Meltdown — это реальная катастрофа. Конечно, прямо читать память ядра нельзя. Однако с учётом того, что процессор имеет инструкцию команды очистки кэша clflush, за одну простую ассемблерную итерацию можно узнать один бит любой ячейки защищённой памяти, что позволяет "читать" память ядра со скоростью порядка мегабайта в секунду. А там находится не только мусор самого приложения, но и большое количество системных данных, которые смапированы системой на все приложения для ускорения переключения задач, а также критически важные данные касающиеся работы самой ОС. Не удивлюсь, если там есть и системные пароли/ключи. Без инструкции очистки кэша существенно падает скорость "чтения", поскольку надо забивать кэш, чтобы вытеснить тестовую ячейку, однако и небольшой скорости достаточно, если знать, где и что читать.
Обновление процессоров не поможет, потому что никто не станет обновлять астрономический по своим масштабам парк использующихся процессоров и смартфонов (некоторые ARMы тоже уязвимы).

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Speculation Execution security bug!
СообщениеДобавлено: 25 янв 2018, 20:12 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Yoda писал(а):
clflush


От IA-32 давно отошёл, так что не знаю, насколько крива сия команда, но поверю на слово :)

Цитата:
Обновление процессоров не поможет, потому что никто не станет обновлять астрономический по своим масштабам парк использующихся процессоров и смартфонов (некоторые ARMы тоже уязвимы).


Станут-станут. Сколько хомячков пытаются купить каждый новый ифон? или даже другую модель, но всенепременно новую? а так лишний стимул.

Пы.Сы. И ведь проблема, в общем-то, лечится чисто программно: надо просто после каждого условного перехода, проверяющего допустимость параметра от пользователя, ставить барьер, чтоб проц не мчался спекулятивно что-нибудь исполнять, пока переход реально не будет (не) выполнен. Учитывая, что такая правка нужна только в ядрах осей, причём в очень небольшом и заранее известном числе мест, осуществить сие -- дело нескольких дней, если реально этим заниматься.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB