Blog

Coders Conquer Security OWASP Top 10 API-Serie – Fehlende Zugriffskontrolle auf Funktionsebene

October 7, 2020
Dr. Matias Madou

Diese Blog-Serie konzentriert sich auf einige der kritischsten Schwachstellen im Zusammenhang mit Anwendungsprogrammierschnittstellen (APIs). Diese sind so schwerwiegend, dass sie es auf die Liste der Top-API-Schwachstellen des Open Web Application Security Project (OWASP) geschafft haben. Angesichts der Bedeutung von APIs für moderne IT-Infrastrukturen handelt es sich um kritische Probleme, die Sie unbedingt aus Ihren Anwendungen und Programmen heraushalten müssen.

Die Schwachstelle fehlende Zugriffskontrolle auf Funktionsebene ermöglicht es Benutzern, Funktionen auszuführen, die eigentlich eingeschränkt sein sollten, oder auf Ressourcen zuzugreifen, die geschützt sein müssten. Normalerweise sind Funktionen und Ressourcen direkt im Code oder über Konfigurationseinstellungen geschützt, doch dies korrekt umzusetzen ist nicht immer einfach. Die Implementierung geeigneter Prüfungen kann schwierig sein, da moderne Anwendungen oft viele Rollen- und Gruppentypen sowie eine komplexe Benutzerhierarchie enthalten.

Aber warum probieren Sie nicht zuerst unsere spielerische Challenge aus, um zu sehen, wie gut Sie sich in dieser kniffligen Fehlerklasse zurechtfinden?

Schauen wir uns das genauer an:

APIs sind besonders anfällig für diesen Fehler, da sie hochgradig strukturiert sind. Angreifer, die den Code verstehen, können fundierte Vermutungen darüber anstellen, wie Befehle implementiert werden, die eigentlich für sie gesperrt sein sollten. Das ist einer der Hauptgründe, warum die Schwachstelle bei der Zugriffskontrolle auf Funktions-/Ressourcenebene in die OWASP Top Ten aufgenommen wurde.

Wie können Angreifer die Schwachstelle bei der Zugriffskontrolle auf Funktionsebene ausnutzen?

Angreifer, die vermuten, dass Funktionen oder Ressourcen nicht ordnungsgemäß geschützt sind, müssen sich zunächst Zugriff auf das System verschaffen, das sie angreifen wollen. Um diese Schwachstelle auszunutzen, benötigen sie die Berechtigung, legitime API-Aufrufe an den Endpunkt zu senden. Vielleicht gibt es eine Gastzugriffsfunktion mit niedrigen Rechten oder eine Möglichkeit, sich anonym als Teil der Anwendungsfunktionalität anzumelden. Sobald dieser Zugriff hergestellt ist, können sie beginnen, Befehle in ihren legitimen API-Aufrufen zu ändern. Sie könnten beispielsweise GET durch PUT ersetzen oder den String USERS in der URL in ADMINS ändern. Da APIs strukturiert sind, ist es leicht zu erraten, welche Befehle erlaubt sein könnten und wo sie im String platziert werden müssen.

OWASP nennt als Beispiel für diese Schwachstelle einen Registrierungsprozess, der neuen Benutzern den Beitritt zu einer Website ermöglicht. Er würde wahrscheinlich einen API-GET-Aufruf verwenden, wie diesen:

GET /api/invites/{invite_guid}

Der böswillige Benutzer würde ein JSON mit Details zur Einladung erhalten, einschließlich der Rolle und E-Mail-Adresse des Benutzers. Er könnte dann GET in POST ändern und seine Einladung mithilfe des folgenden API-Aufrufs von einem Benutzer zu einem Administrator hochstufen:

POST /api/invites/new
{"email":"shadyguy@targetedsystem.com","role":"admin"}

Nur Administratoren sollten POST-Befehle senden dürfen. Wenn diese jedoch nicht ordnungsgemäß gesichert sind, akzeptiert die API sie als legitim und führt aus, was immer der Angreifer wünscht. In diesem Fall würde der böswillige Benutzer eingeladen, dem System als neuer Administrator beizutreten. Danach könnte er alles sehen und tun, was ein legitimer Administrator auch könnte – was fatal wäre.

Beseitigung der Schwachstelle durch fehlende Zugriffskontrolle auf Funktionsebene

Die Vermeidung dieser API-Schwachstelle ist besonders wichtig, da es für einen Angreifer nicht schwierig ist, ungeschützte Funktionen innerhalb einer strukturierten API zu finden. Sobald sie ein gewisses Maß an Zugriff auf eine API erhalten, können sie beginnen, die Struktur des Codes abzubilden und Aufrufe zu erstellen, die schließlich ausgeführt werden.

