Lanzamento de OpenSSH 9.8 coa desactivación do algoritmo DSA e mecanismos de seguridade adicionais

Publicouse a versión de OpenSSH 9.8, unha implementación aberta dun cliente e servidor para traballar usando os protocolos SSH 2.0 e SFTP. Ademais de corrixir unha vulnerabilidade crítica anunciada por separado (CVE-2024-6387), que permite a execución remota de código con dereitos de root na fase previa á autenticación, a nova versión soluciona outra vulnerabilidade menos perigosa e propón varios cambios significativos destinados a mellorar a seguridade.

A segunda vulnerabilidade permítelle evitar a protección engadida en OpenSSH 9.5 contra ataques de canle lateral que analizan os atrasos entre as pulsacións do teclado para recrear a entrada. A vulnerabilidade permítenos distinguir paquetes que crean actividade en segundo plano simulando pulsacións de teclas ficticias dos paquetes enviados cando se preme as teclas reais, o que reduce a efectividade do mecanismo para ocultar as características da entrada interactiva no tráfico en ssh. Os datos de pulsación de tecla permiten ataques que recrean a entrada analizando os atrasos entre as pulsacións de tecla ao escribir, que dependen da disposición das teclas do teclado (por exemplo, a resposta ao escribir a letra "F" é máis rápida que ao escribir "Q" ou " X”, polo que presionar require menos movemento dos dedos).

Ademais, resultou que o algoritmo implementado para enviar paquetes con clics reais e ficticios reduciu a fiabilidade doutro método de protección contra ataques de canle lateral. Desde o lanzamento
O servidor OpenSSH 2.9.9 enviou paquetes con clics ficticios para a entrada da consola no modo de desactivación de eco, que se usa, por exemplo, cando se introducen contrasinais en su ou sudo. A nova lóxica de envío de paquetes ficticios permitiu, durante a análise pasiva do tráfico, seleccionar paquetes con clics reais en modo eco-off para a súa análise separada. Ao mesmo tempo, a precisión da información sobre o tempo dos clics é limitada, xa que despois de escribir, os paquetes non se envían inmediatamente, senón a intervalos fixos (20 ms por defecto).

Outros cambios en OpenSSH 9.8:

  • Na fase de compilación, a compatibilidade con sinaturas dixitais baseadas no algoritmo DSA está desactivada de forma predeterminada. A implementación de DSA eliminarase da base de código a principios de 2025. O motivo da eliminación cítase como o nivel de protección en DSA que non cumpre os requisitos modernos. O custo de seguir mantendo un algoritmo DSA inseguro non paga a pena, e a súa eliminación fomentará a desaprobación da compatibilidade con DSA noutras implementacións SSH e bibliotecas criptográficas.
  • Para protexer aínda máis contra os métodos de explotación que requiren un gran número de conexións a sshd, implementouse un novo modo de protección que se activou por defecto. Este modo tamén axuda a bloquear os ataques automatizados de adiviñación de contrasinal, nos que os bots intentan adiviñar o contrasinal dun usuario probando varias combinacións típicas. Esta protección impleméntase mediante bloqueo. Enderezos IP, que rexistran un gran número de intentos de conexión fallidos, sshd monitoriza o estado de terminación dos procesos fillos, detectando situacións nas que fallou a autenticación ou o proceso se terminou de forma anormal debido a un fallo. Cando se supera un determinado limiar, comeza a bloquear as solicitudes de IP ou subredes problemáticas. Os parámetros PerSourcePenalties, PerSourceNetBlockSize e PerSourcePenaltyExemptList están dispoñibles para configurar o limiar de bloqueo, a máscara de subrede que se bloqueará e a lista de exclusións.
  • sshd dividiuse en varios ficheiros executables separados. O proceso sshd-session asígnase desde sshd para realizar tarefas relacionadas co procesamento da sesión. O proceso sshd conserva as funcións responsables de aceptar conexións de rede, comprobar configuracións, cargar claves de host e xestionar os procesos de inicio de acordo co parámetro MaxStartups. Así, o executable sshd agora contén a funcionalidade mínima necesaria para aceptar unha nova conexión de rede e iniciar sshd-session para xestionar a sesión.
  • O texto dalgunhas mensaxes de erro escritas no rexistro cambiou. En particular, agora envíanse varias mensaxes co nome do proceso "sshd-session" en lugar de "sshd".
  • A utilidade ssh-keyscan agora envía información da versión do protocolo e do nome de host ao fluxo estándar en lugar de STDERR. Para desactivar a saída, suxírese a opción "-q".
  • En ssh, é posible desactivar a reversión de usar un certificado de chave de host para usar claves de host simples mediante a directiva HostkeyAlgorithms.
  • A versión portátil de sshd xa non usa o valor argv[0] para determinar o nome do servizo PAM. Para definir o nome do servizo PAM, engadiuse unha nova directiva "PAMServiceName" a sshd_config, que está configurada como "sshd" por defecto.
  • A versión portátil de sshd garante que os ficheiros xerados automaticamente (configure script, config.h.in, etc.) sexan gardados nunha rama de Git con versións (por exemplo, V_9_8), o que permitiu sincronizar a composición do tar asinado dixitalmente. arquivos e sucursais en Git.
  • A versión portátil de ssh e ssh-agent proporciona a configuración do modo
    SSH_ASKPASS en presenza da variable de ambiente WAYLAND_DISPLAY, de xeito similar ao que se fixo para X11 en presenza da variable de ambiente DISPLAY.
  • A versión portátil de sshd engade soporte para enviar notificacións a systemd cando se crea ou se reinicia un socket de rede de escoita, utilizando código autónomo que non chama á biblioteca libsystemd.

Fonte: opennet.ru