rdkl
511
Блоги

Новый день, новая уязвимость в процессорах Intel (не такая масштабная)

Оптимизация FPU в процессорах Intel (появившаяся в 1990-x годах) оказалась уязвимой к чтению из другого процесса (в т.ч. процесса виртуальной машины)

Поделиться

В избранное

В избранном

В каждом CPU существуют регистры (длиной в 32-64 бита), которые является самой низкоуровненовой структурой процессора, доступной разработчикам ОС. Однако, кроме обычных регистров (которые используются для операций над целыми числами), есть отдельные части процессора, которые делают отельные операции быстрее.

Как раз такой частью является и FPU (floating point unit), который отвечает за операции с дробными числами. FPU сам имеет свои регистры, причем в новых процессорах они могут быть длиной в 512 байт (для дополнительных инструкций из наборов MMX/SSE/AVX). В сумме в них можно хранить несколько килобайт информации.

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

В каждом CPU процессы периодически меняют друг друга для обеспечения мультизадачности, когда процессов больше, чем ядер процессовра. Это происходит довольно часто, чтобы пользователь не заметил что в каждый момент времени на ядре может работать только один процесс. Когда FPU только появился (~1990 год) доступ к нему был не очень быстрый, поэтому применялась оптимизация вроде (если процесс не трогает FPU, мы не будем его сохранять и очищать, чтобы не перезагружать потом (из-за размера регистров FPU это было относительно долго)). Такую оптимизацию называют lazy FP switch. Собственно, чтобы другие процессы не могли читать несброшенную память FPU, использовался специальный механизм вроде (если специальный бит равен 0, то при попытке доступа к FPU сохранить и очистить его регистры). Но, как оказалось, это можно обойти (более детальная информация пока недоступна из-за эмбарго).

Насколько это страшно? Вроде бы не очень. В linux эту оптимизацию отключили по-умолчанию в ядре 4.6 (2016 год), удалили в 4.10 окончательно, мотивируя тем, что "в современных процессорах FPU быстрый, а оптимизация почти никогда не работает". В windows 10, windows server 2016 это (вроде бы) тоже отключено, а вот server 2008 уязвима (полный список уязвимых ОС удален по требованию Intel).
OpenBSD и DragonflyBSD выпустили патчи (собственно, из-за них об уязвимости и узнали, так было эмбарго до августа).

Возникает вопрос, а может это не AMD отстает, а Intel просто фигачит оптимизации, которые потенциально опасны?

http://blog.cyberus-technology.de/posts/2018-06-06-intel-lazyfp-vulnerability.html

{ "author_name": "rdkl ", "author_type": "self", "tags": [], "comments": 11, "likes": 9, "favorites": 0, "is_advertisement": false, "section_name": "blog", "id": "72223", "is_wide": "" }
Популярные материалы
Показать еще
{ "is_needs_advanced_access": true }

Популярные комментарии

Дискуссии по теме
доступны только владельцам клубного аккаунта

Купить за 75₽
Авторизоваться

Преимущества
клубного аккаунта

  • отсутствие рекламы
  • возможность писать комментарии и статьи
  • общение с членами клуба
Подробнее

Преимущества
клубного аккаунта

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

Сколько это стоит?

Членство в клубе стоит всего 75₽ в месяц. Или даже дешевле при оплате за год.

Что такое клуб?

Клуб ТЖ это сообщество единомышленников. Мы любим читать новости, любим писать статьи, любим общаться друг с другом.

Вступить в клуб

Комментарии Комм.

Популярные

По порядку

0

Прямой эфир

Вы не против подписаться на важные новости от TJ?

Нет, не против
[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "i", "ps": "cndo", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "i", "ps": "cndo", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "ezfk" } } }, { "id": 6, "disable": true, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byswn", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "cndo", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223677-0", "render_to": "inpage_VI-223677-0-130073047", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=cndo&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudv", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fzvc" } } } ]