LINUX.ORG.RU

Релиз OpenBSD 5.7

 ,


0

1

1 мая состоялся релиз операционной системы OpenBSD версии 5.7. Размер полного установочного ISO-образа базовой системы составляет 208Мб.

Усиление безопасности:

  • К адресному пространству ядра применён режим защиты памяти W^X (Write XOR Execute), при котором страницы памяти не могут быть доступными и на запись и на исполнение кода (или запись или исполнение, но не одновременно).
  • Удалён код для поддержки загружаемых модулей ядра и procfs.
  • Проведён обстоятельный аудит подсистем на предмет перехода на использование системного вызова reallocarray, позволяющего выделить память для нескольких отличающихся по размеру объектов без дополнительных затрат на очистку памяти, но с сохранением средств борьбы с целочисленными переполнениями.
  • Проведена работа по замене вызовов select на poll.
  • В качестве первого шага для минимизации возможности совершения атаки на раздел /var, директория /var/tmp преобразована в символическую ссылку на /tmp.
  • В реализацию memcpy добавлена защита от перекрытия областей памяти, если факт подобного перекрытия выявлен, то программа принудительно завершается с выводом соответствующего предупреждения в syslog. При необходимости перекрытия областей следует использовать memmove.
  • Вызовы rand, random, drand48, lrand48, mrand48 и srand48 переведены на использование генератора arc4random. Для получения детерменированных случайных числе введены новые функции srand_deterministic, srandom_deterministic, seed48_deterministic и lcong48_deterministic.
  • При возврате из спящего и ждущего режимов, а также при пробуждении виртуальных машин, задействованы различные методы для сброса генератора случайных чисел.
  • Все архитектуры переведены на статический формат PIE, т.е. все статически собранные исполняемые файлы в /bin и /sbin теперь содержат случаным образом расположенные сегменты «text».
  • Код ядра и ssh для работы с AES синхронизирован с кодом из OpenSSL/LibreSSL.
  • В утилите passwd прекращена поддержка всех методов хэширования, кроме blowfish.
  • В генераторе случайных чисел и при генерации начальных номеров последовательностей в TCP вместо MD5 задействован sha512.

Другое:

  • Добавлен драйвер xhci, обеспечивающий поддержку устройств с интерфейсом USB 3.0, соответствующих спецификации XHCI (eXtensible Host Controller Interface). Значительно расширена поддержка сетевых устройств, в том числе представлен новый драйвер iwm для беспроводных карт Intel 7260, 7265 и 3160.
  • Для управления фоновыми процессами и системными сервисами представлена новая утилита rcctl.
  • Из базовой системы удалены nginx и sendmail, вместо которых предлагается http-сервер собственной разработки и OpenSMTPD. Прекращена поддержка DNS-сервера BIND, вместо которого рекомендуется использовать nsd и unbound. Nginx, bind и sendmail могут быть установлены из портов.
  • Улучшения в сетевом стеке: Большинство операций с IP-адресами переведены на таблицы маршрутизации, заменившие собой RB-деревья и списки адресов IPv4. Для хэширования в пакетном фильтре PF, сетевых мостах, trunk-интерфейсах и PCB задействован алгоритм SipHash. Настройка CARP теперь требует явного создания родительского интерфейса carpdev. Слой mbuf избавлен от глобальной блокировки и признан mpsafe. Представлены новые структуры mbuf_list и mbuf_queue, а также API для работы с ними.
  • Улучшения в инсталляторе: Наборы etc и xetc, в том числе включающие файлы rc и rc.conf, теперь не поставляются отдельно, а включены в состав наборов base и xbase. Улучшено определение файла со сценарием автоматизированной установки, если присутствуют файл /auto_install.conf или /auto_upgrade.conf инсталлятор теперь сразу запускает автоматический режим.
  • Системы Syslogd и inetd переведены с select на libevent. В Syslogd добавлена поддержка отправки и приёма сообщений по UDP, TCP и TLS, при том, что для TCP и TLS реализованы средства автоматического восстановления соединения после разрыва канала связи.
  • В tftp сняты ограничение на размер принимаемых и отправляемых файлов, которые ранее не могли превышать 65536 байт.
  • В реализации ряда функций libc для архитектуры amd64 задействованы быстрые ассемблерные оптимизации.
  • Расширены возможности http-сервера от проекта OpenBSD. Прекращена поддержка SSLv2/3, улучшена поддержка ECDHE/DHE в TLS. Упрощено создание виртуальных хостов на основе определения псевдонимов по IP и именам хостов. Добавлена поддержка basic-аутентификации, определения своих кодов возврата, перенаправления и макросов для URL. Добавлена опция «root strip» для чистки начала пути для CGI-скриптов. Обеспечена возможность создания лога в директории, отличной от /var/www/logs. Реализация FastCGI доведена до совместимости со многими известными web-приложениями.
  • В новой версии почтового сервера OpenSMTPD прекращена поддержка SSLv3, добавлена поддержка новых парсеров сообщений и заголовков, добавлена опция append-domain, обеспечена возможность отправки сообщений локальному пользователю без определения домена.
  • Обновлён пакет OpenSSH 6.8, подробный обзор улучшений можно посмотреть здесь.
  • Обновлён пакет LibreSSL 2.1.5, подробный обзор улучшений можно посмотреть в анонсах выпусков 2.1.0, 2.1.2, 2.1.4 и 2.1.5.

