Version OpenBSD 7.4

Die Veröffentlichung des freien UNIX ähnlichen Betriebssystems OpenBSD 7.4 wurde vorgestellt. Das Projekt OpenBSD wurde 1995 von Theo de Raadt nach einem Konflikt mit den Entwicklern von NetBSD gegründet, der dazu führte, dass Theo der Zugang zum CVS-Repository von NetBSD verwehrt wurde. Daraufhin schuf Theo de Raadt mit einer Gruppe Gleichgesinnter auf Basis des Quelltextbaums von NetBSD ein neues offenes Betriebssystem, dessen Hauptziele Portabilität (Unterstützung von 13 Hardware-Plattformen), Standardisierung, korrekte Funktionsweise, proaktive Sicherheit und integrierte kryptografische Mittel sind. Die Größe des vollständigen Installations-ISO-Images des Basis-Systems OpenBSD 7.4 beträgt 630 MB.

Neben dem Betriebssystem ist das OpenBSD-Projekt bekannt für seine Komponenten, die in anderen Systemen verbreitet und als einige der sichersten und qualitativ hochwertigsten Lösungen anerkannt sind. Dazu gehören: LibreSSL (Fork von OpenSSL), OpenSSH, das Paketfilter-PF, die Routing-Demons OpenBGPD und OpenOSPFD, der NTP-Server OpenNTPD, der Mailserver OpenSMTPD, der Multiplexer für Textterminals (ähnlich GNU screen) tmux, der Daemon identd mit Implementierung des IDENT-Protokolls, die BSDL-Alternative zum GNU groff-Paket – mandoc, das Protokoll für den Aufbau fehlertoleranter Systeme CARP (Common Address Redundancy Protocol), ein leichtgewichtiger HTTP-Server und das Tool zur Dateisynchronisation OpenRSYNC.

