M 4.457 Sichere Mandantentrennung bei Webanwendungen und Web-Services

Verantwortlich für Initiierung: Leiter IT, Verantwortliche der einzelnen Anwendungen

Verantwortlich für Umsetzung: Administrator, Entwickler

Wird ein Web-Service von mehreren, voneinander unabhängigen Anwendern ("Mandanten") gemeinsam genutzt, so müssen Maßnahmen umgesetzt werden, die verhindern, dass ein Anwender versehentlich oder missbräuchlich auf die Daten eines anderen Mandanten zugreift (siehe G 4.94 Unbefugter Zugriff auf Daten eines anderen Mandanten bei Webanwendungen und Web-Services).

Zur Trennung der Datenbestände sind verschiedene Verfahren möglich, die einzeln oder kombiniert zum Einsatz kommen können:

Applikationsseitige Trennung

Der Programmcode der Anwendung entscheidet bei der Ausführung einer Programmfunktion, welche Daten für welchen Benutzer zugänglich sind, indem zum Beispiel ausschließlich vom Benutzer selbst angelegte Datensätze angezeigt werden oder die Datensätze ein bestimmtes Mandantenkennzeichen enthalten, das von der Anwendung ausgewertet wird. Hier ist die Gefahr eines ungewollten Zugriffs auf Daten anderer Mandanten besonders hoch, da bereits ein Implementierungsfehler im Code oder eine fehlende Prüfung beim Direktaufruf von Funktionen entsprechende Daten offenlegen kann.

Trennung in der Datenhaltung

Bei dieser Realisierungsvariante werden die Daten verschiedener Mandanten in den eingesetzten Datenspeichersystemen getrennt vorzuhalten (zum Beispiel in verschiedenen logischen Datenbanken, verschiedenen Tabellen oder unterschiedlichen Zweigen im Verzeichnisdienstschema). Durch die Nutzung entsprechender mandantenspezifischer Accounts für den Datenzugriff und ein passendes Berechtigungskonzept kann dabei sichergestellt werden, dass jeweils nur mandanteneigene Daten gelesen oder verändert werden können. In diesem Szenario sind Zuordnungsfehler nur noch dann möglich, wenn der Fehler auch zu einer falschen Zuordnung des eingesetzten Datenbank-/Verzeichnisdienstaccounts führt.

Trennung der Umgebungen

Die Dienste verschiedener Mandanten werden auf verschiedenen virtuellen oder physischen Systemen angeboten. Beim Zugriff eines Anwenders wird sichergestellt, dass nur Dienste auf den Systemen des eigenen Mandanten erreichbar sind. Dies kann zum Beispiel durch ein entsprechendes Authentisierungsverfahren erreicht werden oder durch netzseitige Maßnahmen, die die verschiedenen Systeme nur aus dem Netz des jeweiligen Mandanten heraus erreichbar machen.

Mandantenspezifische Verschlüsselung

Zusätzlicher Schutz von unbefugten Zugriffen kann durch die verschlüsselte Ablage von Daten realisiert werden. Die Verschlüsselung kann dabei ganze Datenbankinhalte, alternativ aber auch nur einzelne sensible Datenfelder umfassen. Durch die Erzeugung, Nutzung und Vorhaltung der erforderlichen kryptographischen Schlüssel in den Systemen der Anwender wird ein Zugriff Dritter auf die jeweils eigenen Daten ausgeschlossen. Dieses Verfahren gewährleistet auch einen Schutz gegen die unbefugte Einsicht in Daten durch Administratoren des Diensteanbieters, erfordert aber entsprechend geeignete Strategien für das Schlüsselmanagement, insbesondere beim Verlust oder Wechsel von Schlüsseln. Weiterhin schränken Verschlüsselungsmaßnahmen auch die serverseitige Verarbeitung der Daten stark ein, so ist zum Beispiel ein Suchen oder Sortieren mit Mitteln des Datenbank-Managementsystems nicht mehr möglich.

Um eine Mandantentrennung sicher und wirksam umzusetzen, müssen die folgenden Punkte beachtet werden:

Prüffragen: