Lansarea OpenBSD 7.4

A fost lansată versiunea sistemului de operare UNIX-similar OpenBSD 7.4. Proiectul OpenBSD a fost fondat de Theo de Raadt în 1995, după un conflict cu dezvoltatorii NetBSD, care a dus la restricționarea accesului lui Theo la depozitul CVS NetBSD. După aceasta, Theo de Raadt, împreună cu un grup de susținători, a creat un nou sistem de operare deschis pe baza arborelui de cod sursă NetBSD, a cărui principale obiective de dezvoltare au fost portabilitatea (acceptând 13 platforme hardware), standardizarea, funcționarea corectă, securitatea proactivă și integrarea instrumentelor criptografice. Dimensiunea imaginii ISO complete de instalare a sistemului de bază OpenBSD 7.4 este de 630 MB.

În afară de sistemul de operare propriu-zis, proiectul OpenBSD este cunoscut pentru componentele sale, care au fost adoptate în alte sisteme și s-au dovedit a fi unele dintre cele mai sigure și de calitate soluții. Printre acestea se numără: LibreSSL (fork al OpenSSL), OpenSSH, filtrul de pachete PF, demonii de rutare OpenBGPD și OpenOSPFD, serverul NTP OpenNTPD, serverul de email OpenSMTPD, multiplexorul de terminale textuale (similar cu GNU screen) tmux, demonul identd cu implementarea protocolului IDENT, alternativa BSDL pentru pachetul GNU groff — mandoc, protocolul pentru organizarea sistemelor redundante CARP (Common Address Redundancy Protocol), serverul http ușor și utilitarul de sincronizare a fișierelor OpenRSYNC.

