Представлен выпуск свободной UNIX-подобной операционной системы OpenBSD 7.3. Проект OpenBSD был основан Тэо де Раадтом (Theo de Raadt) в 1995 году после конфликта с разработчиками NetBSD, в результате которого для Тэо был закрыт доступ к CVS репозиторию NetBSD. После этого Тэо де Раадт с группой единомышленников создал на базе дерева исходных текстов NetBSD новую открытую операционную систему, главными целями развития которой стали переносимость (поддерживается 13 аппаратных платформ), стандартизация, корректная работа, проактивная безопасность и интегрированные криптографические средства. Размер полного установочного ISO-образа базовой системы OpenBSD 7.3 составляет 620 МБ.
Кроме непосредственно операционной системы, проект OpenBSD известен своими компонентами, которые получили распространение в других системах и зарекомендовали себя как одни из наиболее безопасных и качественных решений. Среди них: LibreSSL (форк OpenSSL), OpenSSH, пакетный фильтр PF, демоны маршрутизации OpenBGPD и OpenOSPFD, NTP-сервер OpenNTPD, почтовый сервер OpenSMTPD, мультиплексор текстового терминала (аналог GNU screen) tmux, демон identd с реализацией протокола IDENT, BSDL-альтернатива пакету GNU groff - mandoc, протокол для организации отказоустойчивых систем CARP (Common Address Redundancy Protocol), легковесный http-сервер, утилита синхронизации файлов OpenRSYNC.
Основные улучшения:
- Реализованы системные вызовы waitid (ожидание изменения состояния процесса), pinsyscall (для передачи информации о точке входа execve для защиты от ROP-эксплоитов), getthrname и setthrname (получение и установка имени потока).
- Для всех архитектур задействован clockintr, независящий от оборудования планировщик прерываний от таймера.
- Добавлен sysctl kern.autoconf_serial, который можно использовать для отслеживания изменения состояния device tree в ядре из пространства пользователя.
- Усовершенствована поддержка многопроцессорных систем (SMP). Переведены в разряд mp-safe фильтры событий для устройств tun и tap. Избавлены от блокировок функции select, pselect, poll, ppoll, getsockopt, setsockopt, mmap, munmap, mprotect, sched_yield, minherit и utrace, а также ioctl SIOCGIFCONF, SIOCGIFGMEMB, SIOCGIFGATTR и SIOCGIFGLIST. Улучшена работа с блокировками в пакетном фильтре pf. Увеличена производительность системы и сетевого стека на многоядерных системах.
- Реализация фреймворка drm (Direct Rendering Manager) синхронизирована с ядром Linux 6.1.15 (в прошлом выпуске - 5.15.69). В драйвер amdgpu добавлена поддержка GPU Ryzen 7000 «Raphael», Ryzen 7020 «Mendocino», Ryzen 7045 «Dragon Range», Radeon RX 7900 XT/XTX «Navi 31», Radeon RX 7600M (XT), 7700S и 7600S «Navi 33». В amdgpu добавлена поддержка управления фоновой подсветкой и обеспечена работаg xbacklight при использовании X.Org-драйвера modesetting. В Mesa по умолчанию включено кэширование шейдеров.
- Внесены улучшения в гипервизор VMM.
- Реализованы возможности для дополнительной защиты памяти процессов в пространстве пользователя: системный вызов mimmutable и связанная с ним одноимённая библиотечная функция, позволяющая зафиксировать права доступа при отражении в память (memory mappings). После фиксации, выставленные для области памяти права, например, запрет на запись и исполнение, невозможно в дальнейшем изменить через последующие вызовы функций mmap(), mprotect() и munmap(), которые при попытке изменения будут выдавать ошибку EPERM.
- На архитектуре AMD64 для системных вызовов включён механизм защиты RETGUARD, нацеленный на усложнение выполнения эксплоитов, построенных с использованием заимствования кусков кода и приёмов возвратно-ориентированного программирования.
- Включена защита от эксплуатации уязвимостей, основанная на случайной перекомпоновке исполняемого файла sshd при каждой загрузке системы. Перекомпоновка позволяет сделать малопредсказуемым смещения функций в sshd, что затруднит создание эксплоитов, использующих методы возвратно-ориентированного программирования.
- Обеспечена более агрессивная рандомизация расположения стека на 64-разрядных системах.
- Добавлена защита от уязвимости Spectre-BHB в микроархитектурных структурах процессоров.
- На процессорах ARM64 для пространства пользователя и ядра задействован флаг DIT (Data Independent Timing) для блокирования атак по сторонним каналам, манипулирующих зависимостью времени выполнения инструкций от обрабатываемых в этих инструкциях данных.
- Предоставления возможность использования lladdr при определении сетевых конфигураций. Например, помимо привязки к имени интерфейса (hostname.fxp0) можно использовать привязку к MAC-адресу (hostname.00:00:6e:00:34:8f).
- Улучшена поддержка перехода в спящий режим для систем на базе архитектуры ARM64.
- Значительно расширена поддержка ARM-чипов Apple.
- Добавлена поддержка нового оборудования и включены в состав новые драйверы.
- В драйвере bwfm для беспроводных карт на базе чипов Broadcom и Cypress реализована поддержка шифрования для WEP.
- В инсталляторе улучшена работа с программными RAID и реализована начальная поддержка шифрования дисков (Guided Disk Encryption).
- В tmux («terminal multiplexer») добавлены новые команды scroll-top и scroll-bottom для прокрутки курсора в начало и конец Обновлены пакеты LibreSSL и OpenSSH. Подробный обзор улучшений можно посмотреть в обзорах LibreSSL 3.7.0, OpenSSH 9.2 и OpenSSH 9.3.
>>> Подробности