Eine Gruppe von Forschern aus mehreren Universitäten in Deutschland hat eine neue Methode für MITM-Angriffe auf HTTPS entwickelt. Diese ermöglicht es, Cookies mit Sitzungs-IDs und andere vertrauliche Daten zu extrahieren sowie die Ausführung beliebigen JavaScript-Codes im Kontext einer anderen Website zu erreichen. Der Angriff wurde als ALPACA bezeichnet und kann auf TLS-Server angewendet werden, die verschiedene Anwendungsprotokolle (HTTPS, SFTP, SMTP, IMAP, POP3) implementieren, aber gemeinsame TLS-Zertifikate verwenden.
Das Wesen des Angriffs besteht darin, dass der Angreifer durch Kontrolle über ein Netzgateway oder einen WLAN-Zugangspunkt den Webtraffic auf einen anderen Netzwerkport umleiten kann. So kann eine Verbindung zu einem FTP- oder Mailserver, die TLS-Verschlüsselung unterstützen und ein gemeinsames TLS-Zertifikat mit dem HTTP-Server verwenden, hergestellt werden. Der Browser des Benutzers wird glauben, dass eine Verbindung zum angeforderten HTTP-Server hergestellt wurde. Da das TLS-Protokoll universell ist und nicht an Anwendungsprotokolle gebunden ist, ist die Einrichtung einer verschlüsselten Verbindung für alle Dienste identisch. Ein Fehler bei der Anforderung an den falschen Dienst kann erst nach der Herstellung der verschlüsselten Sitzung während der Verarbeitung der gesendeten Anforderungen festgestellt werden.
Wenn beispielsweise die Verbindung eines Nutzers, die ursprünglich an HTTPS gerichtet war, auf einen Mailserver, der ein gemeinsames Zertifikat mit dem HTTPS-Server verwendet, umgeleitet wird, wird die TLS-Verbindung erfolgreich hergestellt. Der Mailserver kann jedoch die übermittelten HTTP-Befehle nicht verarbeiten und gibt eine Fehlermeldung zurück. Diese Antwort wird vom Browser als Antwort der angeforderten Website innerhalb eines korrekt etablierten verschlüsselten Kommunikationskanals verarbeitet.
Drei Angriffsvarianten wurden vorgeschlagen:
- „Upload“ zur Extraktion von Cookies mit Authentifizierungsparametern. Diese Methode ist anwendbar, wenn der durch das TLS-Zertifikat geschützte FTP-Server das Hochladen und Extrahieren von Daten zulässt. Bei dieser Angriffsvariante kann der Angreifer Teile der ursprünglichen HTTP-Anfrage des Nutzers, wie den Inhalt des Cookie-Headers, speichern, beispielsweise wenn der FTP-Server die Anfrage als Datei zum Speichern interpretiert oder eingehende Anfragen vollständig protokolliert. Für einen erfolgreichen Angriff muss der Angreifer dann das gespeicherte Inhaltsmaterial auf irgendeine Weise extrahieren. Der Angriff ist anwendbar auf Proftpd, Microsoft IIS, vsftpd, FileZilla und Serv-U.
- „Download“ für die Durchführung von Cross-Site Scripting (XSS). Diese Methode ermöglicht es einem Angreifer, durch bestimmte Manipulationen Daten in einem Dienst zu platzieren, der gemeinsam genutzt wird, TLS-Zertifikat, die dann als Antwort auf die Anfragen der Benutzer zurückgegeben werden können. Der Angriff gilt für die zuvor genannten FTP-Server, IMAP-Server und POP3-Server (Courier, Cyrus, Kerio-Connect und Zimbra).
- „Reflection“ zum Ausführen von JavaScript im Kontext einer anderen Website. Diese Methode basiert darauf, dem Client einen Teil der Anfrage, die den von dem Angreifer gesendeten JavaScript-Code enthält, zurückzugeben. Der Angriff ist auf die zuvor genannten FTP-Server, IMAP-Server von Cyrus, Kerio-Connect und Zimbra sowie den SMTP-Server Sendmail anwendbar.

