Se presenta el lanzamiento del sistema operativo gratuito tipo UNIX OpenBSD 7.4. El proyecto OpenBSD fue fundado por Theo de Raadt en 1995 después de un conflicto con los desarrolladores de NetBSD que le negaron a Theo el acceso al repositorio CVS de NetBSD. Después de eso, Theo de Raadt y un grupo de personas de ideas afines crearon un nuevo sistema operativo abierto basado en el árbol fuente de NetBSD, cuyos principales objetivos de desarrollo eran la portabilidad (se admiten 13 plataformas de hardware), la estandarización, el funcionamiento correcto y la seguridad proactiva. y herramientas criptográficas integradas. El tamaño de la imagen ISO de instalación completa del sistema OpenBSD 7.4 base es 630 MB.
Además del sistema operativo en sí, el proyecto OpenBSD es conocido por sus componentes, que se han generalizado en otros sistemas y han demostrado ser una de las soluciones más seguras y de mayor calidad. Entre ellos: LibreSSL (bifurcación OpenSSL), OpenSSH, filtro de paquetes PF, demonios de enrutamiento OpenBGPD y OpenOSPFD, servidor NTP OpenNTPD, servidor de correo OpenSMTPD, multiplexor de terminal de texto (similar a la pantalla GNU) tmux, demonio identd con implementación de protocolo IDENT, alternativa BSDL a el paquete GNU groff - mandoc, protocolo CARP (Protocolo de redundancia de direcciones común) para organizar sistemas tolerantes a fallas, servidor http liviano, utilidad de sincronización de archivos OpenRSYNC.
Principales mejoras:
- Para las arquitecturas AMD64 e i386, se agregaron componentes para actualizar el microcódigo para procesadores AMD. Las nuevas versiones de microcódigo se instalan automáticamente al descargarlas. El puerto “ports/sysutils/firmware/amd” ha sido preparado para distribuir archivos binarios con microcódigo. La instalación del nuevo microcódigo se realiza mediante la utilidad estándar fw_update. En 2018 se implementó un soporte de actualización de microcódigo similar para procesadores Intel y se ofreció en la versión OpenBSD 6.3.
- Para el kernel y el espacio de usuario, los mecanismos de protección IBT (Indirect Branch Tracking, amd64) y BTI (Branch Target Identification, arm64) están habilitados para bloquear las violaciones del flujo de control resultantes del uso de exploits que modifican los punteros de función almacenados en la memoria (la protección implementada). no permite que el código malicioso salte al centro de la función).
- En los sistemas arm64, la autenticación de puntero está habilitada para proteger el espacio del usuario. La tecnología le permite utilizar instrucciones ARM64 especializadas para verificar las direcciones de retorno mediante firmas digitales que se almacenan en los bits superiores no utilizados del puntero.
- La configuración del compilador del sistema clang, así como clang y gcc de los puertos, se han cambiado para utilizar los mecanismos de protección anteriores, lo que ha fortalecido significativamente la protección de todas las aplicaciones base y de la mayoría de las aplicaciones de los puertos contra exploits que utilizan orientación de retorno. métodos de programación (ROP - Programación orientada al retorno). Cuando se utiliza la técnica ROP, el atacante no intenta colocar su código en la memoria, sino que opera sobre piezas de instrucciones de la máquina que ya están disponibles en las bibliotecas cargadas, finalizando con una instrucción de retorno de control (por regla general, estos son los extremos de las funciones de la biblioteca). . El trabajo del exploit se reduce a construir una cadena de llamadas a bloques similares ("gadgets") para obtener la funcionalidad deseada.
- Se agregó una nueva llamada al sistema kqueue1, que se diferencia de kqueue en el paso de indicadores. Actualmente, kqueue1 solo admite el indicador O_CLOEXEC (cerrar en ejecutivo) para cerrar automáticamente los descriptores de archivos en un proceso secundario después de llamar a exec().
- Para las arquitecturas AMD64 e i386, se implementó soporte para el pseudodispositivo dt para organizar el seguimiento dinámico del sistema y las aplicaciones. Se agregó la llamada al sistema utrace para insertar entradas de usuario en el registro de ktrace.
- Se han trasladado correcciones desde FreeBSD para abordar el comportamiento indefinido al utilizar sistemas de archivos MS-DOS.
- La opción de montaje softdep utilizada para la escritura diferida de metadatos agrupados se ha deshabilitado.
- Los programas protegidos con la llamada al sistema unveil pueden guardar volcados de núcleo en el directorio de trabajo actual.
- La arquitectura ARM64 utiliza la capacidad de ingresar a estados inactivos profundos, disponible en los chips Apple M1/M2, para ahorrar energía e implementar el modo de espera.
- Se agregó protección alternativa contra la vulnerabilidad Zenbleed en los procesadores AMD.
- Soporte mejorado para sistemas multiprocesador (SMP). La función arprequest(), el código para procesar paquetes ARP entrantes y la implementación de la detección de vecinos en la pila IPv6 están libres de bloqueo.
- La interfaz de sincronización de la tabla de filtrado de paquetes pfsync se ha reescrito para mejorar el manejo de bloqueos y la compatibilidad con trabajos futuros sobre la paralelización de la pila de red.
- La implementación del marco drm (Direct Rendering Manager) está sincronizada con el kernel. Linux 6.1.55 (versión anterior: 6.1.15) Rendimiento mejorado en sistemas con procesadores Intel basados en las microarquitecturas Alder Lake y Raptor Lake.
- Se han realizado mejoras en el hipervisor VMM. Se ha implementado la compatibilidad con el modelo multiproceso para dispositivos virtio de bloques y de red en el VMD. Se ha añadido compatibilidad con E/S vectorial en modo de copia cero al dispositivo virtio de bloques. Se ha limitado el acceso del sistema invitado a los modos de estado p del procesador AMD. Para los propietarios máquinas virtuales Se permite sobrescribir el kernel de arranque mediante vmctl.
- Se agregó un nuevo archivo de encabezado uchar.h con los tipos char32_t y char16_t, y las funciones c32rtomb(), mbrtoc32(), c16rtomb() y mbrtoc16() definidas en el estándar C11.
- Se agregó la opción "D" a la función malloc para detectar pérdidas de memoria usando ktrace ("MALLOC_OPTIONS=D ktrace -tu program") y kdump ("kdump -u malloc ...").
- La utilidad make ha agregado soporte para la variable ${.VARIABLES} para mostrar los nombres de todas las variables globales establecidas.
- Se agregó la opción "-u" a la utilidad kdump para seleccionar puntos de seguimiento de seguimiento según la etiqueta dada.
- Se agregaron las opciones "--size-only" y "--ignore-times" a la utilidad openrsync.
- Se agregó soporte para compensaciones aleatorias a cron y crontab al especificar rangos de valores con un paso determinado, lo que le permite evitar solicitudes simultáneas de un recurso desde diferentes máquinas que tienen las mismas reglas en cron. Por ejemplo, especificar "0~59/30" o "~/30" en el campo de minutos hará que el comando se ejecute dos veces por hora en intervalos aleatorios sucesivos.
- La utilidad wsconsctl ha agregado la capacidad de asignar botones para presionar con dos o tres dedos en un panel de control.
- Se agregó soporte para nuevo hardware y se incluyeron nuevos controladores.
- Instalación mejorada en sistemas con procesadores armv7 y arm64.
- Se agregó soporte para cargar archivos desde la partición del sistema EFI.
- El instalador ha mejorado el soporte para software RAID (softraid). Se agregó la capacidad de colocar la partición raíz en softraid en sistemas riscv64 y arm64. Softraid agregado al disco RAM para la arquitectura powerpc64. Para arm64, se implementó la compatibilidad con Guided Disk Encryption.
- Se agregó la función malloc para verificar todos los bloques en la lista de desasignación de memoria diferida para identificar situaciones de escritura en el área de memoria liberada.
- El comando de apagado ahora requiere que el usuario sea agregado al grupo "_shutdown", lo que permite separar la autoridad para apagar y leer directamente desde los dispositivos de disco.
- Al utilizar la llamada al sistema de revelación, la utilidad de parche se limita a acceder solo al directorio actual, al directorio que contiene archivos temporales y a los archivos enumerados en la línea de comando.
- Se agregó sysctl net.inet6.icmp6.nd6_queued para mostrar la cantidad de paquetes que esperan una respuesta ND6 (similar a ARP).
- Al configurar una dirección IPv6 en una interfaz de red, se envía un anuncio a los enrutadores vecinos mediante una dirección de multidifusión.
- Se agregó soporte inicial para TSO (descarga de segmentación TCP) y LRO (descarga de recepción grande de TCP) para el procesamiento de segmentos y la agregación de paquetes en el lado de la NIC.
- Se ha acelerado la carga de reglas de filtrado de paquetes pf desde el kernel mediante la utilidad pfctl. Se habilitó el procesamiento de acciones de "mantener estado" y "nat-to" para mensajes de error devueltos a través de ICMP.
- Cálculo deshabilitado de sumas de verificación IP, TCP y UDP para interfaces loopback.
- Soporte inicial agregado VPN IPsec basado en rutas.
- Se agregó compatibilidad con Flowspec a bgpd (RFC5575, actualmente solo se admiten reglas de flowspec de publicidad). La implementación de ASPA (Autorización de proveedor de sistema autónomo) cumple con las especificaciones draft-ietf-sidrops-aspa-verification-16 y draft-ietf-sidrops-aspa-profile-16, y se ha convertido para utilizar AFI (dirección Familia) Indicador de tablas de búsqueda independientes).
- El rendimiento de rpki-client se ha incrementado entre un 30 y un 50 %. Se agregó soporte para compresión gzip y deflate.
- Paquetes LibreSSL y OpenSSH actualizados. Para obtener una descripción detallada de las mejoras, consulte las revisiones de LibreSSL 3.8.0, OpenSSH 9.4 y OpenSSH 9.5.
- El número de puertos para la arquitectura AMD64 fue 11845 (de 11764), para aarch64 - 11508 (de 11561), para i386 - 10603 (de 10572). Entre las versiones de aplicaciones en los ports:
- Asterisco 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
- MPEG 4.4.4
- CCG 8.4.0 y 11.2.0
- GHC 9.2.7
- GNOME 44
- Ir a 1.21.1
- JDK 8u382, 11.0.20 y 17.0.8
- Aplicaciones de KDE 23.08.0
- KDE Frameworks 5.110.0
- Krita 5.1.5
- LLVM/Clang 13.0.0 y 16.0.6
- LibreOffice 7.6.2.1
- Lua 5.1.5, 5.2.4, 5.3.6 y 5.4.6
- MariaDB 10.9.6
- mono 6.12.0.199
- Mozilla Firefox 118.0.1 y ESR 115.3.1
- Mozilla Thunderbird 115.3.1
- Chucho 2.2.12 y NeoMutt 20230517
- Node.js 18.18.0
- OpenLDAP 2.6.6
- PHP 7.4.33, 8.0.30, 8.1.24 y 8.2.11
- Postfijo 3.7.3
- PostgreSQL 15.4
- Python 2.7.18, 3.9.18, 3.10.13 y 3.11.5
- Qt 5.15.10 y 6.5.2
- R 4.2.3
- Rubí 3.0.6, 3.1.4 y 3.2.2
- Moho 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 y 8.6.13
- TeX en vivo 2022
- Vim 9.0.1897 y Neovim 0.9.1
- Xfce 4.18
- Componentes de terceros actualizados incluidos con OpenBSD 7.3:
- Pila de gráficos Xenocara basada en X.Org 7.7 con xserver 21.1.8 + parches, 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 (+ parches)
- GCC 4.2.1 (+ parches) y 3.3.6 (+ parches)
- Perl 5.36.1 (+ parches)
- ND 4.7.0
- Sin consolidar 1.18
- Nmaldiciones 5.7
- Binutils 2.17 (+ parches)
- Gdb 6.3 (+ parche)
- Mal 12.9.2023
- Expatriado 2.5.0.
Fuente: opennet.ru
