Menü
Alert!
Security

Lotus Notes legt Benutzerpasswort offen [Update]

Von
vorlesen Drucken Kommentare lesen 113 Beiträge

Lotus Notes hat ab Version 5 eine Debug-Funktion, die dazu geeignet ist, beim Wechseln des Benutzerpasswortes eine Datei mit dem neuen Passwort im Klartext zu schreiben. Diese Funktion dient eigentlich dazu, die Bewertung der Passwortgüte transparent zu machen. Trägt man in der Konfigurationsdatei Notes.INI zwei zusätzliche Zeilen ein, so protokolliert Notes die Bewertung:

KFM_ShowEntropy=1<br /> Debug_Outfile=c:\testvowe.txt

Beim nächsten Passwortwechsel erstellt Notes die Datei mit folgendem Inhalt:

testvowe_TLANB_2007_07_18@17_07_33.txt<br /> 18.07.2007 17:07:36 Lotus Notes client started<br /> 18.07.2007 17:07:47 Index update process started<br /> Entering SpellCheckInit<br /> entropy.c SpellCheckAccess Get 13A834 0<br /> Initializing spell checking code<br /> SPELLInitialize succeeded; spell checking DLL loaded<br /> SPELLInitMainDict succeeded<br /> SPELLInitUserDict succeeded<br /> Password Entropy: spell checking code initialized<br /> SpellCheckInit succeeded<br /> Bytes per char: 1<br /> Distribution base multiplier: 6<br /> Resulting entropy limit: 60<br /> [c]alp[c]: 0<br /> [c]alp[t]: 0<br /> [-]alp-s[-]: 18<br /> [t]nalp-s[t]: 18<br /> [t]alp[e]: 18<br /> [t]alp[s]: 18<br /> [t]alp[t]: 18<br /> Testing word: [test]<br /> Searching for [test]<br /> Found [test], worth 12 bits<br /> [2]alp-s[2]: 36<br /> [2]nalp[3]: 42<br /> [2]nalp[4]: 48<br /> Entropy as determined by the state machine: 48<br /><br /> Entropy Limit: 60<br /> Current Entropy: 48<br /> Final Entropy: 48<br /><br /> Final Entropy: 48 bits, 12 chars<br /> entropy.c SpellCheckAccess Put 422EB60 F01069BD

Das Passwort findet sich in den Zeilen nach "Resulting entropy limit: 60" jeweils als Einzelbuchstaben in eckigen Klammern: ct-test234.

Da die Datei Notes.INI auf der Festplatte des Benutzers manipuliert werden muss, benötigt man zunächst einen physischen Zugang zum Rechner. Es gibt jedoch eine Reihe von Möglichkeiten innerhalb von Notes, diese Datei zu manipulieren. Diese lassen sich zugleich als Abwehrmaßnahme gegen diese Schwachstelle nutzen:

  1. Seit Notes 7 können Einstellungen in der NOTES.INI über Workstation Policies vorgenommen werden. Auf diesem Wege läßt sich die Einstellung "KFM_ShowEntropy=0" erzwingen.
  2. In Notes 6 gibt es eine undokumentierte Möglichkeit, die gleiche Einstellung vorzunehmen. Dazu muss das Policy-Dokument um ein Feld mit dem Namen $PrefKFM_ShowEntropy mit dem Wert 0 erweitert werden.
  3. Alternativ kann die Einstellung über dieses kurze Lotuscript gesetzt werden:

    Dim s As New NotesSession<br /> Call s.SetEnvironmentVar("KFM_ShowEntropy","0", true)

    Lädt man dieses Skript automatisch beim Öffnen der Maildatenbank aller Benutzer, so wird diese Einstellung jedesmal erneut vorgenommen. Siehe dazu auch dieses Support-Dokument von IBM.

Notes schützt mit dem Passwort den Zertifikatspeicher Notes.ID, den jeder Benutzer zur Authentisierung gegenüber Notes nutzt. Diese Datei wird mit dem Benutzer-Passwort ver- beziehungsweise entschlüsselt. Notes.ID speichert mit den Notes-Zertifikaten auch die privaten Schlüssel des Benutzers sowie gegebenenfalls X.509-Zertifikate. Es ist deshalb eminent wichtig, dass niemand gleichzeitig eine Kopie von Passwort und Notes.ID anfertigt. Sollte jemand die Logdatei und die Notes.ID gleichzeitig in Besitz nehmen, kann er sich jederzeit gegenüber Notes ausweisen.

Auch wenn sich der Missbrauch dieser Debug-Funktion durch administrative Eingriffe weitgehend ausschließen lässt, so ist ein Notes-Administrator mit geeigneten Rechten in der Lage, die Passwörter aller Benutzer auszuspähen.

Anders als etwa bei Windows ist es für den Notes-Administrator nicht möglich, ein vergessenes Passwort zurückzusetzen, da es nur für die Entschlüsselung der Notes.ID benötigt wird. Einige Notes-Kunden haben deshalb aufwändige Lösungen, die Passwort-Änderungen zentral ablegen, eine Wiederherstellung von Passwörtern aber nur mittels eines Vieraugenprinzips in Zusammenarbeit von Administration und Revision ermöglichen. Diese Sicherheit wird durch die Debug-Funktion unterlaufen.

Update:
In einer Antwort auf die Veröffentlichung durch heise Security bestätigt IBM das Problem. Allerdings stuft man das Risiko als gering ein, weil ein Angreifer zunächst Zugriff auf die Workstation des Benutzers benötige. Das Dokument geht dabei allerdings nicht auf die zahlreichen Möglichkeiten von Notes ein, den Desktop remote zu administrieren. Dies lässt sich nur dann zuverlässig verhindern, wenn von allen möglichen Zugriffschutzmechanismen (ECL = Execution Control Lists) Gebrauch gemacht wird. Dies ist erfahrungsgemäß häufig nicht der Fall. IBM verspricht allerdings, den fragwürdigen Parameter in Notes 7.0.3 und Notes 8.0 sowie in allen zukünftigen Version von Lotus Notes zu entfernen. (vowe)