Îmbunătățiri principale:

  • Pentru arhitecturile amd64 și i386 au fost adăugate componente pentru actualizarea microcodului procesorilor AMD. Noile versiuni ale microcodului sunt instalate automat la pornire. Pentru distribuirea fișierelor binare cu microcod, a fost pregătit portul „ports/sysutils/firmware/amd”. Instalarea noului microcod se face cu ajutorul utilității standard fw_update. Sprijin similar pentru actualizarea microcodului pentru procesorul Intel a fost realizat în 2018 și a fost propus în versiunea OpenBSD 6.3.
  • Pentru nucleu și spațiul utilizatorului au fost incluse mecanisme de protecție IBT (Indirect Branch Tracking, amd64) și BTI (Branch Target Identification, arm64), concepute pentru a bloca încălcarea ordinii normale de execuție (control flow) ca urmare a utilizării exploit-urilor care modifică pointerii funcțiilor stocați în memorie (protecția implementată nu permite codului malițios să efectueze o tranziție în mijlocul unei funcții).
  • Pe sistemele cu arhitectură arm64, pentru protecția spațiului utilizatorului, a fost activată autentificarea pointerilor (Pointer Authentication). Tehnologia permite utilizarea instrucțiunilor specializate ARM64 pentru a verifica adresele de retur cu ajutorul semnăturilor digitale, care sunt stocate în biții superiori neutilizați ai pointerului.
  • Setările compilatorului de sistem clang, precum și clang și gcc din porturi, au fost modificate pentru a aplica mecanismele de protecție menționate mai sus, ceea ce a întărit semnificativ securitatea tuturor aplicațiilor de bază și a majorității aplicațiilor din porturi împotriva exploit-urilor care utilizează metodele de programare orientată pe retur (ROP — Return-Oriented Programming). În utilizarea tehnicii ROP, un atacator nu încearcă să plaseze codul său în memorie, ci operează cu bucăți deja existente de instrucțiuni din bibliotecile încărcate, care se termină cu instrucțiunea de returnare a controlului (de obicei, aceasta este finalizarea funcțiilor bibliotecii). Funcționarea exploit-ului se rezumă la construirea unei lanț de apeluri ale acestor module („gadget-uri”) pentru a obține funcționalitatea dorită.
  • A fost adăugat un nou apel de sistem kqueue1, care se deosebește de kqueue prin transmiterea flag-urilor. În prezent, în kqueue1 este suportat doar flag-ul O_CLOEXEC (close-on-exec) pentru închiderea automată a descriptorilor de fișiere în procesul fiu după apelul exec().
  • Pentru arhitecturile amd64 și i386 a fost implementat suportul pentru pseud Dispozitivul dt pentru organizarea trasării dinamice a sistemului și aplicațiilor. Pentru inserarea înregistrărilor personalizate în log-ul ktrace a fost adăugat apelul de sistem utrace.
  • Au fost transferate corecții din FreeBSD care elimină comportamentele nedefinite la utilizarea sistemelor de fișiere MS-DOS.
  • Opțiunea de montare softdep, utilizată pentru scrierea grupată amânată a metadatelor, a fost dezactivată.
  • Programelor protejate prin apelul de sistem unveil li se permite salvarea core dump-urilor în directorul de lucru curent.
  • Pentru arhitectura ARM64 a fost activată posibilitatea de a trece în stări adânci de inactivitate (idle), disponibile în cipurile Apple M1/M2, pentru economisirea energiei și implementarea modului de așteptare.
  • A fost adăugată o protecție de ocolire împotriva vulnerabilității Zenbleed în procesoarele AMD.
  • A fost îmbunătățit suportul pentru sistemele multiprocesor (SMP). Funcția arprequest(), codul de procesare a pachetelor ARP primite și implementarea determinării nodurilor adiacente au fost deblocate în stiva IPv6.
  • Interfața de sincronizare a tabelelor filtrului de pachete pfsync a fost rescrisă pentru a îmbunătăți gestionarea blocajelor și compatibilitatea cu viitoarele lucrări de paralelizare a stivei de rețea.
  • Implementarea framework-ului drm (Direct Rendering Manager) este sincronizată cu nucleul Linux 6.1.55 (în versiunea anterioară — 6.1.15). A fost îmbunătățită performanța pe sistemele cu procesoare Intel bazate pe microarhitecturile Alder Lake și Raptor Lake.
  • Îmbunătățiri aduse hypervisor-ului VMM. În vmd a fost implementat suportul pentru modelul multiprocesor pentru dispozitivele virtio de bloc și de rețea. Dispozitivul virtio de bloc a primit suport pentru input/output vectorial în modul zero-copy. Accesul sistemelor gazdă la modurile p-state ale procesoarelor AMD a fost restricționat. Proprietarii mașini virtuale au voie să suprascrie nucleul de boot prin vmctl.
  • Un nou fișier header uchar.h a fost adăugat cu tipurile char32_t și char16_t și funcțiile c32rtomb(), mbrtoc32(), c16rtomb() și mbrtoc16(), definite în standardul C11.
  • Funcției malloc i s-a adăugat opțiunea „D” pentru a detecta scurgerile de memorie folosind ktrace („MALLOC_OPTIONS=D ktrace -tu program”) și kdump („kdump -u malloc …”).
  • Utilitatii make i s-a adăugat suport pentru variabila ${.VARIABLES} pentru a afișa numele tuturor variabilelor globale setate.
  • Utilitatii kdump i s-a adăugat opțiunea „-u” pentru a alege punctele de urmarire utrace după o etichetă specificată.
  • Utilitatii openrsync i s-au adăugat opțiunile „—size-only” și „—ignore-times”.
  • În cron și crontab a fost adăugat suport pentru offset-uri aleatorii la specificarea intervalelor de valori cu un pas determinat, ceea ce permite evitarea solicitării simultane a resursei de pe diverse mașini care au reguli identice în cron. De exemplu, specificarea „0~59/30” sau „~ /30” în câmpul pentru minute va duce la executarea comenzii de două ori pe oră, prin intervale selectate aleatoriu.
  • Utilitatii wsconsctl i s-a adăugat posibilitatea de a mapa butoanele pentru apăsările cu două sau trei degete pe touchpad.
  • A fost adăugat suport pentru noul hardware și includerea de noi drivere.
  • A fost îmbunătățită instalarea pe sistemele cu procesoare armv7 și arm64.
  • A fost adăugat suport pentru încărcarea fișierelor din partiția sistemului EFI (EFI System Partition).
  • În installer, a fost îmbunătățit suportul pentru RAID-uri software (softraid). A fost adăugată opțiunea de a plasa partiția rădăcină în softraid pe sistemele riscv64 și arm64. Softraid a fost adăugat în ramdisk pentru arhitectura powerpc64. Pentru arm64, a fost implementat suportul pentru criptarea discurilor (Guided Disk Encryption).
  • Funcției malloc i s-a adăugat o verificare pentru toate blocurile din lista de eliberare întârziată a memoriei pentru a identifica situațiile de scriere în zona de memorie eliberată.
  • Pentru a executa comanda shutdown, acum este necesar să adăugați utilizatorul în grupul „_shutdown”, ceea ce permite separarea atribuțiilor legate de oprirea sistemului și de citirea directă de pe dispozitivele de stocare.
  • Prin apelul de sistem unveil, utilitarul patch este limitat la accesul doar la directorul curent, directorul fișierelor temporare și la fișierele enumerate în linia de comandă.
  • A fost adăugat sysctl net.inet6.icmp6.nd6_queued pentru a arăta numărul de pachete care așteaptă un răspuns ND6 (asemănător cu ARP).
  • La configurarea adresei IPv6 pe interfața de rețea, s-a asigurat trimiterea unui anunț către routerele adiacente printr-o adresă multicast.
  • A fost adăugat suport inițial pentru TSO (TCP Segmentation Offload) și LRO (TCP Large Receive Offload) pentru procesarea segmentelor și combinarea pachetelor pe partea plăcii de rețea.
  • A fost accelerată încărcarea din kernel a regulilor filtrului de pachete pf prin utilitarul pfctl. A fost inclusă procesarea acțiunilor „keep state” și „nat-to” pentru mesajele de eroare returnate prin ICMP.
  • A fost dezactivată calcularea sumelor de control IP, TCP și UDP pentru interfețele loopback.
  • A fost adăugat suport inițial VPN IPsec, care depinde de rutare (route-based).
  • În bgpd a fost adăugat suport pentru Flowspec (RFC5575, deocamdată sprijină doar anunțarea regulilor flowspec). Implementarea ASPA (Autonomous System Provider Authorization) a fost adusă în conformitate cu specificațiile draft-ietf-sidrops-aspa-verification-16 și draft-ietf-sidrops-aspa-profile-16 și a fost adaptată pentru utilizarea tabelelor de căutare care nu depind de AFI (Address Family Indicator).
  • Performanța rpki-client a fost îmbunătățită cu 30-50%. A fost adăugat suport pentru comprimarea gzip și deflate.
  • Pachetele LibreSSL și OpenSSH au fost actualizate. O privire detaliată asupra îmbunătățirilor poate fi găsită în recenziile LibreSSL 3.8.0, OpenSSH 9.4 și OpenSSH 9.5.
  • Numărul de porturi pentru arhitectura AMD64 a fost de 11845 (anterior 11764), pentru aarch64 - 11508 (anterior 11561), pentru i386 - 10603 (anterior 10572). Printre versiunile aplicațiilor din porturi se numără:
    • 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 ș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
    • Mono 6.12.0.199
    • 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
    • R 4.2.3
    • 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
  • Componentele de la terți care intră în compunerea OpenBSD 7.3 au fost actualizate:
    • Stiva grafică Xenocara bazată pe X.Org 7.7 cu xserver 21.1.8 + patch-uri, 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-uri)
    • GCC 4.2.1 (+ patch-uri) și 3.3.6 (+ patch-uri)
    • Perl 5.36.1 (+ patch-uri)
    • NSD 4.7.0
    • Unbound 1.18
    • Ncurses 5.7
    • Binutils 2.17 (+ patch-uri)
    • Gdb 6.3 (+ patch)
    • Awk 12.9.2023
    • Expat 2.5.0.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster