SicherheitsanfĂ€lligkeiten in GnuPG, die die ÜberprĂŒfung umgehen und eigenen Code ausfĂŒhren können

Auf der in Deutschland stattfindenden Konferenz 39C3 (Chaos Communication Congress) wurden Details zu 12 zuvor unbekannten und nach wie vor unbereinigten (0-Day) Schwachstellen im GnuPG (GNU Privacy Guard) bekanntgegeben, einem Werkzeug, das mit den Standards OpenPGP und S/MIME kompatible Hilfsprogramme zur DatenverschlĂŒsselung, zur Bearbeitung elektronischer Signaturen, zum SchlĂŒsselmanagement und zum Zugriff auf öffentliche SchlĂŒsselverzeichnisse bietet. Die gefĂ€hrlichsten Schwachstellen ermöglichen es, die ÜberprĂŒfung digitaler Signaturen zu umgehen und die AusfĂŒhrung von Code bei der Verarbeitung von verschlĂŒsselten Daten im ASCII-Format (ASCII Armor) zu erwirken. Arbeiten an Exploit-Prototypen und Patches werden spĂ€ter veröffentlicht. CVE-Identifikatoren wurden bisher noch nicht vergeben.

Die Schwachstellen sind durch Fehler im Code zur Verarbeitung von Daten und zur Analyse von Formaten verursacht und stehen nicht in Zusammenhang mit LĂŒcken in den Krypto-Algorithmen. Beispielsweise fĂŒhrt ein Fehler im Parser zu einem Absturz, wenn es darum geht, tatsĂ€chlich signierte Daten zu bestimmen, wodurch Bedingungen geschaffen werden, unter denen die zu ĂŒberprĂŒfenden Daten nicht mit den signierten Daten ĂŒbereinstimmen. Dies ermöglicht es einem Angreifer, den Klartext zu manipulieren, ohne Zugang zum privaten SchlĂŒssel zu haben.

