Access Control Testing
Mit diesem Add-on können Benutzer vergleichen, welche Teile einer Webanwendung für bestimmte Benutzer zugänglich sind, Zugangskontrolltests durchführen und potenzielle Probleme bei der Zugangskontrolle erkennen. Es ermöglicht die Konfiguration von Zugriffsregeln und führt einen vollständigen Angriff durch, um die Bereiche einer Webanwendung zu identifizieren, die für nicht autorisierte Clients zugänglich sind.
Es gibt zwei Hauptkonzepte im Zusammenhang mit diesem Add-on, die erklärt werden sollten: die Zugangsregeln und das Testverfahren.
Zugangsregeln
Um mögliche Probleme bei der Zugriffskontrolle zu erkennen, muss ZAP wissen, welche Teile der Webanwendung welcher Benutzer auf welche Teile der Webanwendung zugreifen darf. In ZAP heißen diese Regeln: Zugriffsregeln haben im Allgemeinen die Bedeutung: "SeiteA soll/kann nicht von BenutzerX aufgerufen werden".
Die Regeln werden für einen Kontext konfiguriert, und für jeden Benutzer dieses Kontexts wird jeder Site-Knoten (Webseite) mit einem der folgenden Werte verknüpft:
- Allowed - der Benutzer, auf den sich die Regel bezieht, kann auf die Ressource zugreifen
- Denied - der Benutzer, auf den sich die Regel bezieht, darf nicht auf die Ressource zugreifen
- Unknown - es gibt keine Informationen darüber, ob die Ressource für den Benutzer, auf den sich die Regel bezieht, zugänglich sein soll oder nicht
Um den Prozess der Definition von Zugriffsregeln zu vereinfachen, nutzt das ZAP die Baumstruktur von URLs.
Bei der Analyse der Regeln wird ein Inferenz-Algorithmus verwendet, um die übereinstimmenden Regeln für jeden Knoten auf der Grundlage seiner Vorgänger in der URL zu ermitteln, wenn keine besonderen Regeln definiert sind. Dies bedeutet, dass bei der Konfiguration der Zugriffsregeln nur eine Regel explizit für einen gesamten Teilbaum festgelegt werden muss, während die anderen Knoten Regeln daraus abgeleitet werden. Mehr Details dazu finden Sie auf der Hilfeseite Access Control Context options.
Testverfahren
Um die Zugriffskontrolle für eine Webanwendung vollständig zu testen, sollten die folgenden Schritte befolgt werden:
- der Tester definiert eine Reihe von Benutzern und wie sie sich authentifizieren;
- der Tester definiert, wie ZAP nicht autorisierte Anfragen identifizieren kann (über das "Authorization panel" in den Session Properties);
- die Webanwendung wird entweder manuell oder über den Spider durchsucht;
- der Tester definiert die Zugriffsregeln für jeden dem Kontext zugeordneten Benutzer, so dass ZAP im Grunde weiß welche Teile der Webanwendung von welchen Benutzern genutzt werden dürfen;
- ein "Angriff" wird von ZAP durchgeführt, indem versucht wird, auf jede URL der Webanwendung aus der Sicht eines jeden Benutzers zuzugreifen;
- in der entsprechenden Tab "Status" werden die Ergebnisse angezeigt, die zeigen, welche Seiten von welchen Benutzern erfolgreich aufgerufen wurden, welche Benutzer erfolgreich auf die Seiten zugegriffen haben, und markiert die Fälle, in denen die Zugriffsregeln nicht eingehalten wurden.
Hinweis: Zugriffskontrolltests sind weder im Abgesicherten Modus, noch im Geschützten Modus zulässig, wenn sich der Kontext nicht im Geltungsbereich befindet.
API
Das Addon bietet die folgenden API-Endpunkte:
Aktionen
scan
Startet eine Zugriffskontrollprüfung mit der angegebenen Kontext-ID und Benutzer-ID (kann eine durch Kommata getrennte Liste von IDs sein).
Startet eine Zugriffskontrollprüfung mit der angegebenen Kontext-ID und Benutzer-ID (kann eine durch Kommata getrennte Liste von IDs sein). Hinweis: Dies setzt voraus, dass die Zugriffskontrollregeln zuvor über die ZAP-GUI erstellt und der erforderliche Kontext exportiert/importiert wurde.
writeHTMLreport
Erzeugt einen Zugriffskontrollbericht für die angegebene Kontext-ID und speichert ihn unter dem angegebenen Dateinamen (Pfad).
Ansichten
getScanProgress
Ermittelt den Fortschritt der Zugriffskontrollprüfung (ganzzahliger Prozentsatz) für die angegebene Kontext-ID.
getScanStatus
Ruft den Status der Zugriffskontrollprüfung (Beschreibungs-String) für die angegebene Kontext-ID ab.
Siehe auch: