ACL-Handling zu komplex

Mangelnde Sicherheit bei Domino-Web-Servern

22.10.1999
Lotus verkauft Domino als sicheren Web-Server. Auch wenn die Technologie dafür durchaus gerüstet ist, verspielt der Hersteller leichtfertig dessen Möglichkeiten durch ungeeignete Standardeinstellungen. Volker Weber* beschreibt das Problem und hat dabei festgestellt, daß Lotus pikanterweise selbst ins eigene Messer läuft, wie die Website "www.emea.lotus. com" zeigt.

Der Zugriff eines Web-Browsers auf einen Domino-Server wird durch eine ganze Reihe von Parametern kontrolliert, die im Domino Directory und in den Zugriffskontroll-Listen (ACL = Access Control List) jeder einzelnen Datenbank festgelegt sind. Wenn eine Datenbank neu angelegt wird, dann erbt sie die ACL der Schablone, von der sie gezogen ist. Sind die Standardeinstellungen der Schablone schlecht gewählt, dann ist diese Datenbank zunächst ungesichert; der Zugriff muß vom Administrator nachträglich eingeschränkt werden.

Als erste Sicherungsmaßnahme verbietet man das sogenannte Directory Browsing. Damit wird verhindert, daß ein Außenstehender beziehungsweise Angreifer durch einfaches Anhängen von "/?open" an die URL des Servers ein Verzeichnis aller Datenbanken präsentiert bekommt. Eine ganze Reihe wichtiger Systemdatenbanken tragen bei Domino allerdings unveränderliche Namen. Sie werden zudem automatisch erzeugt und entgehen manchem Administrator deshalb bei der Einrichtung geeigneter ACLs. Dazu gehören zum Beispiel das Directory "Names.nsf", die Logdatei "Log.nsf" oder der Datenbankkatalog "Catalog.nsf".

Mit dem aktuellen Release 5 des Domino Servers hat Lotus nun einige Veränderungen vorgenommen, die das Risiko eines Sicherheitsloches noch einmal erhöhen. Der Datenbankkatalog wird aus der Schablone "Catalog.ntf" erzeugt, die für jedermann Autorenrechte vorsieht. Hängt der Angreifer nun an die URL "/cata log.nsf?opendatabase" an, dann erhält er ein komfortables Verzeichnis aller Datenbanken des Servers. Im Bemühen, dem Administrator einen Überblick über alle ACLs zu geben, hat Lotus nun auch noch eine Ansicht in den Katalog eingebaut, mit der man anschauen kann, welche Datenbanken ungeschützt sind. Der Benutzer erfährt auf diese Weise unmittelbar die Namen und damit die URLs aller potentiell sichtbaren Datenbanken. Dummerweise kann ein Administrator in Release 5 nicht einmal mehr beschließen, daß bestimmte Datenbanken nicht aufzuführen sind. Im Gegensatz zu Version 4.x werden nun stets alle Datenbanken aufgenommen.

Die Installationsroutine von Domino R5 schlägt zur Vermeidung dieser Sicherheitslöcher vor, in alle Datenbanken und Datenbankschablonen einen Eintrag für "Anonymous=No Access" aufzunehmen. Das ist ein guter Anfang, da alle neu angelegten Datenbanken automatisch gegenüber anonymen Zugriffen von Web-Browsern abgesichert sind: Es erscheint zunächst eine Paßwortabfrage. Der Administrator wähnt sich dadurch in relativ großer Sicherheit. Sobald man jedoch eines der regelmäßig veröffentlichten Bugfixes einspielt, besteht das Risiko, daß die geeignet angepaßte Schablone wieder überschrieben wird. Ab dem QMR 5.02 (QMR = Quarterly Mainte- nance Release) will Lotus diese Standardwerte verbessern - man darf gespannt sein.

Der Domino Administrator R5 erlaubt nun erstmals, einen ACL-Eintrag in eine Auswahl von Datenbanken einzufügen. Auf diese Weise lassen sich sozusagen in einem Rutsch alle Datenbanken auf die richtigen Werte setzen. Leider ist an dieser Stelle nicht zu erkennen, welche Datenbanken ungesichert sind. Erst ein Blick in den erwähnten Datenbankkatalog verschafft die nötige Einsicht, wobei auch hier keine Möglichkeit besteht, die von der ACL abweichenden Regelungen zu erkennen, so etwa die besondere Begrenzung für Web-User. Dazu muß man wieder die einzelne Datenbank prüfen. Mit genügend großem Aufwand und sorgfältiger Überwachung ließe sich also sehr wohl eine sichere Website unterhalten, in der Fremde nicht nach Belieben herumstöbern können. Aber daran scheitert offensichtlich sogar Lotus (siehe Bild).

Was bei Lotus fehlt, ist eine auf Policies basierende Sicherheit, über die der Administrator für seine Zugriffsdefinitionen genau andersherum verfahren könnte. Statt jede Datenbank einzeln anzufassen, wäre eine zentrale Regel für "Kein anonymer Zugriff auf irgendeine Datenbank, mit folgenden Ausnahmen ..." viel besser geeignet. Es gibt Tools von Drittanbietern, etwa "Server Admin Plus" von Percussion Software, die solche Policies unterstützen.

*Volker Weber ist Fachjournalist in Darmstadt.