Veröffentlichung von OpenSSH 8.9 mit Beseitigung der Schwachstelle in sshd

Nach sechsmonatiger Entwicklungszeit wurde die Veröffentlichung von OpenSSH 8.9 vorgestellt, einer offenen Client- und Serverimplementierung für die Arbeit mit den Protokollen SSH 2.0 und SFTP. Die neue Version von sshd behebt eine Schwachstelle, die möglicherweise einen nicht authentifizierten Zugriff ermöglichen könnte. Das Problem wird durch einen Ganzzahlüberlauf im Authentifizierungscode verursacht, kann aber nur in Kombination mit anderen logischen Fehlern im Code ausgenutzt werden.

In ihrer aktuellen Form kann die Schwachstelle nicht ausgenutzt werden, wenn der Privilege-Separation-Modus aktiviert ist, da ihre Manifestation durch separate Prüfungen blockiert wird, die im Privilege-Separation-Tracking-Code durchgeführt werden. Der Privilegientrennungsmodus ist seit 2002 seit OpenSSH 3.2.2 standardmäßig aktiviert und seit der Veröffentlichung von OpenSSH 7.5 im Jahr 2017 obligatorisch. Darüber hinaus wird die Schwachstelle in portablen Versionen von OpenSSH ab Version 6.5 (2014) durch Kompilierung unter Einbeziehung von Integer-Overflow-Schutzflags blockiert.

Weitere Änderungen:

  • Die portable Version von OpenSSH in sshd hat die native Unterstützung für das Hashing von Passwörtern mithilfe des MD5-Algorithmus entfernt (wodurch die Verknüpfung mit externen Bibliotheken wie libxcrypt wiederhergestellt werden kann).
  • ssh, sshd, ssh-add und ssh-agent implementieren ein Subsystem, um die Weiterleitung und Verwendung von Schlüsseln einzuschränken, die dem ssh-agent hinzugefügt wurden. Mit dem Subsystem können Sie Regeln festlegen, die bestimmen, wie und wo Schlüssel im SSH-Agent verwendet werden können. Um beispielsweise einen Schlüssel hinzuzufügen, der nur zur Authentifizierung eines Benutzers verwendet werden kann, der eine Verbindung zum Host scylla.example.org herstellt, des Benutzers perseus zum Host cetus.example.org und des Benutzers medea zum Host charybdis.example.org Mit der Umleitung über einen Zwischenhost scylla.example.org können Sie den folgenden Befehl verwenden: $ ssh-add -h "[E-Mail geschützt] " \ -h "scylla.example.org" \ -h "scylla.example.org>[E-Mail geschützt] \ ~/.ssh/id_ed25519
  • In ssh und sshd wurde der KexAlgorithms-Liste standardmäßig ein Hybridalgorithmus hinzugefügt, der die Reihenfolge bestimmt, in der Schlüsselaustauschmethoden ausgewählt werden.[E-Mail geschützt] "(ECDH/x25519 + NTRU Prime), resistent gegen Selektion auf Quantencomputern. In OpenSSH 8.9 wurde diese Aushandlungsmethode zwischen den ECDH- und DH-Methoden hinzugefügt, es ist jedoch geplant, sie in der nächsten Version standardmäßig zu aktivieren.
  • ssh-keygen, ssh und ssh-agent verfügen über eine verbesserte Handhabung von FIDO-Token-Schlüsseln, die zur Geräteüberprüfung verwendet werden, einschließlich Schlüsseln für die biometrische Authentifizierung.
  • Befehl „ssh-keygen -Y match-principals“ zu ssh-keygen hinzugefügt, um Benutzernamen in der Datei „allowednamelist“ zu überprüfen.
  • ssh-add und ssh-agent bieten die Möglichkeit, durch einen PIN-Code geschützte FIDO-Schlüssel zum ssh-agent hinzuzufügen (die PIN-Anfrage wird zum Zeitpunkt der Authentifizierung angezeigt).
  • ssh-keygen ermöglicht die Auswahl des Hashing-Algorithmus (sha512 oder sha256) während der Signaturgenerierung.
  • Um die Leistung zu verbessern, werden bei ssh und sshd Netzwerkdaten direkt in den Puffer eingehender Pakete gelesen, wodurch die Zwischenpufferung auf dem Stapel umgangen wird. Die direkte Platzierung der empfangenen Daten in einem Kanalpuffer wird auf ähnliche Weise implementiert.
  • In ssh hat die PubkeyAuthentication-Direktive die Liste der unterstützten Parameter erweitert (yes|no|unbound|host-bound), um die Möglichkeit zu bieten, die zu verwendende Protokollerweiterung auszuwählen.

In einer zukünftigen Version planen wir, die Standardeinstellung des scp-Dienstprogramms zu ändern, um SFTP anstelle des alten SCP/RCP-Protokolls zu verwenden. SFTP verwendet vorhersehbarere Namensverarbeitungsmethoden und verwendet keine Shell-Verarbeitung von Glob-Mustern in Dateinamen auf der Seite des anderen Hosts, was zu Sicherheitsproblemen führt. Insbesondere bei der Verwendung von SCP und RCP entscheidet der Server, welche Dateien und Verzeichnisse an den Client gesendet werden, und der Client überprüft nur die Richtigkeit der zurückgegebenen Objektnamen, was bei fehlenden ordnungsgemäßen Überprüfungen auf der Clientseite dies ermöglicht Server andere als die angeforderten Dateinamen übertragen. Das SFTP-Protokoll weist diese Probleme nicht auf, unterstützt jedoch nicht die Erweiterung spezieller Pfade wie „~/“. Um diesen Unterschied zu beheben, wurde in der vorherigen Version von OpenSSH eine neue SFTP-Protokollerweiterung für die Pfade ~/ und ~user/ in der SFTP-Serverimplementierung eingeführt.

Source: opennet.ru

Kommentar hinzufügen