Anzeige

Am Puls von Microsoft

Anzeige

KeePass erlaubt stillen Klartext-Export der Passwörter – laut Entwickler keine Sicherheitslücke

DrWindows

Redaktion
KeePass erlaubt stillen Klartext-Export der Passwörter – laut Entwickler keine Sicherheitslücke
von Martin Geuß
Keepass Logo


Sicherheitsforscher haben einen Angriff auf den populären Open Source Passwortmanager KeePass öffentlich gemacht, über den die gesamte Datenbank im Klartext exportiert werden kann, ohne dass der Nutzer etwas davon bemerkt. Die Entwickler weigern sich, dies als Sicherheitslücke anzuerkennen, und die Argumentation ist sogar nachvollziehbar.

Die strittige Schwachstelle ist als CVE – CVE-2023-24055 dokumentiert. Ein Angriff erfolgt, in dem die KeePass XML-Konfigurationsdatei so manipuliert wird, dass beim nächsten Öffnen der Datenbank und Eingabe des Masterpassworts ein stiller Export aller in der Datenbank gespeicherter Daten im Klartext erfolgt. Angreifer können diese Datei anschließend abgreifen und haben somit Zugriff auf alle sensiblen Informationen.

Die Entwickler wollen das allerdings nicht als Sicherheitslücke verstanden wissen und verweisen darauf, dass ein Angreifer einerseits Schreibzugriff auf die Konfigurationsdatei benötigt und anschließend auch die exportierte Datei stehlen muss. KeePass könne in einer unsicheren Umgebung nicht auf wundersame Weise sicher ausgeführt werden, heißt es. Ein Argument, dem man sich nicht verschließen kann.

Abhilfe wäre dennoch möglich und vielleicht auch angeraten. So gibt es beispielsweise den Vorschlag, einen „stillen Export“ nicht mehr zuzulassen, sondern grundsätzlich einen Bestätigungsdialog einzublenden. Andere Nutzer empfehlen, diese Funktion einfach komplett zu entfernen oder in der Konfig-Datei einen Exportschutz zu hinterlegen, der nur durch Eingabe des Masterpassworts wieder aufgehoben werden kann.

Es gibt allerdings auch die Möglichkeit, eine abgesicherte Konfiguration für KeePass einzurichten, das wird beispielsweise von Administratoren verwendet, um bestimmte Einstellungen in KeePass vorzugeben bzw. zu sperren. Ist diese aktiv, so geht auch der oben beschriebene Angriff ins Leere, weil lokale Konfig-Dateien übergangen werden.


Hinweis: Der Artikel wird möglicherweise nicht vollständig angezeigt, eingebettete Medien sind in dieser Vorschau beispielsweise nicht zu sehen.

Artikel im Blog lesen
 
Anzeige
Warum so kompliziert? Das Programm ist in .NET geschrieben, einfach eine .NET Anwendung selber schreiben welche mit Assembly.Load die KeyPass Exe läd und dann kann man alles mitlesen und die DB sogar nach Herzenslust verändern, kopieren usw.
P.S. und selbst das halte ich nicht für ein Sicherheitsrisiko weil auch hier der Verschlüsslungkey erstmal vorhanden sein muss, aber natürlich kann man das als Trojaner benutzen.
 
Die Argumentation der Entwickler kann ich ebenfalls nachvollziehen. Sollte ein System derart kompromittiert sein, dann hat man ganz andere Probleme. Trotzdem frage ich mich, warum es eine derartige Exportfunktion der Datenbank im Klartext überhaupt gibt. Das leuchtet mir nicht ganz ein.
 
Zuletzt bearbeitet von einem Moderator:
Und wieso sollte das mit der angepassten xml datei viel besser sein.
wegen den adminrechten die es 96% der privatuser haben mit dem aktiven account?
 
Inspiriert durch den Artikel und die Kommentare habe ich mir mal das KeePass-Verzeichnis im Windows-Explorer angeschaut und :sick: o_O :eek:

Klartext Zugangsdaten.png


In dieser Database.kdb.csv sind alle Zugangsdaten und ggf. Notizen aus KeePass im Klartext zu lesen. Ich selbst habe diese Datei nicht (oder nicht bewusst) erzeugt.

Wie gut, daß ich mir oft Notizen mache. Die zum Dateidatum passende Notiz lautet:
"22.09.2021 17:11 Keepass 2.49 Portable in Stickware, database.kdb importiert zu database.kdbx, Verknüpfung ausgetauscht."

