CVE-2024-31497: PuTTY verliert private ECDSA-Schlüssel von Clients

Die Kryptographie mit öffentlichen Schlüsseln bildet die Grundlage für die Sicherheit von Unternehmensnetzwerken. Daher ist die Sicherung der Vertraulichkeit privater Schlüssel eine der wichtigsten Herausforderungen für die IT-Sicherheit, um unbefugten Zugriff zu verhindern und die Vertraulichkeit von Daten zu wahren. Während sich Quantum Safe Cryptography (QSC) als ein wichtiges Thema für die Zukunft herauskristallisiert hat, sind die jüngsten kritischen Schwachstellen wie CVE-2024-3094 (CVSS 10) in XZ Utils und die kürzlich bekannt gewordene CVE-2024-31497 (CVSS 8.8) in PuTTY hier und jetzt – reale und aktuelle Gefahren.

Glücklicherweise wurde die Sicherheitslücke in XZ Utils vor der weit verbreiteten Bereitstellung in den stabilen Linux-Versionszweigen entdeckt. Im Vergleich dazu stellt CVE-2024-31497 in PuTTY jedoch eine viel größere Bedrohung dar als die oben erwähnte Sicherheitslücke in XZ Utils, obwohl sie einen niedrigeren CVSS-Wert aufweist. Schauen wir uns die Details an, um zu verstehen, warum das so ist, und überprüfen wir die Fähigkeiten von Greenbone, bekannte kryptografische Schwachstellen zu erkennen.

Public-Key-Authentifizierung

Die Public-Key-Infrastruktur (PKI) ist grundlegend für eine Vielzahl von digitalen Vertrauensdiensten wie Internet- und Unternehmens-LAN-Authentifizierung, Autorisierung, Datenschutz und Anwendungssicherheit. Für die Public-Key-Authentifizierung benötigen sowohl der Client als auch der Server jeweils ein Paar miteinander verbundener kryptografischer Schlüssel: einen privaten und einen öffentlichen Schlüssel. Die öffentlichen Schlüssel werden zwischen den beiden verbindenden Parteien offen ausgetauscht, während die privaten Schlüssel verwendet werden, um zwischen ihnen gesendete Nachrichten digital zu signieren, und die zugehörigen öffentlichen Schlüssel werden zur Entschlüsselung dieser Nachrichten verwendet. Auf diese Weise verifiziert jede Partei grundsätzlich die Identität der anderen, und es wird ein einziger symmetrischer Schlüssel für eine kontinuierliche verschlüsselte Kommunikation mit optimaler Verbindungsgeschwindigkeit vereinbart.

Im Client-Server-Modell der Kommunikation kann sich ein Angreifer, wenn der private Schlüssel des Clients kompromittiert wird, potenziell bei allen Ressourcen authentifizieren, die ihn anerkennen. Wenn der private Schlüssel des Servers kompromittiert ist, kann ein Angreifer die Identität des Servers fälschen und Adversary-in-the-Middle (AitM) durchführen.

CVE-2024-31497 betrifft alle Versionen von PuTTY

CVE-2024-31497 im beliebten Windows-SSH-Client PuTTY ermöglicht es einem Angreifer, den geheimen NIST P-521-Schlüssel eines Clients wiederherzustellen, indem er aufgrund einer verzerrten ECDSA-Nonce-Generierung (Zufallszahlen-Generierung via Elliptic Curve Digital Signature Algorithm) etwa 60 digitale Signaturen erfasst und analysiert. Laut NIST SP-800-186 (2023) gehören NIST ECDSA P-521-Schlüssel nach wie vor zu den Schlüsseln mit der höchsten kryptografischen Widerstandsfähigkeit und werden für die Verwendung in verschiedenen Anwendungen empfohlen, darunter SSL/TLS- und Secure Shell (SSH)-Anwendungen. Eine Schwachstelle in der Implementierung der ECDSA P-521-Authentifizierung in einer Anwendung ist also ein ernsthafter Nachteil für IT-Teams, die ansonsten entsprechend starke Verschlüsselungsstandards eingesetzt haben.

Im Fall von CVE-2024-31497 sind die digitalen Signaturen des Clients Gegenstand von Kryptoanalyse-Angriffen, die den privaten Schlüssel aufdecken können. Während die Entwicklung eines Exploits für CVE-2024-31497 ein hochqualifiziertes Unterfangen ist, das erfahrene Kryptographen und Computeringenieure erfordert, wurde ein PoC-Code (Proof of Concept) öffentlich veröffentlicht, was auf ein hohes Risiko hinweist, dass CVE-2024-31497 in naher Zukunft selbst von wenig qualifizierten Angreifern aktiv ausgenutzt werden kann.

