Über offene Firmendatenbanken wird gerade von heise online und einigen anderen Medien berichtet. Hintergrund sind MongoDB Installationen, welche (weitgehend) die Standardkonfiguration verwendet und öffentlich über das Internet erreichbar sind.

Meiner Ansicht nach gibt es für dieses Problem drei Personengruppen, welche in unterschiedlichem Ausmaß hierfür verantwortlich sind. Auf diese möchte ich nachfolgend, zumindest grob, eingehen.

Administratoren

Administratoren von IT Systemen sind zuständig für die Wartung und Inbetriebnahme von Computersystemen, was sowohl Hardware als auch Software umfasst. Organisationen erwarten das ein Administrator IT Systeme so betreut, dass die Ziele der Organisation nicht gefährdet werden. Aus diesem einfachen Grundsatz lassen sich Themen wie Datenschutz, Ausfallsicherheit und einige andere herleiten.

Ein Administrator, welcher eine Software öffentlich zugänglich macht handelt, meiner Ansicht nach grob fahrlässig, und damit gegen die Ziele der eigenen Organisation. Zumindest unter Ubuntu ist MongoDB nämlich nicht öffentlich erreichbar, dies muss erst manuell über eine Konfigurationsänderung aktiviert werden.

Ausgenommen von dieser Regel sind natürlich Dienste, welche öffentlich erreichbar sein müssen, hierzu gehört zum Beispiel der Webserver oder ein Mailserver. Doch bei diesen Diensten gehört eine zusätzliche Absicherung gegen Angriffe zum Aufgabenfeld des Administrators.

Distributoren

Distributoren übernehmen die Aufgabe Software für den Anwender (Administratoren sind auch nur Anwender, alles eine Frage per Perspektive) bereitzustellen. Auf diese Art ist nicht jeder Computerbesitzer darauf angewiesen, sein komplettes Betriebssystem aus den Quellen der Entwickler händisch zu bauen.

Einige Distributionen gehen schon länger dazu über, dem Anwender auch weitere Aufgaben abzunehmen. Eine dieser zusätzlichen Aufgaben ist das Standardmäßige aktivieren von installierten Diensten, etwas das ich nach wie vor für grundsätzlich falsch halte. Jeder aktive Dienst erhöht die Angriffsfläche für ein System, wie stark ist abhängig vom jeweiligen Dienst.

In meinem Blog habe ich hierzu schon 2012 etwas geschrieben. Ich stehe nach wie vor zu den damals getätigten Aussagen.

Entwickler

Die letzte, aber nicht weniger wichtige, Gruppe bilden die Entwickler einer Software. Diese Treffen wichtige Entscheidungen über die Sicherheit einer Software, z.B. ob Verschlüsselung und Authentifizierung im Standard aktiv oder überhaupt deaktivierbar sind.

Ich bin der Überzeugung, dass es falsch ist, Software anzubieten, welche ohne Verschlüsselung und Authentifizierung auskommt. Bei vielen Anwendern und Administratoren siegt viel zu oft die Bequemlichkeit, Sicherheit kommt erst an zweiter Stelle oder wird nachgelagert erledigt, wenn gerade jemand (der Azubi?) etwas Zeit übrig hat.

Eine Standardmäßige aktive und nicht deaktivierbare Authentifizierung hätte das aktuelle MongoDB Problem zumindest entschärft, was an der ein oder anderen Stelle sicherlich viele Millionen Kundendaten "gerettet" hätte.

Entwickler sollten auch sonst in ihrer Konfiguration von einem sicheren Setup als Standard ausgehen, d.h. Benutzerwechsel im Service, Erreichbarkeit nur über localhost und dergleichen.

tl;dr

Machen wir es kurz:

  • Administratoren sollten genau Aufpassen was installiert wird, und wie es geeignet gegen Angriffe oder unerlaubte Zugriffe zu schützen ist.
  • Distributoren sollten endlich damit aufhören Dienste im Standard zu aktivieren, zumindest eine kleine Nachfrage bei der Installation kann wirklich nicht zu viel verlangt sein.
  • Entwickler sollten standardmäßig auf Verschlüsselung und Authentifizierung setzen, eine Option zum deaktivieren sollte entfernt werden.

Natürlich lösen diese wenigen (aber effektiven) Maßnahmen nicht alle Probleme, ein ungeübter Benutzer (um es mal neutral zu formulieren) wird immer Mittel und Wege finden, etwas unsicher zu machen. Der Standard sollte es aber sein, Dinge in einem sicheren Zustand auszuliefern.