Bitwarden: Schwächen bei Sicherheit und Datenschutz

Bitwarden ist eine Open-Source-Lösung für die Verwaltung von Passwörtern bzw. Zugangsdaten. Entweder man erstellt ein Online-Konto in der Bitwarden-Cloud oder kann Bitwarden auf der eigenen Infrastruktur hosten – gerade für Teams, die sich diverse Zugangsdaten teilen, mag dies interessant sein. Nach einer kurzen Stichprobe muss ich allerdings sagen: Von der Sicherheit und auch dem Datenschutz der Lösung bin ich persönlich nicht überzeugt.

Update

06.07.2020: Mittlerweile haben die Entwickler von Bitwarden nachgebessert. Unter anderem wird die Quelle der JavaScripts nun mittels Subresource Integrity (SRI) auf eine potenzielle Manipulation bzw. Veränderung geprüft. Leider sind auch noch in Version 2.5.0 der Android-App zwei Tracker (Google Firebase Analytics, Microsoft Appcenter Crashes) enthalten.  Datenschutzsensible Nutzer können die Android-App allerdings auch über F-Droid beziehen – in einem GitHub-Beitrag sind zwei Quellen angegeben. Mittlerweile habe ich Bitwarden in die Empfehlungsecke aufgenommen – inklusive einiger Hinweise, was dabei zu beachten ist.

Die Passwort-Datenbank von Bitwarden lässt sich über einen Desktop-Client, App oder Webbrowser aufrufen. Nach der korrekten Eingabe des Master-Passworts werden die Online-Zugänge bzw. Passwörter einsehbar.

Webinterface: Problematisch ist allerdings, dass die Ver- und Entschlüsselung der Passwort-Datenbank mittels JavaScript erfolgt. JavaScript und Sicherheit sind zwei Größen, die sich gegenseitig eigentlich ausschließen – über diese Aussage lässt sich natürlich trefflich streiten. Darüber könnte man vielleicht ja noch hinwegsehen, allerdings nicht über die Einbindung von JavaScript-Code von fremden Domains, in den Kontext der hochsensiblen Umgebung – wir verwalten hier immerhin Passwörter, nicht vergessen!

Die Content-Security-Policy des Bitwarden-Webinterfaces ist folgendermaßen aufgebaut:

Content-Security-Policy: 
default-src 'self'; 
script-src 'self' https://js.stripe.com https://js.braintreegateway.com https://www.paypalobjects.com; 
style-src 'self' 'unsafe-inline' https://assets.braintreegateway.com https://*.paypal.com; img-src 'self' data: https://icons.bitwarden.net https://*.paypal.com https://www.paypalobjects.com https://q.stripe.com https://haveibeenpwned.com https://www.gravatar.com; 
child-src 'self' https://js.stripe.com https://assets.braintreegateway.com https://*.paypal.com https://*.duosecurity.com; 
frame-src 'self' https://js.stripe.com https://assets.braintreegateway.com https://*.paypal.com https://*.duosecurity.com; 
connect-src 'self' wss://notifications.bitwarden.com https://notifications.bitwarden.com https://cdn.bitwarden.net https://api.pwnedpasswords.com https://twofactorauth.org https://api.stripe.com https://www.paypal.com https://api.braintreegateway.com https://client-analytics.braintreegateway.com https://*.braintree-api.com; 
object-src 'self' blob:;

Insbesondere die Zeile script-src stimmt nachdenklich, da unter anderem das Nachladen von JavaScript aus Drittquellen erlaubt ist, ohne die Quelle mit keinem kryptografischen Hash bzw. Subresource Integrity (SRI) auf eine Veränderung zu prüfen. Mit jeder Ressource, die Bitwarden in den Kontext des Web-Interfaces einbindet, geht die Seite eine Vertrauensbeziehung mit der jeweiligen Quelle bzw. Domain ein. Das bedeutet wiederum auch, dass die eigentliche Kontrolle über die ausgelieferte Ressource allein beim Drittanbieter liegt. Wird der Drittanbieter allerdings in irgendeiner Form kompromittiert bzw. gehackt, kann das unter Umständen dazu führen, dass der Angreifer die auszuliefernde Ressource gegebenenfalls modifiziert und dass beispielsweise statt eines schadlosen ein schadhafter JavaScript-Code an den Nutzer ausgeliefert wird.

Android-App: In der Android-App (Version 1.21.0) sind zudem drei Tracker integriert:

  • Google Analytics
  • Google Firebase Analytics
  • HockeyApp

In einer Praxisprüfung konnte ich zwei dieser Tracker entdecken. Unmittelbar nach dem Öffnen der App werden Daten an Google Analytics und Google Firebase Analytics übermittelt – ganz gleich, ob der Nutzer dem zugestimmt hat oder nicht. Während man hinter Google Firebase Analytics vielleicht noch ein Versäumnis bei der Deaktivierung vermuten kann, wurde der Google Analytics Tracker bewusst integriert. In einem App-Kontext, der solch sensible Daten wie Passwörter verwaltet, haben Tracker im Grunde genommen nichts verloren – solche »Fehler« sind für mich schwer nachvollziehbar. Immerhin lässt sich das Tracking über die Optionen deaktivieren.

Insgesamt hinterlässt diese kurze Stichprobe bei mir ein ungutes Gefühl. Bitwarden ist zwar Open-Source, hat nach meiner Auffassung allerdings noch Nachholbedarf bei Sicherheit als auch Datenschutz.

Du kannst den Blog aktiv unterstützen! Mitmachen ➡