Wenn ein Nutzer eine von Angreifern kontrollierte Seite aufruft, kann von dieser Seite aus eine Anfrage an eine Ressource auf einer Webseite initiieren, auf der der Nutzer ein aktives Konto hat (zum Beispiel bank.com). Im Laufe eines MITM-Angriffs kann diese Anfrage, die an die Webseite bank.com gerichtet ist, an einen Mailserver umgeleitet werden, der das gleiche TLS-Zertifikat wie bank.com verwendet. Da der Mailserver die Sitzung nach dem ersten Fehler nicht beendet, werden die Header und Befehle, wie «POST / HTTP/1.1» und «Host:», als unbekannte Befehle behandelt (der Mailserver wird für jeden Header «500 unrecognized command» zurückgeben).
Der Mailserver interpretiert die Besonderheiten des HTTP-Protokolls nicht, und behandelt die Header und den Datenblock der POST-Anfrage gleich. Daher kann man im Körper der POST-Anfrage einen Befehl an den Mailserver senden. Zum Beispiel kann man übermitteln: MAIL FROM: woraufhin der Mailserver die Fehlermeldung 501 : malformed address: alert(1); may not follow
Diese Antwort wird vom Browser des Benutzers empfangen, der JavaScript-Code im Kontext einer Seite ausführt, die nicht ursprünglich von dem Angreifer geöffnet wurde, sondern von der Seite bank.com, an die die Anfrage gesendet wurde, da die Antwort innerhalb einer gültigen TLS-Sitzung eingegangen ist und das Zertifikat die Echtheit der Antwort von bank.com bestätigt hat.

Eine Untersuchung des globalen Netzwerks hat ergeben, dass rund 1,4 Millionen Webserver allgemein anfällig für Probleme sind, bei denen unterschiedliche Protokolle gemischt angesprochen werden können. Die Möglichkeit einer tatsächlichen Attacke wurde für 119.000 Webserver festgestellt, bei denen begleitende TLS-Server auf Basis anderer Anwendungsprotokolle vorhanden waren.
Beispiele für Exploits wurden für FTP-Server wie pureftpd, proftpd, microsoft-ftp, vsftpd, filezilla und serv-u, IMAP- und POP3-Server wie dovecot, courier, exchange, cyrus, kerio-connect und zimbra sowie für SMTP-Server wie postfix, exim, sendmail, mailenable, mdaemon und opensmtpd vorbereitet. Die Forscher haben die Möglichkeit eines Angriffs nur in Kombination mit FTP-, SMTP-, IMAP- und POP3-Servern untersucht, wobei nicht ausgeschlossen wird, dass das Problem auch bei anderen Anwendungsprotokollen, die TLS verwenden, auftreten kann.

Um Angriffe zu verhindern, wird empfohlen, die ALPN (Application Layer Protocol Negotiation) zu verwenden, um die TLS-Sitzung unter Berücksichtigung des Anwendungsprotokolls zu verhandeln, sowie die SNI (Server Name Indication), um an den Hostnamen zu binden, falls TLS-Zertifikate, die mehrere abdecken, verwendet werden. von DomainnamenAuf der Anwendungsseite wird geraten, die Anzahl der Fehler bei der Verarbeitung von Befehlen zu begrenzen. Wenn diese Anzahl erreicht wird, sollte die Verbindung getrennt werden. Der Prozess zur Entwicklung von Maßnahmen zur Verhinderung von Angriffen begann bereits im Oktober letzten Jahres. Ähnliche Schutzmaßnahmen wurden bereits in Nginx 1.21.0 (Mail-Proxy), Vsftpd 3.0.4, Courier 5.1.0, Sendmail, FileZilla, crypto/tls (Go) und Internet Explorer umgesetzt.
Quelle: opennet.ru
