Offenlegung von Zugangsdaten in LastPass
LastPass war anfällig für einen Clickjacking-Angriff. Durch das Abfangen des Datenverkehrs wäre ein Angreifer in der Lage gewesen, die Anmeldedaten von LastPass-Benutzern abzufangen. LastPass wies das Problem zurück.
Im Oktober 2022 entdeckte Certitude ein Problem im Browser-Plugin für den LastPass-Passwortmanager. Wir analysierten die Sicherheitseigenschaften dieses Plugins, insbesondere analysierten wir, wie LastPass mit unverschlüsselten Verbindungen umgeht (d. h. http://
-Verbindungen). Wir fanden heraus, dass das LastPass-Browser-Plugin auf HTTPS-Websites automatisch Anmeldedaten einträgt. Wenn beispielsweise https://accounts.google.com
besucht wird, füllt LastPass automatisch die Anmeldedaten für Google aus.
Ein interessanter Fall ist, wenn der Benutzer auf eine unverschlüsselte Seite zugreift, d.h. http://accounts.google.com
. Da die Domäne mit der von Google übereinstimmt, erkennt LastPass den Eintrag für die Anmeldedaten des Google-Kontos als denjenigen, der ausgefüllt werden muss. Da die Seite jedoch nicht verschlüsselt ist, weigert sich LastPass, die Kontodaten automatisch auszufüllen.
Dieses Verhalten ist z. B. erforderlich, da es unmöglich ist, zu überprüfen, ob Seiten, die über unverschlüsselte Verbindungen bereitgestellt werden, legitim sind – jeder, der Ihren Datenverkehr abfängt, kann sich als http://accounts.google.com
ausgeben.
LastPass bietet jedoch nach wie vor die Möglichkeit, das Ausfüllen der Anmeldedaten manuell vorzunehmen, d.h. der Benutzer kann die gespeicherten Anmeldedaten manuell in der LastPass-Benutzeroberfläche auswählen. Der Benutzer muss einfach auf das LastPass-Symbol klicken, das im Feld für den Benutzernamen oder das Kennwort angezeigt wird, woraufhin der folgende Dialog erscheint:
Wenn sich ein Angreifer als die unverschlüsselte Version von google.com ausgibt, um die Anmeldedaten zu sammeln, müsste er den Benutzer dazu bringen, die gespeicherten Anmeldedaten in diesem Dialogfeld (rot hervorgehoben) manuell auszuwählen. Eine Möglichkeit, einen Benutzer dazu zu bringen, etwas zu tun, was er nicht beabsichtigt, ist Clickjacking.
Clickjacking lässt Elemente der Benutzeroberfläche unsichtbar werden und bringt die Benutzer dann dazu, mit den so verborgenen Elementen der Benutzeroberfläche zu interagieren. Wie sich herausstellt, kann der Kontoauswahldialog von LastPass versteckt werden und Clickjacking ist möglich!
Indem wir alles, was wir entdeckt haben, kombinieren, können wir ein Szenario kreieren, in dem ein Angreifer Google-Anmeldedaten in einem öffentlichen WLAN abgreift:
- Der Angreifer fängt den gesamten Datenverkehr im drahtlosen Netzwerk ab (z. B. durch ARP-Spoofing, DHCP-Spoofing usw.).
- Wann immer der Angreifer eine unverschlüsselte HTTP-Anfrage erhält, antwortet er mit einer HTTP-Umleitung zu
http://botprotect.google.com
, einer nicht existierenden Website. - Der Browser des Opfers folgt der Weiterleitung.
- Der Angreifer liefert als Antwort auf diese Anfrage eine bösartige Website.
- Das LastPass-Plugin identifiziert
http://botprotect.google.com
als Google-Website, füllt die Anmeldedaten aber nicht automatisch aus. - Die bösartige Seite zeigt ein gefälschtes CAPTCHA:
Der Benutzer wird aufgefordert, auf eine Reihe von roten Punkten zu klicken. In Wirklichkeit interagiert der Benutzer mit der LastPass-Benutzeroberfläche, die unsichtbar gemacht wird. Der Benutzer öffnet unbeabsichtigt den LastPass-Kontoauswahldialog und fordert LastPass auf, seine Google-Anmeldedaten auf der bösartigen Website einzugeben. - Die bösartige Website kann nun die Google-Anmeldedaten des Opfers an den Angreifer weiterleiten.
Responsible Disclosure
Certitude meldete dieses Problem im Oktober 2022 über das Bugcrowd-Programm von LastPass1. LastPass antwortete, dass nur Clickjacking-Meldungen akzeptiert werden, wenn ein Proof-of-Concept vorgelegt wird (dieser wurde mit der ersten Meldung vorgelegt). Nachdem klargestellt wurde, dass es sich bei der Schwachstelle nicht um eine typische Clickjacking-Schwachstelle handelt, die man auf einer Website finden würde, und auf den anfänglichen Proof-of-Concept verwiesen wurde, erhielten wir keine Antwort.
Im März 2023 reichten wir daselbe Advisory erneut ein. Nachdem wir einige Rückfragen geklärt hatten, lehnte LastPass die Schwachstelle mit dem Hinweis auf die damalige Bestimmung in den Programmbedingungen ab, die diese Art von Sicherheitslücken ablehnt:
Attacks that rely on/have as a prerequisite successfully placing a man in the middle between our servers and the client. We take precautions in order to make these attacks difficult or infeasible (e.g. using HTTPS exclusively), but some aspects are out of our control and thereby excluded from eligibility.
https://web.archive.org/web/20221201075948/https://bugcrowd.com/lastpass
Nach einer erneuten Überprüfung der Schwachstelle stellte Certitude fest, dass diese Sicherheitslücke inzwischen behoben worden ist. Certitude wurde nicht für die Identifizierung dieser Sicherheitslücke anerkannt.