Çlirohet versioni i sistemit operativ të lirë dhe UNIX-të ngjashëm OpenBSD 7.4. Projekti OpenBSD u themelua nga Theo de Raadt në vitin 1995 pas një konflikti me zhvilluesit e NetBSD, si rezultat i të cilit Theo humbi qasjen në depozitat CVS të NetBSD. Pas kësaj, Theo de Raadt së bashku me një grup mbështetësish krijuan një sistem të ri operativ të hapur në bazë të pemës së kodit burimor të NetBSD, me qëllimet kryesore të zhvillimit që të ishin portabiliteti (mbështeten 13 platforma harduerike), standardizimi, funksionimi i saktë, siguria proaktive dhe mjete të integruara kriptografike. Madhësia e imazhit ISO të plotë të sistemit bazë OpenBSD 7.4 është 630 MB.
Përveç sistemit operativ të vet, projekti OpenBSD është i njohur për komponentët e tij, të cilët janë përdorur në sisteme të tjera dhe janë treguar si disa nga zgjidhjet më të sigurta dhe cilësore. Ndër to janë: LibreSSL (fork i OpenSSL), OpenSSH, filtrimi i paketave PF, demonët e routingut OpenBGPD dhe OpenOSPFD, serveri NTP OpenNTPD, serveri i postës OpenSMTPD, multiplexer-i i terminalit tekstual (analog i GNU screen) tmux, demoni identd me realizimin e protokollit IDENT, alternativa BSDL për paketën GNU groff — mandoc, protokolli për organizimin e sistemeve të besueshme CARP (Common Address Redundancy Protocol), serveri i lehtë http dhe utilita për sinkronizimin e skedarëve OpenRSYNC.
Përmirësimet kryesore:
- Për arkitekturën amd64 dhe i386 janë shtuar komponentë për përditësimin e mikro-kodit të procesorëve AMD. Versionet e reja të mikro-kodit instalohen automatikisht gjatë ngarkesës. Për shpërndarjen e skedarëve binarë të mikro-kodit është përgatitur porti «ports/sysutils/firmware/amd». Instalimi i mikro-kodit të ri bëhet me ndihmën e utilitarit fw_update. Një mbështetje e ngjashme për përditësimin e mikro-kodit për procesorët Intel u realizua në vitin 2018 dhe u ofrua në versionin OpenBSD 6.3.
- Për bërthamën dhe hapësirën e përdoruesit janë përfshirë mekanizmat e mbrojtjes IBT (Indirekt Ndjekja e Degëve, amd64) dhe BTI (Identifikimi i Objektivit të Degëve, arm64), të destinuara për bllokimin e shkeljes së rendit normal të ekzekutimit (kontrolli i rrjedhës) si rezultat i përdorimit të eksploitëve që ndryshojnë treguesit e ruajtur në memorie për funksionet (mbrojtja e realizuar nuk lejon që kodi të keq të kalojë në mes të funksioneve).
- Në sistemet me arkitekturë arm64 për mbrojtjen e hapësirës së përdoruesit është përfshirë autentifikimi i treguesve (Pointer Authentication). Kjo teknologji lejon përdorimin e instrukcioneve të specializuara ARM64 për të verifikuar adresat e kthimit duke përdorur nënshkrime digjitale, të cilat ruhen në bitët më të lartë të papërdorur të vetë treguesit.
- Cilësimet e kompilatorit sistemik clang, si dhe clang dhe gcc nga portet, janë ndryshuar për të aplikuar mekanizmat e mbrojtjes të përmendur më sipër, që e kanë forcuar ndjeshëm mbrojtjen e të gjitha aplikacioneve bazë dhe shumicës së aplikacioneve nga portet nga eksploitët që përdorin metodat e programimit të orientuar nga kthimi (ROP — Return-Oriented Programming). Duke përdorur teknikën ROP, sulmuesi nuk përpiqet të vendosë kodin e tij në memorie, por operon me copëza udhëzimesh makinerie që tashmë ekzistojnë në bibliotekat e ngarkuara, duke përfunduar me një udhëzim për të kthyer kontrollin (zakonisht përfundimi i funksioneve të bibliotekës). Funksionimi i eksploitit përfshin ndërtimin e një zinxhiri thirrjesh të tillave ("gadgets") për të përftuar funksionalitetin e dëshiruar.
- Është shtuar një thirrje e re sistemike kqueue1, e cila ndryshon nga kqueue duke transferuar flagje. Aktualisht, kqueue1 mbështet vetëm flamurin O_CLOEXEC (mbyll kur ekzekutohet) për mbylljen automatike të descriptorëve të skedarëve në procesin djalë pas thirrjes exec().
- Për arkitekturën amd64 dhe i386 është realizuar mbështetje për pseudo-pajisjen dt për të organizuar gjurmimin dinamik të sistemit dhe aplikacioneve. Për të futur regjistrime të përdoruesit në logun ktrace është shtuar thirrja sistemike utrace.
- Janë transferuar rregullimet nga FreeBSD që eliminojnë sjelljen e paqartë në përdorimin e sistemeve të skedarëve MS-DOS.
- Është çaktivizuar opsioni i montimit softdep, i cili përdoret për shkrim të grumbulluar të vonuar të metadatat.
- Për programet e mbrojtura përmes thirrjes sistemike unveil, është lejuar ruajtja e core-d dumps në katalogun e punës aktual.
- Për arkitekturën ARM64 është aktivizuar mundësia për të kaluar në gjendje të thella të papërdorur (idle), që janë të disponueshme në çipat Apple M1/M2, për të kursyer energji dhe për të realizuar një modalitet pritjeje.
- Është shtuar një mbrojtje anashkalimi për vulnerabilitetin Zenbleed në procesorët AMD.
- Është përmirësuar mbështetje për sistemet shumëprocesorike (SMP). Funksioni arprequest(), kodi i përpunimit të paketave ARP hyrëse dhe realizimi i identifikimit të fqinjëve në grumbullin IPv6 janë liruar nga bllokimet.
- Interfaci i sinkronizimit të tabelave të filtrit të paketave pfsync është rrethuar për të përmirësuar punën me bllokimet dhe përputhshmërinë me punën e ardhshme për paralelizimin e grumbullit të rrjetit.
- Implementimi i kuadrit drm (Menaxheri i Renderimit të Drejtë) është sinkronizuar me bërthamën Linux 6.1.55 (në versionin e kaluar — 6.1.15). Është përmirësuar performanca në sistemet me procesorë Intel të bazuar në mikroarkitekturën Alder Lake dhe Raptor Lake.
- Janë bërë përmirësime në hipervizorin VMM. Në vmd është realizuar mbështetje për modelin shumëprocesor të virtio-pajisjeve bllokë dhe rrjetë. Në virtio-pajisjen bllokë është shtuar mbështetje për hyrjen/daljen vektoriale në modalitetin zero-copy. Është kufizuar aksesi i sistemeve garuese në modalitetet p-state të procesorëve AMD. makinave virtuale lejohet që të ri-konfigurohet bërthama e ngarkimit përmes vmctl.
- Shtuar një skedar të ri për headerin uchar.h me tipat char32_t dhe char16_t, dhe funksionet c32rtomb(), mbrtoc32(), c16rtomb() dhe mbrtoc16(), të përcaktuara në standardin C11.
- Shtuar opsioni "D" në funksionin malloc për identifikimin e rrjedhjeve të memories duke përdorur ktrace ("MALLOC_OPTIONS=D ktrace -tu program") dhe kdump ("kdump -u malloc ...").
- Shtuar mbështetje për variablin ${.VARIABLES} në utilitarin make për të shfaqur emrat e të gjithë variablave globalë të vendosur.
- Shtuar opsionin "-u" në utilitarin kdump për të zgjedhur pikët e ndjekjes utrace sipas etiketës së specifikuar.
- Shtuar opsionet "—size-only" dhe "—ignore-times" në utilitarin openrsync.
- Shtuar mbështetje për ndryshimet rastësore në cron dhe crontab kur përcaktohen diapazone vlerash me një hap të caktuar, duke lejuar evitimin e kërkesave të njëkohshme për burime nga makinat e ndryshme që kanë rregulla të ngjashme në cron. Për shembull, përcaktimi "0~59/30" ose "~/30" në fushën e minutave do të rezultojë në ekzekutimin e komandës dy herë në orë përmes intervaleve të zgjedhura rastësisht.
- Shtuar mundësia e hartimit të butonave për goditje me dy ose tre gishta në utilitarin wsconsctl.
- Shtuar mbështetje për pajisje të reja dhe përfshirë drivere të reja.
- Përmirësuar instalimi në sisteme me procesorë armv7 dhe arm64.
- Shtuar mbështetje për ngarkimin e skedarëve nga pjesa e sistemit EFI (EFI System Partition).
- Përmirësuar mbështetja për RAID të programueshëm (softraid) në instalues. Shtuar mundësia e vendosjes së pjesës rrënjësore në softraid në sistemet riscv64 dhe arm64. Softraid është shtuar në ramdisk për arkitekturën powerpc64. Për arm64 është implementuar mbështetje për enkriptimin e disqeve (Guided Disk Encryption).
- Shtuar kontrollin për të gjitha blloqet në listën e lirimit të vonuar të memories në funksionin malloc për të identifikuar situatat e shkruarjes në zonat e kujtesës të liruar.
- Për të ekzekutuar komandën shutdown, tani kërkohet që përdoruesi të shtohet në grupin "_shutdown", duke lejuar ndarjen e privilegjeve që lidhen me ndalimin dhe leximin e drejtpërdrejtë nga pajisjet e diskut.
- Me anë të thirrjes së sistemit unveil, utilitari patch është kufizuar në akses vetëm në katalogun e tanishëm, në katalogun me skedarët përkohësorë dhe në skedarët e listuar në komandën e rreshtit.
- Shtuar sysctl net.inet6.icmp6.nd6_queued për të shfaqur numrin e paketave që presin përgjigje ND6 (ngjashëm me ARP).
- Siguruar dërgimin e anonsit për routerët fqinjë me adress IPv6 në ndërfaqen rrjetore duke përdorur adresën multicast.
- Shtuar mbështetje fillestare për TSO (TCP Segmentation Offload) dhe LRO (TCP Large Receive Offload) për përpunimin e segmenteve dhe bashkimin e paketave në anën e kartës rrjetore.
- Rritur ngarkimin e rregullave të filtrit të paketave pf nga utilitari pfctl. Aktivizuar përpunimi i veprimeve "keep state" dhe "nat-to" për përgjigjet e rikthyer përmes mesazheve ICMP të gabimeve.
- Çaktivizuar llogaritjet e checksum-it IP, TCP dhe UDP për ndërfaqet loopback.
- Shtuar mbështetje fillestare VPN IPsec, të varura nga rrugëtimi (route-based).
- Shtuar mbështetje për Flowspec në bgpd (RFC5575, për momentin mbështetet vetëm shpallja e rregullave flowspec). Zbatimi ASPA (Autonomous System Provider Authorization) është sjellë në përputhje me specifikimet draft-ietf-sidrops-aspa-verification-16 dhe draft-ietf-sidrops-aspa-profile-16, dhe është përkthyer në përdorimin e tabelave të kërkimit që nuk varen nga AFI (Address Family Indicator).
- Rritur performanca e rpki-client nga 30-50%. Shtuar mbështetje për kompresimin gzip dhe deflate.
- Paketat LibreSSL dhe OpenSSH janë përditësuar. Rishikimi i hollësishëm i përmirësimeve mund të shikohet në rishikimet e LibreSSL 3.8.0, OpenSSH 9.4 dhe OpenSSH 9.5.
- Numri i porteve për arkitekturën AMD64 ishte 11845 (ishte 11764), për aarch64 - 11508 (ishte 11561), për i386 - 10603 (ishte 10572). Ndër versionet e aplikacioneve në porte:
- Asterisk 16.30.1, 18.19.0b, 20.4.0
- Audacity 3.3.3
- CMake 3.27.5
- Chromium 117.0.5938.149
- Emacs 29.1
- FFmpeg 4.4.4
- GCC 8.4.0 dhe 11.2.0
- GHC 9.2.7
- GNOME 44
- Go 1.21.1
- JDK 8u382, 11.0.20 dhe 17.0.8
- KDE Applications 23.08.0
- KDE Frameworks 5.110.0
- Krita 5.1.5
- LLVM/Clang 13.0.0 dhe 16.0.6
- LibreOffice 7.6.2.1
- Lua 5.1.5, 5.2.4, 5.3.6 dhe 5.4.6
- MariaDB 10.9.6
- Mono 6.12.0.199
- Mozilla Firefox 118.0.1 dhe ESR 115.3.1
- Mozilla Thunderbird 115.3.1
- Mutt 2.2.12 dhe NeoMutt 20230517
- Node.js 18.18.0
- OpenLDAP 2.6.6
- PHP 7.4.33, 8.0.30, 8.1.24 dhe 8.2.11
- Postfix 3.7.3
- PostgreSQL 15.4
- Python 2.7.18, 3.9.18, 3.10.13 dhe 3.11.5
- Qt 5.15.10 dhe 6.5.2
- R 4.2.3
- Ruby 3.0.6, 3.1.4 dhe 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 dhe 8.6.13
- TeX Live 2022
- Vim 9.0.1897 dhe Neovim 0.9.1
- Xfce 4.18
- Përditësuar komponentët nga zhvillues të tretë që janë pjesë e OpenBSD 7.3:
- Grafikët e stack-ut Xenocara të bazuar në X.Org 7.7 me xserver 21.1.8 + patches, 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 (+ patches)
- GCC 4.2.1 (+ patches) dhe 3.3.6 (+ patches)
- Perl 5.36.1 (+ patches)
- NSD 4.7.0
- Unbound 1.18
- Ncurses 5.7
- Binutils 2.17 (+ patches)
- Gdb 6.3 (+ patch)
- Awk 12.9.2023
- Expat 2.5.0.
Burimi: opennet.ru