Daher müssen alle geschäftskritischen Funktionen mithilfe einer rollenbasierten Autorisierungsmethode geschützt werden. Die meisten Frameworks bieten zentralisierte Routinen, um dies zu erreichen. Falls Ihr gewähltes Framework dies nicht tut oder die vorhandene Routine schwer zu implementieren ist, gibt es viele externe Module, die speziell für eine einfache Nutzung entwickelt wurden. Welche Methode Sie auch wählen, stellen Sie sicher, dass die Autorisierung auf dem Server implementiert wird. Versuchen Sie niemals, Funktionen von der Client-Seite aus zu sichern.

Wenn Sie Berechtigungen auf Funktions- und Ressourcenebene erstellen, denken Sie daran, dass Benutzern nur die Berechtigungen gegeben werden sollten, die sie benötigen – und nicht mehr. Wie immer beim Programmieren von APIs oder anderen Dingen gilt: Praktizieren Sie das Prinzip der geringsten Rechte. Es sichert Ihre Umgebung und beugt vielen Problemen im Bereich der Cybersicherheit vor.

Besuchen Sie die Secure Code Warrior-Blogseiten für weitere Einblicke in diese Schwachstelle und wie Sie Ihr Unternehmen und Ihre Kunden vor den Folgen anderer Sicherheitslücken schützen können. Sie können auch eine Demo der Secure Code Warrior-Schulungsplattform ausprobieren, um Ihre Cybersicherheitsfähigkeiten stets auf dem neuesten Stand zu halten.

Slogan

Kontrollieren Sie KI-gestützte Entwicklung, bevor sie in Produktion geht

Bewerten Sie KI-gestützte Risiken, setzen Sie Richtlinien für sicheren Code direkt beim Commit durch und beschleunigen Sie die sichere Bereitstellung über Ihren gesamten SDLC hinweg.

Demo buchen
Ressourcenbibliothek

Weitere Blogs entdecken

Erhalten Sie Zugang zu Experteninhalten über sichere Programmierung, KI-Governance und Software-Risikomanagement.

alle anzeigen
Fallstudie
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Mehr erfahren
Fallstudie
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

Mehr erfahren
Fallstudie
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Eine Sicherheitskultur: Wie Sage sein Champions-Programm aufgebaut hat

Erfahren Sie, wie Sage die Sicherheit durch einen flexiblen, beziehungsorientierten Ansatz gestärkt, über 200 Security Champions ausgebildet und eine messbare Risikoreduzierung erzielt hat.

Mehr erfahren
Blog
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Cybersecurity Awareness Month 2026: Das Verständnis von KI-Sicherheit ist entscheidend für die Unternehmensverteidigung

Wir haben einen Punkt erreicht, an dem die meisten führenden KI-Unternehmen öffentlich eine weltweite Verlangsamung der KI-Entwicklung gefordert haben, damit die Sicherheitsvorkehrungen Schritt halten können. Doch die Wahrheit ist: Ernsthafte Sicherheitsprobleme sind bereits Realität geworden. Dies bringt unzählige Sicherheitsverantwortliche und Führungsteams in eine dringliche Lage, da die finanziellen Kosten und Risiken durch die Implementierung von KI stetig steigen.

Mehr erfahren
Blog
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Enabler 8: Branding für Ihr Programm

Ein Programm für sicheres Programmieren braucht mehr als nur großartige Inhalte, um erfolgreich zu sein. Enabler 8 zeigt, wie Branding die Teilnahme zu einem begehrten, statusorientierten Erlebnis macht.

Mehr erfahren
Blog
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Jeder Mitarbeiter steht jetzt an vorderster Front der KI-Cybersicherheit

Die Unternehmenslandschaft wandelt sich mit einer Geschwindigkeit, die kaum jemand vorhergesehen hat, bis es zu spät war. Wir haben offiziell die Schwelle von handgeschriebenem Code und einfacher Copilot-Unterstützung hin zur Ära des Agentic Development Lifecycle (ADLC) überschritten. Während autonome KI-Agenten eine beispiellose Effizienz in vielen Bereichen versprechen, bringen sie auch eine völlig neue Klasse von Sicherheits- und Regulierungsrisiken mit sich.

Mehr erfahren

Sichere KI-gestützte Entwicklung vor dem Release

Erkennen Sie Entwicklerrisiken, setzen Sie Richtlinien durch und verhindern Sie Schwachstellen über den gesamten Softwareentwicklungszyklus hinweg.

Demo buchen
Keine Elemente gefunden.