> > > > Устранение уязвимости LVI существенно сказывается на производительности процессоров Intel

Устранение уязвимости LVI существенно сказывается на производительности процессоров Intel

Опубликовано:

lvi"Дыры" процессоров Intel никак не заканчиваются, и на этой неделе внимание привлекала уязвимость Load Value Injection или LVI. Метод LVI заключается в обратном инжиниринге уязвимостей типа Spectre, но с активным компонентом (инъекция кода) для извлечения данных.

Intel опубликовала список уязвимых процессоров. В первой версии списка присутствовали модели Ice Lake, но позднее они были убраны. Но уязвимы все процессоры, поддерживающие Software Guard Extensions (SGX). Судя по имеющейся информации, проблема полностью решена только у процессоров Ice Lake. Хотя настольные и мобильные процессоры тоже уязвимы, как и серверные модели, обычные пользователи не применяют функции безопасности, подобные SGX, поэтому проблема их вряд ли коснется. Но в случае серверов уязвимости необходимо закрывать. И здесь владельцев серверных ферм ждет неприятный сюрприз в виде падения производительности процессора, о чем мы поговорим чуть ниже.

Но здесь не все так просто, все зависит от уровня программного устранения уязвимости. Intel уже внедрила аппаратные механизмы защиты в некоторые степпинги Coffee Lake, процессоры Comet Lake и Cascade Lake. Intel уже обновила SGX SDK и техническую документацию. Вышел патч компилятора, который использует LFENCE для предотвращения предварительного выполнения кода. Что закрывает путь для LVI.

Сейчас доступны три опции: LFENCE может выполняться после каждой инструкции Load, для каждой Indirect Branch и перед каждой инструкцией Ret. И вместо параллельного выполнения множества инструкций добавление LFENCE приводит к тому, что процессор выполняет многие инструкции последовательно. В результате производительность процессора снижается.

Phoronix опубликовала соответствующие тесты, которые были проведены на Intel Xeon E3-1275 v6 (Kaby Lake) на Ubuntu 20.04. В зависимости от выбранной опции, падение производительности может быть довольно серьезным. Конечно все зависит о приложения.

При выполнении опции LFENCE до инструкции Indirect Branch производительность снижается на 3,4%. В случае LFENCE до инструкции RET мы получаем падение на 8,3%. Чтобы устранить все риски, следует выполнять LFENCE после инструкции Load или LFENCE для всех случаев (Load + Indirect Branch + Ret). Производительность при этом снижается на 434 и 447%, соответственно. Конечно, такой эффект нельзя назвать приемлемым.

В тестах Phoronix присутствует большое количество других тестов. И результаты очень сильно зависят от приложения.

Подписывайтесь на группы Hardwareluxx ВКонтакте и Facebook, а также на наш канал в Telegram (@hardwareluxxrussia).

Мы рекомендуем ознакомиться с нашим руководством по выбору лучшего процессора Intel и AMD на весну 2020. Оно поможет выбрать оптимальный CPU за свои деньги и не запутаться в ассортименте моделей на рынке.