Predstavljen je izlazak slobodnog UNIX-sličnog operativnog sistema OpenBSD 7.4. Projekat OpenBSD je osnovao Teo de Raadt 1995. godine nakon sukoba s programerima NetBSD, usled kojeg je Teou onemogućen pristup CVS repozitorijumu NetBSD. Nakon toga, Teo de Raadt je sa grupom istomišljenika kreirao novu otvorenu operativnu sistemu na bazi stabla izvornog koda NetBSD, čiji su glavni ciljevi razvoja prenosivost (podržano je 13 hardverskih platformi), standardizacija, ispravnost, proaktivna bezbednost i integrisana kriptografska sredstva. Veličina punog instalacionog ISO-obraza osnovnog sistema OpenBSD 7.4 iznosi 630 MB.
Poleg samega operacijskega sistema je projekt OpenBSD znan po svojih komponentah, ki so se razširile v druge sisteme in se dokazale kot ena izmed najbolj varnih in kakovostnih rešitev. Med njimi so: LibreSSL (fork OpenSSL), OpenSSH, paketni filter PF, demoni usmerjanja OpenBGPD in OpenOSPFD, NTP strežnik OpenNTPD, poštni strežnik OpenSMTPD, multiplexer besedilnega terminala (analoga GNU screen) tmux, demon identd z implementacijo protokola IDENT, BSDL-alternativa paketu GNU groff — mandoc, protokol za organizacijo odpornosti sistemov CARP (Common Address Redundancy Protocol), lahki http strežnik, orodje za sinhronizacijo datotek OpenRSYNC.
Glavne izboljšave:
- Za arhitekture amd64 i i386 dodati su komponenti za ažuriranje mikrokoda za procesore AMD. Nove verzije mikrokoda se automatski instaliraju prilikom pokretanja. Za distribuciju binarnih datoteka mikrokoda pripremljen je port „ports/sysutils/firmware/amd“. Instalacija novog mikrokoda vrši se pomoću standardne alatke fw_update. Slična podrška za ažuriranje mikrokoda za Intel procesore implementirana je 2018. godine i ponuđena je u izdanju OpenBSD 6.3.
- Za jezgro i prostor korisnika uključeni su mehanizmi zaštite IBT (Indirect Branch Tracking, amd64) i BTI (Branch Target Identification, arm64), namenjeni blokiranju kršenja normalnog redosleda izvršenja (control flow) usled korišćenja eksploitacija koje menjaju sačuvane pokazivače na funkcije u memoriji (implementirana zaštita ne dozvoljava zlonamernom kodu da izvrši prelazak na sredinu funkcije).
- Na sistemima sa arhitekturom arm64 za zaštitu prostora korisnika uključena je autentifikacija pokazivača (Pointer Authentication). Tehnologija omogućava korišćenje specijalizovanih ARM64 instrukcija za proveru adresa povratka uz pomoć digitalnih potpisa, koji se čuvaju u neiskorišćenim gornjim bitovima samog pokazivača.
- Nastavitve sistemskega prevajalnika clang ter clang in gcc iz pristanišč so bile spremenjene, da bi omogočile zgoraj omenjene mehanizme zaščite, kar je znatno okrepilo zaščito vseh osnovnih aplikacij in večine aplikacij iz pristanišč pred izkoriščanji, ki uporabljajo tehnike programiranja, usmerjenega na vračanje (ROP – Return-Oriented Programming). Pri uporabi tehnike ROP napadalec ne poskuša namestiti svoje kode v pomnilnik, temveč deluje z obstoječimi blokiranimi stotinami strojnih navodil v naloženih knjižnicah, ki se končajo z navodilom za vrnitev nadzora (ponavadi so to konci knjižničnih funkcij). Delo izkoriščanja se omeji na zgraditev verige klicev podobnih blokov („gadgetov“) za pridobitev želene funkcionalnosti.
- Dodana je nova sistemska klica kqueue1, ki se razlikuje od kqueue po prenosu zastavic. Trenutno kqueue1 podpira le zastavo O_CLOEXEC (close-on-exec) za samodejno zapiranje datotečnih descriptorjev v otroškem procesu po klicu exec().
- Za arhitekture amd64 in i386 je implementirana podpora za psevdoproces dt za organizacijo dinamičnega sledenja sistema in aplikacij. Za vstavljanje uporabniških zapisov v dnevnik ktrace je dodana sistemska klica utrace.
- Iz FreeBSD so prenesene popravke, ki odpravljajo nedoločenost pri uporabi filesystemov MS-DOS.
- Onemogočena je bila možnost nameščanja softdep, ki se uporablja za odloženo grupirano zapisovanje metapodatkov.
- Programom, zaščitenim s sistemsko klicem unveil, je dovoljeno shranjevanje core-dampov v trenutni delovni imenik.
- Za arhitekturo ARM64 je bila uporabljena možnost prehoda v globoka stanja neaktivnosti (idle), dostopna v čipih Apple M1/M2, za varčevanje z energijo in izvajanje načina spanja.
- Dodana je bila obvozna zaščita proti ranljivosti Zenbleed v procesorjih AMD.
- Izboljšana je podpora za večprocesorske sisteme (SMP). Odstranjene so bile blokade funkcije arprequest(), koda za obravnavo prispevnih ARP-paketov in implementacija določanja sosednjih vozlišč v skladu IPv6.
- Vmesnik za sinhronizacijo tabel paketnega filtra pfsync je bil predelano za izboljšano delovanje z blokadami in združljivost s prihodnjim delom na razdeljevanju omrežnega sklada.
- Izvedba DRM (Direct Rendering Manager) okvira je usklađena s Linux kernelom 6.1.55 (prethodna verzija bila je 6.1.15). Poboljšana je funkcionalnost na sustavima s Intel procesorima temeljima na mikroarhitekturama Alder Lake i Raptor Lake.
- Unapređenja su napravljena u hipervizoru VMM. U vmd je implementirana podrška za višekratni model za virtio uređaje za blokove i mreže. U virtio uređaj za blokove dodana je podrška za vektorski ulaz/izlaz u zero-copy režimu. Pristup gostujućih sustava načinima p-state AMD procesora je ograničen. Vlasnicima virtualnih naprav omogućeno je putem vmctl da preimenuju učitani kernel.
- Dodani su novi zaglavni fajlovi uchar.h s tipovima char32_t i char16_t, te funkcijama c32rtomb(), mbrtoc32(), c16rtomb() i mbrtoc16(), definiranima u standardu C11.
- U malloc funkciju dodana je opcija 'D' za identifikaciju curenja memorije pomoću ktrace ('MALLOC_OPTIONS=D ktrace -tu program') i kdump ('kdump -u malloc …').
- Alatu make dodana je podrška za varijablu ${.VARIABLES} za ispis svih imena postavljenih globalnih varijabli.
- Alatu kdump dodana je opcija '-u' za odabir tačaka traganja u utrace prema zadanom oznakom.
- Alatu openrsync dodane su opcije '—size-only' i '—ignore-times'.
- U cron i crontab dodana je podrška za slučajne pomake pri navođenju raspona vrednosti sa zadanom korakom, što omogućuje izbegavanje istovremenog zahteva za resursima s različitih mašina koje imaju ista pravila u cron-u. Na primer, navođenje '0~59/30' ili '~/30' u polju minuta dovest će do pokretanja komande dva puta na sat u uzastopnim nasumično odabranim intervalima.
- Alatu wsconsctl dodana je mogućnost mapiranja dugmadi za dodirivanje sa dva ili tri prsta na touchpadu.
- Dodana je podrška za novu opremu i uključeni su novi drajveri.
- Poboljšana je instalacija na sistemima s armv7 i arm64 procesorima.
- Dodana je podrška za učitavanje fajlova iz EFI sistemske particije (EFI System Partition).
- U instalatoru je poboljšana podrška za softverski RAID (softraid). Dodana je mogućnost postavljanja korenske particije u softraid na sistemima riscv64 i arm64. Softraid je dodat u ramdisk za arhitekturu powerpc64. Za arm64 implementirana je podrška za šifriranje diskova (Guided Disk Encryption).
- U malloc funkciji dodana je provera svih blokova u listi odloženog oslobađanja memorije kako bi se utvrdile situacije pisanja u oslobođeno područje memorije.
- Za izvedbo ukaza shutdown je zdaj potrebno dodati uporabnika v skupino «_shutdown», kar omogoča ločitev pooblastil, povezanih z izklopom in neposrednim branjem iz diskovnih enot.
- S sistemskim klicem unveil je orodje patch omejeno na dostop le do trenutnega imenika, imenika s začasnimi datotekami in datotek, navedenih v ukazni vrstici.
- Dodana je sysctl net.inet6.icmp6.nd6_queued za prikaz števila paketov, ki čakajo na odgovor ND6 (po analogiji z ARP).
- Pri nastavitvi naslova IPv6 na omrežnem vmesniku je zagotovljeno pošiljanje obvestila sosednjim usmerjevalnikom na multicast naslov.
- Dodana je začetna podpora TSO (TCP Segmentation Offload) in LRO (TCP Large Receive Offload) za obdelavo segmentov in združevanje paketov na strani omrežne kartice.
- Zagnana je hitrejša nalaganja iz jedra pravil paketa filtrov pf z orodjem pfctl. Vključena je obdelava dejanj «keep state» in «nat-to» za vrnjena sporočila o napakah prek ICMP.
- Izklopljeno je izračunavanje kontrolnih vsot IP, TCP in UDP za loopback vmesnike.
- Dodata je osnovna podrška VPN IPsec, odvisen od usmerjanja (route-based).
- V bgpd je dodana podpora Flowspec (RFC5575, trenutno se podpira le objavljanje pravil flowspec). Implementacija ASPA (Avtonomni sistem ponudnika avtorizacije) je usklajena s specifikacijami draft-ietf-sidrops-aspa-verification-16 in draft-ietf-sidrops-aspa-profile-16 ter je prenesena na uporabo iskalnih tabel, neodvisnih od AFI (Kazalnik družine naslovov).
- Zmogljivost rpki-clienta je bila izboljšana za 30-50%. Dodana je podpora za stiskanje gzip in deflate.
- Posodobljeni so paketi LibreSSL in OpenSSH. Podroben pregled izboljšav lahko najdete v pregledih LibreSSL 3.8.0, OpenSSH 9.4 in OpenSSH 9.5.
- Število vrat za arhitekturo AMD64 je znašalo 11845 (bilo 11764), za aarch64 — 11508 (bilo 11561), za i386 — 10603 (bilo 10572). Med različicami aplikacij v prevedenih paketih:
- 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 in 11.2.0
- GHC 9.2.7
- GNOME 44
- Go 1.21.1
- JDK 8u382, 11.0.20 in 17.0.8
- KDE Applications 23.08.0
- KDE Frameworks 5.110.0
- Krita 5.1.5
- LLVM/Clang 13.0.0 in 16.0.6
- LibreOffice 7.6.2.1
- Lua 5.1.5, 5.2.4, 5.3.6 in 5.4.6
- MariaDB 10.9.6
- Mono 6.12.0.199
- Mozilla Firefox 118.0.1 in ESR 115.3.1
- Mozilla Thunderbird 115.3.1
- Mutt 2.2.12 in NeoMutt 20230517
- Node.js 18.18.0
- OpenLDAP 2.6.6
- PHP 7.4.33, 8.0.30, 8.1.24 in 8.2.11
- Postfix 3.7.3
- PostgreSQL 15.4
- Python 2.7.18, 3.9.18, 3.10.13 in 3.11.5
- Qt 5.15.10 in 6.5.2
- R 4.2.3
- Ruby 3.0.6, 3.1.4 in 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 in 8.6.13
- TeX Live 2022
- Vim 9.0.1897 in Neovim 0.9.1
- Xfce 4.18
- Posodobljeni so komponenti tretjih strank, ki so vključeni v OpenBSD 7.3:
- Grafični stik Xenocara na osnovi X.Org 7.7 s xserver 21.1.8 + popravki, 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 (+ popravki)
- GCC 4.2.1 (+ popravki) in 3.3.6 (+ popravki)
- Perl 5.36.1 (+ popravki)
- NSD 4.7.0
- Unbound 1.18
- Ncurses 5.7
- Binutils 2.17 (+ popravki)
- Gdb 6.3 (+ popravki)
- Awk 12.9.2023
- Expat 2.5.0.
Izvor: opennet.ru
