Представлен (https://marc.info/?l=openbsd-tech&m=150756030719251&w=2) новый выпуск свободной, кросс-платформенной UNIX-подобной операционной системы OpenBSD 6.2 (http://www.openbsd.org/62.html). Проект OpenBSD был основан Тэо де Раадтом (Theo de Raadt) в 1995 году, после конфликта (http://zeus.theos.com/deraadt/coremail.html) с разработчиками NetBSD, в результате которого для Тэо был закрыт доступ к CVS репозиторию NetBSD. После этого Тэо де Раадт с группой единомышленников создал на базе дерева исходных текстов NetBSD новую открытую операционную систему, главными целями развития которой стали переносимость (поддерживается (http://www.openbsd.org/plat.html) 13 аппаратных платформ), стандартизация, корректная работа, активная безопасность и интегрированные криптографические средства. Размер полного установочного ISO-образа (http://ftp.eu.openbsd.org/pub/OpenBSD/6.2/) базовой системы OpenBSD 6.2 составляет 340 Мб.
Кроме непосредственно операционной системы, проект OpenBSD известен своими компонентами, которые получили распространение в других системах и зарекомендовали себя как одни из наиболее безопасных и качественных решений. Среди них: LibreSSL (http://www.libressl.org/) (форк (https://www.opennet.ru/opennews/art.shtml?num=39617) OpenSSL), OpenSSH (http://www.openssh.com/), пакетный фильтр PF (http://www.openbsd.org/faq/pf/index.html), демоны маршрутизации OpenBGPD и OpenOSPFD (http://www.openbgpd.org/), NTP-сервер OpenNTPD (http://www.openntpd.org/), почтовый сервер OpenSMTPD (http://www.opensmtpd.org/), мультиплексор текстового терминала (аналог GNU screen) tmux (http://tmux.sourceforge.net/), демон identd (https://www.opennet.ru/opennews/art.shtml?num=36442) с реализацией протокола IDENT, BSDL-альтернатива пакету GNU groff - mandoc (http://mdocml.bsd.lv/), протокол для организации отказоустойчивых систем CARP (Common Address Redundancy Protocol), легковесный http-сервер (https://www.opennet.ru/opennews/art.shtml?num=40232).
Основные улучшения (http://www.openbsd.org/62.html):
- Clang задействован по умолчанию в качестве компилятора для базовой системы и портов для архитектур amd64 и i386. Поддержка gcc4 сохранена, но теперь позиционируется как опция. Некоторые оптимизации clang отключены из-за возможного негативного влияния на безопасность;
- Задействована (https://www.opennet.ru/opennews/art.shtml?num=46687) новая техника рандомизации адресного пространства ядра KARL (Kernel Address Randomized Link), нацеленная на усиление защиты от атак, связанных с манипуляцией структурами и кодом ядра. KARL позволяет изменить первичную раскладку виртуального адресного пространства ядра через выполнение операции перекомпоновки исполняемого файла ядра при каждой перезагрузке, формируя кадый раз уникальный экземпляр ядра, раскладка структур в котором заранее неизвестна;
- Добавлена реализация технологии защиты Trapsleds (https://www.opennet.ru/opennews/art.shtml?num=46759), усложняющей выполнение эксплоитов, использующих технику заимствования кусков кода (ROP, Return-Oriented Programming). Суть метода в применении для заполнения добавочных областей (используются для выравнивания блоков с кодом функций по 16-байтовой границе) инструкций INT3 вместо NOP. В случает выполнения эксплоита попадание на область заполнения на базе INT3 приведёт к возникновению исключения и остановке выполнения (SIGTRAP) вместо выполнения следующих за добавочным блоком инструкций;
- Обеспечена перекомпоновка библиотек libcrypto и ld.so при каждом перезапуске с расстановкой входящих в библиотеку объектов в случайном порядке;
- Процессы pflogd и tcpdump переведены на модель fork+exec;
- В процессах ifstated, at и snmpd задействован механизм изоляции pledge (https://www.opennet.ru/opennews/art.shtml?num=43295);
- Усилена защита, связанная с упаковкой структур и очисткой объектов ядра, перед их передачей в пространство пользователя;
- Ядро избавлено от глобальной блокировки (KERNEL_LOCK) при обработке входящих и транзитных пакетов, что положительно отразилось на производительности и привело к снижению задержек;
- С целью упрощения сетка IPv6 в ядре прекращена поддержка автоконфигурации (IPv6 Stateless Address Autoconfiguration, RFC 4862). Данная возможность теперь реализуется на уровне пользователя процессом slaacd(8);
- В pf интегрирована поддержка алгоритма FQ-CoDel (Сontrolled Delay - управляемая задержка), позволяющего существенно поднять производительность работы в беспроводных сетях. В pf также добавлена возможность инспектирования пакетов AH (IP Authentication Header, RFC 4302) и проверки инкапсулированного в них протокола;
- В системе распределения памяти для обработки сетевых пакетов реализованы отдельные кэши для каждого ядра CPU;
- Улучшения в системе виртуализации VMM (https://www.opennet.ru/opennews/art.shtml?num=45316): В утилиту vmctl добавлена возможность миграции приостановленных виртуальных машин и манипуляции снапшотами памяти виртуальных окружений; В гостевых системах обеспечена поддержка доступа к инструкциям AVX/AVX2 CPU; Добавлена поддержка AMD SVM/RVI. Размер памяти виртуальных окружений увеличен до 32GB на системах amd64. Внесена большая порция улучшений в код эмуляции устройств;
- Улучшения в инсталляторе: осуществлён переход на Allotment Routing Table (https://www.openbsd.org/papers/eurobsdcon2016-embracingbsdrt...) (ART), реализована генерация уникального образа ядра, обеспечен запуск скриптов install.site и upgrade.site после завершения установки и обновления, расширена выводимая информация о дисках, на системах amd64 задействовано расширение AES-NI;
- Представлена новая функция freezero (https://man.openbsd.org/freezero.3), выполняющая операцию освобождение памяти с обнулением содержимого;
- Добавлен новый системный вызов futex (https://man.openbsd.org/futex);
- В библиотеке pthread представлена новая реализация mutex и условных переменных (condition variable), позволяющая увеличить отзывчивость многопоточных приложений;
- Добавлена собственная реализация POSIX xlocale;
- В функции malloc при указании опции "F" улучшено определение случаев двойного освобождения одного блока памяти;
- Включен автоматический переход в спящий режим при низком заряде аккумулятора;
- Добавлены утилиты ctfdump и ctfconv для манипуляции файлами в формате CTF (Compact C Type Format);
- Добавлена система трассировки процессов fktrace (https://man.openbsd.org/fktrace.2);
- В беспроводном стеке теперь отдаётся предпочтения частоте 5GHz, а не 2GHz, в процессе выбора точки доступа;
- В rtadvd добавлена поддержка рекомендаций по снижению энергопотребления RFC 7772 (https://tools.ietf.org/html/rfc7772) ("Reducing Energy Consumption of Router Advertisements");
- В утилиту nc добавлены опции: "-W recvlimit" для завершения работы после получения заданного числа пакетов, "-T tlscompat" для включения TLS-протоколов из категории "compat" в libtls, "-Z" для сохранения сертификата удалённого хоста в формате PEM;
- В bgpd обеспечена поддержка виртуальных маршрутизаторов через запуск своего экземпляра bgpd для каждого домена маршрутизации;
- В dhcpd добавлена поддержка выражения echo-client-id и обеспечена обработка сообщений DHCPINFORM от клиентов на другой стороне DHCP-шлюза;
- Обновлена версия почтового сервера OpenSMTPD, в которой устранена утечка файловых дескрипторов, прекращена поддержка синтаксиса "listen secure" и удалена поддержка фильтров (позиционировались как экспериментальная возможность);
- Обновлён пакет OpenSSH 7.6, подробный обзор улучшений можно посмотреть здесь (https://www.opennet.ru/opennews/art.shtml?num=47324);
- Обновлён пакет LibreSSL, подробный обзор улучшений можно посмотреть в анонсах выпусков 2.6.0 (https://www.opennet.ru/opennews/art.shtml?num=46850) и 2.6.1 (https://www.opennet.ru/opennews/art.shtml?num=47147);
- Число портов для архитектуры AMD64 составило 9728 , для i386 - 9685. Из находящихся в ...
URL: http://undeadly.org/cgi?action=article;sid=20171009144926
Новость: https://www.opennet.ru/opennews/art.shtml?num=47356