Horizontale Rechteausweitung

Horizontale Rechteausweitung

Eingeloggt zu sein ist nicht dasselbe wie erlaubt zu sein.

Was ist Horizontale Rechteausweitung?

Unsichere direkte Objektreferenzen befinden sich in der Lücke zwischen zwei Prüfungen, die sich wie eine anfühlen. Session-Middleware beweist, wer anruft. Es wird nicht gefragt, ob dieser Anrufer diesen Datensatz lesen darf. Sie öffnen Ihren eigenen Kontoauszug in einer Geld-App, ändern eine Ziffer in der ID und lesen den Kontostand und die Transaktionen eines Fremden mit Ihrer eigenen gültigen Sitzung ab. Anschließend fügen Sie den Eigentümervergleich hinzu, der 403 zurückgibt, wenn der Eigentümer des Datensatzes nicht der Benutzer der Sitzung ist, und sehen, warum zufällige UUIDs und Ratenbegrenzungen eher die Tiefe als den Fix darstellen.

Was Sie lernen in Horizontale Rechteausweitung

Horizontale Rechteausweitung — Trainingsschritte

  1. Eine normale Kundenansicht

    Sablefin ist eine Finanz-App, bei der sich jeder registrieren kann. Bob hat das mit einer Wegwerf-Identität getan und sieht sich nun wie jeder andere Kunde sein eigenes Konto an. Er öffnet seinen Monatsauszug. Nichts daran ist für ihn gesperrt: Es ist sein Konto, seine Daten, seine Anmeldung.

  2. Die Anfrage beobachten

    Bevor Bob etwas ändert, will er die Anfrage sehen, mit der seine App diese Seite lädt. Er öffnet die Netzwerk-Tools des Browsers und lädt die Seite neu, damit der Aufruf zum Abrufen seines Kontoauszugs mitgeschnitten wird.

  3. Der Endpunkt und die ID

    Die Netzwerk-Tools haben den Aufruf mitgeschnitten. Es ist eine einfache GET-Anfrage an die API für Kontoauszüge; die vollständige Adresse von Bobs Auszug endet mit einer einzigen ganzen Zahl.

  4. Das Token, das seine Identität belegt

    Dieselbe mitgeschnittene Anfrage enthält Bobs Session-Token. Der Server liest es aus, um zu bestätigen, dass ein angemeldeter Kunde anfragt.

  5. Eine Ziffer ändern

    Bob fasst die Oberfläche der App nicht mehr an. Er bearbeitet die mitgeschnittene Anfrage direkt, verringert die ID um eins und sendet sie mit seinem eigenen Token erneut. Liefert der Server einen fremden Kontoauszug, hat er die Eigentümerschaft nie geprüft, sondern darauf vertraut, dass die ID in der URL bestimmt, was er zurückgeben soll.

  6. Das Konto einer anderen Person

    Anderer Name, andere Kontonummer, anderer Kontostand — und Bobs Token hängt weiterhin an der Anfrage. Der Server hätte diesen Auszug nicht ausliefern dürfen, tat es aber trotzdem. Eine einzige benachbarte ID genügt, um den Fehler zu bestätigen. Alles Weitere erledigt ein Skript mit zehn Zeilen, das über Nacht den ID-Bereich durchläuft, während Bob schläft.

  7. Wissenscheck

    Sie haben gerade gesehen, wie ein angemeldeter Kunde durch das Ändern einer Zahl den Kontoauszug eines anderen Kunden lesen konnte. Prägen Sie sich ein, warum.

  8. Die Warnung trifft ein

    Sie verantworten den Service für Sablefins Kundenkonten. Über Nacht hat die Anomalieerkennung eine Sitzung erkannt, die Kontoauszug um Kontoauszug über fremde Konten hinweg abrief. Security Operations hat Ihnen die Details per E-Mail geschickt.

  9. Den Handler öffnen

    Öffnen Sie den Handler für Kontoauszüge und prüfen Sie, wie er entscheidet, was zurückgegeben wird.

  10. Die Schwachstelle erkennen

    Der Handler lädt den Kontoauszug anhand der ID in der URL und gibt ihn zurück. Zwischen diesen beiden Zeilen fehlt die erforderliche Prüfung.

Abdeckung der Sicherheits-Frameworks

OWASP Top 10

  • A01:2025 Broken Access Control
  • A01:2021 Broken Access Control

CWE

  • CWE-639 Authorization Bypass Through User-Controlled Key
  • CWE-862 Missing Authorization

CIS Controls

  • CIS 16 Application Software Security

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security