OpenBSD 7.4 发布

发布了免费的类 UNIX 操作系统 OpenBSD 7.4。 OpenBSD 项目由 Theo de Raadt 于 1995 年创立,此前与 NetBSD 开发人员发生冲突,导致 Theo 被拒绝访问 NetBSD CVS 存储库。 此后,Theo de Raadt 和一群志同道合的人基于 NetBSD 源码树创建了一个新的开放操作系统,其主要开发目标是可移植性(支持 13 个硬件平台)、标准化、正确操作、主动安全和集成的加密工具。 OpenBSD 7.4 基本系统的完整安装 ISO 映像大小为 630 MB。

除了操作系统本身之外,OpenBSD 项目还以其组件而闻名,这些组件已在其他系统中广泛使用,并已证明自己是最安全和高质量的解决方案之一。 其中:LibreSSL(OpenSSL 的分支)、OpenSSH、PF 数据包过滤器、OpenBGPD 和 OpenOSPFD 路由守护进程、OpenNTPD NTP 服务器、OpenSMTPD 邮件服务器、文本终端多路复用器(类似于 GNU 屏幕)tmux、具有 IDENT 协议实现的 identd 守护进程、BSDL 替代方案GNU groff 软件包 - mandoc、用于组织容错系统的协议 CARP(通用地址冗余协议)、轻量级 http 服务器、OpenRSYNC 文件同步实用程序。

