Ein Million Bank-Konten übernehmen, obwohl moderne Authentifizierungsverfahren genutzt werden? Durch eine fehlerhafte Implementierung ist das einem Sicherheitsforscher in den USA wohl gelungen. Die Schwachstelle ist inzwischen aber geschlossen.
Anzeige
Die Verwendung moderner Authentifizierungsverfahren wie OAuth 2.0 und OpenID Connect 1.0 kann Risiken bergen, wie ein Sicherheitsforscher demonstrieren konnte. Er hat seine Erkenntnisse in diesem Medium-Beitrag offen gelegt, nachdem die Schwachstelle geschlossen wurde. Ich bin über nachfolgenden Tweet auf das Thema aufmerksam geworden.
OAuth 2.0/OpenID Connect 1.0
OAuth ist ein offenes Protokoll, das die Autorisierung in einer einfachen und standardisierten Methode von Web-, Mobil- und Desktop-Anwendungen ermöglicht. Dieser Mechanismus wird von Unternehmen wie Amazon, Google, Facebook, Microsoft und Twitter verwendet, um es den Benutzern zu ermöglichen, Informationen über ihre Konten mit Anwendungen oder Websites Dritter zu teilen. Für Internetbenutzer bietet die die Möglichkeit, Websites oder Anwendungen Zugang zu ihren Informationen auf anderen Websites zu gewähren, ohne diesen die Passwörter für den Zugriff auf die betreffenden Konten geben.
OpenID Connect 1.0 ist eine Identitätsschicht, die auf dem dem OAuth 2.0-Protokoll aufsetzt. Das ermöglicht es Clients, die Identität des Endbenutzers auf der Grundlage der von einem Autorisierungsserver durchgeführten Authentifizierung zu überprüfen und grundlegende Profilinformationen über den Endbenutzer auf interoperable und REST-ähnliche Weise zu erhalten. OpenID Connect ermöglicht es Clients aller Art, einschließlich webbasierter, mobiler und JavaScript-Clients, Informationen über authentifizierte Sitzungen und Endbenutzer anzufordern und zu erhalten.
Anzeige
Fehlerhafte Implementierung legt Zugänge offen
Ein Sicherheitsforscher hat sich dann eine der bekanntesten Online-Banking-Anwendungen vorgenommen (die Bank wird aus Sicherheitsgründen nicht genannt, wegen der nationalen ID tippe ich auf ein US-Institut). Deren Online-Banking-Zugang ermöglicht für die Authentifizierung und Autorisierung von Benutzern per OAuth 2.0-Protokoll und OpenID Connect 1.0.
Der Autorisierungsserver der Bank akzeptiert eine Authentifizierungsanforderung, die Parameter enthält, die sowohl durch die OAuth 2.0- als auch durch die OpenID Connect 1.0-Spezifikationen definiert sind. Nutzer müssen Ihre Anmeldedaten, die sowohl Benutzername/nationale ID als auch Passwort enthalten, eingeben, um sich bei Ihrem Internet-Banking-Konto anzumelden. Wer bereits identifiziert und in der Bank registriert ist, kann sich mit Benutzername/nationaler ID und Passwort im Konto einloggen.
In Deutschland kommen dagegen andere Anmeldedaten für Banken zum Einsatz und die PSD-Richtlinie erfordert die zyklische Bestätigung der Authentifizierung durch eine generierte TAN.
Über den Weg "Passwort vergessen" versuchte der Sicherheitsforscher dann, ob er eine Authentifizierung ohne Anmeldedaten, nur mit OAuth 2.0/OpenID Connect 1.0 hin bekommt. Die Angabe seiner Mobilfunknummer klappte nicht, aber die Angabe seiner nationalen ID reichte aus, um Zugang zum Konto zu bekommen.
Eine unsachgemäße Implementierung des OAuth-Protokolls war der Grund für diese Sicherheitslücke. In diesem Fall wiest der Entwickler dem Benutzerkonto ein Zugriffstoken zu, bevor ein OTP (2FA-Code) an die Telefonnummer geschickt wird, um es zu überprüfen. Wenn sich die nationale ID des Opfers in der Datenbank befindet, wird sie durch OpenID authentifiziert, und der Benutzer wird mit einem Zugriffstoken im URL-Fragment zurück zur Anwendung umgeleitet.
Der Sicherheitsforscher hat dann eine nationale ID-Datenbank verwendet und einen praktischen Exploit geschrieben, um mehr als eine Million Bankkonten zu hacken. Der Fall wurde als Lehrbeispiel veröffentlicht, um zu zeigen, wie eine fehlerhafte Implementierung trotz OAuth 2.0-Protokoll und OpenID Connect 1.0. eine große Sicherheitslücke aufreißt. Details sind in diesem Artikel abrufbar.
Ich denke hier vor allem um die Öffnung der Bankkonten durch die PSD2 im Hinblick auf die Datenanalyse durch Drittanbieter. Bisher hatten deutsche Banken gute Sicherheitsmechanismen. Durch die Öffnung für Dritt-Applikationen per PSD2-Schnittstellen muss da eventuell genauer hingeschaut werden. Zumindest bleibt bei mir ein absolut mulmiges Gefühl, wenn ich gezwungen wäre, irgendwelcher obskuren Software oder Banking-Apps den Zugang zu meinen Bankkonten zu gewähren.
Anzeige