В соответствии с релизным циклом вышла (http://lists.mindrot.org/pipermail/openssh-unix-dev/2018-Oct...) новая версия операционной системы общего назначения OpenBSD 6.4 (https://www.openbsd.org/). Самые примечательные изменения (https://www.openbsd.org/64.html) в новой версии:
- Множество добавлений для платформы arm64;
- Улучшения в удобстве использования Wi-Fi;
- Продолжение работы над избавлением сетевого стека от использования глобальной блокировки ядра;
- Cистемный вызов unveil() (https://www.opennet.ru/opennews/art.shtml?num=49042), который предоставляет новый способ изоляции доступа к файловой системе;
- Механизм защиты RETGUARD (https://www.opennet.ru/opennews/art.shtml?num=48730), нацеленный на усложнение выполнения эксплоитов, построенных с использованием заимствования кусков кода и приёмов возвратно-ориентированного программирования;
- Переработка синтаксиса OpenSMTPD для значительного увеличения гибкости не в ущерб удобству;
К сожалению, полагающаяся песня к моменту релиза ещё не была готова, анонс будет произведён отдельно.
Список изменений:
Улучшения в области безопасности:
- Новый системный вызов unveil(2) (https://man.openbsd.org/unveil.2) для ограничения доступа текущего процесса к файловой системе путём задания списка используемых файлов и каталогов. Наибольший эффект достигается в сочетании с pledge(2) (https://man.openbsd.org/pledge.2).
- Реализована опция MAP_STACK для mmap(2) (https://man.openbsd.org/mmap.2). При возникновении ошибок доступа и системных вызовах ядро будет проверять, что верхушка стека находится в отведённой ей (с участием MAP_STACK) области памяти, что мешает атакам, переносящим верхушку стека в контролируемую атакующим область памяти (stack pivot attack).
- Новый защитный механизм RETGUARD (для платформ amd64 и arm64), использующий индвидуальные для каждой функции cookie для защиты доступа к командам возврата из функции, что затрудняет их использование в качестве ROP-гаджетов.
- В clang(1) (https://man.openbsd.org/clang.1) на amd64 и i386 добавлен проход по коду с идентификацией типичных полезных для ROP-гаджетов инструкций и заменой таких инструкций альтернативами.
- Защита от Spectre v2, Retpoline, включена в clang(1) (https://man.openbsd.org/clang.1) и ассемблерных файлах на amd64 и i386.
- Механизм защиты SpectreRSB включён на amd64.
- Также для amd64 добавлена защита Intel L1 Terminal Fault.
- PCID, при их наличии, используются на amd64 для разделения пользовательских и ядерных записей TLB.
- Защита от Meltdown добавлена для i386.
- На amd64 теперь используется немежденное переключение контекста FPU для предотвращения утечки состояния FPU из-за спекулятивного выполнения.
- Фальшивая многопоточность (SMT, в случае с процессорами Intel называется HT — HyperThreading) отключена по умолчанию из-за небезопасного использования ядер ЦП. Она может быть включена обратно с помощью новой переменной sysctl(2) (https://man.openbsd.org/sysctl.2) hw.smt.
- Запись звука по умолчанию глобально отключена (имитируется запись тишины) и может быть включена с помощью новой переменной sysctl(2) (https://man.openbsd.org/sysctl.2) kern.audio.record.
- getpwnam(3) (https://man.openbsd.org/getpwnam.3) и getpwuid(3) (https://man.openbsd.org/getpwuid.3) возвращают теперь указатель не на статичный буфер, а на явно выделяемую память, позднее освобождаемую. Это позволяет детектировать доступ к устаревшим записям.
- sshd(8) (https://man.openbsd.org/sshd.8) получил дополнительную защиту от атак на перебор названий учётных записей.
Улучшения гипервизора vmm(4) (https://man.openbsd.org/vmm.4) и соответствующего сервиса vmd(8) (https://man.openbsd.org/vmd.8)
- Поддержка образов дисков и снимков состояния (snapshots) в формате qcow2.
- Поддержка шаблонов виртуальных машин и наследования в vm.conf(5) (https://man.openbsd.org/vm.conf.5) и vmctl(8) (https://man.openbsd.org/vmctl.8).
- Добавлена начальная поддержка unveil(2) (https://man.openbsd.org/unveil.2) в vmctl(8) (https://man.openbsd.org/vmctl.8), заодно произведена общая чистка кода данной утилиты.
- Различные исправления ошибок и улучшения.
Улучшения в стеке IEEE 802.11 (Wi-Fi)
- Новая команда «join (https://undeadly.org/cgi?action=article;sid=20180712084645)» в ifconfig(8) (https://man.openbsd.org/ifconfig.8) для сохранения списка известных сетей и автоматического подключения к ним.
- Значительно увеличена скорость работы команды «ifconfig scan» для многих устройств.
Общие улучшения сетевого стека
- В trunk(4) (https://man.openbsd.org/trunk.4) добавлены опции для настройки режимов работы, таймаутов и приоритетов.
- В ifconfig(8) (https://man.openbsd.org/ifconfig.8) добавлена возможность настройки параметров trunk(4) (см. выше).
- Системные вызовы sendmsg(2) (https://man.openbsd.org/sendmsg.2), sendto(2) (https://man.openbsd.org/sendto.2), recvfrom(2) (https://man.openbsd.org/recvfrom.2) и recvmsg(2) (https://man.openbsd.org/recvmsg.2) работают без глобальной блокировки ядра (KERNEL_LOCK).
- Новые глобальные счётчики IPsec, доступные через netstat(1) (https://man.openbsd.org/netstat.1).
- Новый интерфейс eoip(4) (https://man.openbsd.org/eoip.4) для протокола инкапсуляции MikroTik Ethernet over IP (EoIP).
Маршрутизация и другие улучшения сетевого стека в пользовательском пространстве:
- ospf6d(8) (https://man.openbsd.org/ospf6d.8) теперь может устанавливать метрику маршрута в зависимости от состояния интерфейса.
- ospf6d(8) (https://man.openbsd.org/ospf6d.8) теперь может работать в альтернативном домене маршрутизации.
- ospf6d(8) (https://man.openbsd.org/ospf6d.8) теперь использует pledge(2) (https://man.openbsd.org/pledge.2).
- ospfd(8) (https://man.openbsd.org/ospfd.8) и ospf6d(8) (https://man.openbsd.org/ospf6d.8) теперь защищены от многократного запуска в одном домене маршрутизации.
- slaacd(8) (https://man.openbsd.org/slaacd.8) теперь полноценно использует pledge(2) (https://man.openbsd.org/pledge.2).
- slaacd(8) (https://man.openbsd.org/slaacd.8) теперь получает от ядра уведомления о дублировании сетевых адресов, и по возможности генерирует новые.
- Когда slaacd(8) (https://man.openbsd.org/slaacd.8) обнаруживает переход между сетями, он отмечает как устаревшие все сконфигурированные сетевые адреса. Предпочтение получают адреса с новыми анонсированными префиксами.
- Новый сервис, rad(8) (https://man.openbsd.org/rad.8), пришедший на замену rtadvd(8) (https://man.openbsd.org/OpenBSD-6.3/rtadvd.8) (часть проекта KAME), для отправки сообщений IPv6 Router Advertisement.
- Анахронизм networks(5) (https://man.openbsd.org/OpenBSD-6.3/networks.5) более не поддерживается.
- Улучшена надёжность и предсказуемость поведения парсера pfctl(8) (https://man.openbsd.org/pfctl.8) в крайних ситуациях.
- route(8) (https://man.openbsd.org/route.8) теперь сообщает об ошибках использования «-netmask» и «-prefixlen» вместо конфигурирования непонятных маршрутов.
- dhclient(8) (https://man.openbsd.org/dhclient.8) теперь добавляет прямой маршрут к шлюзу по умолчанию, если он не доступен в рамках полученных сетевых адреса и маски.
- dhclient(8) (https://man.openbsd.org/dhclient.8) теперь обновляет dhclient.leases(5) (https://man.openbsd.org/dhclient.leases.5), resolv.conf(5) (https://man.openbsd.org/resolv.conf.5) и все отмеченные ключом «-L» файлы до ухода на задний план и возвращения управления вызывающей программе (скрипту).
- Опция «-i» в dhclient(8) (https://man.openbsd.org/dhclient.8)] теперь отбрасывает любые ранее определённые значения для отмеченных к игнорированию опций.
- Любое изменение на любом интерфейсе теперь побуждает dhclient(8) (https://man.openbsd.org/dhclient.8) соответствующим образом обновить resolv.conf(5) (https://man.openbsd.org/resolv.conf.5).
- dhclient(8) (https://man.openbsd.org/dhclient.8) теперь всегда записыв...
URL: https://www.openbsd.org/64.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=49467