Anuncio de la Liberación de OpenBSD 7.3 Parte 5

in blurthispano •  2 years ago 


image.png

OpenBSD 7.3

Continuamos con la quinta entrega del anuncio de la liberación de esta versión de OpenBSD, donde se pueden apreciar mejoras en la documentación general del proyecto y distintos manuales de usuario y la herramienta OpenSSH.

  • Mejoras en la documentación
    • Numerosas mejoras y adiciones para ASN.1, BIO, BN, y X.509.
    • La documentación BN se considera completa ahora.
    • Se marcaron BIO_s_log(3) BIO_nread0(3), BIO_nread(3), BIO_nwrite0(3), BIO_nwrite(3), BIO_dump_cb(3) y BIO_dump_indent_cb(3) como intencionalmente no documentadas.
    • Se documentaron varias interfaces BIO_*.
    • Se documentó ED25519_keypair(3), ED25519_sign(3), y ED25519_verify(3).
    • Se documentó interfaces de llave privada/pública crudas EVP_PKEY.
    • Se documentó ASN1_buf_print(3).
    • Se documentó DH_get0_, DSA_get0_, ECDSA_SIG_get0_* y RSA_get0_*.
    • Se fusionó la documentación de UI_null() desde OpenSSL 1.1
    • Varias mejoras en la pronunciación y otra documentación.
    • Mejoras internas
      • Se elimina la dependencia en sistema timegm() y gmtime() por medio de reemplazar conversiones de fechas Julianas con el estándar POSIX de fechas en segundos de epoca (epoch) desde BoringSSL.
      • Se eliminaron códigos antiguos y en desuso BN que lidiaban con números primos.
      • Se inició la reescritura de nombres de restricciones usando código CBS.
      • Se eliminó soporte para el HMAC PRIVATE KEY.
      • Se retrabajó la firma DSA y se verificaron los internos.
      • Se reescribió el exportador de claves TLSv1.2.
      • Se limpió y se refactorizaron varios aspectos de la pila heredada TLS.
      • Reconstrucción Inicial del código BIGNUM:
        • Se agregó un nuevo marco que permite implementación de reemplazo de primitivas bignum dependientes de la arquitectura.
        • Se importaron varias primitivas de ensamble de tiempo constante des2n-bignum y se cambió amd64 a ellos.
        • Gran cantidad de limpieza, simplificación y corrección debugs.
      • Se cambiaron los generadores de ensamblado de Perl para mover constantes dentro de .rodata, permitiendo al código correr con permisos de solo ejecución.
  • Se taparon los números de iteraciones de firmado en DSA y ECDSA (evitando los ciclos infinitos), se agregaron verificaciones de sanidad adicionales a DSA.
    • Mejoras en el parseo ASN.1.
    • Limpieza y mejoras en el código EC, incluyendo limpieza siempre en grupos y puntos EC al liberar.
    • Varias mejoras openssl(1).
    • Varias mejoras en nc(1).
    • Correcciones de Seguridad
      • Una lista de revocación de certificado maliciosa o un token de respuesta de marca de tiempo podría permitir a un atacante leer memoria arbitraria.
  • OpenSSH 9.3 y OpenSSH 9.2
    Esta liberación de OpenBSD incluye los cambios realizados en OpenSSH desde la liberación 9.1:
    • Seguridad
      • ssh-add(1): Cuando se agregan llaves de tarjeta inteligente (smartcard keys) a ssh-agent(1) con las restricciones de destino per-hop (ssh-add -h ...) agregadas en OpenSSH 8.9, un error de lógica previene que las restricciones se puedan comunicar al agente. Esto resultó en claves que estaban siendo agregadas sin restricciones. Los casos comunes de llaves que no son de tarjeta inteligente y llaves sin restricciones de destino no son afectadas. Este problema fue reportado por Luci Stanescu.
      • ssh(1): El OpenSSH portable proporciona una implementación de la función getrrsetbyname(3) si la biblioteca estándar no la proporciona, para el uso de la característica VerifyHostKeyDNS.
      • Una respuesta DNS especialmente manufacturada podría causar que esta función realice una lectura fuera de los límites de la pila de datos adyacentes, pero esta condición no parece ser explotable más allá de la denegación de servicio al cliente ssh(1)
        El reemplazo getrrsetbyname(3) solo esta incluido si la biblioteca estándar del sistema carece de esta función y el OpenSSH portable no fue compilado con la biblioteca ldns (--with-ldns). getrrsetbyname(3) es invocado solamente si usa VerifyHostKeyDNS para recuperar registros SSHFP. Este problema fue encontrado por el analizador de encubrimiento estático.
      • sshd(8): corrigió una falla de liberación de memoria doble en lapre-autenticación introducido en OpenSSH 9.1. Este no se cree que sea explotable, y ocurre en el proceso pre-auth sin privilegios esto es que el asunto para chroot(2) y esta metido en una trampa de arena en la mayoría de las plataformas.
      • ssh(8): en OpenSSH releases posterior a 8.7, la opción PermitRemoteOpen podría ignorar su primer argumento a menos que sea una de las palabras claves especiales "any" o "none", causando que la lista de permisos falle al abrir si solo una permiso es especificado. bz3515
      • ssh(1): Si las opciones CanonicalizeHostname y CanonicalizePermittedCNAMEs fueron activadas, y el resolvedr system/libc no confirma que los nombres en las respuestas DNS son validos, entonces el uso de estas opciones pueden permitir a un atacante con control de DNS el incluir caracteres inválidos (posiblemente incluyendo comodines *) en nombres agregados a archivos anfitrión_conocido (known_hosts) cuando ellos fueron actualizados. Estos nombres aún coincidirían la lista de permitidos (allow-list) de CanonicalizePermittedCNAMEs de forma que una explotación práctica parece muy poco probable.
    • Cambios potencialmente incompatibles + ssh(1): agrega una nueva opción EnableEscapeCommandline de ssh_config(5) que controla si la secuencia de escape del lado del cliente -C opción que controla si la secuencia ~C esta disponible en una línea de comando. Entre otras cosas, la línea de comando ~C puede ser usada para agregar un redireccionamiento de puerto adicional al momento de ejecución.
      Esta opción tiene el valor por defecto "no", desactivando la línea de comando ~C que estaba activada por defecto anteriormente. Apagando la línea de comando permite plataformas que soportan cajas de arena del cliente ssh(1) (actualmente solo OpenBSD) para usar una política de caja de arena por defecto más estricta.
    • Nuevas Características
      • ssh-keygen(1) y ssh-keyscan(1): acepta -Ohashalg=sha1|sha256 cuando imprimen huellas digitales SSHFP para permitir la seleccíón del algoritmo. bz3493
      • sshd(8): agregó una opción sshd -G que parsea e imprime la configuración efectiva sin intentar cargar llaves privadas y realizar otras verificaciones. Esto permite el usao de la opción ante claves que han sido generadas y para evaluación de la configuración y verificación de usuarios sin privilegios.
      • sshd(8): se agregó soporte para los tiempos de expiración por inactividad del canal por medio de la directiva ChannelTimeout de sshd_config(5). Esto permite canales que no ven tráfico en un intervalo configurable para que sean cerrados automáticamente. Tiempos de expiración diferentes pueden ser aplicados a la sesión en canales, X11, agente y reenvío TCP.
      • sshd(8): agregó una opción UnusedConnectionTimeout de sshd_config para terminar la conexión de un cliente que no tiene canales abiertos por un periodo de tiempo. Esto complementa la opción de arriba ChannelTimeout.
      • sshd(8): agregó una opción -V (versión) al sshd al igual que el que tiene el cliente ssh.
      • ssh(1): se agregó un linea "Host" a la salida de ssh -G mostrando el argumento del hostname (nombre de host) original. bz3343
      • scp(1), sftp(1): agregaron una opción -X tanto a scp(1) y sftp(1) para permitir tener control sobre algunos parámetros del protocolo SFTP: la longitud de la copia de memoria y el número de solicitudes al vuelo, de las cuales ambas son usadas durante la carga/descarga. Previamente ésto podía ser controlado en sftp(1) únicamente.
        Esto los hace disponibles en ambos clientes del protocolo SFTP usando la misma opción de la secuencia de caracteres.
      • ssh-keyscan(1): permite el escaneo de rangos de direcciones CIDR completas, p.ej. "ssh-keyscan 192.168.0.0/24". Si una rango CIDR es proporcionado, entonces será expandido a todas las posibles direcciones en ese rango incluyendo todas las direcciones 0 y todas las direcciones 1. bz#976
      • ssh(1): soporta reenvio dinámico de puertos remotos en el procesamiento de secuencia de escape de línea de comando -R. bz#3499
    • Correcciones de Bugs
      • scp(1), sftp(1): se corrigió corrupción en la medición de progreso en pantallas anchas; bz3534
      • ssh-add(1), ssh-keygen(1): usan RSA/SHA256 cuando se prueba la usabilidad de llaves privadas ya que algunos sistemas estan empezando a desactivar RSA/SHA1 en libcrypto.
      • sftp-server(8): corrigió una filtración de memoria. GHPR363
      • ssh(1), sshd(8), ssh-keyscan(1): se eliminó código compatible de protocolo vestigial y se simplificó lo que quedó.
      • Se corrigió un número hallazgos de análisis estático de bajo impacto. Esto incluye varios reportados por medio de bz2687
      • ssh_config(5), sshd_config(5): Se menciona que algunas opciones no son del tipo "primera coincidencia gana" (first-match-wins).
      • Se retrabajó el registro de bitacoras para las pruebas de regresión. Pruebas de regresión que ahora capturan bitacoras separadas para cada invocación ssh y sshd en una prueba.
      • ssh(1): Se hace que ssh -Q CASignatureAlgorithms funcione como indica la página del manual que debería funcionar; bz3532.
      • ssh(1): Se asegura que hay una nueva línea terminando de agregar una nueva entrada al archivo known_hosts; bz3529
      • ssh(1): Cuando se restaura modo de no bloqueo (non-blocking) para stdio fds, restaura exactamente las banderas que inició ssh y no nada mas las golpea con cero, debido a que esto puede eliminar también la bandera de anexar (append) del conjunto. bz3523
      • ssh(1): se evita printf("%s", NULL) si se usa la opción UserKnownHostsFile=none y una clave de host en uno de los cambios del archivo known hosts del sistema.
      • scp(1): Se cambia scp para que ya no use tuberías (pipes) a un par de sockets para comunicación con su subprocess, haciendo que coincida como opera sftp(1).
      • sshd(8): limpie de forma temprana la máscara de señal en main(); sshd puede haver sido iniciado con uno o más señales enmascaradas (sigprocmask(2) no es limpiada en fork/exec) y esto puede interferir con varias cosas, p.ej. el temporizador de gracia de inicio de sesión. Ambientes de ejecución que fallan al limpiar la máscara de señal antes de que corra sshd estan claramente rotos, pero aparentemente ellas si existen.
      • ssh(1): advierte si no se pueden cargar claves basadas en anfitrion.
      • sshd(8): Agregó depuración de servidor para autenticación basada en anfitrión que es puesta en fila y enviada al cliente después de una autenticación exitosa, pero también es registrada para asistir en diagnósticos de problemas de HostbasedAuthentication. bz3507
  • ssh(1): Se documenta el uso de opciones IdentityFile que pueden ser usadas para listar llaves públicas así como también llaves privadas. GHPR352
    • sshd(8): Checar por y desactivar valores MaxStartups menores a o iguales a cero drante el parseo de la configuración, en lugar de caer más tarde en tiempo de ejecución. bz3489
    • ssh-keygen(1): Se corrigió el parseo de tiempos de expiración de certificado hex especificados en la línea de comando cuando actua como un CA.
    • scp(1): Cuando scp(1) está usando el protocolo SFTP para transporte (la opción por defecto), hace coincidir mejor el manjeo de scp/rcp de globos que no coinciden con los caracteres englobados pero que no coinciden literalmente (p.ej. tratando de transferir un archivo "foo.[1]"). Previamente en scp(1) en modo SFTP no coincidirá con estas rutas de directorio pero con un modo scp/rcp heredado si podría. bz3488
      bz3488
    • ssh-agent(1): Se documentó la opción de línea de comando "-O no-restrict-websafe" .
    • ssh(1):honra la máscara de seguridad umask(2) del usuario si es más restrictiva que la de por defecto (022).

En el siguiente post continuarémos con el aspecto esas mejoras del sistema que corresponden al entorno de red del sistema operativo tanto por parte del entorno de usuario como por la parte del kernel.

Este post es una traducción del anuncio original que se encuentra en la siguente liga:

https://www.openbsd.org/73.html


Si lo deseas puedes votar por mi como witness para poder aumentar las capacidades de un servidor.

https://blurtwallet.com/~witnesses?highlight=cosmicboy123


image.png

Integrate al grupo de Telegram de @team-mexico 😀 donde yo y otros usuarios de México y de otros países de habla hispana compartimos experiencias y opiniones así como nuestros propios posts. Una gran iniciativa de @cristo


image.png

| 👉Entra a https://t.me/TeamMexico1 👈 |

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE BLURT!
Sort Order:  
  ·  2 years ago  ·  


** Your post has been upvoted (16.31 %) **