Ich erinnere das so, daß ich aus dem frisch gestarteten KeePass 2.49 den Import per Mausklick ausgelöst hatte, ohne Umweg.csv oder so. Das Programm selbst scheint als Zwischenschritt dieses csv-File erstellt zu haben. Und dann nicht gelöscht!

Um alles muss man sich selbst kümmern :mad:
 
. . . . . Ich erinnere das so, daß ich aus dem frisch gestarteten KeePass 2.49 den Import per Mausklick ausgelöst hatte, ohne Umweg.csv oder so. Das Programm selbst scheint als Zwischenschritt dieses csv-File erstellt zu haben. Und dann nicht gelöscht! . .
Ich habe mit meiner aktuellen Keepass 2 Installation die Kdbx Datenbank gesichert (ist sowieso immer auf dem NAS und von dort mit anderen PC im Netz abgeglichen), und dann eine neu Kdbx erzeugt und von der Jahre alten Kdb Datenbank importiert, dabei wurde keine csv Datei generiert.
Mit der portablen Installation das gleiche Ergebnis. Wie die csv Datei bei @calzone entstanden sein soll ist mir ein Rätsel, außer der Export wurde direkt ausgelöst.
DerDolli
 
Die Argumentation der Entwickler kann ich ebenfalls nachvollziehen. Sollte ein System derart kompromittiert sein, dann hat man ganz andere Probleme. Trotzdem frage ich mich, warum es eine derartige Exportfunktion der Datenbank im Klartext überhaupt gibt. Das leuchtet mir nicht ganz ein.
Ich kann diese Argumentation der Entwickler auch nachvollziehen, sie trifft aber nicht den Punkt. Wenn mein Rechner kompromiert ist, habe ich sicher ein Problem. So weit, so gut. Aber wenn der Angreifer dann auch noch (von mir unbemerkt) alle meine Zugangsdaten für Onlinebanking etc. besitzt, habe ich sehr bald auch kein Geld mehr auf meinem Bankkonto...

Habe ich das richtig verstanden, dass ein Angreifer nur dann an die Export-Datei kommt, wenn ICH die Passwort-Datei / Datenbank mittels Kennwort öffne (und er natürlich vorher unbemerkt die config-Datei geändert hat)?

Das ist für mich deshalb wichtig, weil ich KeyPass als Portable inklusive der Passwort-Datenbank auf einem USB-Stick gespeichert habe. Wenn ich diesen Stick verliere (was tatsächlich schon einmal passiert ist... Schande über mich), sollte der Finder dann ja trotzdem nichts damit anfangen können?
 
In einem der Kommentare bei @gborn wurde keepassxc als alternative erwähnt, es soll über die hier problematischen Hooks nicht verfügen. Dieses Programm kann bestehende Keepass-Dateien öffnen. Die Linux-Version habe ich bereits länger im Einsatz.
Wenn man pedantisch ist, kann man in der portablen Version die ini-Datei vor dem ersten Öffnen schreibschützen. Dann wird noch nicht mal die Lage der relevanten Keepass-Datei gespeichert.
 
Habe ich das richtig verstanden, dass ein Angreifer nur dann an die Export-Datei kommt, wenn ICH die Passwort-Datei / Datenbank mittels Kennwort öffne (und er natürlich vorher unbemerkt die config-Datei geändert hat)?
Ja, so habe ich das zumindest auch verstanden. Solltest du nur deine Datenbank verlieren und jemand kommt an diese, dann kann er oder sie damit ohne Passwort nichts anfangen. Zusätzlich zum Masterpasswort kann übrigens auch noch ein Key generiert werden, der gesondert von der Datenbank auf einem anderen Medium gespeichert werden sollte. Dann braucht der "Finder" nicht nur dein Passwort, sondern auch noch deinen Key. Den Key solltest du allerdings gut verwahren und nicht verlieren, weil du dann selbst nicht mehr an die Datenbank kommst. Ich habe den einmal auf einem USB-Stick zum täglichen Gebrauch, einmal auf einer externen Festplatte und beides zusammen nochmal im Schließfach einer Bank. Mag übertrieben klingen, aber an der Datenbank hängt schließlich mein komplettes digitales "Leben".

