- +

Автор: denkin Тема: Разработчики Linux и Windows работают над закрытием уязвимости в процессорах  (Прочитано 200 раз)

Оффлайн denkin

  • Global Moderator
  • Старожил
  • *****
  • Сообщений: 1557
  • Репутация: +74/-2
    • Просмотр профиля
Цитировать
Фундаментальная ошибка проектирования всех современных процессоров Intel, выпущенных за последние 10 лет, заставила разработчиков Linux и Windows в срочном порядке переписывать значительные куски кода ядер для того, чтобы закрыть недавно открытую в них уязвимость. Архитектура ARM64 также подвержена уязвимости.
Новость на Opennet.
Spoiler: Подробности • показать

"Детали уязвимости находятся под эмбарго до тех пор, пока не будут выпущены исправления, которое намечается на середину января 2018 года, когда выйдет новое ядро Linux и ежемесячное обновление безопасности для Windows. Проблема возможно уже исправлена в ядре 4.14.11, учитывая огромный размер инкрементного патча (229 KiB).

По известным сейчас данным, обход этой аппаратной проблемы может привести к падению производительности приложений на процессорах Intel от 5 до 30% и даже до 63% на некоторых задачах. Более новые чипы от Intel имеют в своём арсенале возможности (PCID / ASID), позволяющие сократить провал в производительности при применении исправления.

Суть уязвимости, скорее всего, заключается в том, что процессоры Intel при спекулятивном выполнении кода не выполняют проверки на безопасность инструкций, которые позволяют читать сегменты памяти, что позволяет любому пользовательскому приложению получить доступ к памяти ядра, тем самым позволяя прочитать закрытые данные, такие как ключи шифрования и пароли. Большую опасность проблема также представляет для систем виртуализации, так как позволяет получить доступ к памяти вне гостевой системы.

Для решения проблемы разработчикам ядер пришлось полностью разделить память ядра и память пользовательских приложений, однако такое решение приводит к серьёзному падению производительности из-за постоянной необходимости замены указателей на память. Разработчики ядра Linux в шутку предлагали следующие аббревиатуры для новой модели разделения памяти ядра и пользовательских процессов: User Address Space Separation (*_uass) и Forcefully Unmap Complete Kernel With Interrupt Trampolines (fuckwit_*), однако остановились на Kernel Page Table Isolation (kpti_*).

Разработчики из GRSecurity протестировали патчи и увидели огромное падение производительности. Разработчики PostgreSQL отметили падение производительности в тесте pgbench на 23% (при использовании процессоров с PCID - 17%). Из-за сильного влияния на производительность разработчики патча предусмотрели опцию для отключения KPTI, которая активируется через передачу параметра "nopti" при загрузке ядра.

Компания AMD утверждает, что её процессоры уязвимости не подвержены. Работа над исправлением уязвимости в других операционных системах также активно ведётся.

Дополнение: Выполнение программ под DOSEMU и Wine замедлится от исправления ещё больше, ввиду использования эмуляторами LDT.

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