Количество портов перевалило за 9000. Из них стоит отметить следующие:

  • Chromium 40.0.2214.115
  • Emacs 21.4 и 24.4
  • GCC 4.8.4 и 4.9.2
  • GHC 7.8.4
  • GNOME 3.14.2
  • Go 1.4.1
  • Groff 1.22.3
  • JDK 1.7.0.71
  • KDE 3.5.10 и 4.14.3
  • LLVM/Clang 3.5 (20140228)
  • LibreOffice 4.3.5.2
  • MariaDB 10.0.16
  • Mono 3.12.0
  • Mozilla Firefox 31.4.0esr и 35.0.1
  • Mozilla Thunderbird 31.4.0
  • Node.js 0.10.35
  • OpenLDAP 2.3.43 и 2.4.40
  • PHP 5.3.29, 5.4.38, 5.5.22 и 5.6.5
  • Postfix 2.11.4
  • PostgreSQL 9.4.1
  • Python 2.7.9 и 3.4.2
  • R 3.1.2
  • Ruby 1.8.7.374, 1.9.3.551, 2.0.0.598, 2.1.5 и 2.2.0
  • Sendmail 8.15.1
  • Tcl/Tk 8.5.16 и 8.6.2
  • TeX Live 2013
  • Vim 7.4.475
  • Xfce 4.10

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

  • Xenocara, основанная на X.Org 7.7 с xserver 1.16.4 + patches, freetype 2.5.5, fontconfig 2.11.1, Mesa 10.2.9, xterm 314, xkeyboard-config 2.13.
  • GCC 4.2.1 (с патчами) и 3.3.6 (с патчами).
  • Perl 5.20.1 (с патчами).
  • SQLite 3.8.6 (с патчами).
  • Unbound 1.5.2.
  • NSD 4.1.1.
  • Sudo 1.7.2p8.
  • Ncurses 5.7.
  • Binutils 2.15 (с патчами).
  • Gdb 6.3 (с патчами).
  • Less 458 (с патчами).
  • Awk в версии от 10 августа 2011 г.

ЗЫ: Со светом проблем не наблюдаются!

>>> Подробности



Проверено: JB ()
Последнее исправление: Wizard_ (всего исправлений: 4)

Ответ на: комментарий от A-234

Я рад, что ты осилил ман. Плохо, что так поздно.

опасность есть только при копировании вперед, при копировании назад ничего плохого не происходит.
опасность есть только при копировании вперед,
при копировании назад ничего плохого не происходит.

the behavior is undefined.

ничего плохого не происходит.
просто не проверяет.

Sapienti sat.

Ни про какие исключения речи не идет.
А вы тут панику разводить пытаетесь.

исключения
панику

Я пятый пост в этом треде указываю тебе на твою ошибку.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Ну так приходится приводить аргументы за вас, вы ведь кроме туманных отсылок к гуглу ни на что не способны. Так где в стандарте про исключения сказано? Что за бред? Наоборот, ошибки не определены. Функция просто не делает лишних проверок, какого хрена работающее приложение, например удаляющее первые N символов в строке, должно натыкаться на исключение просто потому что перенервничавший нуб не осилил дискретную математику? Не занимайтесь буквоедством, раз ни исходники ни стандарт понять не способны.

A-234 ★★★★★
()
Ответ на: комментарий от beastie

Псевдо-fs нагляднее и более unix-way чем очередная специальная команда. Не понимаю почему такая удобная штука осталась только в линуксе. С fs сразу понимешь что у тебя есть, по названиям можно даже догадаться что к чему. Например когда мне нужно было выкрутить яркость экрана ноута на максимум нужный файл был найден стандартным find'ом, без гугления и листания манов.

A-234 ★★★★★
()
Ответ на: комментарий от A-234

почему такая удобная штука осталась только в линуксе

На самом деле, ноги ростут из Plan9. ;)

sysctl -a

и у тебя та же байда — и на самом деле гораздо удобней.

Сравни:

sysctl machdep.lidsuspend=1
и
echo 1 > /proc/some/non/existent/path/lidsuspend

beastie ★★★★★
()
Ответ на: комментарий от anonymous

Это, iicr, во фряхе, но в отличаи от фряхи можно смотреть и «под-деревься»:

sysctl machdep
выдаст соотвест соответствующе под-дерево.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от A-234

Так где в стандарте про исключения сказано?

Что за бред?

Вот ты нам щас и расскажешь. Ты о чём?

приходится приводить аргументы

Какие? Где? К какому тезису? У тебя шизофазия?

LamerOk ★★★★★
()
Ответ на: комментарий от beastie

Не не не, путь /proc/some/non/existent/path/ я нахожу при помощи find /proc -name \*lid\*, а вот до machdep.lidsuspend нужно еще по манам доползти.

A-234 ★★★★★
()
Ответ на: комментарий от LamerOk

