MAIN MENU
Devolutions Blog

Ankündigungen, Aktualisierungen und Einsichten von Devolutions

Sicherheit
Zugriffskontrolle verstehen Authentifizierung Autorisierung und Ressourcenverwaltung Blog

Zugriffskontrolle verstehen: Authentifizierung, Autorisierung und Ressourcenverwaltung

Fehlerhafte Zugriffskontrolle steht Jahr für Jahr an der Spitze der OWASP Top 10. Dieser Artikel unterteilt die Zugriffskontrolle in Authentifizierung, Autorisierung und objektbezogene Autorisierung und erklärt anschließend, warum clientseitige Prüfungen lediglich UX-Konventionen (branchenübliche Standards in der Nutzererfahrung) darstellen und warum echter Schutz von der serverseitigen Durchsetzung abhängt – was letztendlich die Architektur Ihres RDM-Arbeitsbereichs bestimmt.

Zugriffskontrolle ist eines dieser Themen, die auf den ersten Blick selbstverständlich erscheinen, bis man genauer hinsieht. Sie ist Jahr für Jahr die häufigste Kategorie in den OWASP Top 10 (Fehlerhafte Zugriffskontrolle) und mit Abstand die häufigste Schwachstelle, die wir sowohl branchenweit als auch in unseren eigenen Analysen feststellen. Die gute Nachricht: Sobald man die richtigen Fragen formuliert hat, wird das Thema deutlich einfacher.

Was genau ist Zugriffskontrolle?

Die Zugriffskontrolle legt fest, wer welche Aktionen auf welchen Ressourcen ausführen darf. Wenn eine Anwendung eine Anfrage erhält, muss sie drei Fragen beantworten, und alle drei sind relevant.

1. Weiß ich, wer der Nutzer ist? (Authentifizierung)

Dies ist der Identitätsschritt: Ist der Nutzer wirklich der, für den er sich ausgibt? Passwörter, MFA, SSO – all dies beantwortet diese erste Frage.

2. Darf dieser Nutzer diese Aktion ausführen? (Autorisierung)

Die Kenntnis der Nutzeridentität sagt nichts darüber aus, welche Berechtigungen der Nutzer hat. Ein authentifizierter Nutzer ist nicht zwangsläufig berechtigt, Dateien zu löschen, zu bearbeiten oder zu verwalten.

3. Hat er die Berechtigung für diese spezielle Ressource? (objektbezogene Autorisierung)

Dies ist die am häufigsten vergessene Frage. Das Recht, einen „einzelnen“ Eintrag einzusehen, bedeutet nicht automatisch das Recht, „alle“ Einträge einzusehen. Fehlt diese Prüfung, spricht man von IDOR (Insecure Direct Object Reference): Es genügt, eine Kennung in der Anfrage zu ändern, um an die Daten einer anderen Person zu gelangen.

Man sollte sich merken: Schon das Vergessen einer einzigen dieser drei Fragen genügt, um eine Sicherheitslücke zu schaffen. Die drei bilden ein Ganzes.

Die oft vergessene Frage: Wo findet die Prüfung statt?

Es reicht nicht aus, diese drei Fragen richtig zu beantworten. Man muss auch fragen, wo diese Prüfungen durchgeführt werden. Und genau hier liegt der Unterschied zwischen einer echten Sicherheitsmaßnahme und einer bloßen Konvention in der Nutzeroberfläche.

Clientseitig

Clientseitige Kontrollmechanismen werden durch die Nutzeroberfläche umgesetzt: eine ausgeblendete „Löschen“-Schaltfläche, eine ausgegraute Option, ein nicht angezeigtes Menü. Das ist sinnvoll und völlig normal. Es trägt zur Nutzerfreundlichkeit bei und hält Nutzer von Optionen fern, die ohnehin abgelehnt würden. Es verhindert die Aktion jedoch nicht: Bei korrekter Zugriffskontrolle verweigert der Server die Operation unabhängig von den Darstellungen der Nutzeroberfläche.

Diese Kontrollmechanismen befinden sich auf der Seite des Nutzers und können von jedem, der die Anfrage direkt manipuliert, umgangen werden, da die Schnittstelle nur eine von mehreren Möglichkeiten ist, an die Daten zu gelangen.

Serverseitig

Serverseitige Kontrollen werden von der Anwendung selbst durchgesetzt, wo die Daten gespeichert sind. Sie sind nicht von der verwendeten Schnittstelle abhängig und können nicht durch manipulierte Anfragen umgangen werden.

Diese Ebene – und nur diese – schützt sensible Daten wie das Anzeigen, Bearbeiten, Löschen, die Offenlegung von Passwörtern, den Zugriff auf Anhänge usw.

Eine clientseitige Prüfung ist eine Konvention zur Verbesserung der Nutzerfreundlichkeit, keine Sicherheitsmaßnahme. Die Regel ist einfach: Jede Berechtigung, die sensible Daten oder einen kritischen Datenfluss schützt, muss serverseitig durchgesetzt werden. Eine clientseitige Prüfung kann dies ergänzen, aber niemals ersetzen.

Was das konkret für Ihre Daten bedeutet

Nehmen wir beispielsweise Remote Desktop Manager (RDM), unsere Desktop-Anwendung zur Verwaltung von Remote-Verbindungen und Anmeldedaten. RDM bietet vielfältige Funktionen: Berechtigungen, Rollen und Optionen werden je nach Nutzer ein- oder ausgeblendet. Doch wo werden diese Berechtigungen tatsächlich durchgesetzt? Die Antwort hängt vollständig von der Architektur des Arbeitsbereichs ab, mit dem die Anwendung verbunden ist.

Dies ist keine Frage guter Absichten oder sorgfältiger Konfiguration. Es ist eine Frage der Architektur. Ohne Anwendungsserver gibt es keinen physischen Ort, um serverseitige Kontrollen durchzusetzen. Aus diesem Grund empfehlen wir die Kombination von RDM mit einem Devolutions-Arbeitsbereich – nicht aus Produktpräferenz, sondern weil die Architektur es erfordert.

Zusammenfassung

Wenn RDM derzeit direkt mit einer SQL-Server-Datenbank verbunden ist, sollte man sich fragen: Wo werden meine Zugangskontrollen tatsächlich durchgesetzt? Die Architektur, nicht die Konfiguration, liefert Ihnen die ehrliche Antwort. Sie können die verfügbaren Arbeitsbereiche erkunden, um herauszufinden, welcher am besten zu Ihrer Umgebung passt.

Und anders als viele vermuten würden, sind die Kosten kein Hindernis: Devolutions Server und Devolutions Cloud bieten zum Einstieg eine kostenlose Version an. Um Devolutions Server als Ihr Backend zu verwenden, benötigen Sie lediglich eine aktive Unternehmenslizenz von Remote Desktop Manager. Und da die Verbindung von RDM mit einer SQL-Server-Datenbank bereits die gleiche Unternehmenslizenz erfordert, verfügen Sie höchstwahrscheinlich bereits über alles, was Sie für den Wechsel brauchen. (Für den Zugriff auf den Arbeitsbereich über einen Webbrowser ohne RDM bedarf es einer separaten Clientzugriffslizenz.)

More from Sicherheit

Read more articles