Hauptverbesserungen:

  • Für die Architekturen amd64 und i386 wurden Komponenten zum Aktualisieren des Mikrocodes für AMD-Prozessoren hinzugefügt. Neue Versionen des Mikrocodes werden beim Booten automatisch installiert. Für die Verbreitung der Binärdateien mit Mikrocodes wurde der Port „ports/sysutils/firmware/amd“ vorbereitet. Die Installation des neuen Mikrocodes erfolgt mithilfe des Standard-Tools fw_update. Eine ähnliche Unterstützung für die Aktualisierung des Mikrocodes für Intel-Prozessoren wurde 2018 implementiert und in der Veröffentlichung OpenBSD 6.3 angeboten.
  • Für den Kernel und den Benutzerraum wurden die Schutzmechanismen IBT (Indirect Branch Tracking, amd64) und BTI (Branch Target Identification, arm64) aktiviert, die dazu dienen, die Verletzung der normalen Ausführungsreihenfolge (control flow) durch Exploits zu blockieren, die die in den Speicher geschriebenen Funktionszeiger ändern (der implementierte Schutz erlaubt es Schadcode nicht, einen Sprung in die Mitte einer Funktion auszuführen).
  • Auf Systemen mit der Architektur arm64 wurde zur Sicherung des Benutzerraums die Zeiger-Autentifizierung (Pointer Authentication) aktiviert. Diese Technologie ermöglicht die Verwendung spezieller ARM64-Befehle zur Überprüfung von Rückgabeadressen mithilfe digitaler Signaturen, die in den ungenutzten oberen Bits des Zeigers gespeichert sind.
  • Die Einstellungen des Systemcompilers clang sowie clang und gcc aus den Ports wurden geändert, um die oben genannten Schutzmechanismen anzuwenden, was den Schutz aller grundlegenden Anwendungen und der meisten Anwendungen aus den Ports gegen Exploits, die Rückkehrorientiertes Programmieren (ROP - Return-Oriented Programming) verwenden, erheblich verstärkt hat. Bei der Verwendung der ROP-Technik versucht der Angreifer nicht, seinen Code im Speicher abzulegen, sondern operiert mit bereits in den geladenen Bibliotheken vorhandenen Maschineninstruktionsfragmenten, die mit einer Rückkehranweisung enden (in der Regel die Enden der Bibliotheksfunktionen). Die Funktionsweise des Exploits besteht darin, Ketten ähnlicher Blöcke („Gadgets“) aufzubauen, um die gewünschte Funktionalität zu erhalten.
  • Ein neuer Systemaufruf kqueue1 wurde hinzugefügt, der sich von kqueue durch die Übergabe von Flags unterscheidet. Derzeit wird in kqueue1 nur das Flag O_CLOEXEC (close-on-exec) zur automatischen Schließung von Dateideskriptoren im Kindprozess nach dem exec()-Aufruf unterstützt.
  • Für die Architekturen amd64 und i386 wurde die Unterstützung des Pseudogeräts dt zur Organisation der dynamischen Nachverfolgung von Systemen und Anwendungen implementiert. Zur Einfügung benutzerdefinierter Einträge in das ktrace-Protokoll wurde der Systemaufruf utrace hinzugefügt.
  • Es wurden Korrekturen aus FreeBSD übernommen, die undefiniertes Verhalten bei der Verwendung von MS-DOS-Dateisystemen beheben.
  • Die Option zum Mounten von softdep, die für verzögertes gruppiertes Schreiben von Metadaten verwendet wird, wurde deaktiviert.
  • Programme, die durch den Systemaufruf unveil geschützt sind, dürfen Core-Dumps im aktuellen Arbeitsverzeichnis speichern.
  • Für die ARM64-Architektur wurde die Möglichkeit genutzt, in die tiefen Leerlaufzustände (idle) zu wechseln, die in den Apple M1/M2-Chips verfügbar sind, um Energie zu sparen und den Standby-Modus zu realisieren.
  • Ein Umgehungsschutz gegen die Zenbleed-Sicherheitsanfälligkeit in AMD-Prozessoren wurde hinzugefügt.
  • Die Unterstützung für Multiprozessorsysteme (SMP) wurde verbessert. Die Funktion arprequest(), der Code zur Verarbeitung eingehender ARP-Pakete und die Implementierung zur Bestimmung benachbarter Knoten im IPv6-Stack sind von Sperren befreit worden.
  • Die Schnittstelle zur Synchronisierung der Paketfiltertabelle pfsync wurde neu geschrieben, um die Arbeit mit Sperren zu verbessern und die Kompatibilität mit zukünftigen Arbeiten zur Parallelisierung des Netzwerkstacks zu gewährleisten.
  • Die Implementierung des DRM-Frameworks (Direct Rendering Manager) wurde mit dem Linux-Kernel 6.1.55 synchronisiert (in der vorherigen Version 6.1.15). Die Leistung auf Systemen mit Intel-Prozessoren der Mikroarchitekturen Alder Lake und Raptor Lake wurde verbessert.
  • Verbesserungen wurden im Hypervisor VMM vorgenommen. In vmd wurde die Unterstützung für ein multiprozessorbasiertes Modell für blockbasierte und Netzwerk-Virtio-Geräte implementiert. Für das blockbasierte Virtio-Gerät wurde die Unterstützung für vectorgestützte Ein-/Ausgabe im Zero-Copy-Modus hinzugefügt. Der Zugriff von Gast-Systemen auf die p-state-Modi von AMD-Prozessoren wurde eingeschränkt. Eigentümern virtuelle Maschinen wurde die Erlaubnis erteilt, den zu ladenden Kernel über vmctl zu überschreiben.
  • Eine neue Header-Datei uchar.h mit den Typen char32_t und char16_t sowie den Funktionen c32rtomb(), mbrtoc32(), c16rtomb() und mbrtoc16(), die im C11-Standard definiert sind, wurde hinzugefügt.
  • Im malloc wurde die Option „D“ zur Identifizierung von Speicherlecks mithilfe von ktrace („MALLOC_OPTIONS=D ktrace -tu program“) und kdump („kdump -u malloc …“) hinzugefügt.
  • Das Dienstprogramm make unterstützt nun die Variable ${.VARIABLES}, um die Namen aller gesetzten globalen Variablen auszugeben.
  • Im Dienstprogramm kdump wurde die Option „-u“ hinzugefügt, um Utrace-Debugging-Punkte anhand eines bestimmten Labels auszuwählen.
  • Im Dienstprogramm openrsync wurden die Optionen „—size-only“ und „—ignore-times“ hinzugefügt.
  • In cron und crontab wurde die Unterstützung für zufällige Verschiebungen bei der Angabe von Wertebereichen mit festgelegten Schritten hinzugefügt, was es ermöglicht, gleichzeitige Anfragen von Ressourcen von verschiedenen Maschinen zu vermeiden, die dieselben Regeln in cron haben. Zum Beispiel führt die Angabe von „0~59/30“ oder „~/30“ im Minutenfeld dazu, dass der Befehl zweimal pro Stunde über aufeinanderfolgend zufällig ausgewählte Intervalle ausgeführt wird.
  • Im Dienstprogramm wsconsctl wurde die Möglichkeit hinzugefügt, Schaltflächen zuzuordnen, die durch Drücken mit zwei oder drei Fingern auf dem Touchpad aktiviert werden.
  • Die Unterstützung für neue Hardware wurde hinzugefügt und neue Treiber wurden integriert.
  • Die Installation auf Systemen mit armv7- und arm64-Prozessoren wurde verbessert.
  • Die Unterstützung für das Laden von Dateien aus der EFI-Systempartition (EFI System Partition) wurde hinzugefügt.
  • Der Installer bietet nun verbesserte Unterstützung für Software-RAID (Softraid). Es wurde die Möglichkeit hinzugefügt, die Root-Partition in Softraid auf Systemen riscv64 und arm64 zu platzieren. Softraid wurde in den Ramdisk für die Architektur powerpc64 eingefügt. Für arm64 wurde die Unterstützung für die Verschlüsselung von Festplatten (Guided Disk Encryption) implementiert.
  • In der Funktion malloc wurde eine Überprüfung aller Blöcke in der Liste der verzögerten Speicherfreigaben hinzugefügt, um Situationen des Schreibens in freigegebenes Speichergebiet zu identifizieren.
  • Um den Befehl shutdown auszuführen, ist jetzt die Hinzufügung eines Benutzers zur Gruppe „_shutdown“ erforderlich, was es ermöglicht, die Befugnisse in Bezug auf das Herunterfahren und den direkten Zugriff auf die Speichergeräte zu trennen.
  • Durch den Systemaufruf unveil wird das Dienstprogramm patch so eingeschränkt, dass es nur Zugriff auf das aktuelle Verzeichnis, das Verzeichnis mit temporären Dateien und die in der Befehlszeile aufgeführten Dateien hat.
  • sysctl net.inet6.icmp6.nd6_queued wurde hinzugefügt, um die Anzahl der Pakete anzuzeigen, die auf eine ND6-Antwort warten (analog zu ARP).
  • Beim Konfigurieren einer IPv6-Adresse auf der Netzwerkschnittstelle wurde sichergestellt, dass ein Ankündigungsrat an benachbarte Router über die Multicast-Adresse gesendet wird.
  • Erste Unterstützung für TSO (TCP Segmentation Offload) und LRO (TCP Large Receive Offload) wurde hinzugefügt, um Segmente zu verarbeiten und Pakete auf der Seite der Netzwerkkarte zusammenzufassen.
  • Die Ladezeiten aus dem Kernel der Paketfilterregel pf unter Verwendung des Dienstprogramms pfctl wurden beschleunigt. Die Verarbeitung der Aktionen „keep state“ und „nat-to“ für über ICMP zurückgegebene Fehlermeldungen wurde aktiviert.
  • Die Berechnung der Prüfziffern für IP, TCP und UDP wurde für Loopback-Schnittstellen deaktiviert.
  • Erste Unterstützung hinzugefügt VPN für routenabhängige IPsec (route-based).
  • In bgpd wurde Unterstützung für Flowspec (RFC5575) hinzugefügt (derzeit wird nur die Ankündigung von Flowspec-Regeln unterstützt). Die Implementierung der ASPA (Autonomous System Provider Authorization) wurde an die Spezifikationen draft-ietf-sidrops-aspa-verification-16 und draft-ietf-sidrops-aspa-profile-16 angepasst und umgestellt auf die Verwendung von suchunabhängigen Tabellen (Address Family Indicator).
  • Die Leistung des rpki-clients wurde um 30-50 % gesteigert. Unterstützung für gzip- und deflate-Komprimierung wurde hinzugefügt.
  • Die Pakete LibreSSL und OpenSSH wurden aktualisiert. Eine detaillierte Übersicht über die Verbesserungen kann in den Beschreibungen von LibreSSL 3.8.0, OpenSSH 9.4 und OpenSSH 9.5 eingesehen werden.
  • Die Anzahl der Ports für die Architektur AMD64 beträgt 11845 (vorher 11764), für aarch64 – 11508 (vorher 11561), für i386 – 10603 (vorher 10572). Unter den Versionen der Anwendungen in den 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
    • Firefox 123.0.1, ESR 115.8.0
    • GCC 8.4.0 und 11.2.0
    • GHC 9.2.7
    • GNOME 44
    • Go 1.21.1
    • JDK 8u382, 11.0.20 und 17.0.8
    • KDE Applications 23.08.0
    • KDE Frameworks 5.110.0
    • Krita 5.1.5
    • LLVM/Clang 13.0.0 und 16.0.6
    • LibreOffice 7.6.2.1
    • Lua 5.1.5, 5.2.4, 5.3.6 und 5.4.6
    • MariaDB 10.9.6
    • Mono 6.12.0.199
    • Mozilla Firefox 118.0.1 und ESR 115.3.1
    • Mozilla Thunderbird 115.3.1
    • Mutt 2.2.12 und NeoMutt 20230517
    • Node.js 18.18.0
    • OpenLDAP 2.6.6
    • PHP 7.4.33, 8.0.30, 8.1.24 und 8.2.11
    • Postfix 3.7.3
    • PostgreSQL 15.4
    • Python 2.7.18, 3.9.18, 3.10.13 und 3.11.5
    • Qt 5.15.10 und 6.5.2
    • Ruby 3.1.4, 3.2.3, 3.3.0
    • Ruby 3.0.6, 3.1.4 und 3.2.2
    • Rust 1.72.1
    • SQLite 3.42.0
    • Suricata 7.0.3
    • Sudo 1.9.14.2
    • Suricata 6.0.12
    • Tcl/Tk 8.5.19 und 8.6.13
    • TeX Live 2022
    • Vim 9.0.1897 und Neovim 0.9.1
    • Xfce 4.18
  • Die Komponenten von Drittanbietern, die in OpenBSD 7.3 enthalten sind, wurden aktualisiert:
    • Der Grafik-Stack Xenocara basiert auf X.Org 7.7 mit 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) und 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.

Quelle: opennet.ru

60GB SSD 8Gb DDR4