Festgestellte Probleme:

  • Ein Fehler im Code des Parsers fĂŒr verschlĂŒsselte Daten, die im ASCII-Armor-Format verteilt werden (Textdateien mit dem Block „BEGIN/END PGP ARMORED FILE“), fĂŒhrt zu einem Schreibzugriff außerhalb des Pufferspeicherbereichs. Dieses Problem kann dazu fĂŒhren, dass beim Verarbeiten von gpg speziell gestaltete Daten Code ausgefĂŒhrt wird. Die Schwachstelle manifestiert sich in der Funktion armor_filter() und wird durch eine doppelte Erhöhung des ZĂ€hlers „n“ in der „for“-Schleife verursacht – trotz der Angabe „n++“ in der Schleife wird der ZĂ€hler auch im Schleifenrumpf beim Schreiben von Daten in den Puffer „buf[n++]“ erhöht. Infolgedessen wird ein zusĂ€tzliches Byte außerhalb des Puffers geschrieben, und die Variable mit der GrĂ¶ĂŸe „ret_len“ erhĂ€lt einen Wert, der das tatsĂ€chliche ĂŒberschreitet.
  • Die Möglichkeit, jede Datei zu erstellen oder zu ĂŒberschreiben, soweit die aktuellen Zugriffsrechte es zulassen, aufgrund der fehlerhaften Verarbeitung des Inhalts des Feldes „filename“ in einem Datenpaket. Diese Schwachstelle kann genutzt werden, um die AusfĂŒhrung von Code im System zu ermöglichen, wenn der EmpfĂ€nger die Befehle „gpg —decrypt poc.enc“ und „gpg poc.enc“ ausfĂŒhrt, um die vom Angreifer gesendete Datei poc.enc anzuzeigen. Die AusfĂŒhrung von Code kann beispielsweise durch das Erstellen von Dateien ~ / .bash_completion oder ~ / .ssh / authorized_keys erreicht werden.
  • Die Möglichkeit, den sichtbaren Text, der dem Benutzer beim Angeben der Option „—decrypt“ und der ÜberprĂŒfung mit separat gelieferten digitalen Signaturen (Detached Signature, erstellt mit der Option „—detach-sig“ und in einer separaten sig-Datei bereitgestellt) angezeigt wird, zu ersetzen. Das Problem besteht darin, dass bei der getrennten Übermittlung der Nachricht und der sig-Datei ein Angreifer, der den Verkehr im Zwischenbereich (MITM) kontrolliert, Änderungen an der sig-Datei vornehmen kann, nach denen die ÜberprĂŒfung erfolgreich bleibt, aber beim Anzeigen der Nachricht aus der sig-Datei mit der Option „—decrypt“ anderer Inhalt ausgegeben wird. echo Plaintext > plaintext gpg —detach-sig plaintext # Änderung plaintext.sig durch den Angreifer mit HinzufĂŒgung von zusĂ€tzlichem Text gpg —verify plaintext.sig plaintext # verifiziert gpg —decrypt plaintext.sig # verifiziert, aber anderer Text wird ausgegeben
  • Die Möglichkeit, eine signierte Nachricht mit beliebigen Daten zu ergĂ€nzen, wĂ€hrend die erfolgreiche ÜberprĂŒfung der Signatur erhalten bleibt. Das Problem tritt aufgrund des Abschneidens von Daten an der Grenze von 20000 Zeichen bei der Berechnung des Hashs auf.
  • Unkorrekte ÜberprĂŒfung von Codes fĂŒr authentifizierte VerschlĂŒsselung (MDC — Modification Detection Codes), die es ermöglichen, mit verschlĂŒsselten Paketen zu manipulieren, sodass der erhaltene Inhalt beim EntschlĂŒsseln als ein anderer Pakettyp verarbeitet wird (z. B. als fĂŒr die Veröffentlichung vorgesehener öffentlicher SchlĂŒssel erkannt wird).
  • Die Möglichkeit, zusĂ€tzliche Daten in CS-Signaturen (Cleartext Signature), die mit dem Flag „—not-dash-escaped“ erstellt wurden oder aus separat gelieferten Signaturen (Detached Signature) konvertiert wurden, einzufĂŒgen. Diese Schwachstelle kann verwendet werden, um beim Benutzer den falschen Eindruck zu erwecken, welche Daten tatsĂ€chlich signiert wurden. Beispielsweise kann der Benutzer aus vertrauenswĂŒrdigen Quellen den korrekten SchlĂŒssel zur ÜberprĂŒfung der digitalen Signatur herunterladen, aber ein Angreifer kann wĂ€hrend eines MITM-Angriffs das heruntergeladene iso-Abbild Ă€ndern und einen zusĂ€tzlichen Hash in die Signatur des Abbilds einfĂŒgen, sodass die ÜberprĂŒfung des manipulierten Abbilds erfolgreich ist, wenn der korrekte ÜberprĂŒfungsschlĂŒssel im System vorhanden ist.
  • Das EinfĂŒgen zusĂ€tzlicher Daten in die ASCII-Darstellung der CS-Signatur (Cleartext Signature) durch das EinfĂŒgen eines Null-Zeichens. Diese Schwachstelle ermöglicht es beispielsweise, beliebigen Text in die Hash-Überschrift einzufĂŒgen.
  • Unkorrekte Interpretation des OpenPGP-Formats, aufgrund derer die Nachricht „One-Pass Signed Message“ im ASCII-codierten Format als „Cleartext Signature“ interpretiert werden kann, wenn der Header entsprechend verĂ€ndert wird. Die Schwachstelle ermöglicht es, die ursprĂŒnglichen signierten Daten durch schĂ€dlichen Inhalt zu ersetzen, wĂ€hrend die erfolgreiche Verifizierung vorgetĂ€uscht wird.
  • Fehlende klare Trennung in der Ausgabe der Informationen ĂŒber den Erfolg der ÜberprĂŒfung der digitalen Signatur und dem Inhalt der Nachricht, was es ermöglicht, gefĂ€lschte nicht signierte Nachrichten zu erstellen, die bei der AusfĂŒhrung von „gpg —decrypt“ wie authentische wirken.
  • Möglichkeit, OpenPGP-Nachrichten zu erstellen, die in gpg anders verarbeitet werden als in anderen OpenPGP-Implementierungen. Das Problem resultiert aus der speziellen Behandlung extrem langer Zeilen in der ASCII-Darstellung von OpenPGP-Daten.
  • Schaffung von Bedingungen im Prozess der Verifizierung der digitalen Signatur, um den Hash-PrĂŒfalgorithmus auf das unsichere SHA1 zurĂŒckzusetzen.
  • Möglichkeit, eigene sekundĂ€re SchlĂŒssel (subkey) ohne deren Autorisierung unter Verwendung des privaten Teils des Master-SchlĂŒssels einzusetzen. Der Angriff erfolgt durch HinzufĂŒgen eines gefĂ€lschten SchlĂŒsselspeichers mithilfe der Option „—keyring“.

ZusĂ€tzlich wurden zwei Schwachstellen in minisign, einem vereinfachten Werkzeug zur Erstellung und ÜberprĂŒfung digitaler Signaturen, entdeckt. Beide Schwachstellen (1, 2) ermöglichen die Verwendung von Steuersequenzen des Terminals („\e[1E“) oder von Sonderzeichen („\r“) im Kommentarfeld zur Modifikation der Programmausgabe, beispielsweise zur VerĂ€nderung der Information ĂŒber das Verifizierungsergebnis.

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster