Utgitt utgaven av det frie UNIX-liknende operativsystemet OpenBSD 7.4. OpenBSD-prosjektet ble grunnlagt av Theo de Raadt i 1995 etter en konflikt med utviklerne av NetBSD, som resulterte i at Theo ble nektet tilgang til CVS-repositoriet til NetBSD. Etter dette etablerte Theo de Raadt sammen med en gruppe likesinnede et nytt åpent operativsystem basert på kildekoden fra NetBSD, med hovedmålene for utviklingen som portabilitet (støtte for 13 maskinvareplattformer), standardisering, korrekt drift, proaktiv sikkerhet og integrerte kryptografiske verktøy. Størrelsen på det komplette installasjons-ISO-bildet av basissystemet OpenBSD 7.4 er 630 MB.
I tillegg til selve operativsystemet er OpenBSD-prosjektet kjent for sine komponenter, som har blitt distribuerte i andre systemer og har vist seg å være noen av de sikreste og mest kvalitetsløsningene. Blant dem er: LibreSSL (en fork av OpenSSL), OpenSSH, pakkefilteret PF, ruterdemonene OpenBGPD og OpenOSPFD, NTP-serveren OpenNTPD, postserveren OpenSMTPD, tekstterminalmultiplexeren (tilsvarende GNU-screen) tmux, demon identd med IMPLEMENTASJON av IDENT-protokollen, BSDL-alternativet til GNU groff-pakken - mandoc, protokollen for oppsett av feilfrie systemer CARP (Common Address Redundancy Protocol), en lettvekts HTTP-server, og filsynkroniseringsverktøyet OpenRSYNC.
Hovedforbedringer:
- For arkitekturene amd64 og i386 er det lagt til komponenter for oppdatering av mikrokode til AMD-prosessorer. Nye versjoner av mikrokoden installeres automatisk ved oppstart. For distribusjon av binære filer med mikrokode er det forberedt en port «ports/sysutils/firmware/amd». Installasjonen av ny mikrokode utføres ved hjelp av det medfølgende verktøyet fw_update. Tilsvarende støtte for oppdatering av mikrokode for Intel-prosessorer ble implementert i 2018 og tilbudt i utgivelsen av OpenBSD 6.3.
- For kjernen og brukermiljøet er mekanismer for beskyttelse IBT (Indirect Branch Tracking, amd64) og BTI (Branch Target Identification, arm64) inkludert, designet for å blokkere brudd på normal utførelse (control flow) som følge av utnyttelse av sårbarheter som endrer lagrede pekere til funksjoner i minnet (den implementerte beskyttelsen tillater ikke skadelig kode å hoppe til midten av en funksjon).
- På systemer med arm64-arkitektur er det for brukermiljøet aktivert pekerautentisering (Pointer Authentication). Teknologien gjør det mulig å bruke spesialiserte ARM64-instruksjoner for å verifisere returadresser ved hjelp av digitale signaturer som lagres i de ubrukte øvre bitene av selve pekeren.
- Innstillingene for systemkompilatoren clang, samt clang og gcc fra porter, er endret for å implementere de nevnte beskyttelsesmekanismene, noe som betydelig har styrket beskyttelsen av alle grunnleggende applikasjoner og de fleste applikasjoner fra porter mot angrep som bruker metoder for returorientert programmering (ROP – Return-Oriented Programming). Ved bruk av ROP-teknikken prøver ikke angriperen å plassere sin egen kode i minnet, men opererer med allerede eksisterende biter av maskininstruksjoner i lastede biblioteker, som ender med en instruksjon for å returnere kontroll (vanligvis slutten av bibliotekfunksjoner). Arbeidet med utnyttelsen reduseres til å bygge en kjede av kall til slike blokker («gadgets») for å få ønsket funksjonalitet.
- En ny systemkall kqueue1 er lagt til, som skiller seg fra kqueue ved å overføre flagg. For øyeblikket støtter kqueue1 bare flagget O_CLOEXEC (close-on-exec) for automatisk lukking av filbeskrivelser i dataprocessen etter at exec() er kalt.
- For arkitekturene amd64 og i386 er det implementert støtte for pseudovridet dt for organisering av dynamisk sporing av systemet og applikasjoner. For å sette inn brukeropprettede poster i ktrace-loggen er systemkallet utrace lagt til.
- Feilrettinger fra FreeBSD er overført som eliminerer uspesifisert oppførsel ved bruk av MS-DOS filsystemer.
- Alternativet for myk montering av softdep, som brukes for utsatt gruppert skriving av metadatabaser, er deaktivert.
- Programmer som er beskyttet ved hjelp av systemkallet unveil, får lov til å lagre kjerne-dumper i den nåværende arbeidskatalogen.
- For ARM64-arkitekturen er evnen til å gå inn i dype inaktive tilstander (idle), tilgjengelig i Apple M1/M2-brikker, aktivert for å spare energi og implementere hvilemodus.
- En omgåelsesbeskyttelse mot sårbarheten Zenbleed i AMD-prosessorer er lagt til.
- Støtten for flerprosessor systemer (SMP) er forbedret. Arprequest()-funksjonen, koden for behandling av innkommende ARP-pakker, og implementeringen av nabolagsbestemmelse i IPv6-stakken er gjort fri for låser.
- Grensesnittet for synkronisering av pakkefiltertabellen pfsync er skrevet om for å forbedre arbeidet med låser og kompatibilitet med fremtidig arbeid med parallellisering av nettverksstakken.
- Implementasjonen av drm (Direct Rendering Manager)-rammeverket er synkronisert med Linux-kjernen 6.1.55 (den forrige utgaven var 6.1.15). Ytelsen er forbedret på systemer med Intel-prosessorer basert på mikroarkitekturene Alder Lake og Raptor Lake.
- Det er gjort forbedringer i hypervisoren VMM. I vmd er det implementert støtte for flerprosessormodellen for blokker og nettverksvirtio-enheter. Blokkers virtio-enhet har fått støtte for vektorinn- og utdata i zero-copy-modus. Tilgangen til p-state-modusene for AMD-prosessorer er begrenset for gjestesystemer. Eiere virtual machines har tillatelse til å overse det lastede kjernen via vmctl.
- En ny header-fil uchar.h er lagt til med typene char32_t og char16_t, og funksjonene c32rtomb(), mbrtoc32(), c16rtomb() og mbrtoc16(), definert i C11-standarden.
- Alternativet "D" for å identifisere minnelekkasjer er lagt til malloc-funksjonen ved hjelp av ktrace ("MALLOC_OPTIONS=D ktrace -tu program") og kdump ("kdump -u malloc …").
- Verktøyet make har fått støtte for variabelen ${.VARIABLES} for å vise navnene på alle utlagte globale variabler.
- Verktøyet kdump har fått alternativet "-u" for å velge utrace-sporingspunkter basert på angitt merkelapp.
- Verktøyet openrsync har fått alternativene "—size-only" og "—ignore-times".
- I cron og crontab er det lagt til støtte for tilfeldige forskyvninger ved angivelse av verdiberegning med spesifisert steg, noe som gjør det mulig å unngå samtidige forespørsel av ressurser fra forskjellige maskiner med like regler i cron. For eksempel vil spesifisering av "0~59/30" eller "~/30" i minuttfeltet føre til at kommandoen kjøres to ganger per time med sekvensielt tilfeldig valgte intervaller.
- I verktøyet wsconsctl er det lagt til mulighet for å mappe knapper for trykk med to eller tre fingre på styreplaten.
- Ny hardware-støtte er lagt til og nye drivere er inkludert.
- Installasjonen på systemer med prosessorer armv7 og arm64 er forbedret.
- Støtte for lasting av filer fra EFI-systempartisjon (EFI System Partition) er lagt til.
- I installasjonsprogrammet er støtten for programvare-RAID (softraid) forbedret. Det er blitt lagt til mulighet for å plassere rotpartisjonen i softraid på systemer med riscv64 og arm64. Softraid er lagt til i ramdisk for powerpc64-arkitekturen. For arm64 er støtten for disk kryptering (Guided Disk Encryption) implementert.
- I malloc-funksjonen er det lagt til en sjekk av alle blokkene i listen over utsatt frigjøring av minne for å oppdage situasjoner der det er skrive til frigjort minneområde.
- For executing the shutdown command, it is now required to add the user to the ‘_shutdown’ group, which allows for the separation of powers related to shutdown and direct read access from disk devices.
- Using the system call unveil, the patch utility's access is restricted only to the current directory, the temporary files directory, and the files listed in the command line.
- Added sysctl net.inet6.icmp6.nd6_queued to show the number of packets waiting for ND6 responses (analogous to ARP).
- When configuring an IPv6 address on the network interface, the announcement is sent to neighboring routers using the multicast address.
- Initial support for TSO (TCP Segmentation Offload) and LRO (TCP Large Receive Offload) has been added for handling segments and merging packets on the network card side.
- The loading of the pf packet filter rules from the kernel by the pfctl utility has been accelerated. Processing of ‘keep state’ and ‘nat-to’ actions for returning error messages via ICMP has been included.
- Checksum calculations for IP, TCP, and UDP have been disabled for loopback interfaces.
- Initial støtte lagt til VPN IPsec, routing-dependent (route-based).
- Support for Flowspec (RFC5575) has been added to bgpd (currently only rule announcement is supported). The ASPA (Autonomous System Provider Authorization) implementation has been aligned with the specifications of draft-ietf-sidrops-aspa-verification-16 and draft-ietf-sidrops-aspa-profile-16, and switched to use AFI-independent lookup tables.
- Performance of rpki-client has been improved by 30-50%. Support for gzip and deflate compression has been added.
- LibreSSL and OpenSSH packages have been updated. A detailed overview of the improvements can be found in the reviews of LibreSSL 3.8.0, OpenSSH 9.4, and OpenSSH 9.5.
- The number of ports for the AMD64 architecture is now 11845 (was 11764), for aarch64 – 11508 (was 11561), for i386 – 10603 (was 10572). Among the application versions in the ports:
- 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
- FFmpeg 4.4.4
- GCC 8.4.0 og 11.2.0
- GHC 9.2.7
- GNOME 44
- Go 1.21.1
- JDK 8u382, 11.0.20 and 17.0.8
- KDE Applications 23.08.0
- KDE Frameworks 5.110.0
- Krita 5.1.5
- LLVM/Clang 13.0.0 and 16.0.6
- LibreOffice 7.6.2.1
- Lua 5.1.5, 5.2.4, 5.3.6 and 5.4.6
- MariaDB 10.9.6
- Mono 6.12.0.199
- Mozilla Firefox 118.0.1 and ESR 115.3.1
- Mozilla Thunderbird 115.3.1
- Mutt 2.2.12 and NeoMutt 20230517
- Node.js 18.18.0
- OpenLDAP 2.6.6
- PHP 7.4.33, 8.0.30, 8.1.24 and 8.2.11
- Postfix 3.7.3
- PostgreSQL 15.4
- Python 2.7.18, 3.9.18, 3.10.13 and 3.11.5
- Qt 5.15.10 and 6.5.2
- R 4.2.3
- Ruby 3.0.6, 3.1.4 and 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 og 8.6.13
- TeX Live 2022
- Vim 9.0.1897 and Neovim 0.9.1
- Xfce 4.18
- Komponentene fra tredjeparter i OpenBSD 7.3 er oppdatert:
- The graphical stack Xenocara based on X.Org 7.7 with 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 (+ patch)
- GCC 4.2.1 (+ patch) og 3.3.6 (+ patch)
- Perl 5.36.1 (+ patch)
- NSD 4.7.0
- Unbound 1.18
- Ncurses 5.7
- Binutils 2.17 (+ patch)
- Gdb 6.3 (+ patch)
- Awk 12.9.2023
- Expat 2.5.0.
Kilde: opennet.ru
