Fehlerhafte Autorisierung auf Objektebene (Broken Object Level Authorization, BOLA) ist eine Sicherheitslücke, die laut der Liste der OWASP Top 10 API-Sicherheitsrisiken für 2023 als die größte Bedrohung für APIs (Application Programming Interfaces, Programmierschnittstellen) gilt. Die BOLA-Sicherheitsanfälligkeit ist ein Fehler im Zugriffskontrollmechanismus einer Webanwendung, die Nutzern den Zugriff auf „Objekte“ ermöglicht – Datenbankdatensätze, Dateien oder andere Ressourcen in einer IT-Umgebung. Wenn der Mechanismus der Anwendung Zugriffskontrollen nicht ordnungsgemäß durchsetzt, dürfen nicht autorisierte Nutzer Aktionen an Objekten ausführen, für die sie keine Zugriffsberechtigung haben sollten.
Fehlerhafte Autorisierung auf Objekteigenschaftsebene (Broken Object Property Level Authorization, BOPLA) ist eine Sicherheitslücke in APIs (Application Programming Interfaces), die es Hackern aufgrund unzureichender Autorisierungsprüfungen ermöglichen kann, die Eigenschaften vertraulicher Objekte anzuzeigen oder zu manipulieren. Dies kann potenziell zu Datenverlust, Offenlegung sensibler Daten, Eskalation von Berechtigungen oder Kontoübernahmen führen. BOPLA ist auf Platz 3 der Liste der OWASP Top 10 API-Sicherheitsprobleme 2023 aufgeführt.
Was genau ist die BOPLA-Schwachstelle?
Webanwendungen rufen Daten ab und füllen Felder auf Frontend-Seiten aus, indem APIs nach Informationen zu Objekten wie Datenbankdatensätzen oder Dateien abgefragt werden. Jedes Objekt enthält in der Regel mehrere Datenpunkte oder „Eigenschaften“. Beispiel: Das Profil, das einem Nutzerkonto zugeordnet ist, kann Eigenschaften wie first_name, last_name, email_address, password, SSN_number und is_admin enthalten. Letzteres gibt an, ob der Nutzer über Administratorrechte verfügt.
Während eines API-Aufrufs senden APIs oft mehr Informationen, als in der API-Antwort technisch erforderlich sind. Diese werden dann an die Clientanwendung übertragen, um die benötigten Daten zu extrahieren und eine Ansicht für den Nutzer anzuzeigen. Diese Schwachstelle verursacht an einem API-Endpunkt auf zwei verschiedene Arten Risiken:
Übermäßige Offenlegung von Daten: Dies tritt auf, wenn eine API-Antwort mehr Informationen enthält als der angeforderte API-Aufruf und möglicherweise sensible Informationen enthält – in diesem Beispiel password und SSN_number –, auf die ein Nutzer oder eine App keinen Zugriff haben sollte. Wenn es um API-Antworten geht, die auf einer Website oder App angezeigt werden, befinden sich einige der übermäßigen Daten nur in der API-Antwort selbst und können einfach extrahiert werden.
Massenzuweisung: Dies tritt auf, wenn ein API-Endpunkt einem nicht autorisierten Nutzer ermöglicht, den Wert einer Objekteigenschaft zu ändern, hinzuzufügen oder zu löschen. Wenn im obigen Beispieldatensatz die API-Antwort unnötig anzeigt, dass eine Eigenschaft is_admin vorhanden ist, könnten Angreifer Berechtigungen auf unberechtigte Weise eskalieren, indem sie die Eigenschaft is_admin in TRUE ändern. Dadurch können sie auch Änderungen an anderen Eigenschaften vornehmen oder auf andere Objekte zugreifen, auf die sie nicht zugreifen können sollten.
BOPLA wurde erstmals in den OWASP Top 10 API-Sicherheitsproblemen 2023 aufgeführt und kombiniert diese beiden früheren Bedrohungen wie übermäßige Datenexzessivität und Massenzuweisung, die separat auf früheren Listen erschienen.
Was ist BOPLA im Vergleich zu BOLA?
BOPLA bezieht sich auf die fehlerhafte Autorisierung auf Objektebene (Broken Object Level Authorization, BOLA), die auf Platz 1 der OWASP Top 10 API-Sicherheitsliste steht. BOLA bezieht sich jedoch auf die Autorisierung für den Zugriff auf ein ganzes Objekt, während BOPLA sich auf Schwachstellen bezieht, die einzelne Eigenschaften innerhalb eines Objekts betreffen.
Der grundlegende Unterschied zwischen BOLA (Fehlerhafte Autorisierung auf Objektebene) und BOPLA besteht darin, dass sich BOLA auf ein ganzes Objekt bezieht und BOPLA auf eine Eigenschaft innerhalb eines Objekts.
Selbst wenn eine API eine ausreichende Autorisierung auf Objektebene durchsetzt, um BOLA-Angriffe zu verhindern, reichen diese Maßnahmen möglicherweise nicht aus, um sich vor BOPLA-Angriffen zu schützen. Um die BOPLA-Schwachstelle zu mindern, müssen Teams spezifischere Autorisierungen einführen, die die Objekte und ihre Eigenschaften abdecken. Außerdem müssen sie die verschiedenen Zugriffsebenen innerhalb von API-Objekten berücksichtigen, die oft sowohl öffentliche als auch private Eigenschaften haben.
Welchen Schaden kann ein BOPLA-Angriff anrichten?
Angriffe, die sich auf die BOPLA-Schwachstelle konzentrieren, können Angreifern Folgendes ermöglichen:
- Ändern der Eigenschaften von Objekten, auf die sie keinen Zugriff haben sollten
- Anzeigen sensibler Daten, deren Zugriff untersagt werden sollte
- Eskalieren von Berechtigungen, um Konten zu übernehmen
Warum sind BOPLA-Schwachstellen schwer zu erkennen?
Traditionell verlassen sich Sicherheitsteams auf Web Application Firewalls und API-Gateways, um APIs vor Bedrohungen zu schützen. Bei der Sicherheit von WAFs und API-Gateways werden Geschäftslogik und API-Kontext jedoch nicht berücksichtigt. Dadurch ist es unmöglich, sensible Daten zu erkennen, die über eine API gesendet werden, oder das Ausmaß der Gefährdung, das einzelne Datenbestände darstellen, zu verstehen. Diese API-Schutzlösungen können auch nicht immer zwischen legitimen Aufrufen und schädlichen Aktivitäten unterscheiden. Ein schädlicher API-Aufruf, der eine Anfrage über die PUT-Methode mit zusätzlichen Parametern sendet, erscheint beispielsweise wie ein normaler API-Aufruf an eine WAF oder ein API-Gateway.
Um BOPLA-Schwachstellen zu erkennen, benötigen Sicherheitsteams Technologie, die eine breite Palette sensibler Datentypen identifizieren und melden kann, die in API-Anfragen und -Antworten enthalten sein können. Überlegene Lösungen sollten auch anomale Aktivitäten verfolgen, bei denen Angreifer API-Anfragen mit nicht autorisierten Parametern manipuliert haben. Die Möglichkeit, den API-Zugriff für jeden Endpunkt und Nutzer zu definieren und zu verfolgen, kann dazu beitragen, eine übermäßige Auslastung zu erkennen und Instanzen aufzudecken, in denen zusätzliche Parameter in API-Aufrufen außerhalb des normalen Verhaltens liegen. API-Sicherheit sollte auch in der Lage sein, Angreifer zu erkennen, die APIs während der Forschungsphase eines Angriffs untersuchen, um die Struktur und Geschäftslogik einer API zu verstehen.
Wie können BOPLA-Angriffe verhindert werden?
Die Sicherheit des Codes und die Vermeidung von Problemen mit der Berechtigung von Objekteigenschaften sollte für Entwickler die höchste Priorität haben. BOPLA-Schwachstellen treten jedoch zunehmend in APIs von Drittanbietern auf, über die Sicherheitsteams keine Kontrolle haben.
Um BOPLA-Angriffe zu verhindern, können Sicherheitsteams mehrere wichtige Schritte unternehmen.
Informieren Sie Entwickler über sicheren Code: Sicherheitsteams müssen Entwicklern unterstützen, die Notwendigkeit der korrekten Zuweisung von Berechtigungen auf Eigenschaftsebene zu verstehen und gleichzeitig eine standardisierte Autorisierungsstrategie für alle API-Endpunkte durchzusetzen. Sicherer Code muss die Nutzerautorisierungsstufe und die Autorisierungsanforderungen aller Referenzressourcen berücksichtigen. Sicherheitsrichtlinien müssen streng kontrollieren, welche Felder über Zulassungslisten bearbeitet werden können. Entwickler sollten auch die Menge und Art der in API-Antworten zurückgegebenen Daten konservativ behandeln und nur Daten enthalten, die für gut verstandene Anwendungsfälle erforderlich sind.
Zero Trust: Die Implementierung des Prinzips der geringstmöglichen Berechtigungen – ein grundlegendes Element eines Zero-Trust-Sicherheitsansatzes – beschränkt Nutzer auf das erforderliche Mindestmaß an Zugriff, um BOPLA-Angriffe zu verhindern oder den Schaden zu begrenzen, den sie verursachen können.
Entdeckung: Durch die Identifizierung anfälliger API-Endpunkte können Teams Entwickler auf Probleme aufmerksam machen und Anbieter informieren, wenn ihre APIs anfällig sind.
Überwachung: Ein API-Sicherheitstool kann den Traffic auf Angriffe überwachen – einschließlich Massenzuweisung –, die die BOPLA-Schwachstelle ausnutzen.
Starke Autorisierung: Bei der Offenlegung eines Objekts innerhalb eines API-Endpunkts sollten Autorisierungsprozesse sicherstellen, dass der Nutzer tatsächlich Zugriff auf die Objekteigenschaften erhält. Durch die Einführung einer rollenbasierten Zugriffskontrolle (RBAC) wird sichergestellt, dass nur Personen mit entsprechender Autorisierung auf bestimmte Eigenschaften zugreifen können.
Audits und Updates: Die ständige Überprüfung und Aktualisierung von Berechtigungen trägt dazu bei, dass sie aktuell und korrekt bleiben.
Häufig gestellte Fragen (FAQ)
Eine Programmierschnittstelle (API, Application Programming Interface) ist ein Satz von Protokollen und Definitionen, mit denen höchst unterschiedliche Softwareprogramme und -komponenten kommunizieren, Daten austauschen und Funktionen gemeinsam nutzen können. Durch die Definition der Art und Weise, wie Anwendungen interagieren, ermöglichen APIs verschiedenen Softwaresystemen, Informationen anzufordern und weiterzugeben, die wichtige Funktionen im E-Commerce, mobile Zahlungen, Social-Media-Clouddienste und vielen anderen Bereichen des Computings unterstützen.
Das Open Worldwide Application Security Project (OWASP) ist eine gemeinnützige Organisation mit dem Ziel, die Softwaresicherheit zu verbessern. Jedes Jahr veröffentlicht OWASP eine Liste der 10 größten Sicherheitsrisiken für Webanwendungen und APIs. Der Bericht wird von einem Team von Sicherheitsexperten aus der ganzen Welt zusammengestellt.
Warum entscheiden sich Kunden für Akamai?
Akamai ist das Unternehmen für Cybersicherheit und Cloud Computing, das das digitale Leben unterstützt und schützt. Unsere marktführenden Sicherheitslösungen, überlegene Bedrohungsinformationen und unser globales Betriebsteam bieten ein gestaffeltes Sicherheitskonzept, um die Daten und Anwendungen von Unternehmen überall zu schützen. Die Cloud-Computing-Lösungen von Akamai bieten als Full-Stack-Gesamtpaket Performance und erschwingliche Preise auf der weltweit am stärksten verteilten Plattform. Globale Unternehmen vertrauen auf Akamai für die branchenführende Zuverlässigkeit, Skalierbarkeit und Expertise, die sie benötigen, um ihr Geschäft selbstbewusst auszubauen.