OpenSSH 9.8 er udgivet, en open source-implementering af klient og server til arbejde med SSH 2.0 og SFTP-protokoller. Udover at afhjælpe den tidligere annoncerede kritiske sårbarhed (CVE-2024-6387), der muliggør fjernudførelse af kode med root-rettigheder før autentifikation, har den nye version også rettet en mindre alvorlig sårbarhed og introduceret flere væsentlige ændringer, der sigter mod at forbedre sikkerheden.
Den anden sårbarhed gør det muligt at omgå den beskyttelse mod sidekanalsangreb, der blev tilføjet i OpenSSH 9.5, som analyserer forsinkelser mellem tastetryk for at rekonstruere indtastningen. Sårbarheden gør det muligt at skelne mellem pakker, der genererer baggrundsaktivitet gennem simulering af falske tastetryk, og pakker, der sendes ved virkelige tastetryk, hvilket reducerer effektiviteten af mekanismen til at skjule karakteristika ved interaktiv indtastning i SSH-trafik. Data om tastetryk muliggør angreb, der rekonstruerer indtastningen baseret på analyse af forsinkelser mellem tastetryk, som afhænger af placeringen af tasterne på tastaturet (for eksempel er reaktionen ved indtastning af bogstavet "F" hurtigere end ved indtastning af "Q" eller "X", da færre fingerbevægelser kræves).
Desuden har det vist sig, at den implementerede algoritme til sending af pakker med virkelige og falske tastetryk reducerer pålideligheden af en anden metode til beskyttelse mod sidekanalsangreb. Siden frigivelsen af
OpenSSH 2.9.9 server sendte pakker med falske tastetryk til konsolindgang i echo-off-tilstand, der anvendes f.eks. ved indtastning af adgangskoder i su eller sudo. Den nye logik til sending af falske pakker gjorde det muligt at skelne mellem pakker med virkelige tastetryk i echo-off-tilstand ved passiv trafikovervågning for særskilt analyse. På samme tid begrænses nøjagtigheden af tidsoplysninger om tastetryk, da pakkerne ikke sendes straks efter indtastning, men med faste tidsintervaller (som standard 20 ms).
Andre ændringer i OpenSSH 9.8:
- Under standard conditions, support for digital signatures based on the DSA algorithm is disabled during the assembly stage. In early 2025, the implementation of DSA will be removed from the codebase. The reason for its removal is the inadequate level of security offered by DSA compared to contemporary requirements. The costs associated with maintaining the insecure DSA algorithm are unjustifiable, and its removal will encourage the discontinuation of DSA support in other SSH implementations and cryptographic libraries.
- To provide additional protection against exploitation methods that require a large number of connections to sshd, a new protection mode has been implemented and enabled by default. This mode also helps block automated password guessing attacks, where bots attempt to guess a user's password by trying various common combinations. The protection is implemented through blocking IP-adresser, recognizing a high number of unsuccessful connection attempts — sshd tracks the exit status of child processes, identifying situations where authentication failed or where the process was terminated unexpectedly due to a failure. When a certain threshold is exceeded, it begins to block requests from problematic IPs or subnets. Parameters like PerSourcePenalties, PerSourceNetBlockSize, and PerSourcePenaltyExemptList have been proposed to configure the blocking trigger threshold, the mask for the blocked subnet, and the exception list.
- The sshd has been separated into several individual executable files. The sshd-session process has been isolated, handling tasks related to session processing. The sshd process retains functions responsible for accepting network connections, checking configuration, loading host keys, and managing launched processes according to the MaxStartups parameter. Thus, the sshd executable file now contains the minimum functionality required to accept a new network connection and launch sshd-session for session handling.
- The text of some error messages logged has changed. In particular, several messages are now sent on behalf of the 'sshd-session' process rather than 'sshd'.
- In the ssh-keyscan utility, the output of protocol version information and hostname is now sent to the standard output instead of STDERR. An option '-q' has been proposed to disable this output.
- I ssh er der mulighed for at deaktivere via direktivet HostkeyAlgorithms fra at bruge værtsnøglecertifikat til at bruge enkle (plain) værtsnøgler.
- I den bærbare version af sshd er brugen af værdien argv[0] til at bestemme navnet på PAM-tjenesten stoppet. For at angive navnet på PAM-tjenesten i sshd_config er der tilføjet et nyt direktiv "PAMServiceName", som som standard er sat til værdien "sshd".
- I den bærbare version af sshd er det sikret, at automatisk genererede filer (konfigurations script, config.h.in osv.) gemmes i Git-grenen med frigivelser (f.eks. V_9_8), hvilket har gjort det muligt at synkronisere indholdet af de signaturbekræftede tar-arkiver og grenene i Git.
- I den bærbare version af ssh og ssh-agent er det sikret, at tilstand
SSH_ASKPASS sættes, når miljøvariablen WAYLAND_DISPLAY er til stede, ligesom det blev gjort for X11, når miljøvariablen DISPLAY var til stede. - I den bærbare version af sshd er der tilføjet support til at sende meddelelser til systemd ved oprettelse af en lyttende netværkssocket eller genstart ved hjælp af særskilt kode, der ikke interagerer med libsystemd-biblioteket.
Kilde: opennet.ru
