Zaprezentowano wydanie darmowego systemu operacyjnego typu UNIX OpenBSD 7.3. Projekt OpenBSD został założony przez Theo de Raadta w 1995 roku po konflikcie z twórcami NetBSD, w wyniku którego Theo odmówiono dostępu do repozytorium CVS NetBSD. Następnie Theo de Raadt wraz z grupą podobnie myślących ludzi stworzył nowy, otwarty system operacyjny oparty na drzewie źródeł NetBSD, którego głównymi celami rozwoju była przenośność (obsługiwanych jest 13 platform sprzętowych), standaryzacja, poprawne działanie, proaktywne bezpieczeństwo i zintegrowane narzędzia kryptograficzne. Pełny obraz instalacyjny ISO systemu podstawowego OpenBSD 7.3 zajmuje 620 MB.
Oprócz samego systemu operacyjnego projekt OpenBSD znany jest ze swoich komponentów, które rozpowszechniły się w innych systemach i okazały się jednymi z najbezpieczniejszych i wysokiej jakości rozwiązań. Wśród nich: LibreSSL (fork OpenSSL), OpenSSH, filtr pakietów PF, demony routingu OpenBGPD i OpenOSPFD, serwer OpenNTPD NTP, serwer poczty OpenSMTPD, multiplekser terminali tekstowych (analogicznie do ekranu GNU) tmux, demon identd z implementacją protokołu IDENT, alternatywa BSDL Pakiet GNU groff - mandoc, protokół organizacji systemów odpornych na uszkodzenia CARP (Common Address Redundancy Protocol), lekki serwer http, narzędzie do synchronizacji plików OpenRSYNC.
Główne ulepszenia:
- Zaimplementowano wywołania systemowe waitid (oczekiwanie na zmianę stanu procesu), pinsyscall (do przekazywania informacji o punkcie wejścia execve w celu ochrony przed exploitami ROP), getthrname i setthrname (pobieranie i ustawianie nazwy wątku).
- Wszystkie architektury wykorzystują clockintr, niezależny od sprzętu program planujący przerwania czasowe.
- Dodano sysctl kern.autoconf_serial, którego można użyć do śledzenia zmian stanu drzewa urządzeń w jądrze z przestrzeni użytkownika.
- Ulepszona obsługa systemów wieloprocesorowych (SMP). Filtry zdarzeń dla urządzeń tun i tap zostały przekonwertowane na kategorię mp-safe. Funkcjeselect, pselect, poll, ppoll, getsockopt, setsockopt, mmap, munmap, mprotect, sched_yield, minherit i utrace, a także ioctl SIOCGIFCONF, SIOCGIFGMEMB, SIOCGIFGATTR i SIOCGIFGLIST zostały usunięte z blokowania. Poprawiona obsługa blokowania w filtrze pakietów pf. Poprawiona wydajność systemu i stosu sieciowego w systemach wielordzeniowych.
- Implementacja frameworku drm (Direct Rendering Manager) jest zsynchronizowana z jądrem Linuksa 6.1.15 (ostatnia wersja - 5.15.69). Sterownik Amdgpu obsługuje teraz Ryzen 7000 „Raphael”, Ryzen 7020 „Mendocino”, Ryzen 7045 „Dragon Range”, Radeon RX 7900 XT/XTX „Navi 31”, Radeon RX 7600M (XT), 7700S i 7600S „Navi 33”. Amdgpu dodało obsługę kontrolowania oświetlenia tła i zapewnia, że xbacklight działa podczas korzystania ze sterownika ustawiania trybu X.Org. Mesa ma domyślnie włączone buforowanie shaderów.
- Wprowadzono ulepszenia hiperwizora VMM.
- Zaimplementowano możliwości dodatkowej ochrony pamięci procesów w przestrzeni użytkownika: zmienne wywołanie systemowe i powiązaną z nim funkcję biblioteczną o tej samej nazwie, która pozwala na ustalenie praw dostępu podczas odzwierciedlenia w pamięci (mapowania pamięci). Po zatwierdzeniu uprawnień ustawionych dla obszaru pamięci, na przykład zakazu zapisu i wykonywania, nie można później zmienić poprzez kolejne wywołania funkcji mmap(), mprotect() i munmap(), co spowoduje wygenerowanie błędu EPERM przy próbie zmienić.
- W architekturze AMD64 mechanizm ochrony RETGUARD jest włączony dla wywołań systemowych, których celem jest skomplikowanie wykonywania exploitów zbudowanych przy użyciu pożyczonych fragmentów kodu i technik programowania zorientowanego na zwrot.
- Włączona jest ochrona przed wykorzystaniem luk w zabezpieczeniach, oparta na losowym ponownym łączeniu pliku wykonywalnego sshd przy każdym uruchomieniu systemu. Reflow sprawia, że przesunięcia funkcji w sshd są mniej przewidywalne, co utrudnia tworzenie exploitów przy użyciu technik programowania zorientowanego na zwrot.
- Włączono bardziej agresywną losowość układu stosu w systemach 64-bitowych.
- Dodano ochronę przed luką Spectre-BHB w strukturach mikroarchitektury procesorów.
- W procesorach ARM64 flaga DIT (Data Independent Timing) jest włączona dla przestrzeni użytkownika i przestrzeni jądra, aby blokować ataki typu side-channel, które manipulują zależnością czasu wykonania instrukcji od danych przetwarzanych w tych instrukcjach.
- Zapewnia możliwość użycia polecenia lladdr podczas definiowania konfiguracji sieci. Na przykład oprócz powiązania z nazwą interfejsu (nazwa hosta.fxp0) można użyć powiązania z adresem MAC (nazwa hosta.00:00:6e:00:34:8f).
- Ulepszona obsługa trybu uśpienia w systemach opartych na ARM64.
- Znacząco rozszerzona obsługa chipów Apple ARM.
- Dodano obsługę nowego sprzętu i dodano nowe sterowniki.
- Sterownik bwfm dla kart bezprzewodowych opartych na chipach Broadcom i Cypress zapewnia obsługę szyfrowania WEP.
- Instalator usprawnił pracę z programową macierzą RAID i zaimplementował wstępną obsługę Guided Disk Encryption.
- Do tmux („multiplekser terminala”) dodano nowe polecenia scroll-top i scroll-bottom umożliwiające przewijanie kursora na początek i na koniec. Pakiety LibreSSL i OpenSSH zostały zaktualizowane. Szczegółowy przegląd ulepszeń można znaleźć w recenzjach LibreSSL 3.7.0, OpenSSH 9.2 i OpenSSH 9.3.
- Liczba portów dla architektury AMD64 wyniosła 11764 11451 (z 64 11561), dla aarch11261 – 386 10572 (z 10225 XNUMX), dla iXNUMX – XNUMX XNUMX (z XNUMX XNUMX). Wśród wersji aplikacji w portach:
- Gwiazdka 16.30.0, 18.17.0 i 20.2.0
- Audacity 3.2.5
- CMake 3.25.2
- Chromium 111.0.5563.110
- Emacs 28.2
- FFmpeg 4.4.3
- GCC 8.4.0 i 11.2.0
- GHC 9.2.7
- GNOME 43.3
- Idź 1.20.1
- JDK 8u362, 11.0.18 i 17.0.6
- Koła zębate KDE 22.12.3
- Szkielety KDE 5.103.0
- Krita 5.1.5
- LLVM/Clang 13.0.0
- LibreOffice 7.5.1.2
- Lua 5.1.5, 5.2.4, 5.3.6 i 5.4.4
- MariaDB 10.9.4
- Mono 6.12.0.182
- Mozilla Firefox 111.0 i ESR 102.9.0
- Mozilla Thunderbird 102.9.0
- Mutt 2.2.9 i NeoMutt 20220429
- Node.js 18.15.0
- OCaml 4.12.1
- OtwórzLDAP 2.6.4
- PHP 7.4.33, 8.0.28, 8.1.16 i 8.2.3
- Postfix 3.5.17 i 3.7.3
- PostgreSQL 15.2
- Python 2.7.18, 3.9.16, 3.10.10 i 3.11.2
- Qt 5.15.8 i 6.4.2
- R 4.2.1
- Ruby 3.0.5, 3.1.3 i 3.2.1
- Rdza 1.68.0
- SQLite 2.8.17 i 3.41.0
- Shotcut 22.12.21
- Sudo 1.9.13.3
- Meerkat 6.0.10
- Tcl/Tk 8.5.19 i 8.6.13
- TeX na żywo 2022
- Vima 9.0.1388 i Neovima 0.8.3
- Xfce 4.18
- Zaktualizowane komponenty innych firm zawarte w OpenBSD 7.3:
- Stos graficzny Xenocara oparty na X.Org 7.7 z xserver 1.21.6 + łatki, freetype 2.12.1, Fontconfig 2.14, Mesa 22.3.4, xterm 378, xkeyboard-config 2.20, Fonttosfnt 1.2.2.
- LLVM/Clang 13.0.0 (+ poprawki)
- GCC 4.2.1 (+ łatki) i 3.3.6 (+ łatki)
- Perl 5.36.1 (+ poprawki)
- NSD4.6.1
- Bez ograniczeń 1.17
- Nkursy 5.7
- Binutils 2.17 (+ poprawki)
- Gdb 6.3 (+ łatka)
- Awk 12.9.2022
- Ekspatriant 2.5.0.
Źródło: opennet.ru