Перейти к содержимому
Local
bot

FreeBSD и QEMU против Meltdown и Spectre

Рекомендованные сообщения

Выпущены исправления уязвимостей Meltdown и Spectre для FreeBSD и QEMU. В исправлениях используется новая инструкция 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).

 

Источник: securitylab

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Стоит отметить, что от spectre и 1 и 2 они могут защитить только сам код ядра или qemu, и со spectre 1 они пока не парятся, а для 2 метод с обновлением микрокода нынче считается рискованным и ненадежным. А вот программы от обоих вариантов spectre могут только сами защищаться. Для программ кроме retpoline патча от spectre 2 для компиляторов gcc и llvm, уже есть попытки защититься от spectre 1 и 2 сразу. В частности Майкрософт уже всунула в свой компилятор статический анализ, хоть он пока плохо работает и часто пропускает уязвимый код.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

  • Похожие публикации

    • Автор: bot
      Следом за выявленной на прошлой неделе DoS-уязвимости SegmentSmack в TCP-стеках различных операционных систем, опубликована информация о другой похожей уязвимости (CVE-2018-5391, кодовое имя FragmentSmack), которая также позволяет организовать отказ в обслуживании через отправку специально оформленного набора сетевых пакетов, при обработке которого будут заняты все реcурсы CPU. Если первая уязвимость была связана с неэффективностью алгоритма обработки TCP-сегментов, то новая проблема затрагивает алгоритм пересборки фрагментированных IP-пакетов.
       
      Атака осуществляется через отправку потока фрагментированных IP-пакетов, в каждом из которых смещение фрагмента установлено случайным образом. В отличие от прошлой уязвимости SegmentSmack, в FragmentSmack возможно совершение атаки с использованием спуфинга (отправки пакетов с указанием несуществующего IP). При этом для новой атаки требуется большая интенсивность отправки: для полной утилизации ресурсов одного ядра CPU Intel Xeon D-1587@1.70GHz необходим поток на уровне 30 тысяч пакетов в секунду, в то время как для SegmentSmack было достаточно 2 тысячи пакетов в секунду.
       
      Наличие проблемы подтверждено в TCP стеках Linux и FreeBSD. В ядре Linux проблема проявляется начиная с выпуска ядра 3.9. Обновления с устранением проблемы подготовлены для Debian, Fedora, SUSE/openSUSE, Ubuntu, RHEL и FreeBSD. В качестве обходного пути защиты в Linux можно снизить значения sysctl net.ipv4.ipfrag_high_thresh и net.ipv4.ipfrag_low_thresh до 256kB и 192kB или ещё меньших значений.
      sysctl -w net.ipv4.ipfrag_low_thresh=262144 sysctl -w net.ipv4.ipfrag_high_thresh=196608 sysctl -w net.ipv6.ip6frag_low_thresh=262144 sysctl -w net.ipv6.ip6frag_high_thresh=196608  
      Во FreeBSD в качестве обходного пути защиты рекомендовано отключить пересборку фрагментированных пакетов:
      sysctl net.inet.ip.maxfragpackets=0 sysctl net.inet6.ip6.maxfrags=0 Источник: opennet
    • Автор: bot
      В TCP-стеке ядра Linux выявлена опасная уязвимость (CVE-2018-5390), которая позволяет удалённо вызвать отказ в обслуживании из-за исчерпания доступных ресурсов CPU. Для совершения атаки достаточно отправить поток специальным образом оформленных пакетов на любой открытый TCP-порт. Атака может быть совершена только с реального IP-адреса (спуфинг невозможен так как требуется установка TCP-соединения).

      Суть проблемы в том, что при определённых параметрах сегментирования ядро при поступлении каждого пакета вызывает достаточно ресурсоёмкие функции tcp_collapse_ofo_queue() и tcp_prune_ofo_queue(). Из-за неэффективности применяемого алгортима, необходимые для обработки сегментов ресурсы CPU линейно возрастают в зависимости от числа сегментов в очереди пересборки пакетов. При выполнении операции пересборки большого числа сегментов, cоздаваемой нагрузки достаточно, чтобы полностью загрузить процессор при обработке потока с незначительной интенсивностью. Например, для появления существенных задержек в обработке запросов системой для каждого ядра CPU достаточно потока интенсивностью всего 2 тысячи пакетов в секунду.

      Уязвимость проявляется на всех ядрах Linux, начиная с выпуска 4.9 (атака может быть проведена и против более старых ядер, но требует существенного более интенсивного потока пакетов). Проблема устранена в обновлении ядра 4.17.12. Обновления пакетов подготовлены для Debian, SUSE и Fedora, и ожидаются для Ubuntu и RHEL.

      Дополнение: Проблема также проявляется во FreeBSD и вероятно в других операционных системах. Во FreeBSD проблема пока временно решена через ограничение размера очереди пересборки пакетов (net.inet.tcp.reass.maxqueuelen).

      Источник: Opennet
    • Автор: bot
      Специалисты в области безопасности разработали метод эксплуатации уязвимостей класса Spectre, присутствующих во всех современных процессорах, через подключение по сети. Все ранее описанные атаки Spectre предполагали локальное выполнение произвольного кода для извлечения из памяти или приложений важной информации, такой как пароли, ключи шифрования и прочие конфиденциальные данные. Однако команда исследователей из Грацкого технического университета (Австрия) разработала новый вариант атаки Spectre, позволяющий удаленно извлечь данные по сети без необходимости выполнения произвольного кода.

      Метод, получивший название NetSpectre, был успешно протестирован в рамках локальной сети и на виртуальных машинах в Google Cloud. Хотя в теории атаки NetSpectre могут представлять существенную угрозу, в действительности извлечение данных происходит довольно медленно. В частности, в ходе кеш-атак по сторонним каналам скорость составляла всего 15 бит/ч, а при использовании нового скрытого канала, основанного на времени исполнения инструкций AVX2, - 60 бит/ч. В экспериментах в Google Cloud ученым удалось извлечь данные с виртуальной машины со скоростью 3 бита/ч.

      Новая техника может использоваться не только для удаленного извлечения данных, но и для обхода технологии ASLR (Address Space Layout Randomization, случайное распределение адресного пространства), отметили исследователи.

      По их словам, для предотвращения атак NetSpectre достаточно уже существующих мер защиты, рекомендуемых для оригинальной уязвимости Spectre. К тому же, поскольку NetSpectre – сетевая атака, средствам защиты от DDoS-атак не составит труда ее обнаружить.

      Днями ранее исследователи из Калифорнийского университета опубликовали подробности о новом методе SpectreRSB, эксплуатирующем компонент Return Stack Buffer, вовлеченный в процедуру спекулятивного выполнения. Одна из его основных особенностей заключается в возможности обхода патчей против атак класса Spectre. Хотя на сегодняшний день нет информации о реальных атаках с использованием уязвимостей Spectre/Meltdown, эксперты в области безопасности усиленно работают над методами защиты от подобных атак.

      Google Cloud – платформа, позволяющая клиентам создавать, тестировать и развертывать собственные приложения в виртуальных машинах на инфраструктуре Google.

      Address space layout randomization (ASLR) — применяемая в операционных системах технология, при использовании которой случайным образом изменяется расположение в адресном пространстве процесса важных структур, а именно: образа исполняемого файла, подгружаемых библиотек, кучи и стека.

      Источник: securitylab
       
      Комментариев:
    • Автор: bot
      Спустя год после прошлого значительно выпуска доступен релиз FreeBSD 11.2, который подготовлен для архитектур amd64, i386, powerpc, powerpc64, sparc64, aarch64 и armv6 (BEAGLEBONE, CUBIEBOARD, CUBIEBOARD2, CUBOX-HUMMINGBOARD, Raspberry Pш B, Raspberry Pi 2, PANDABOARD, WANDBOARD). Дополнительно подготовлены образы для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2.

      Ключевые новшества:

      Компоненты Clang, libc++, compiler-rt, LLDB, LLD и LLVM обновлены до версии 6.0.0, из новых возможностей в которой можно отметить включение в Clang по умолчанию стандарта C++14 ("-std=gnu++14" вместо "-std=gnu++98"), обеспечение поддержки некоторых возможностей будущего стандарта C++2a, интеграцию патчей retpoline для блокирования второго варианта уязвимости Spectre, включение по умолчанию фреймворка GlobalISel для архитектуры AArch64 при сборке с уровнем оптимизации "-O0", добавление новых предупреждений компилятора.

      Обновлены версии поставляемых в базовой системе сторонних проектов: libarchive 3.3.2, libxo 0.9.0, Subversion 1.9.7, OpenSSH 7.5p1, tcpdump 4.9.2, NTP 4.2.8p11, bmake 20180222, OpenSSL 1.0.2o, LLVM (clang, lld, lldb, compiler-rt) 6.0.0.

      Обновлены драйверы устройств cxgbe, ixl и ng_pppoe. Добавлены новые драйверы mlx5io для сетевых адаптеров Connect-X 4 и Connect-X 5, ocs_fc для хост-адаптеров Fibre Channel от компании Emulex и smartpqi для SCSI-контроллеров Microsemi;

      В портах доступны графические окружения KDE 4.14.3 и GNOME 3.18.0;

      Добавлена новая утилита efibootmgr для настройки менеджера загрузки EFI;

      Добавлена новая утилита dwatch для наблюдения за процессами с использованием механизма трассировки DTrace;

      Добавлена новая утилита etdump для просмотра информации из загрузочного каталога El Torito;

      Из OpenBSD импортирован вариант утилиты diff, распространяемый под лицензией BSD. Данная утилита не устанавливается по умолчанию, для её установки при пересборке системы следует указать WITHOUT_GNU_DIFF в src.conf;

      В утилите zfsd появилась возможность работы с любыми типами провайдеров GEOM, включая md, geli, glabel и gstripe;

      В прослойке для совместимости с Linux добавлена поддержка системной библиотеки musl;

      В реализации файловой системы fdescfs добавлена поддержка специфичных для Linux файловых дескрипторов /dev/fd и /proc/self/fd;

      В ядре появилась возможность использования нескольких часов реального времени;

      В пакетном фильтре ipfw обеспечена идентификация покетов 2 и 3 уровней OSI, устранены проблемы с пометкой пакетов AQM в dummynet;

      Устранена проблема с загрузкой на системах с CPU Intel Apollo Lake;

      В утилиту crontab добавлена опция "-f" для принудительного удаления файла crontab при использовании опции "-r" в неинтерактивном режиме (предотвращает случайное удаление при ошибочном указании "-r" в командной строке);

      В утилиту diskinfo добавлены флаги "-s" для отображения идентификатора диска (серийного номера) и "-p" для вывода физического пути (physpath) к диску в системе хранения;

      В umount добавлен флаг "-N" для принудительного отмонтирования NFS-раздела;

      В утилите ps обеспечено отображение приоритетов realtime и idle среди флагов состояния. Также добавлен признак "C", позволяющий определить , что процесс выполняется с использованием ограничений capsicum;

      В утилите pw реализована корректная обработка периодов истечения срока работы учётной записи и добавлена возможность использования символов "@" и "!" в поле GECOS;

      В утилите top добавлена возможность фильтрации нескольких имён пользователей через опцию "-U";

      Обновлена утилита bsdgrep, в которой через жесткую ссылку добавлена команда rgrep, эквивалентная "grep -r";

      В утилиту getconf добавлен флаг "-a" для вывода имён и значений всех системных путей;

      Прекращена сборка по умолчанию утилиты lint (для сборки требуется указать WITH_LINT в src.conf);

      В утилите mount реализован режим, позволяющий примонтировать носитель в режиме только для чтения в случае сбоя при монтировании в с поддержкой записи. Данное поведение включает при указании опции "autoro";

      В утилите makefs размер блока и фрагмента по умолчанию заменён на 32K и 4K, для соответствия поведению newfs;

      В утилите pwd_mkdb добавлено предупреждение о прекращении поддержи классической базы паролей в FreeBSD 12 в случае использования флага "-l";
      В утилите mdmfs появилась поддержка tmpfs;

      В утилиту service добавлен флаг "-j" для выполнения команды в контексте указанного jail-окружения;

      В утилиту sysctl добавлена поддержка присвоения параметрам массивов числовых значений;

      В ipfw возобновлена поддержка sysctl net.inet.ip.fw.dyn_keep_states;

      Для систем на базе процессоров Intel Ice Lake и Cannon Lake по умолчанию активирована поддержка Wake On LAN;

      Установщики memstick-сборок для архитектуры amd64 переведены на использование MBR вместо GPT для улучшения совместимости с оборудованием, поддерживающим MBR и GPT, но не способным загрузиться в режиме с BIOS при использовании GPT;

      С целью сокращения размера проведена чистка окружения Live CD для образа disc1.iso, который теперь опять умещается на 700MB CD-ROM;

      В ifconfig добавлена поддержка опции "random" для случайной генерации MAC-адреса;

      Инсталлятор bsdinstall по умолчанию настроен на использование на системах arm64 только загрузки в режиме UEFI;

      Добавлена поддержка многопротокольных адаптеров TAIO USB (TUMPA);

      Для гипервизора bhyve реализован драйвер виртуальной консоли virtio_console;

      Источник: Opennet
    • Автор: bot
      Компания Intel опубликовала сведения о новой уязвимости (CVE-2018-3665) в механизме спекулятивного выполнения инструкций, которая получила кодовое название LazyFP. Проблема затрагивает только процессоры линейки Intel Core и проявляется при использовании "ленивого" (lazy) режима переключения контекста FPU, при котором реальное восстановление состояния регистров производится не сразу после переключения контекста, а только при выполнении первой инструкции, которая манипулирует восстанавливаемыми регистрами. На чипах Intel Atom/Knights и CPU AMD проблема не проявляется.

      Уязвимости присвоен средний уровень опасности (CVSS 4.3 из 10) - через проведение атаки по сторонним каналам атакующий может определить значения регистров FPU, MMX, SSE, AVX и AVX-512, используемых другим процессом. Например, в данных регистрах могут содержаться параметры для криптографических вычислений и имеющий доступ к локальной системе злоумышленник может попытаться использовать их для определения ключа шифрования. При использовании систем виртуализации проблема может применяться для определения состояния регистров другой гостевой системы или другого процесса в текущей гостевой системе.

      По своей сути уязвимость LazyFP близка к обнародованной в конце мая проблеме Spectre 3a (CVE-2018-3640, RSRE - Rogue System Register Read). Публикация детального описания атаки отложена до августа по просьбе представителей Intel, чтобы дать пользователям время для установки исправлений. В качестве меры для блокирования уязвимости рекомендуется разработчикам ОС перейти от использования режима Lazy FP к режиму Eager FP через установку соответствующих флагов XSAVE или XCR0. Предложенный метод защиты не оказывает негативного влияния на производительность.

      В ядре Linux защита была реализована ещё в феврале 2016 года, путём применения по умолчанию режима Eager FP (eagerfpu=on) и удаления возможности активации Lazy FP. Уязвимость затрагивает ядра Linux до версии 4.6 или системы с процессорами без поддержки инструкции XSAVE (до Sandy Bridge), в которых по умолчанию применялся режим Lazy FP. В старых ядрах Linux для защиты можно использовать опцию "eagerfpu=on", которая присутствует начиная с ядра 3.7. Обновления пакетов с ядром подготовлены для Debian и ожидаются для Ubuntu, SUSE/openSUSE и RHEL (RHEL 7 подвержен уязвимости частично, так как уже использует по умолчанию режим переключения контекста Eager FP на CPU Intel Sandy Bridge и более новых системах). Патчи с устранением проблемы также приняты в кодовые базы FreeBSD, OpenBSD и DragonflyBSD. Отдельно исправления выпущены для гипервизора Xen.

      https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00145.html

      Источник: Opennet
×