Was ist „Mass Assignment“? Sicherheitslücken, Beispiele und Prävention
OWASP sagt zur Massenzuweisung: "Das Binden von durch den Client bereitgestellten Daten (z. B. JSON) an Datenmodelle ohne ordnungsgemäße Filterung der Eigenschaften auf der Grundlage einer Erlaubnisliste führt in der Regel zu einer Massenzuweisung. Durch das Erraten von Objekteigenschaften, das Erforschen anderer API-Endpunkte, das Lesen der Dokumentation oder die Bereitstellung zusätzlicher Objekteigenschaften in Anforderungs-Payloads können Angreifer Objekteigenschaften verändern, die sie nicht verändern dürfen."
Mass Assignment Exploits können als eine Variante von BOLA-Angriffen (Broken Object Level Authorization) betrachtet werden. In beiden Fällen ist ein erfolgreicher Angreifer in der Lage, Anfragen mit unerwarteten Dateneigenschaften an gültige Endpunkte zu senden, um Zugriff auf Funktionen zu erhalten, die von den Anwendungsentwicklern nicht vorgesehen sind. Im Gegensatz zu BOLA beziehen sich Mass Assignment Exploits speziell auf APIs, bei denen es um die Änderung einer großen Sammlung von Ressourcen geht.
Wichtigste Erkenntnisse
- Eine Mass-Assignment-Schwachstelle tritt auf, wenn eine API vom Client bereitgestellte Daten ohne Filterung direkt an interne Objekteigenschaften bindet, wodurch Angreifer Felder ändern können, auf die sie eigentlich keinen Zugriff haben sollten.
- Es ist in den „OWASP API Security Top 10“ aufgeführt und steht in engem Zusammenhang mit „Broken Object Level Authorization“ (BOLA), bezieht sich jedoch speziell auf API-Endpunkte für Massenaktualisierungen.
- Zu den typischen Folgen solcher Angriffe zählen die Ausweitung von Berechtigungen, die Übernahme von Konten und die unbefugte Änderung von Eigenschaften sensibler Daten
- Zur Vorbeugung ist es wichtig, zulässige Eigenschaften ausdrücklich in einer Whitelist aufzuführen, Data Transfer Objects (DTOs) zu verwenden und API-Anfragen anhand eines genehmigten Schemas zu validieren.
- ThreatX von A10 Networks und blockiert Angriffe durch Massenzuweisungen in Echtzeit mithilfe von Verhaltensanalysen und dem Vergleich von API-Schemas.
Wie funktionieren Exploits für Massenzuweisungen?
Die Massenzuweisung ist eigentlich eine Funktion vieler API-Server-Frameworks und soll API-Client-Entwicklern das Leben erleichtern. Wie OWASP jedoch feststellt, könnte ein Angreifer ohne eine angemessene Eigenschaftsfilterung auf der Grundlage einer Reihe zulässiger Objekteigenschaften private, interne, reservierte und/oder verborgene Eigenschaften ändern und sich Zugang zu sensiblen Daten verschaffen, typischerweise durch Privilegieneskalation.
Stellen Sie sich zum Beispiel eine Anwendung vor, die einen API-Endpunkt enthält, der es autorisierten Benutzern ermöglicht, Benutzerinformationen zu aktualisieren. Diese API-Funktionalität könnte für Firmenkonten gedacht sein, die bei Personalwechseln in großen Mengen aktualisiert werden müssen.
<pre>
<code>
POST /posts/bulkupdate
{ "data": [
{
"user_id": 123789,
"title_id": “VP of Sales”,
"email": "sales.vp@company.com,
...
}, ...
] }
</code>
</pre>Aber stellen Sie sich vor, dieses harmlose Bulk-Update würde von einer böswilligen Person genutzt, die Unheil oder Schlimmeres anrichten will:
<pre>
<code>
POST /posts/bulkupdate
{ "data": [
{
"user_id": 123789,
"title_id": “VP of Sales”,
"email": "attacker@nefarious.com”,
...
}, ...
] }
</code>
</pre>In diesem hypothetischen Beispiel ändert der Angreifer die Eigenschaft "E-Mail", um die E-Mail des Benutzers auf einen Posteingang zu aktualisieren, der dem Angreifer gehört. Wenn das aktualisierte Konto über erweiterte Berechtigungen innerhalb der Anwendung verfügt und der Angreifer die Funktion zum Zurücksetzen des Kennworts nutzt, um ein aktualisiertes Kennwort an den Posteingang zu senden, verfügt er nun über erweiterte Berechtigungen innerhalb der Anwendung.
Dies ist ein konstruiertes Beispiel, aber alle Massenzuweisungsexploits beruhen auf einer API-Validierungslogik, die für typischerweise banale Funktionen auf Massenebene gedacht ist und dazu missbraucht wird, unbefugten Clients unbeabsichtigte Befugnisse zu gewähren.
Beispiel für eine Massenzuordnung aus der Praxis
Im Jahr 2012 ermöglichte GitHub seinen Nutzern das Hochladen öffentlicher Schlüssel. Da das Eingabeformular jedoch keine angemessenen Einschränkungen für die Bearbeitung anderer Parameter enthielt, konnten Nutzer nicht nur ihren eigenen öffentlichen Schlüssel hochladen, sondern auch weitere Parameter ändern. Dies führte dazu, dass der von diesem Vorfall betroffene Nutzer seinen öffentlichen Schlüssel mit einem Organisationskonto verknüpfen konnte, wodurch er nun Zugriff auf sensible Informationen erhielt, zu denen er eigentlich keinen Zugang haben sollte. Weitere Informationen zu diesem Vorfall finden Sie hier.
Verhinderung von Massenzuordnungen
ThreatX von A10 Networks kann dabei helfen, diese Schwachstelle zu identifizieren und deren Ausnutzung zu verhindern. Mithilfe einer angreiferorientierten Verhaltensanalyse kann ThreatX Verhaltensmuster, die auf einen laufenden Mass-Assignment-Angriff hindeuten, erkennen, überwachen und gegebenenfalls blockieren.
Bevor wir näher darauf eingehen, wie ThreatX zum Schutz vor dieser Sicherheitslücke beiträgt, sei darauf hingewiesen, dass es DevOps-Maßnahmen gibt, mit denen sich das Risiko mindern lässt. Eine Möglichkeit besteht beispielsweise darin, explizit festzulegen, welche Felder eines API-Endpunkts geändert werden dürfen, und alle anderen abzulehnen. Auf diese Weise können Unternehmen verhindern, dass Angreifer sensible Attribute manipulieren, auf die niemals zugegriffen oder die niemals geändert werden sollten.
Wie ThreatX helfen kann
Überwachen und Blockieren von Massenzuweisungen
Es kann schwierig sein, zu erkennen, ob ein Angreifer diese Sicherheitslücke ausgenutzt hat, da die Anwendung keine Anzeichen eines Fehlers zeigt. ThreatX überwacht jedoch kontinuierlich jeden einzelnen Client/Benutzer und würde Sondierungs-/Aufklärungsaktivitäten erkennen, die auf diese Sicherheitslücke abzielen. Andere verdächtige Aktivitäten, wie z. B. wiederholte Fehlerreaktionen, deuten in der Regel darauf hin, dass ein Angreifer nichts Gutes im Schilde führt. Wenn diese Verhaltensweisen eine bestimmte Risikoschwelle erreichen oder in Verbindung mit anderen verdächtigen Verhaltensweisen des Angreifers beobachtet werden (was häufig der Fall ist), würden wir den Angreifer blockieren und die Ereignisse zur späteren Überprüfung aufzeichnen.
Identifizierung der Massenzuordnung
ThreatX macht potenziell gefährdete API-Endpunkte durch mehrere Datenpunkte sichtbar. Erstens werden die Details eines jeden Angriffs mit jedem angegriffenen Endpunkt korreliert. Zweitens vergleichen wir beobachtete Anfragen für jeden Endpunkt mit der erwarteten Nutzung, die im genehmigten API-Schema definiert ist. Schließlich werden fehlgeschlagene Anfragen auf verschiedene Fehlerbedingungen analysiert, die auf potenzielle Schwachstellen hinweisen.
Schützen Sie APIs gegen Massenabtretungen. Produkttour zu ThreatX anzeigen
Wie unser Ansatz einzigartig ist
Blockierung in Echtzeit
Einige API-Sicherheitslösungen zeigen lediglich potenzielle API-Schwachstellen auf und überlassen es den Sicherheitsteams, diese zu untersuchen und Codeänderungen zu empfehlen. Andere API-Lösungen können eine angreifende IP identifizieren, erfordern aber, dass Sicherheitsteams versuchen, das komplexe Verhalten in einer WAF eines Drittanbieters zu modellieren (oder versuchen, eine IP nach der anderen zu blockieren). ThreatX informiert Sie nicht nur über Ihre API-Schwachstellen oder Angriffsversuche, sondern blockiert auch API-Angriffe in Echtzeit. ThreatX vermittelt und scannt den gesamten eingehenden API-Verkehr - in Echtzeit - und identifiziert und blockiert Angriffe.
ThreatX erkennt das Verhalten von Angreifern, das auf den Versuch hinweist, eine Massenzuweisung auszunutzen, und markiert und überwacht dann diesen Benutzer. Dank dieser Echtzeitüberwachung kann ThreatX fortschrittliche Techniken zur Bekämpfung von Bedrohungen wie IP-Abfragen, Fingerprinting und Tarpitting einsetzen. Wenn eine Reihe von Benutzerinteraktionen unseren Standard-Risikoschwellenwert (oder Ihren individuellen Schwellenwert) überschreitet, blockieren wir den Angriff.
Schritt eins der N...
In vielen Fällen greifen die Angreifer nicht nur mit einem Massenangriff an, sondern stellen im Laufe der Zeit eine Reihe von Angriffen zusammen, oft unter Verwendung von föderierten und ausgeklügelten Botnets. Um diesem Ansatz entgegenzuwirken, muss man in der Lage sein, den Angriffsverkehr über mehrere IPs hinweg zu korrelieren, einen fortschrittlichen Bot-Schutz einzusetzen und Identifikatoren und Techniken zu erkennen, mit denen der Verkehr einem eindeutigen Angreifer zugeordnet werden kann. Anstatt ein einzelnes, besonders riskantes Ereignis oder die Identifizierung einer bekannten Signatur zu verlangen, analysiert ThreatX das Verhalten von mehreren Punkten aus. Dadurch kann die ThreatX-Plattform mehr Bedrohungen identifizieren und blockieren als konkurrierende API-Sicherheitstools.
Weniger False Positives
Wenn das Risiko steigt, blockiert ThreatX sofort einen Angriff. Die Blockiermodi von ThreatX sind so konzipiert, dass sie bösartige Anfragen blockieren und verdächtige Unternehmen davon abhalten, Ihre APIs anzugreifen, während sie gutartigen Datenverkehr und echte Benutzer durchlassen. Herkömmliche WAFs haben mit Fehlalarmen zu kämpfen, weil sie Blockierungsentscheidungen nur auf der Grundlage von Regeln treffen, aber Angreifer und legitime Benutzer halten sich nicht immer an die Regeln. Manchmal sieht ein legitimer Benutzer, der sein Passwort vergessen hat, wie ein Angreifer aus, und manchmal sieht ein Angreifer, der Benutzernamen und Passwörter durchgeht, wie ein legitimer Benutzer aus. ThreatX kann den Unterschied erkennen.
Erkennen von Risiken
Angreifer tarnen ihre Versuche, eine API mit Massenzuweisung auszunutzen, indem sie mehr verdächtigen oder erhöhten Anwendungsverkehr erzeugen. ThreatX erkennt und blockiert potenzielle Bedrohungen anhand des Verhaltens, identifiziert aber auch riskante Attribute, die im API-Verkehr verwendet werden. Das API-Dashboard von ThreatX zeigt detailliert die Nutzung von API-Endpunkten und deren Vergleich mit dem erwarteten Verhalten, das in den API-Schema-Spezifikationen eines Unternehmens festgelegt ist. Im Falle einer Massenzuweisung erkennt das ThreatX API Dashboard Versuche, Autorisierungsparameter zu verwenden, die nicht Teil eines gültigen Schemas sind. Mit dieser Transparenz können Kunden diese Hintertüren identifizieren und sie gegen diese ausgeklügelten, vektoriellen Angriffe, die sich zu einer häufigen Bedrohung entwickeln, schließen.
Häufig gestellte Fragen
In diesem Fall werden vom Benutzer bereitgestellte Eingaben akzeptiert, ohne dass ordnungsgemäß eingeschränkt wird, welche Attribute geändert werden dürfen, wodurch Angreifer mit böswilligen Absichten sensible Felder wie Berechtigungen oder Rollen aktualisieren können.
Dies geschieht durch das Senden zusätzlicher Parameter in einer API-Anfrage, die nicht ordnungsgemäß validiert werden können, da keine entsprechenden Einschränkungen festgelegt wurden.
Beide beinhalten unbefugten Zugriff, doch der Begriff „Mass Assignment“ bezieht sich speziell auf APIs, die die Änderung einer großen Anzahl von Ressourcen zum Gegenstand haben.
Geeignete Überprüfungen, Whitelisting und andere Formen der Validierung können zum Schutz vor dieser Sicherheitslücke beitragen.
Ja, das ist es.