Das hier beschriebene Szenario bezieht sich ja darauf, wenn dein PC komprimiert ist und der Angreifer oder die Angreiferin umfangreiche Rechte besitzt. Dann, wie schon gesagt, hast du aber ein grundsätzliches und sehr großes Problem. Dann ist alles unsicher, was auf deinem PC läuft.
 
Zuletzt bearbeitet:
In einem der Kommentare bei @gborn wurde keepassxc als alternative erwähnt, es soll über die hier problematischen Hooks nicht verfügen. Dieses Programm kann bestehende Keepass-Dateien öffnen. Die Linux-Version habe ich bereits länger im Einsatz.
Wenn man pedantisch ist, kann man in der portablen Version die ini-Datei vor dem ersten Öffnen schreibschützen. Dann wird noch nicht mal die Lage der relevanten Keepass-Datei gespeichert.
Vielen Dank für den guten Tipp. Ich habe mir KeePassXC mal als Alternative zu KeePass angeschaut, und zumindest auf den ersten Blick habe ich dort nicht solche "Trigger"-Einfalls-Tore gesehen (siehe Trigger Examples - KeePass). Dieses wird durch die Aussage in Warning - An attacker who has write access to the KeePass configuration file can modify it and inject malicious triggers auch gestützt. Und spielentscheidend für mich ist, dass KeePassXC den übersichtlicheren Eindruck macht UND die existierende Passwort-Datenbank öffnen kann - wie Du ja bereits erwähnt hast -, es also keinen Portierungs-Aufwand gibt. Ich werde KeePassXC jetzt erstmal einige Zeit testen.
 
Zuletzt bearbeitet:
Ja, so habe ich das zumindest auch verstanden. Solltest du nur deine Datenbank verlieren und jemand kommt an diese, dann kann er oder sie damit ohne Passwort nichts anfangen. Zusätzlich zum Masterpasswort kann übrigens auch noch ein Key generiert werden, der gesondert von der Datenbank auf einem anderen Medium gespeichert werden sollte. Dann braucht der "Finder" nicht nur dein Passwort, sondern auch noch deinen Key. Den Key solltest du allerdings gut verwahren und nicht verlieren, weil du dann selbst nicht mehr an die Datenbank kommst. Ich habe den einmal auf einem USB-Stick zum täglichen Gebrauch, einmal auf einer externen Festplatte und beides zusammen nochmal im Schließfach einer Bank. Mag übertrieben klingen, aber an der Datenbank hängt schließlich mein komplettes digitales "Leben".

Das hier beschriebene Szenario bezieht sich ja darauf, wenn dein PC komprimiert ist und der Angreifer oder die Angreiferin umfangreiche Rechte besitzt. Dann, wie schon gesagt, hast du aber ein grundsätzliches und sehr großes Problem. Dann ist alles unsicher, was auf deinem PC läuft.
Dann sind wir ja schon zwei, die das so verstanden haben ;). Danke für Deine Einschätzung und die Tipps.
 
Ich habe mit meiner aktuellen Keepass 2 Installation die Kdbx Datenbank gesichert (ist sowieso immer auf dem NAS und von dort mit anderen PC im Netz abgeglichen), und dann eine neu Kdbx erzeugt und von der Jahre alten Kdb Datenbank importiert, dabei wurde keine csv Datei generiert.
Mit der portablen Installation das gleiche Ergebnis. Wie die csv Datei bei @calzone entstanden sein soll ist mir ein Rätsel, außer der Export wurde direkt ausgelöst.
DerDolli

@DerDolli hat Recht. Ich habe es eben auch noch mal durchgespielt. Ich selbst muss den csv-Export ausgelöst haben, aus der Version 1.27 heraus.
War ich besoffen? Und das schon um 17:00 Uhr?

🥴
 
Vorschlag (Kurzform):

-Keepass portable offline auf Stick "installieren" einschließlich .kdbx
und Key-File.
-Keepass offline starten.
-Stick mit Keepass-Daten abziehen.
- Keepass online verwenden.
(alle Kennwörter sind verfügbar, manipulierbare Programmdateien nicht).

Deal?
 
Kommt drauf an, wo sich der Stick befindet.
Ausserdem gibt es noch das Masterpassword. Und ausserdem ist es nur eine Kurzform.
 
Klar, nur wenn sich der Key und die Datenbank auf dem gleichen Stick befinden, dann kannst du dir den Key auch gleich sparen. ;)
 
Anzeige
Oben