Bundesamt für Sicherheit in der Informationstechnik

M 4.457 Sichere Mandantentrennung bei Webanwendungen und Web-Services

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

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:

  • Die Trennung der Datenbestände verschiedener Mandanten darf nicht nur rein applikationsseitig umgesetzt werden, sondern muss nach Möglichkeit durch eine logisch getrennte Datenhaltung mit separaten Datenbank-Accounts für den Zugriff und entsprechend eingeschränkten Berechtigungen unterstützt werden.
  • Bei erhöhtem Schutzbedarf sind ergänzend Möglichkeiten zur mandantenspezifischen Verschlüsselung zu prüfen und nach Bedarf umzusetzen. Dabei muss sichergestellt werden, dass der Zugriff auf die erforderlichen kryptografischen Schlüssel nur den jeweils Berechtigten möglich ist (clientseitige Kryptierung). Eine solche Lösung ist insbesondere erforderlich, wenn ein Zugriff auf Datenbestände durch Administratoren des Diensteanbieters sicher ausgeschlossen werden muss.
  • Die Zuordnung von Benutzern zu ihrem Mandanten muss manipulationssicher realisiert werden (durch eine entsprechende, nach Mandanten getrennte Benutzerverwaltung oder geeignete Kriterien für die automatisierte Zuordnung von Benutzern zu Mandanten, zum Beispiel auf der Grundlage von Zertifikaten).
  • Die Mandantentrennung muss durchgängig umgesetzt werden. Dies betrifft externe Schnittstellen, aber auch Verfahren zur Datensicherung (Möglichkeit zur getrennten Rücksicherung der Mandantendaten). Auch die Protokollierungsmechanismen müssen so gestaltet sein, dass eine mandantenspezifische Auswertung oder Bereitstellung von Logdateien möglich ist.
  • Das gewählte Konzept zur Mandantentrennung muss in der Dokumentation nachvollziehbar beschrieben sein. Im Rahmen von regelmäßigen Audits und Penetrationstests muss die Wirksamkeit der Mandantentrennung im Prüfumfang berücksichtigt werden.

Prüffragen:

  • Sieht das Konzept Maßnahmen vor, die über eine rein applikationsseitig realisierte Mandantenzuordnung hinausgehen, um auszuschließen, dass einfache Softwarefehler zu einem Zugriff auf Daten anderer Mandanten führen?

  • Erfolgt die Zuordnung von Dienstnutzern zu Mandanten mit einem zuverlässigen und manipulationssicheren Verfahren?

  • Berücksichtigt das Konzept zur Mandantentrennung alle relevanten Aspekte (Dienstnutzung, Schnittstellen, Datensicherung, Protokollierung)?

  • Ist das umgesetzte Konzept zur Trennung von Daten verschiedener Mandanten nachvollziehbar dokumentiert? Entspricht die Umsetzung der Dokumentation?

  • Wird die Wirksamkeit der Mandantentrennung regelmäßig im Rahmen von Sicherheitsaudits oder Penetrationstests überprüft?

Stand: 14. EL Stand 2014