Technische Leitfäden 15 Min. Lesezeit

API-Penetrationstest nach OWASP API Security Top 10: Schnittstellen zuverlässig absichern

Web-APIs (REST, GraphQL) sind das unsichtbare Rückgrat moderner Web- und Mobile-Anwendungen in der Schweiz. Sie verbinden Kundenportale, ERP-Systeme, Krankenkassen-Schnittstellen und Bezahldienstleister. Doch traditionelle Firewalls und Web Application Firewalls (WAF) sind bei logischen API-Schwachstellen blind. Warum API-Penetrationstests unverzichtbar sind.

Das Wichtigste in Kürze

  • WAFs bieten trügerische Sicherheit: Eine Firewall filtert bekannte SQL-Injections, erkennt aber nicht, wenn Benutzer A durch Ändern einer ID plötzlich die Rechnungen von Benutzer B abrufen kann.
  • BOLA (Broken Object Level Authorization): Die Nummer 1 der OWASP API Security Top 10 ist für über 40 % aller massiven Datenabflüsse verantwortlich.
  • Token-Leaks im Frontend: Viele moderne Single Page Applications (React, Angular, Vue) enthalten fest verdrahtete API-Schlüssel oder Berechtigungs-Tokens im JavaScript-Code.
  • Prüfansatz: Suisse Guard testet APIs mit realen Payload-Sequenzen auf Berechtigungsfehler, Mass Assignment und Ratenbegrenzungen.

1. Das Dilemma moderner API-Architekturen

Früher erzeugte der Webserver HTML und schickte fertige Seiten an den Browser. Heute liefert der Webserver nur noch eine statische JavaScript-Applikation aus. Alle geschäftsrelevanten Daten – Rechnungen, Personaldaten, Patientendossiers – werden im Hintergrund über JSON-APIs ausgetauscht.

Entwickler konzentrieren sich oft auf Funktionalität und verlassen sich darauf, dass der Endpunkt «im Code versteckt» sei. Für Angreifer ist eine API jedoch ein offenes Buch: Entwicklertools im Browser oder Proxy-Tools wie Burp Suite machen jeden einzelnen Aufruf transparent sichtbar.

2. Die gefährlichsten Schwachstellen nach OWASP API Top 10

1. API1:2023 – Broken Object Level Authorization (BOLA)

BOLA (früher IDOR) tritt auf, wenn ein Endpunkt eine Objekt-ID entgegennimmt, aber nicht prüft, ob der angemeldete Benutzer tatsächlich Eigentümer dieses Objekts ist.

# Abruf der eigenen Rechnung (erlaubt)
GET /api/v1/invoices/10042
Host: portal.schweiz-firma.ch
Authorization: Bearer [Token von User A]

# Manipulation der ID auf fremde Rechnung (BOLA-Schwachstelle!)
GET /api/v1/invoices/10043
Host: portal.schweiz-firma.ch
Authorization: Bearer [Token von User A]

Wenn der Server die Rechnung 10043 ohne Berechtigungsprüfung ausliefert, kann ein Angreifer mit einem einfachen Python-Skript alle Rechnungen des gesamten Unternehmens in wenigen Minuten herunterladen.

2. API2:2023 – Broken Authentication

Fehlerhafte JWT-Validierung (z. B. Akzeptanz von alg: "none" oder schwache Signaturschlüssel), fehlendes Token-Ablaufdatum oder ungeschützte Passwort-Reset-Endpunkte, die Brute-Force-Angriffe ohne Ratenbegrenzung zulassen.

3. API3:2023 – Broken Object Property Level Authorization (Mass Assignment)

Ein Benutzer aktualisiert sein Profil über PUT /api/v1/user/profile. Wenn der Endpunkt JSON-Attribute blind in die Datenbank übernimmt, kann der Angreifer zusätzliche Parameter unterschieben:

{
  "name": "Max Muster",
  "email": "max@muster.ch",
  "is_admin": true,
  "role": "SuperAdministrator"
}

4. API4:2023 – Unrestricted Resource Consumption (Fehlende Ratenbegrenzung)

Fehlt ein Rate-Limiting, können Angreifer Hunderttausende Anfragen pro Minute senden, um Daten abzusaugen, Schnittstellenkosten in die Höhe zu treiben oder das Backend lahmzulegen. Auf Nginx-Ebene lässt sich dies effizient konfigurieren:

# Nginx Rate Limiting für sensible API-Routen
limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;

location /api/ {
    limit_req zone=api_limit burst=20 nodelay;
    proxy_pass http://backend_cluster;
}

3. So prüft Suisse Guard Ihre Schnittstellen

Im Prüfbereich 7 der Bedrohungsanalyse nehmen wir Ihre REST-, SOAP- und GraphQL-Schnittstellen systematisch unter die Lupe: Wir testen Rollenkonzepte, Token-Gültigkeiten, CORS-Policies und Ratenbegrenzungen – damit Ihre geschäftskritischen Schnittstellen wasserdicht abgesichert sind.

Sind Ihre APIs und Schnittstellen wirklich sicher?

Lassen Sie Ihre Webservices nach OWASP API Security Top 10 auf Autorisierungslücken und Schwachstellen prüfen.