Выпущены исправления уязвимостей Meltdown и Spectre для FreeBSD и QUEMU

Выпущены исправления уязвимостей Meltdown и Spectre для FreeBSD и QUEMU

В исправлениях используется новая инструкция IBRS, представленная компанией Intel в обновлении микрокода.

Разработчики открытой операционной системы FreeBSD выпустили набор исправлений для уязвимостей Meltdown и Spectre. Патчи интегрированы в ветку FreeBSD 11-STABLE.

Исправления для Meltdown основаны на технике Page Table Isolation (PTI), позволяющей разделять таблицы страниц памяти ядра и пространства пользователя при переключении контекста во время системного вызова. Помимо этого, в исправлениях предусмотрена оптимизация при помощи инструкции PCID, снижающая негативное влияние PTI на производительность компьютера.

Исправление для второго варианта Spectre использует новую инструкцию Indirect Branch Restricted Speculation (IBRS), представленную компанией Intel в обновлении микрокода. IBRS позволяет в зависимости от ситуации разрешать и запрещать спекулятивное выполнение косвенных переходов. Например, переходы будут запрещены во время обработки прерываний, системных вызовов и переключений контекста. Для применения данной инструкции обязательно наличие обновленного микрокода для процессоров Intel.

После установки исправлений отключить PTI будет невозможно, однако IRBIS может быть отключен через команду sysctl.

Помимо этого, защита от Meltdown и Spectre также была реализована в программе для эмуляции аппаратного обеспечения QEMU 2.11.1. Исправления для Meltdown основаны на патчах KPTI, а защита от Spectre разработана с привлечением инструкций IBRS и Indirect Branch Prediction Barriers (IBPB).

FreeBSD - свободная операционная система семейства UNIX, потомок AT&T Unix по линии BSD, созданной в университете Беркли.

QEMU - свободная программа с открытым исходным кодом для эмуляции аппаратного обеспечения различных платформ. Включает в себя эмуляцию процессоров Intel x86 и устройств ввода-вывода. Может эмулировать 80386, 80486, Pentium, Pentium Pro, AMD64 и другие x86-совместимые процессоры; PowerPC, ARM, MIPS, SPARC, SPARC64, m68k - лишь частично.

Ищем баги вместе! Но не те, что в продакшене...

Разбираем кейсы, делимся опытом, учимся на чужих ошибках

Зафиксируйте уязвимость своих знаний — подпишитесь!