Została wydana wersja wolnego systemu operacyjnego podobnego do UNIX, OpenBSD 7.5. Projekt OpenBSD został założony przez Théa de Raadta w 1995 roku po konflikcie z programistami NetBSD, w wyniku którego dostęp Théa do repozytorium CVS NetBSD został zablokowany. Po tym Thé de Raadt z grupą współpracowników stworzył nowy otwarty system operacyjny na bazie drzewa kodu źródłowego NetBSD, którego głównymi celami rozwoju były przenośność (obsługiwane 13 platform sprzętowych), standaryzacja, poprawna praca, proaktywne bezpieczeństwo oraz zintegrowane środki kryptograficzne. Rozmiar pełnego obrazu ISO podstawowego systemu OpenBSD 7.5 wynosi 630 MB.
Oprócz samego systemu operacyjnego, projekt OpenBSD znany jest ze swoich komponentów, które zyskały popularność w innych systemach i ugruntowały swoją pozycję jako jedno z najbardziej bezpiecznych i jakościowych rozwiązań. Należą do nich: LibreSSL (fork OpenSSL), OpenSSH, filtr pakietów PF, demony routingu OpenBGPD i OpenOSPFD, serwer NTP OpenNTPD, serwer pocztowy OpenSMTPD, multiplexer terminali tekstowych (analog GNU screen) tmux, demon identd z implementacją protokołu IDENT, BSDL-alternatywa dla pakietu GNU groff — mandoc, protokół do organizacji systemów odpornych na awarie CARP (Common Address Redundancy Protocol), oraz lekki serwer http, narzędzie do synchronizacji plików OpenRSYNC.
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 (uzyskiwanie i ustalanie nazwy wątku).
- Do instalatora dodano obsługę szyfrowania partycji systemowej. W zautomatyzowanym trybie instalacji (autoinstall) została wprowadzona możliwość włączenia szyfrowania dysków z podaniem hasła w postaci tekstu jawnego lub dostarczenia kluczy na osobnym nośniku. Wersje dla architektury AMD64 cdXX.iso i installXX.iso zostały dostosowane do uruchamiania w trybie EFI.
- Dodano wywołanie systemowe pinsyscalls, które pozwala na dostęp do wywołań systemowych tylko z określonych miejsc w przestrzeni adresowej procesu. Jądro i ld.so mogą rejestrować dokładne miejsce wejścia do każdego wywołania systemowego, używanego przez program i bibliotekę libc.so, w celu późniejszego zablokowania wysyłania wywołań systemowych z niezarejestrowanych miejsc.
- Usunięto wsparcie dla pośredniego dostępu do wywołań systemowych za pomocą funkcji syscall. W połączeniu z pinsyscalls zmiana ta pozwala na zabronienie bezpośredniego dostępu do wywołań systemowych bez korzystania z opakowań dostarczanych przez libc. Pakiety, w których występuje bezpośredni dostęp do wywołań systemowych, na przykład Perl i Go, zostały zmodyfikowane, aby używać tylko funkcji libc.
- W systemach ARM64 rozszerzono wykorzystanie mechanizmów uwierzytelniania wskaźników (PAC — Pointer Authentication) oraz identyfikacji celów rozgałęzień (BTI — Branch Target Identification).
- W interfejsie sieciowym ppp dodano wsparcie IPv6.
- W narzędziu netstat wprowadzono wyświetlanie statystyk dotyczących efektywności buforowania tras (w wynikach 'netstat -s' teraz pokazują się liczniki trafień i nietrafień bufora).
- W filtrze pakietowym pf uwzględniono zmiany w stosie sieciowym związane z przetwarzaniem równoległym na systemach wieloprocesorowych. Podczas wykonywania narzędzia tcpdump z interfejsem sieciowym pflog zapewniono wyświetlanie pakietów, które zostały odrzucone w wyniku działania domyślnej reguły z działaniem „block”. Dla reguł z działaniem „pass” zapewniono wyświetlanie zablokowanych niepoprawnych pakietów. W divert dodano sprawdzenie poprawności ustawiania opcji w pakietach IPv4.
- Udoskonalono wsparcie dla systemów wieloprocesorowych (SMP). Przekształcono w kategorię mp-safe obsługę timeoutów w stosie sieciowym, zliczanie pakietów dla interfejsu loopback oraz moduł vscsi_filtops. Zapewniono możliwość równoległego wykonywania wywołań systemowych bind i connect, a także operacji na tabelach UDP dla IPv4 i IPv6. Dodano wsparcie dla jednoczesnego wysyłania pakietów UDP z różnych wątków.
- Udoskonalono obsługę sytuacji przepełnienia sekcji wymiany pamięci, wprowadzono zmiany mające na celu wykluczenie wzajemnych blokad.
- W jądrze dla systemów arm64 wdrożono pamięć podręczną zawartości pul tabeli stron pamięci i PTE-deskryptorów, co znacznie przyspieszyło działanie na systemach wielordzeniowych.
- Wprowadzono ulepszenia w hipernadzorze VMM. Realizacja urządzenia vionet została przepisana w celu wsparcia wielowątkowości oraz transferu danych pomiędzy hostem a systemem gościnnym w trybie zero-copy, bez buforowania pośredniego. Zwiększona stabilność działania hipernadzorcy na systemach z instrukcjami Intel VMX. Dodano dodatkową ochronę przed recently discovered vulnerabilities in processors related to speculative execution of instructions and leakage of residual data from registers.
- Dla systemów amd64 dodano sysctl machdep.retpoline do zarządzania włączeniem mechanizmu retpoline w celu ochrony przed atakami klasy Spectre.
- Implementacja frameworka drm (Direct Rendering Manager) została zsynchronizowana z jądrem Linux 6.6.19 (w poprzedniej wersji — 6.1.55).
- Dodano wsparcie dla nowego sprzętu oraz włączono nowe sterowniki związane z komponentami różnych SoC, wsparciem dla kontrolerów Ethernet oraz przeniesieniem wykonywania operacji sieciowych na strony kart sieciowych.
- W systemie dźwiękowym uaudio zezwolono na przyłączanie wielu sterowników do urządzeń dźwiękowych.
- Dodano sterowniki apldcp i apldrm dla kontrolerów wyświetlaczy używanych w urządzeniach Apple. Dla Apple Powerbook wprowadzono możliwość zarządzania podświetleniem klawiatury.
- Dodano sterownik qwx dla bezprzewodowych chipów Qualcomm IEEE 802.11ax, opracowany poprzez portowanie sterownika ath11k z jądra Linux (wbudowanego w jądro od gałęzi 5.6). Sterownik pozwala na wykorzystywanie bezprzewodowych adapterów stosowanych w takich laptopach jak Lenovo ThinkPad X13s i DELL XPS 9500. Do działania sterownika wymagana jest instalacja plików z oprogramowaniem układowym.
- Do narzędzia pax dodano możliwość zapisu w archiwach pax, a do narzędzia tar dodano wsparcie dla archiwów pax o rozmiarze większym niż 8 GB.
- W narzędziu ifconfig dodano wsparcie dla wskazywania numerów portów dla interfejsów sieciowych związanych z tunelami, takich jak gif i gre.
- W bgpd mechanizm przesyłania wiadomości i większość parserów protokołów przetłumaczone na nowe API bezpiecznej pracy z pamięcią.
- W rpki-client dodano eksperymentalne wsparcie dla algorytmu podpisów cyfrowych P-256. Wprowadzono możliwość ograniczenia działania RPKI Trust Anchor tylko do określonych numerów systemów autonomicznych. Dodano wsparcie dla list podpisanych prefiksów RPKI (Signed Prefix List).
- W smtpd dodano wsparcie dla RFC 7505 („Null MX” dla identyfikacji, które nie akceptują poczty) i zapewniono możliwość wbudowania w smtpd.conf wieloliniowych tabel i list filtrów. domenówUdostępniono możliwość instalacji użytkowskiego środowiska KDE Plasma 5.27 z pakietów kde-plasma i kde-plasma-extra (po zakończeniu wsparcia dla KDE4, wsparcie dla użycia pulpitu KDE Plasma 5 wciąż pozostawało w OpenBSD nie działające). Do instalacji proponowane są wersje KDE Plasma 5.27.10, KDE Applications 23.08.4 i KDE Frameworks 5.115.0.
- Zaktualizowano pakiety LibreSSL i OpenSSH. Szczegółowy przegląd ulepszeń można zobaczyć w przeglądach LibreSSL 3.9.0, OpenSSH 9.6 i OpenSSH 9.7.
- Liczba portów dla architektury AMD64 wyniosła: 12309 (było 11845), dla aarch64 — 12145 (było 11508), dla i386 — 10830 (było 10603). Wśród wersji aplikacji w portach:
- Asterisk 16.30.1, 18.21.0, 20.6.0
- Audacity 3.4.2
- CMake 3.28.3
- Chromium 122.0.6261.111
- Firefox 123.0.1, ESR 115.8.0
- FFmpeg 4.4.4
- GCC 8.4.0, 11.2.0
- GHC 9.6.4
- GNOME 45
- Go 1.22.1
- JDK 8u402, 11.0.22, 17.0.10, 21.0.2
- Krita 5.2.2
- LLVM/Clang 13.0.0, 16.0.6, 17.0.6
- LibreOffice 24.2.1.2
- Lua 5.1.5, 5.2.4, 5.3.6, 5.4.6
- Mutt 2.2.13 i NeoMutt 20240201
- MariaDB 10.9.8
- Mono 6.12.0.199
- Node.js 18.19.1
- OCaml 4.14.1
- OpenLDAP 2.6.7
- PHP 7.4.33, 8.0.30, 8.1.27, 8.2.16, 8.3.3
- Postfix 3.8.6
- PostgreSQL 16.2
- Python 2.7.18, 3.9.18, 3.10.13, 3.11.8
- Qt 5.15.12 (+ łatki kde), 6.6.1
- Ruby 3.1.4, 3.2.3, 3.3.0
- R 4.2.3
- Rust 1.76.0
- Suricata 7.0.3
- SQLite 3.44.2
- Shotcut 23.07.29
- Sudo 1.9.15.5
- Tcl/Tk 8.5.19, 8.6.13
- Thunderbird 115.8.1
- TeX Live 2023
- Thunderbird 115.8.1
- Vim 9.1.139, Neovim 0.9.5
- Xfce 4.18.1
- Zaktualizowane komponenty od zewnętrznych deweloperów zawarte w OpenBSD 7.5:
- Graficzny stos Xenocara oparty na X.Org 7.7 z xserver 21.1.11 + poprawki, freetype 2.13.0, fontconfig 2.14.2, Mesa 23.1.9, xterm 378, xkeyboard-config 2.20, fonttosfnt 1.2.3.
- LLVM/Clang 16.0.6 (+ łatki)
- GCC 4.2.1 (+ poprawki) i 3.3.6 (+ poprawki)
- Perl 5.36.3 (+ poprawki)
- NSD 4.8.0
- Unbound 1.18
- Ncurses 5.7
- Binutils 2.17 (+ poprawki)
- Gdb 6.3 (+ poprawka)
- Awk 22.01.2024
- Expat 2.6.0.
- zlib 1.3.1 (+ poprawki).
Źródło: opennet.ru
