Predstavljen je izlazak slobodnog UNIX-sličnog operativnog sustava OpenBSD 7.4. Projekt OpenBSD osnovao je Theo de Raadt 1995. godine nakon sukoba s programerima NetBSD, usljed kojeg je Teo izgubio pristup CVS repozitoriju NetBSD. Nakon toga, Theo de Raadt je s grupom istomišljenika stvorio na temelju stabla izvornih kodova NetBSD novi otvoreni operacijski sustav, čiji su glavni ciljevi razvoja prenosivost (podržava 13 hardverskih platformi), standardizacija, ispravno funkcioniranje, proaktivna sigurnost i integrirana kriptografska sredstva. Veličina potpunog instalacijskog ISO-ima osnovnog sustava OpenBSD 7.4 iznosi 630 MB.
Osim izravno operativnog sustava, projekt OpenBSD poznat je po svojim komponentama koje su se raširile u drugim sustavima i pokazale se kao jedna od naj sigurnijih i najkvalitetnijih rješenja. Među njima su: LibreSSL (fork OpenSSL), OpenSSH, filtarski paket PF, demoni usmjeravanja OpenBGPD i OpenOSPFD, NTP poslužitelj OpenNTPD, poštanski poslužitelj OpenSMTPD, višekanalni terminal (analog GNU screena) tmux, demon identd s implementacijom protokola IDENT, BSDL alternativa paketu GNU groff — mandoc, protokol za organizaciju sustava otpornosti na greške CARP (Common Address Redundancy Protocol), lagani http poslužitelj, alat za sinkronizaciju datoteka OpenRSYNC.
Glavna poboljšanja:
- Za arhitekture amd64 i i386 dodane su komponente za ažuriranje mikrokoda za AMD procesore. Nove verzije mikrokoda instaliraju se automatski pri pokretanju. Za distribuciju binarnih datoteka s mikrokodom pripremljen je port "ports/sysutils/firmware/amd". Instalacija novog mikrokoda vrši se pomoću standardne alate fw_update. Slična podrška za ažuriranje mikrokoda za Intel procesore implementirana je 2018. godine i ponuđena u izdanju OpenBSD 6.3.
- Za kernel i prostor korisnika uključeni su mehanizmi zaštite IBT (Indirect Branch Tracking, amd64) i BTI (Branch Target Identification, arm64), koji su namijenjeni blokiranju kršenja normalnog slijeda izvršenja (control flow) uslijed korištenja eksploitacija koje mijenjaju pohranjene u memoriji pokazivače na funkcije (realizirana zaštita ne dopušta zlonamjernom kodu da izvrši prelazak na sredinu funkcije).
- Na sustavima s arhitekturom arm64 za zaštitu prostora korisnika uključena je autentifikacija pokazivača (Pointer Authentication). Tehnologija omogućava korištenje specijaliziranih ARM64 instrukcija za provjeru adresa vraćanja pomoću digitalnih potpisa koji se pohranjuju u neiskorištenim gornjim bitovima samog pokazivača.
- Postavke sistemskog kompajlera clang, kao i clang i gcc iz portova, promijenjene su kako bi se primijenili navedeni mehanizmi zaštite, što je značajno ojačalo zaštitu svih osnovnih aplikacija i većine aplikacija iz portova od eksploatacija koje koriste metode povratno-orijentiranog programiranja (ROP – Return-Oriented Programming). Korištenjem ROP tehnike, napadač ne pokušava staviti svoj kod u memoriju, već upravlja već postojećim dijelovima mašinskih instrukcija u učitanim bibliotekama, koje završavaju instrukcijom povratka kontrole (kao pravilo, to su završetci funkcija biblioteka). Rad eksploita svodi se na izradu lanca poziva sličnih blokova („gadgeta“) za dobivanje potrebne funkcionalnosti.
- Dodana je nova sistemska funkcija kqueue1, koja se razlikuje od kqueue-u prijenosom zastava. Trenutno kqueue1 podržava samo zastavu O_CLOEXEC (close-on-exec) za automatsko zatvaranje datotečnih deskripatora u dječjem procesu nakon poziva exec().
- Podrška za pseudouređaj dt implementirana je za arhitekture amd64 i i386 za organizaciju dinamičkog praćenja sustava i aplikacija. Dodana je sistemska funkcija utrace za umetanje korisničkih zapisa u zapisnik ktrace.
- Ispravke iz FreeBSD-a prenesene su kako bi se otklonilo nepredviđeno ponašanje pri korištenju MS-DOS datotečnih sustava.
- Isključena je opcija montiranja softdep, koja se koristi za odgođeno grupiranje zapisa metapodataka.
- Programima zaštićenim sistemskom funkcijom unveil dopušteno je spremanje core-dumpova u trenutni radni direktorij.
- Za ARM64 arhitekturu uključena je mogućnost prelaska u duboke stanje neaktivnosti (idle) dostupne u čipovima Apple M1/M2, radi uštede energije i ostvarivanja režima čekanja.
- Dodana je zaobilažna zaštita od ranjivosti Zenbleed u AMD procesorima.
- Unaprijeđena je podrška za višekorisničke sustave (SMP). Uklonjene su blokade iz funkcije arprequest(), kod obrade dolaznih ARP paketa i implementacija određivanja susjednih čvorova u IPv6 stogu.
- Sučelje za sinkronizaciju tablica paketskog filtra pfsync preradilo se za poboljšanje rada s blokadama i kompatibilnost s budućim radom na paralelizaciji mrežnog stoga.
- Implementacija DRM (Direct Rendering Manager) frameworka sinkronizirana je s Linux kernelom 6.1.55 (u prethodnom izdanju — 6.1.15). Povećana je učinkovitost na sustavima s Intel procesorima temeljima mikroarhitekture Alder Lake i Raptor Lake.
- Unapređena je funkcionalnost hipervizora VMM. U vmd je implementirana podrška za višekratne modele za virtio uređaje za blokove i mreže. U blok virtio uređaj dodana je podrška za vektorsko I/O u režimu zero-copy. Ograničen je pristup gost sistema p-state modovima AMD procesora. Vlasnicima virtualnih mašina dozvoljeno je putem vmctl da nadjačaju učitani kernel.
- Dodana je nova zaglavna datoteka uchar.h s tipovima char32_t i char16_t, te funkcijama c32rtomb(), mbrtoc32(), c16rtomb() i mbrtoc16(), definiranim prema standardu C11.
- Funkciji malloc dodana je opcija „D” za identificiranje curenja memorije pomoću ktrace („MALLOC_OPTIONS=D ktrace -tu program”) i kdump („kdump -u malloc …”).
- U alat make dodana je podrška za varijablu ${.VARIABLES} za ispis imena svih postavljenih globalnih varijabli.
- U alat kdump dodana je opcija „-u” za odabir točaka praćenja utrace prema definiranoj oznaci.
- U alat openrsync dodane su opcije „—size-only” i „—ignore-times”.
- U cron i crontab dodana je podrška za slučajne offsete prilikom definiranja raspona vrijednosti s zadanim korakom, što omogućava izbjegavanje istovremenih zahtjeva resursu s različitih strojeva koji imaju jednake cron pravila. Na primjer, definiranje „0~59/30” ili „~30” u polju za minute rezultirat će pokretanjem komande dva puta na sat kroz uzastopne nasumično odabrane intervale.
- U alat wsconsctl dodana je mogućnost mapiranja tipki za dodir s dva ili tri prsta na touchpad-u.
- Dodana je podrška za novu opremu i uključeni su novi drajveri.
- Poboljšana je instalacija na sustavima s armv7 i arm64 procesorima.
- Dodana je podrška za učitavanje datoteka iz EFI sustavnog odjeljka (EFI System Partition).
- U installeru poboljšana je podrška za softverski RAID (softraid). Dodana je mogućnost smještaja korijenskog odjeljka u softraid na sustavima riscv64 i arm64. Softraid je dodat u ramdisk za arhitekturu powerpc64. Za arm64 implementirana je podrška za enkripciju diskova (Guided Disk Encryption).
- U funkciju malloc dodana je provjera svih blokova na popisu odgođenog oslobađanja memorije radi otkrivanja situacija pisanja u oslobođenu memorijsku oblast.
- Za izvršavanje komande shutdown sada je potrebno dodati korisnika u grupu «_shutdown», što omogućava razdvajanje ovlasti vezanih za isključivanje i izravno čitanje s diskovnih uređaja.
- Korištenjem sistemskog poziva unveil, alat patch je ograničen na pristup samo trenutnom direktoriju, direktoriju s privremenim datotekama i datotekama navedenim u komandnoj liniji.
- Dodana je sysctl net.inet6.icmp6.nd6_queued za prikaz broja paketa koji čekaju odgovor ND6 (analogno ARP-u).
- Pri postavljanju IPv6 adrese na mrežnom sučelju osigurano je slanje najave susjednim usmjerivačima putem multicast adrese.
- Dodana je početna podrška za TSO (TCP Segmentation Offload) i LRO (TCP Large Receive Offload) za obradu segmenata i spajanje paketa na strani mrežne kartice.
- Ubrzana je učitavanje iz jezgre pravila filtriranja paketa pf alatkom pfctl. Uključena je obrada akcija «keep state» i «nat-to» za vraćene ICMP poruke o greškama.
- Onemogućeno je izračunavanje kontrolnih suma IP, TCP i UDP za loopback sučelja.
- Dodana početna podrška VPN IPsec, ovisan o usmjeravanju (route-based).
- U bgpd je dodana podrška za Flowspec (RFC5575, trenutno se podržava samo oglašavanje pravila flowspec). Implementacija ASPA (Autonomous System Provider Authorization) usklađena je sa specifikacijama draft-ietf-sidrops-aspa-verification-16 i draft-ietf-sidrops-aspa-profile-16, i prešla je na korištenje pretraživačkih tablica neovisnih o AFI (Address Family Indicator).
- Performanse rpki-clienta povećane su za 30-50%. Dodana je podrška za gzip i deflate kompresiju.
- Ažurirani su paketi LibreSSL i OpenSSH. Detaljan pregled poboljšanja može se vidjeti u pregledima LibreSSL 3.8.0, OpenSSH 9.4 i OpenSSH 9.5.
- Broj portova za arhitekturu AMD64 iznosi 11845 (bilo 11764), za aarch64 — 11508 (bilo 11561), za i386 — 10603 (bilo 10572). Među verzijama aplikacija u portovima:
- Asterisk 16.30.1, 18.19.0, 20.4.0
- Audacity 3.3.3
- CMake 3.27.5
- Chromium 117.0.5938.149
- Emacs 29.1
- Firefox 123.0.1, ESR 115.8.0
- GCC 8.4.0 i 11.2.0
- GHC 9.2.7
- GNOME 44
- Go 1.21.1
- JDK 8u382, 11.0.20 i 17.0.8
- KDE Applications 23.08.0
- KDE Frameworks 5.110.0
- Krita 5.1.5
- LLVM/Clang 13.0.0 i 16.0.6
- LibreOffice 7.6.2.1
- Lua 5.1.5, 5.2.4, 5.3.6 i 5.4.6
- MariaDB 10.9.6
- Mutt 2.2.13 i NeoMutt 20240201
- Mozilla Firefox 118.0.1 i ESR 115.3.1
- Mozilla Thunderbird 115.3.1
- Mutt 2.2.12 i NeoMutt 20230517
- Node.js 18.18.0
- OpenLDAP 2.6.6
- PHP 7.4.33, 8.0.30, 8.1.24 i 8.2.11
- Postfix 3.7.3
- PostgreSQL 15.4
- Python 2.7.18, 3.9.18, 3.10.13 i 3.11.5
- Qt 5.15.10 i 6.5.2
- Ruby 3.1.4, 3.2.3, 3.3.0
- Ruby 3.0.6, 3.1.4 i 3.2.2
- Rust 1.72.1
- SQLite 3.42.0
- Shotcut 23.07.29
- Sudo 1.9.14.2
- Suricata 6.0.12
- Tcl/Tk 8.5.19 i 8.6.13
- TeX Live 2022
- Vim 9.0.1897 i Neovim 0.9.1
- Xfce 4.18
- Ažurirani su komponenti od trećih strana koji su uključeni u OpenBSD 7.3:
- Grafički sloj Xenocara baziran na X.Org 7.7 s xserver 21.1.8 + zakrpe, freetype 2.13.0, fontconfig 2.14.2, Mesa 22.3.7, xterm 378, xkeyboard-config 2.20, fonttosfnt 1.2.2.
- LLVM/Clang 13.0.0 (+ zakrpe)
- GCC 4.2.1 (+ zakrpe) i 3.3.6 (+ zakrpe)
- Perl 5.36.1 (+ zakrpe)
- NSD 4.7.0
- Unbound 1.18
- Ncurses 5.7
- Binutils 2.17 (+ zakrpe)
- Gdb 6.3 (+ zakrpa)
- Awk 12.9.2023
- Expat 2.5.0.
Izvor: opennet.ru
