Hintergrundâ
Eine der am hÀufigsten gestellten Fragen unserer Kunden ist:
Wie sicher sind meine Daten in der Cloud?
Obwohl, oder auch gerade weil diese Frage sehr abstrakt ist, lohnt es sich, diese Frage aufzubrechen und als Einzelthemen genauer zu beleuchten, zu erlÀutern und zu beantworten - besonders im Hinblick auf die CERTAIN CE-Kennzeichnungssoftware.
Die âDatensicherheit 101â Serie auf unserem CERTAIN Blog soll erstens ein VerstĂ€ndnis dafĂŒr vermitteln, wie Daten in âder Cloudâ verarbeitet und gespeichert werden und zweitens, durch dieses neugewonnene VerstĂ€ndnis, mehr Vertrauen in cloud-basierte Software geben. In dieser Serie werden wir uns mit den folgenden Themen befassen:
- der Begriffsbestimmung âder Cloudâ
- einem Blick auf Daten-VerschlĂŒsselung aus der Vogelperspektive
- einem theoretischen Ansatz der ZugriffsbeschrÀnkung in Cloud-Systemen
- dem Sprung in eine passwortlose Zukunft
- der spezielleren Anwendung der oben genannten Themen in der CERTAIN App. Ich werde Fokus darauf legen, diese technisch recht anspruchsvollen Themen verallgemeinert, aber fĂŒr Laien verstĂ€ndlich zu erklĂ€ren. Ich setze keine IT-Vorkenntnisse der Lesenden voraus.
Im dritten Teil der Serie schauen wir uns an, wie der Zugriff auf Ressourcen in Multi-Tenant-Systemen (kleine Erinnerungshilfe zu dem Konzept gibtâs im 1. Teil) gehandhabt wird. In der ersten HĂ€lfte befassen wir uns theoretisch mit der Frage, ob âDaten in der Cloud sicher sind vor dem Zugriff anderer Nutzerâ. In der zweiten HĂ€lfte veranschauliche ich die praktische Umsetzung der Zugriffskontrollen.
Zugriff in Multi-Tenant-Systemenâ
Wie im ersten Teil der Serie erlĂ€utert, nutzen alle User einer Multi-Tenant-Anwendung die selben Infrastruktur-Ressourcen (Datenbanken, Server, etc) des Anbieters. Das bedeutet auch, dass, ohne Kontrollmechanismen, alle Nutzer auf sĂ€mtliche Daten auf diesen Ressourcen zugreifen können. In CERTAINâs Fall wĂŒrde das bedeuten, dass ein User die Projekte eines anderen Users einsehen könnte. SelbstverstĂ€ndlich ist das ein absolutes No-Go. Im Folgenden schauen wir uns zwei Konzepte an, mit denen sich der Zugriff steuern lĂ€sst.
Attribute-Based Access Control (ABAC)â
ABAC ist ein Sicherheitsmodell, bei dem der Zugriff auf Ressourcen basierend auf Attributen (Eigenschaften) gesteuert wird. Diese Attribute können sich auf Nutzer, Ressourcen (z.B. Projekte bei CERTAIN) oder sogar Umgebungsbedingungen beziehen.
Konkrete Attribute sind:
- der Sitz eines Users, z.B. nur EU-basierte User dĂŒrfen Projekte eines Herstellers bearbeiten
- die Besitzstruktur eines Projekts, z.B. ein Projekt darf nur von seinem Besitzer bearbeitet werden
Role-Based Access Control (RBAC)â
RBAC hingegen konzentriert sich auf die Ressourcen selbst, also das Projekt oder den Hersteller, und steuert den Zugriff basierend auf der Rolle des Nutzers im System.
Beispiel-Rollen in einem CERTAIN Account:
- Admin, hat Zugriff auf sÀmtliche Projekte, Hersteller, Risikovorlagen und hat auch die Erlaubnis Zahlungsdaten und Abo-Modelle zu Àndern
- DokumentationsbevollmÀchtiger, hat vollstÀndigen Zugriff auf Projekte, Hersteller und Risikovorlagen, kann aber accountweite Einstellungen nicht anpassen
- Auditor, kann ausschlieĂlich Projektdaten anschauen, aber keinerlei Ănderungen vornehmen
Kombination von ABAC und RBAC fĂŒr optimale Sicherheitâ
Die Kombination von ABAC und RBAC bietet eine robuste Sicherheitslösung fĂŒr Multi-Tenant-Systeme. WĂ€hrend ABAC die FlexibilitĂ€t bietet, den Zugriff basierend auf einer Vielzahl von Attributen zu steuern, sorgt RBAC dafĂŒr, dass nur Benutzer mit der richtigen Rolle auf bestimmte Ressourcen zugreifen können. Diese doppelte Kontrolle trĂ€gt wesentlich dazu bei, die Sicherheit in Cloud-Umgebungen zu erhöhen.
Hierarchie der CERTAIN Ressourcenâ
Um besser zu verstehen, wie CERTAIN Zugriffe kontrolliert sind, mĂŒssen wir eine kurze Sektion ĂŒber die existierenden EntitĂ€ten und deren Beziehung untereinander einschieben.
- Account
Accounts sind die Ă€uĂerste Organisationsstruktur im CERTAIN System. Ein Account âbesitztâ mindestens einen Nutzer und kein, ein oder mehrere Projekte und Hersteller, Risikovorlagen etc.
- User
User sind menschliche Akteure, die sich einloggen, Projekte und Hersteller bearbeiten, einsehen oder auch löschen können. Bestimmte User können auch sensible Daten eines Accounts einsehen und bearbeiten. Dazu gehören Zahlungsdaten oder die Zugriffskontrolle anderer User im Account.
- Projekte, Hersteller, Vorlagen und andere
Fachliche Ressourcen wie Projekte usw. sind immer nur einem Account zugeordnet, können aber von mehreren Usern verwendet, bearbeitet oder eingesehen werden.
Diese ZusammenhÀnge lassen sich vereinfacht visualisieren:
Visualisierung der CERTAIN EntitÀten und ihrer Beziehungen
Mit dieser Verbildlichung können wir uns nun exemplarische Richtlinien anschauen.
Zugriffs-Richtlinien bei CERTAINâ
In der Praxis gibt es einige Möglichkeiten, ABAC und RBAC zu implementieren.
Bei CERTAIN steuern wir den Zugriff auf die Ressourcen unserer Nutzer mit Cedar Policies. Das sind Richtlinien, durch die der Zugriff explizit anhand von Nutzer-Rollen (RBAC) und/oder Attributen der zugreifenden User bzw. zugegriffenen Ressourcen (ABAC) definiert wird.
Beispiel: Zugriff der DokumentationsbevollmĂ€chtigenâ
Beispielsweise können wir den Zugriff auf Ressourcen in einem Account â1234â (vereinfachte Account-ID) auf die AktivitĂ€ten âUpdateâ und âDescribeâ begrenzen, wenn der anfragende Nutzer die Rolle âEditorâ (ebenfalls vereinfacht) einnimmt und der Nutzer im selben Account agiert.
In der Cedar-Sprache ausgedrĂŒckt, gestaltet sich die Richtlinie wie folgt:
permit (
principal in Certain::Account::1234,
action in [Certain::Action::Project:Update, Certain::Action::Project:Describe],
resource in Certain::Account::1234
) when {
principal.role == "Editor"
};
Beispiel: Auditor fĂŒr ein einziges Projektâ
Wollten wir einem bestimmten Auditor (das könnte eine Kontroll-Funktion innerhalb des eigenen Unternehmens sein oder auch eine benannte Stelle oder sonstige Aufsichtsinstitution) Lese-Zugriff auf ein einziges bestimmtes Projekt geben, wĂŒrde unsere Richtlinie so aussehen:
permit (
principal == Certain::Auditor::000,
action == Certain::Action::Project:Describe,
resource == Certain::Project::123
);
Es gibt noch eine ganze Reihe weiterer logischer Operatoren, um Attribute, Rollen oder den Kontext zu prĂŒfen und komplexere Richtlinien zu erstellen bzw. zu prĂŒfen.
Alles andere verbotenâ
Ein wichtiges Grundprinzip dieser Policies ist, dass alle Aktionen abgelehnt werden, auĂer sie sind explizit erlaubt. Das bedeutet, dass auf keine Ressource zugegriffen kann, es sei denn, es gibt eine Richtlinie, die genau diesen Zugriff definiert. Dadurch kehren wir die Sicherheitsverantwortung um: Statt alle Möglichkeiten eines Zugriffs zu begrenzen, was das Risiko birgt, manche zu ĂŒbersehen, mĂŒssen wir die Zugriffe ausdrĂŒcklich erlauben. Und damit fĂŒhrt ein Fehler zu einem nicht erlaubten Zugriff, statt zu einem Datenleck. CERTAINs Zugriffskontrolle wird damit âsecure by defaultâ.
Fazitâ
Kommen wir zurĂŒck zu der Ausgangsfrage "Sind meine Daten in der Cloud sicher vor dem Zugriff anderer Nutzer?"
Ja, mit der Zugriffskontrolle durch RBAC und ABAC Richtlinien sind Ihre Daten im CERTAIN System sicher vor dem Zugriff anderer Nutzer.
In den ersten drei Teilen der Blog-Serie haben wir die Sicherheit innerhalb der CERTAIN Cloud untersucht. Im nÀchsten Teil sehen wir uns Ihren Zugang zur Cloud an und erlÀutern, wie wir diesen so sicher wie möglich machen.