- +

Автор: denkin Тема: Линус Торвальдс жестко раскритиковал связанные с микрокодом патчи Intel  (Прочитано 78 раз)

Оффлайн denkin

  • Global Moderator
  • Старожил
  • *****
  • Сообщений: 1233
  • Репутация: +69/-2
    • Просмотр профиля
Цитировать
Разработчики из компании Intel предложили для включения в ядро Linux серию патчей для блокирования второго варианта уязвимости Spectre (CVE-2017-5715). Патчи Intel позиционируются в качестве альтернативы патчам retpoline. По мнению Intel предлагаемое решение будет эффективно на процессорах Skylake и более новых, на которых не исключается появление вариантов атаки Spectre, которую не смогут закрыть патчи retpoline. При этом на старых процессорах по сравнению с retpoline решение Intel обеспечивает заметное снижение производительности, но в будущих моделях CPU влияние на производительность обещают сделать минимальным.
Новость на Opennet.
Spoiler: Подробности • показать

"Патчи Intel базируются на использовании представленной в обновлении микрокода функциональности IBRS (Indirect Branch Restricted Speculation), позволяющей разрешать и запрещать спекулятивное выполнение инструкций. В предложенном патче IBRS применяется для адаптивного включения/выключения спекулятивного выполнения косвенных переходов во время обработки прерываний, системных вызовов, переключений контекста между процессами и между виртуальными машинами. В отличие от retpoline патч Intel для всестороннего обхода Spectre не требует изменений компонентов в пространстве пользователя при включении "полного" режима работы (IBRS_ALL), активирующего применение IBRS в userspace.

В ответ на предложение включить данный патч в ядро Линус Торвальдс вышел из себя и назвал патч Intel "полным и абсолютным мусором" (complete and utter garbage), а предпринятый метод значительно хуже, чем грязный хак. Появление IBRS указывает на то, что Intel не планирует грамотного решения проблемы со спекулятивным выполнением косвенных переходов. По впечатлению Торвальдса возникает ощущение, что Intel создаёт видимость работы во избежание судебных исков и прежде всего пытается решить свои юридические проблемы, что совсем не способствует созданию технически грамотных и качественных технологий и исправлений. Судя по всему, даже сама компания Intel не воспринимает предложенный режим защиты IBRS_ALL всерьёз, так как негативное влияние на производительность столь высоко, что он отключен по умолчанию, чтобы не портить результаты тестов.

Тем временем, в запланированный на следующий понедельник выпуск ядра Linux 4.15 войдут свежие наработки по блокированию атак Meltdown и Spectre. Для противодействия атаке Meltdown (CVE-2017-5754) на системах x86 с процессорами Intel (процессоры AMD данной атаке не подвержены) добавлена технология PTI (Page Table Isolation), обеспечивающая разделение таблиц страниц памяти ядра и пространства пользователя при переключении контекста во время системного вызова. Для процессоров PowerPC для защиты от Meltdown добавлен код на основе применения инструкции RFI (Return from Interrupt) для сброса кэша L1-D.

Для блокирования эксплуатации второго варианта уязвимости Spectre (CVE-2017-5715) добавлен механизм retpoline, основанный на применении специальной последовательности инструкций, исключающей вовлечение механизма спекулятивного выполнения для косвенных переходов (для работы защиты также требуется сборка модифицированной версией GCC с поддержкой режима "-mindirect-branch=thunk-extern"). Включение средств для обеспечения защиты от первого варианта атаки Spectre (CVE-2017-5753) и кода для блокирования Meltdown на процессорах ARM отложено до выпуска 4.16.

Так как механизмы защиты приводят к снижению производительности, предусмотрены опции для их отключения, которые могут применяться на системах с минимальным риском атаки, например на однопользовательских рабочих станциях. Для отключения PTI во время загрузки ядру можно передать опцию pti=off, а для отключения retpoline - опцию "spectre_v2=off". В состав ядра также добавлен диагностический вызов в sysfs для быстрого определения степени устранения уязвимостей Meltdown и Spectre, который привязан к директории /sys/devices/system/cpu/vulnerabilities/:


   $ grep . /sys/devices/system/cpu/vulnerabilities/*
   /sys/devices/system/cpu/vulnerabilities/meltdown:Mitigation: PTI
   /sys/devices/system/cpu/vulnerabilities/spectre_v1:Vulnerable
   /sys/devices/system/cpu/vulnerabilities/spectre_v2:Vulnerable: Minimal generic SM retpoline
Дополнение: Компания Intel сообщила об определении причин проблем с перезагрузками на системах с CPU Broadwell и Haswell после установки нового микрокода. В настоящее время подготовлен начальный вариант обновлённого микрокода, который проходит тестирование среди OEM-производителей. После завершения тестирования будет предложено общедоступное обновление. До выхода данного обновления не рекомендуется использовать выпущенную в начале января версию микрокода."
(ц)