OWASP API Security Top 10: 0x11 t10

# OWASP Top 10 API Security Risks – 2019

| Risko | Beschreibung |
| ----- | ------------ |
| API1:2019 - Broken Object Level Authorization | APIs neigen dazu, Endpunkte offenzulegen, die Objektidentifikatoren verarbeiten, was eine breite Angriffsfläche auf Zugriffskontrolle auf Objektebene schafft. Berechtigungsprüfungen auf Objektebene sollten in jeder Funktion berücksichtigt werden, die auf eine Datenquelle zugreift, die eine Eingabe des Benutzers verwendet. |
| API2:2019 - Broken User Authentication | Authentifizierungsmechanismen sind oft falsch implementiert, sodass Angreifer Authentifizierungstoken kompromittieren oder Implementierungsfehler ausnutzen können, um vorübergehend oder dauerhaft die Identität anderer Benutzer anzunehmen. Durch die Beeinträchtigung der Fähigkeit des Systems, den Client / Benutzer zu identifizieren, wird die API-Sicherheit insgesamt gefährdet. |
| API3:2019 - Excessive Data Exposure | Mit Blick auf generische Implementierungen neigen Entwickler dazu, alle Objekteigenschaften freizugeben, ohne deren individuelle Empfindlichkeit zu berücksichtigen, und sich darauf zu verlassen, dass die Clients die Datenfilterung durchführen, bevor sie dem Benutzer angezeigt werden. |
| API4:2019 - Lack of Resources & Rate Limiting | Oftmals gibt es bei APIs keine Beschränkungen für die Größe oder Anzahl der Ressourcen, die vom Client/Nutzer angefordert werden können. Dies kann sich nicht nur auf die Leistung des API-Servers auswirken und zu Denial of Service (DoS) führen, sondern öffnet auch die Tür für Authentifizierungs-Angriffe wie Brute Force. |
| API5:2019 - Broken Function Level Authorization | Komplexe Zugriffskontrollrichtlinien mit unterschiedlichen Hierarchien, Gruppen und Rollen sowie eine unklare Trennung zwischen administrativen und regulären Funktionen führen häufig zu Sicherheitslücken in der Autorisierung. Unter Ausnutzung dieser Schwachstellen können Angreifer Zugriff auf die Ressourcen anderer Benutzer und/oder administrative Funktionen erlangen. |
| API6:2019 - Mass Assignment | Das Verbinden von vom Client bereitgestellten Daten (z.B. JSON) an Datenmodelle ohne ordnungsgemäße Filterung der Eigenschaften auf der Grundlage einer Whitelist führt in der Regel zu Mass Assignment. Das Erraten von Objekteigenschaften, das Erforschen anderer API-Endpunkte, das Lesen der Dokumentation oder die Bereitstellung zusätzlicher Objekteigenschaften in Daten von Anfragen ermöglicht es Angreifern, Objekteigenschaften zu verändern, die sie nicht verändern dürfen. |
| API7:2019 - Security Misconfiguration | Sicherheitsfehlkonfigurationen sind häufig das Ergebnis unsicherer Standardkonfigurationen, unvollständiger oder Ad-hoc-Konfigurationen, offener Cloud-Speicher, falsch konfigurierter HTTP-Header, unnötiger HTTP-Methoden, permissiver Cross-Origin-Resource-Sharing (CORS) und ausführlicher Fehlermeldungen mit sensiblen Informationen. |
| API8:2019 - Injection | Injection-Fehler, wie SQL, NoSQL, Command Injection usw., treten auf, wenn nicht vertrauenswürdige Daten als Teil eines Befehls oder einer Abfrage an einen Interpreter gesendet werden. Die bösartigen Daten des Angreifers können den Interpreter dazu verleiten, unbeabsichtigte Befehle auszuführen oder auf Daten zuzugreifen, ohne dazu berechtigt zu sein. |
| API9:2019 - Improper Assets Management | APIs neigen dazu, mehr Endpunkte freizugeben als herkömmliche Webanwendungen, was eine ordnungsgemäße und aktualisierte Dokumentation sehr wichtig macht. Eine ordnungsgemäße Inventarisierung der Hosts und der bereitgestellten API-Versionen spielt ebenfalls eine wichtige Rolle, um Probleme wie veraltete API-Versionen und offengelegte Debug-Endpunkten zu entschärfen. |
| API10:2019 - Insufficient Logging & Monitoring | Unzureichende Protokollierung und Überwachung in Verbindung mit einer fehlenden oder unwirksamen Integration in die Reaktion auf Vorfälle (Incidents Response) ermöglichen es Angreifern, weitere Systeme anzugreifen, die Persistenz aufrechtzuerhalten und auf weitere Systeme überzugehen, um Daten zu manipulieren, zu extrahieren oder zu zerstören. Die meisten Studien zu Breaches (Cyber Einbruch) zeigen, dass die Zeit bis zur Entdeckung eines Breaches mehr als 200 Tage beträgt und in der Regel eher von externen Parteien als von internen Prozessen oder der internen Überwachung entdeckt werden. |