OpenSSH 8.3-Version mit SCP-Schwachstellenbehebung

Nach drei Monaten Entwicklungszeit eingereicht freigeben OpenSSH 8.3, eine offene Client- und Serverimplementierung für die Arbeit über die Protokolle SSH 2.0 und SFTP.

Die neue Version bietet Schutz vor SCP-Angriffen, die es dem Server ermöglichen, andere als die angeforderten Dateinamen zu übergeben (im Gegensatz zu vergangene Verletzlichkeit, der Angriff ermöglicht es nicht, das vom Benutzer ausgewählte Verzeichnis oder die Glob-Maske zu ändern). Denken Sie daran, dass in SCP der Server entscheidet, welche Dateien und Verzeichnisse an den Client gesendet werden, und der Client nur die Richtigkeit der zurückgegebenen Objektnamen überprüft. Der Kern des identifizierten Problems besteht darin, dass der Inhalt der Datei als Dateimetadaten interpretiert wird, wenn der utimes-Systemaufruf fehlschlägt.

Diese Funktion kann beim Herstellen einer Verbindung zu einem von einem Angreifer kontrollierten Server verwendet werden, um andere Dateinamen und andere Inhalte im FS des Benutzers zu speichern, wenn mit scp in Konfigurationen kopiert wird, die beim Aufruf von utimes zu Fehlern führen (z. B. wenn utimes verboten ist). die SELinux-Richtlinie oder der Systemaufruffilter). Die Wahrscheinlichkeit echter Angriffe wird als minimal eingeschätzt, da in typischen Konfigurationen der utimes-Aufruf nicht fehlschlägt. Zudem bleibt der Angriff nicht unbemerkt – beim Aufruf von scp wird ein Datenübertragungsfehler angezeigt.

Allgemeine Änderungen:

  • In SFTP wurde die Verarbeitung des Arguments „-1“ gestoppt, ähnlich wie bei SSH und SCP, das zuvor akzeptiert, aber ignoriert wurde;
  • In sshd gibt es bei Verwendung von IgnoreRhosts jetzt drei Möglichkeiten: „yes“ – rhosts/shosts ignorieren, „no“ – rhosts/shosts respektieren und „shosts-only“ – „.shosts“ zulassen, aber „.rhosts“ deaktivieren;
  • Ssh unterstützt jetzt die %TOKEN-Ersetzung in den LocalFoward- und RemoteForward-Einstellungen, die zum Umleiten von Unix-Sockets verwendet werden;
  • Erlauben Sie das Laden öffentlicher Schlüssel aus einer unverschlüsselten Datei mit einem privaten Schlüssel, wenn keine separate Datei mit dem öffentlichen Schlüssel vorhanden ist.
  • Wenn libcrypto im System verfügbar ist, verwenden ssh und sshd jetzt die Implementierung des Chacha20-Algorithmus aus dieser Bibliothek anstelle der integrierten portablen Implementierung, die in der Leistung zurückbleibt;
  • Es wurde die Möglichkeit implementiert, den Inhalt einer binären Liste widerrufener Zertifikate auszugeben, wenn der Befehl „ssh-keygen -lQf /path“ ausgeführt wird.
  • Die portable Version implementiert Definitionen von Systemen, in denen Signale mit der Option SA_RESTART den Vorgang von select unterbrechen;
  • Probleme mit der Assemblierung auf HP/UX- und AIX-Systemen behoben;
  • Probleme beim Erstellen einer Seccomp-Sandbox bei einigen Linux-Konfigurationen behoben;
  • Verbesserte Erkennung der libfido2-Bibliothek und behobene Build-Probleme mit der Option „--with-security-key-builtin“.

Die OpenSSH-Entwickler warnten außerdem erneut vor der drohenden Zerlegung von Algorithmen mithilfe von SHA-1-Hashes Förderung die Wirksamkeit von Kollisionsangriffen mit einem bestimmten Präfix (die Kosten für die Auswahl einer Kollision werden auf etwa 45 Dollar geschätzt). In einer der kommenden Versionen ist geplant, die Möglichkeit zur Verwendung des digitalen Signaturalgorithmus „ssh-rsa“ mit öffentlichem Schlüssel, der im ursprünglichen RFC für das SSH-Protokoll erwähnt wird und in der Praxis weiterhin weit verbreitet ist, standardmäßig zu deaktivieren (um die Verwendung zu testen). von ssh-rsa in Ihren Systemen können Sie versuchen, eine Verbindung über ssh mit der Option „-oHostKeyAlgorithms=-ssh-rsa“ herzustellen.

Um den Übergang zu neuen Algorithmen in OpenSSH zu erleichtern, wird in einer zukünftigen Version die Einstellung „UpdateHostKeys“ standardmäßig aktiviert, wodurch Clients automatisch auf zuverlässigere Algorithmen migriert werden. Zu den empfohlenen Algorithmen für die Migration gehören rsa-sha2-256/512 basierend auf RFC8332 RSA SHA-2 (unterstützt seit OpenSSH 7.2 und standardmäßig verwendet), ssh-ed25519 (unterstützt seit OpenSSH 6.5) und ecdsa-sha2-nistp256/384/521 basierend auf RFC5656 ECDSA (unterstützt seit OpenSSH 5.7).

Seit der letzten Version wurden „ssh-rsa“ und „diffie-hellman-group14-sha1“ aus der CASignatureAlgorithms-Liste entfernt, die die Algorithmen definiert, die zum digitalen Signieren neuer Zertifikate zulässig sind, da die Verwendung von SHA-1 in Zertifikaten ein zusätzliches Risiko darstellt Dadurch hat der Angreifer unbegrenzte Zeit, nach einer Kollision für ein vorhandenes Zertifikat zu suchen, während die Angriffszeit auf Hostschlüssel durch das Verbindungszeitlimit (LoginGraceTime) begrenzt ist.

Source: opennet.ru

Kommentar hinzufügen