Это уже смешно, вы новость хоть читали прежде чем комментировать? Нет, не надо бросаться листать наверх, я процитирую оригинал

В реализацию memcpy добавлена защита от перекрытия областей памяти, если факт подобного перекрытия выявлен, то программа принудительно завершается...

Вы бы с веществами завязали на недельку, лучше на две.

A-234 ★★★★★
()
Последнее исправление: A-234 (всего исправлений: 1)
Ответ на: комментарий от A-234

Не не не, путь /proc/some/non/existent/path/ я нахожу при помощи find /proc -name \*lid\*, а вот до machdep.lidsuspend нужно еще по манам доползти.

O rly?

sysctl | grep lid
edigaryev ★★★★★
()
Ответ на: комментарий от A-234

В реализацию memcpy добавлена защита от перекрытия областей памяти, если факт подобного перекрытия выявлен, то программа принудительно завершается

По твоему это не undefined behavior?

edigaryev ★★★★★
()
Ответ на: Из базовой системы удалены nginx от drfaust

Народ, поясните, а чем nginx их не устроил? Зачем писать свой сервак-то? Неужто в нём такие серьёзные проблемы с безопасностью?

Специально для drfaust с ЛОРа поясняет Reyk Floeter, автор httpd: http://undeadly.org/cgi?action=article&sid=20140827065755&pid=24

edigaryev ★★★★★
()
Ответ на: комментарий от beastie

но в отличаи от фряхи можно смотреть и «под-деревься»:

Гм,

% uname -r
10.1-STABLE
% sysctl machdep
..

machdep.nkpt: 17
machdep.max_ldt_segment: 1024
machdep.panic_on_nmi: 1
machdep.prot_fault_translation: 0
оно? В zsh еще и автодополнение работает
% sysctl dev.<tab>
acpi                  apic                  est                   isab                
acpi_acad             atdma                 fbd                   iwn  
...

anonymous
()
Ответ на: комментарий от anonymous

Значит, доделали, раньше imho не было (но может быть я и ошибаюсь).

beastie ★★★★★
()
Ответ на: комментарий от LamerOk

Реализация должна соответствовать спецификации, то что сделали в BSD - новодел нервных блондинок не соответствующий POSIX, я могу вам стандарт с английского перевести, если не понятно.

A-234 ★★★★★
()
Ответ на: комментарий от edigaryev

Вот не надо про ваше непонимание термина «overflow», или вы хотите сказать что memmove делает проверку на выход за границу выделенной области адресов? Описание memcpy говорит о том что поведение зависит от архитектуры, тоесть я не могу полагаться на результат поскольку предварительных проверок не делается. В линуксе решили нарушить стандарт сделав исполнение программ более безопасным, в BSD ослы пошли противоположным путем. И те и другие стандарт нарушили, но результат в линуксе мне, как конечному пользователю, кажется более адекватным поскольку неработающий код начинает функционировать а не заставляет меня клевать голову разработчикам. В стандарте «undefined» появляется благодаря отсутствию дополнительных проверок а не наличию внутренних комплексов перепивших программистов.

A-234 ★★★★★
()
Последнее исправление: A-234 (всего исправлений: 1)
Ответ на: комментарий от A-234

не надо про ваше непонимание термина «overflow», или вы хотите сказать что memmove делает проверку на выход за границу выделенной области адресов?

Он хочет сказать, что overflow тут вообще не причём. Весь тред речь только об overlapping.

мне, как конечному пользователю, кажется более адекватным поскольку неработающий код начинает функционировать

опасность есть только при копировании вперед, при копировании назад ничего плохого не происходит.

Разработчики либцы поменяли потроха, так что копировать можно, но только «назад», а разработчики (типа тебя) написали неработающий код, который работает с этой новой версией либцы. И теперь тебе, конечному пользователю, надо запустить обе неработающие программы одновременно.

Ну кто теперь адекват, а кто нет?

Голова нужна не только для того, чтобы в неё есть. А то так можно до конца жизни куда как более компетентных людей «ослами» называть.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Разработчики либцы поменяли потроха, так что копировать можно, но только «назад», а разработчики (типа тебя) написали неработающий код, который работает с этой новой версией либцы.


Какая чушь. Вы ни в код заглянуть не способны ни стандарт на английском прочесть но мнение имеете. Чешите свой ЧСВ дальше.

A-234 ★★★★★
()
Ответ на: комментарий от A-234

пацаны, чё сердитые такие? расскажите лучше что-нибудь про OpenBSD

buratino ★★★★★
()

Все архитектуры переведены на статический формат PIE, т.е. все статически собранные исполняемые файлы в /bin и /sbin теперь содержат случаным образом расположенные сегменты «text».

Случайные от билда к билду? Хэш-суммы от файлов перестанут совпадать?

yoghurt ★★★★★
()
Ответ на: комментарий от A-234

в BSD ослы пошли противоположным путем. И те и другие стандарт нарушили, но результат в линуксе мне, как конечному пользователю, кажется более адекватным поскольку неработающий код начинает функционировать а не заставляет меня клевать голову разработчикам.

ЛООООООЛ

yoghurt ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.