Antwort.
Die manuelle Testung von Zugriffsrechten und Rollen ermöglicht es, zu überprüfen, ob verschiedene Benutzertypen den korrekten Zugriff auf die Funktionalitäten und Daten der Anwendung haben.
Hintergrund der Frage
Mit dem Wachstum der Benutzeranzahl und ihrer Nutzungsszenarien haben selbst einfache Anwendungen ein Rollenmodell entwickelt. Fehler bei Zugriffsrechten führten häufig zu schwerwiegenden Datenlecks oder Einschränkungen von Geschäftsabläufen. Daher entstand die Notwendigkeit, die Rollen sorgfältig manuell zu testen.
Probleme
- Übersehen von Fehlern bei der Zugangsbeschränkung zu sensiblen Daten;
- Falsche Konfiguration von Rollen, die es Benutzern ermöglicht, unerlaubte Handlungen vorzunehmen (zum Beispiel Zugriff auf Verwaltungsfunktionen für normale Benutzer);
- Schwierigkeiten bei der Überprüfung kombinierter Rollen oder nicht-standardmäßiger Zugriffszenarien.
Lösung
- Dokumentation aller bestehenden Rollen und der entsprechenden Aktionen für jede Rolle;
- Erstellung von Testszenarien für jede Rolle, einschließlich bedingter Überlappungen von Rollen;
- Überprüfung des Zugriffs nicht nur auf Funktionen, sondern auch auf verschiedene Datenbereiche (CRUD);
- Validierung sowohl des direkten Zugriffs (über UI) als auch von Zugriffsversuchen über direkte Links oder APIs.
Schlüsselfunktionen:
- Umfassende Abdeckung der Szenarien: Jeder Benutzertyp muss in allen möglichen Rollen und Handlungen geprüft werden;
- Test von Grenz- und kombinierten Rollen: Fehler treten häufig bei der Überschneidung von Rechten verschiedener Rollen auf;
- Überprüfung des Umgehens standardmäßiger Schnittstellen: Test des direkten Zugriffs auf Seiten/Aktionen, auf die der Benutzer offiziell keinen Zugriff hat.
Fangfragen.
Reicht es, nur die Hauptrollen (z.B. „Administrator“ und „Benutzer“) zu testen?
Nein. Gerade in den Zwischen- und selten genutzten Rollen verstecken sich häufig die Defekte.
Ist die Einschränkung des UI (versteckte Buttons und Elemente) ausreichend für die Sicherheit?
Nein. UI-Kontrollen schützen nicht vor direkten Zugriffsversuchen über die URL oder API; die Berechtigungen müssen auf der Serverseite eingeschränkt werden.
Muss man die Zugriffsrechte über verschiedene Kanäle der Anwendung testen (z.B. sowohl über Web als auch über mobile App)?
Unbedingt. Oft führt die unterschiedliche Umsetzung zu Verhaltensunterschieden und Fehlern bei der Einschränkung der Berechtigungen.
Typische Fehler und Anti-Patterns
- Überprüfung nur der Standardrollen
- Ausschließlich auf die Benutzeroberfläche fokussieren, ohne serverseitige Einschränkungen zu validieren
- Vernachlässigung von nicht-standardmäßigen und kombinierten Rollen
Beispiel aus dem Leben
Negativer Fall
Es wurde nur das UI und nur drei Hauptrollen getestet. Infolgedessen erhielten Benutzer mit einer nicht-standardmäßigen Kombinationsrolle Zugang zu administrativen Funktionen über einen direkten Link.
Vorteile:
- Schnelle Testung
- Einfachheit des Prozesses
Nachteile:
- Kritische Sicherheitsanfälligkeit, die im Produktionsumfeld entdeckt wurde
- Verletzung der Sicherheit und des Vertrauens der Benutzer
Positiver Fall
Es wurden Testbenutzer mit verschiedenen Rollenkombinationen erstellt, eine API-Überprüfung und eine Überprüfung des direkten Zugriffs durchgeführt. Fehler wurden vor dem Release gefunden und behoben.
Vorteile:
- Hohe Qualität und Sicherheit
- Reduzierung der Risiken interner und externer Lecks
Nachteile:
- Zeitaufwand für die Erstellung vieler Testbenutzerkonten
- Erhöhung des Dokumentationsvolumens und der Koordination mit der Entwicklung