Информационные технологииStfw.Ru 🔍
🕛

OpenBSD 6.0

Состоялся релиз операционной системы OpenBSD 6.0. Проект OpenBSD был основан Тэо де Раадтом (Theo de Raadt) в 1995 году, после конфликта с разработчиками NetBSD, в результате которого для Тэ
Состоялся релиз операционной системы OpenBSD 6.0. Проект OpenBSD был основан Тэо де Раадтом (Theo de Raadt) в 1995 году, после конфликта с разработчиками NetBSD, в результате которого для Тэо был закрыт доступ к CVS репозиторию NetBSD. После этого Тэо де Раадт с группой единомышленников создал на базе дерева исходных текстов NetBSD новую открытую операционную систему, главными целями развития которой стали переносимость (поддерживается 20 аппаратных платформ), стандартизация, корректная работа, активная безопасность и интегрированные криптографические средства. Размер полного установочного ISO-образа базовой системы OpenBSD 6.0 составляет 216 Мб.


Кроме непосредственно операционной системы, проект 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-сервер.



Основные улучшения:



Включён по умолчанию механизм защиты памяти W^X (Write XOR Execute), при котором страницы памяти процесса не могут быть одновременно доступны на запись и исполнение. Таким образом, код может быть исполнен только после запрещения записи, а запись в страницу памяти возможна только после запрета исполнения. Механизм W^X помогает защитить приложения в пространстве пользователя от типовых атак, осуществляемых через переполнение буфера, в том числе от переполнений стека (записанный за пределы буфера код не может быть исполнен).

Традиционная модель "W|X", допускающая одновременно запись и исполнение, переведена в разряд недопустимых. Для обхода запрета требуется монтирование ФС (ffs/nfs) со специальным флагом "wxallowed", который рекомендуется использовать для монтирования /usr/local, так как некоторые порты пока не адаптированы для нормальной поддержки "W^X". Например, наблюдаются проблемы с JDK, GCC, Mono и Chromium. При установке на новую систему опция "wxallowed" будет применена к /usr/local по умолчанию,но при обновлении необходимо уделить этому внимание, чтобы не потерять работоспособность портов.

Добавлены средства для блокирования эксплоитов, основанных на технике заимствования кусков кода: При каждой загрузке libc.so перекомпоновывается с перестроением в случайном порядке экспортируемых символов, что затрудняет создание ROP-эксплоитов, так как составляющие эксплоит "гаджеты" меняют свои смещения при каждой загрузке. Функции setjmp и jmpbuf теперь применяют к стеку и адресам возврата операции XOR со специальной меткой (cookie). Вызов sigreturn теперь может применяться только через предоставляемый ядром обработчиков сигналов с cookie для определения фактов повторного использования;


Добавлен Самостоятельный загрузчик EFI для ARMv7. Теперь не нужен u-boot с его отдельным FAT-разделом, грузиться можно прямо с FFS. Благодаря использованию одного ядра для всех SoC и поддержке Flattened Device Tree (FDT) для определения параметров оборудования, значительно упрощена реализация поддержки новых ARM плат;

Из-за отсутствия рабочего оборудования прекращено поддержка архитектуры VAX, не поддерживавшей разделяемые библиотеки;

Удалена прослойка для обеспечения совместимости с Linux, которая была доступна только для систем i386 и содержала ряд концептуальных проблем, которые потенциально могли оказывать негативное влияние на безопасность.
Удалён механизм ограничения системных вызовов systrace, на смену которому пришла технология Pledge;

Удалена возможность монтирования файловых систем непривилегированным пользователем (sysctl kern.usermount), которая позволяла не использовать привилегии root для монтирования в произвольную часть дерева vfs. Вместо данной возможности осуществлён возврат к классическому варианту с setuid root mount и ключевым словом "user" в fstab;

Добавлены настройки sysctl net.inet.tcp.rootonly и net.inet.udp.rootonly, позволяющие выборочно запретить приём соединений по указанным в списке сетевым портам непривилегированными процессами;

Продолжена работа по распараллеливанию сетевых операций. Исправлены некоторые проблемы в планировщике задач, что позволило увеличить отзывчивость рабочего стола и таких приложений, как web-браузеры;

Увеличена производительность таблиц маршрутизации, благодаря использованию структур ART (Allotment Routing Table), обеспечивающих более быстрый поиск записей. В rc.d и rcctl добавлена поддержка таблиц маршрутизации;

Добавлены драйверы нового оборудования, в том числе представлены драйверы для Intel Bay Trail GPIO, Intel Cherry View GPIO, конроллеров NVMe, Mobile Broadband Interface Model (MBIM), RealTek RTL8152 10/100 USB Ethernet, устройств захвата видео Fushicai USBTV007, беспроводных чипов Intel Wireless 3165 и 8260;

Обновлена версия почтового сервера OpenSMTPD 6.0, в которой реализован механизм защиты fork+exec, унифицирован формат логов,


Обновлена реализация NTP-сервера OpenNTPD 6.0;

Обновлён пакет OpenSSH 7.3, подробный обзор улучшений можно посмотреть здесь;

Обновлён пакет LibreSSL 2.4.2, подробный обзор улучшений можно посмотреть в анонсах выпусков 2.4.0 и 2.4.2;

Число портов для архитектуры AMD64 составило 9433, для i386 - 9394. Из находящихся в портах приложений, отмечены:


Chromium 51.0.2704.106
GCC 4.9.3
Gimp 2.8.16
GNOME 3.20.2
Go 1.6.3
JDK 7u80 и 8u72
KDE 3.5.10 и 4.14.3;
LLVM/Clang 3.8.0
LibreOffice 5.1.4.2
MariaDB 10.0.25
Firefox 45.2.0esr и 47.0.1
Thunderbird 45.2.0
Node.js 4.4.5
PHP 5.5.37, 5.6.23 и 7.0.8
Postfix 3.1.1 и 3.2-20160515
PostgreSQL 9.5.3
Python 2.7.12, 3.4.5 и 3.5.2
Rust 1.9.0-20160608


Компоненты от сторонних разработчиков, входящие в состав OpenBSD 5.9:


Графический стек Xenocara на базе X.Org server 1.18.3 с патчами, freetype 2.6.3, fontconfig 2.11.1, Mesa 11.2.2, xterm 322, xkeyboard-config 2.18 и т.п.)

Gcc 4.2.1 (c патчами) и 3.3.6 (c патчами)

Perl 5.20.3 (c патчами)

SQLite 3.9.2 (c патчами)

NSD 4.1.10

Unbound 1.5.9
Ncurses 5.7
Binutils 2.17 (c патчами)
Gdb 6.3 (c патчами)
Awk в версии от 10 августа 2011 г.



К выходу релиза приурочено 6 новых песен.



Кроме функциональных новшеств, принято решение об изменении процесса подготовки релизов. Долгие годы процесс разработки OpenBSD обеспечивался продажей компакт-дисков. Установочные образы появились только в версии 4.2, но и после этого основным способом установки были компакт-диски. Продажа дисков финансировала работу Тео де Раадта по созданию операционной системы, но на подготовку дисков уходило много времени и после заморозки релиз приходилось ждать ещё полтора месяца - пока диски изготовят, напечатают, доставят.
Релиз 6.0 стал последним, который распространялся таким способом, в дальнейшем все релизы будут публиковаться через Web, и задержка выпуска будет минимальной.

Из грядущих улучшений также отмечается добавление утилиты acme-client для получения ключей от удостоверяющего центра Let's Encrypt в основной состав базовой системы OpenBSD Current.

Также по теме:
Каталог лучших, бесплатных программ.