主要改进:

  • 对于 amd64 和 i386 架构,添加了用于更新 AMD 处理器微代码的组件。 下载后会自动安装新的微代码版本。 端口“ports/sysutils/firmware/amd”已准备好用于分发带有微代码的二进制文件。 新微代码的安装是使用标准 fw_update 实用程序进行的。 对英特尔处理器的类似微码更新支持已于 2018 年实现,并在 OpenBSD 6.3 版本中提供。
  • 对于内核和用户空间,启用IBT(间接分支跟踪,amd64)和BTI(分支目标识别,arm64)保护机制,以阻止由于使用修改存储在内存中的函数指针的漏洞而导致的控制流违规(实施的保护不允许恶意代码跳转到函数中间)。
  • 在arm64系统上,启用指针身份验证以保护用户空间。 该技术允许您使用专门的 ARM64 指令来使用存储在指针本身未使用的高位中的数字签名来验证返回地址。
  • clang 系统编译器以及 ports 中的 clang 和 gcc 的设置已更改为使用上述保护机制,这显着加强了对所有基础应用程序和大多数 ports 应用程序的保护,使其免受使用面向返回的漏洞利用编程(ROP - 返回导向编程)方法。 使用 ROP 技术时,攻击者不会尝试将其代码放入内存中,而是对加载的库中已有的机器指令进行操作,以控制返回指令结束(通常,这些是库函数的结尾) 。 该漏洞利用的工作归结为构建对类似块(“小工具”)的调用链以获得所需的功能。
  • 添加了新的系统调用 kqueue1,它与 kqueue 的不同之处在于传递标志。 目前,kqueue1 仅支持 O_CLOEXEC(close-on-exec)标志,以在调用 exec() 后自动关闭子进程中的文件描述符。
  • 对于 amd64 和 i386 架构,已经实现了对 dt 伪设备的支持,以组织系统和应用程序的动态跟踪。 添加了 utrace 系统调用,用于将用户条目插入 ktrace 日志中。
  • 已从 FreeBSD 移植修复程序以解决使用 MS-DOS 文件系统时未定义的行为。
  • 用于惰性分组元数据写入的 softdep 挂载选项已被禁用。
  • 受 Reveal 系统调用保护的程序可以将核心转储保存到当前工作目录。
  • ARM64 架构利用 Apple M1/M2 芯片中提供的进入深度空闲状态的功能来节省功耗并实现待机模式。
  • 添加了针对 AMD 处理器中 Zenbleed 漏洞的解决方法保护。
  • 改进了对多处理器 (SMP) 系统的支持。 arprequest() 函数、处理传入 ARP 数据包的代码以及 IPv6 堆栈中邻居检测的实现都不受阻塞。
  • pfsync 数据包过滤器表同步接口已被重写,以改进锁的处理以及与网络堆栈并行化的未来工作的兼容性。
  • drm(直接渲染管理器)框架的实现与Linux内核6.1.55(之前版本中的6.1.15)同步。 改进了采用基于 Alder Lake 和 Raptor Lake 微架构的英特尔处理器的系统的性能。
  • VMM虚拟机管理程序已得到改进。vmd中已实现对块和网络virtio设备的多进程模型支持。块virtio设备已添加对零拷贝模式下矢量I/O的支持。客户系统对AMD处理器p状态模式的访问已受到限制。 虚拟机 允许通过 vmctl 覆盖启动内核。
  • 添加了新的头文件 uchar.h,其类型为 char32_t 和 char16_t,以及 C32 标准中定义的函数 c32rtomb()、mbrtoc16()、c16rtomb() 和 mbrtoc11()。
  • 向 malloc 函数添加了选项“D”,以使用 ktrace(“MALLOC_OPTIONS=D ktrace -tu program”)和 kdump(“kdump -u malloc ...”)检测内存泄漏。
  • make 实用程序添加了对 ${.VARIABLES} 变量的支持,以显示所有设置的全局变量的名称。
  • 向 kdump 实用程序添加了“-u”选项,以通过给定标签选择 utrace 跟踪点。
  • 向 openrsync 实用程序添加了“--size-only”和“--ignore-times”选项。
  • 在使用给定步骤指定值范围时,cron 和 crontab 添加了对随机偏移的支持,这使您可以避免来自 cron 中具有相同规则的不同计算机同时请求资源。 例如,在分钟字段中指定“0~59/30”或“~/30”将导致该命令每小时以连续的随机间隔运行两次。
  • wsconsctl 实用程序添加了映射按钮的功能,以便用两根或三根手指在触控板上按下。
  • 添加了对新硬件的支持并包含新的驱动程序。
  • 改进了在具有armv7和arm64处理器的系统上的安装。
  • 添加了对从 EFI 系统分区加载文件的支持。
  • 安装程序改进了对软件 RAID (softraid) 的支持。 添加了将根分区放置在 riscv64 和 arm64 系统上的 softraid 中的功能。 Softraid 添加到了 powerpc64 架构的 ramdisk 中。 对于arm64,已经实现了对引导磁盘加密的支持。
  • 添加了 malloc 函数来检查延迟内存释放列表中的所有块,以识别已释放内存区域中的写入情况。
  • shutdown命令现在要求将用户添加到“_shutdown”组中,从而将关闭权限与直接从磁盘设备读取的权限分开。
  • 使用unveve系统调用,补丁实用程序只能访问当前目录、包含临时文件的目录以及命令行上列出的文件。
  • 添加了 sysctl net.inet6.icmp6.nd6_queued 以显示等待 ND6 响应的数据包数量(类似于 ARP)。
  • 在网络接口上设置 IPv6 地址时,会使用多播地址向相邻路由器发送公告。
  • 添加了对 TSO(TCP 分段卸载)和 LRO(TCP 大型接收卸载)的初始支持,用于 NIC 端的分段处理和数据包聚合。
  • 使用 pfctl 实用程序从内核加载 pf 数据包过滤器规则的速度已加快。 启用对通过 ICMP 返回的错误消息进行“保持状态”和“nat-to”操作的处理。
  • 禁用环回接口的 IP、TCP 和 UDP 校验和计算。
  • 添加了初始支持 VPN 基于路由的IPsec。
  • bgpd 中添加了 Flowspec 支持(RFC5575,目前仅支持广告 flowspec 规则)。 ASPA(自治系统提供商授权)实施已符合 Draft-ietf-sidrops-aspa-verification-16 和 Draft-ietf-sidrops-aspa-profile-16 规范,并已转换为使用 AFI(地址族)独立查找表(指示器)。
  • rpki-client的性能提升了30-50%。 添加了对 gzip 和 deflate 压缩的支持。
  • 更新了 LibreSSL 和 OpenSSH 软件包。 有关改进的详细概述,请参阅 LibreSSL 3.8.0、OpenSSH 9.4 和 OpenSSH 9.5 的评论。
  • AMD64 架构的端口数量为 11845(从 11764 开始),aarch64 的端口数量为 11508(从 11561 开始),i386 的端口数量为 10603(从 10572 开始)。 ports 中的应用程序版本包括:
    • 星号 16.30.1、18.19.0b、20.4.0
    • Audacity 3.3.3
    • CMake的3.27.5
    • 铬117.0.5938.149
    • Emacs 29.1
    • ffmpeg 4.4.4
    • 海湾合作委员会 8.4.0 和 11.2.0
    • GHC 9.2.7
    • GNOME 44
    • 去1.21.1
    • JDK 8u382、11.0.20 和 17.0.8
    • KDE应用程序23.08.0
    • KDE框架5.110.0
    • Krita 5.1.5
    • LLVM/Clang 13.0.0 和 16.0.6
    • LibreOffice 7.6.2.1
    • 卢阿 5.1.5、5.2.4、5.3.6 和 5.4.6
    • 玛丽亚数据库10.9.6
    • 单声道6.12.0.199
    • Mozilla Firefox 118.0.1 和 ESR 115.3.1
    • Mozilla Thunderbird 115.3.1
    • Mutt 2.2.12 和 NeoMutt 20230517
    • 节点.js 18.18.0
    • OpenLDAP 2.6.6
    • PHP 7.4.33、8.0.30、8.1.24 和 8.2.11
    • 后缀 3.7.3
    • PostgreSQL 15.4
    • Python 2.7.18、3.9.18、3.10.13 和 3.11.5
    • Qt 5.15.10 和 6.5.2
    • ŕ4.2.3
    • 红宝石 3.0.6​​.3.1.4、3.2.2 和 XNUMX
    • 锈1.72.1
    • SQLite 3.42.0
    • 切入点23.07.29
    • 须藤 1.9.14.2
    • 猫鼬6.0.12
    • Tcl/Tk 8.5.19 和 8.6.13
    • 2022 年 TeX 直播
    • Vim 9.0.1897 和 Neovim 0.9.1
    • Xfce 4.18
  • OpenBSD 7.3 中包含的更新的第三方组件:
    • Xenocara 图形堆栈基于 X.Org 7.7,带有 xserver 21.1.8 + 补丁、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(+ 补丁)
    • GCC 4.2.1(+ 补丁)和 3.3.6(+ 补丁)
    • Perl 5.36.1(+ 补丁)
    • 国家标准局4.7.0
    • 无界1.18
    • Ncurses 5.7
    • Binutils 2.17(+ 补丁)
    • Gdb 6.3(+ 补丁)
    • awk 12.9.2023
    • 外籍人士2.5.0。

来源: opennet.ru

添加评论