Angreifer könnten die Signaturen eines Opfers abfangen, indem sie den Netzwerkverkehr überwachen, aber die Signaturen könnten bereits öffentlich verfügbar sein, wenn PuTTY zum Signieren von Commits öffentlicher GitHub-Repositories mit NIST ECDSA P-521-Schlüsseln verwendet wurde. Mit anderen Worten: Angreifer können möglicherweise genügend Informationen finden, um einen privaten Schlüssel aus öffentlich zugänglichen Daten zu kompromittieren und so Supply-Chain-Angriffe auf die Software eines Opfers zu ermöglichen.

CVE-2024-31497 betrifft alle Versionen von PuTTY nach 0.68 (Anfang 2017) und vor 0.81 sowie FileZilla vor 3.67.0, WinSCP vor 6.3.3, TortoiseGit vor 2.15.0.1 und TortoiseSVN bis 1.14.6 sowie möglicherweise weitere Produkte.

Greenbone ist in der Lage, die verschiedenen anfälligen Versionen von PuTTY mit mehreren Vulnerability Tests (VTs) zu erkennen. Greenbone kann Windows-Registrierungsschlüssel identifizieren, die darauf hinweisen, dass eine anfällige Version von PuTTY auf einem Scan-Ziel vorhanden ist. Darüber hinaus bietet Greenbone zusätzliche Tests für PuTTY für Linux [1][2][3], FileZilla [4][5] sowie Versionen von Citrix Hypervisor/ XenServer, die anfällig für CVE-2024-31497 sind.

Greenbone schützt vor bekannten Verschlüsselungsfehlern

Verschlüsselungsfehler können durch die Verwendung schwacher kryptografischer Algorithmen, Fehlkonfigurationen und fehlerhafte Implementierungen eines ansonsten starken Verschlüsselungsalgorithmus verursacht werden, wie im Fall von CVE-2024-31497. Greenbone enthält über 6.500 separate Network Vulnerability Tests (NVTs) und Local Security Checks (LSCs), die alle Arten von kryptografischen Schwachstellen identifizieren können. Einige Beispiele für kryptografische Schwachstellen, die Greebone erkennen kann, sind:

  • Anwendungsspezifische Schwachstellen: Greenbone ist in der Lage, über 6500 betriebssystem- und anwendungsspezifische Verschlüsselungsschwachstellen zu erkennen, für die CVEs veröffentlicht worden sind.
  • Fehlende Verschlüsselung: Unverschlüsselte Fernauthentifizierung oder andere Datenübertragungen und sogar unverschlüsselte lokale Dienste stellen ein erhebliches Risiko für sensible Daten dar, wenn Angreifer eine vorteilhafte Position erlangt haben, z. B. die Möglichkeit, den Netzwerkverkehr zu überwachen.
  • Unterstützung für schwache Verschlüsselungsalgorithmen: Schwache Verschlüsselungsalgorithmen oder Chiffriersuiten bieten keinen sicheren Schutz vor Kryptoanalyse-Angriffen mehr. Wenn sie verwendet werden, ist die Kommunikation einem höheren Risiko des Datendiebstahls ausgesetzt und ein Angreifer kann die Kommunikation fälschen, um beliebige Befehle auf dem System eines Opfers auszuführen. Greenbone enthält mehr als 1000 NVTs zur Erkennung von Remote-Diensten, die schwache Verschlüsselungsalgorithmen verwenden.
  • Nicht-konforme TLS-Einstellungen und HTTPS-Sicherheits-Header: Greenbone verfügt über NVTs, die erkennen, wenn HTTP Strict Transport Security (HSTS) nicht konfiguriert ist, und die TLS-Richtlinie des Webservers überprüfen.

Zusammenfassung

Die SSH-Authentifizierung mit öffentlichen Schlüsseln gilt weithin als eines der sichersten – wenn nicht sogar als das sicherste – Fernzugriffsprotokoll, aber zwei aktuelle Schwachstellen haben diesen kritischen Dienst ins Rampenlicht gerückt. CVE-2024-3094, ein Trojaner, der in XZ Utils eingeschleust wurde, fand seinen Weg in einige experimentelle Linux-Repositories, bevor er entdeckt wurde, und CVE-2024-31497 in PuTTY ermöglicht einen kryptographischen Angriff, um den privaten Schlüssel eines Clients zu extrahieren, wenn ein Angreifer etwa 60 digitale Signaturen erhalten kann.

Greenbone kann aufkommende Bedrohungen für die Verschlüsselung wie CVE-2024-31497 erkennen und enthält über 6.500 weitere Schwachstellentests, um eine Reihe von Verschlüsselungsschwachstellen zu identifizieren.