Mangelhaftes API-Inventar

Mangelhaftes API-Inventar

Die alte API-Version, die Sie vergessen haben, antwortet immer noch.

Was ist Mangelhaftes API-Inventar?

Eine Sicherheitskontrolle deckt nur die Endpunkte ab, von denen Sie wissen, dass sie ausgeführt werden. Alte API-Versionen, undokumentierte Endpunkte und vergessene Hosts bleiben außerhalb dieses Bildes im Einsatz und stellen weiterhin den ungeschützten Code bereit, den sie immer bereitgestellt haben. Sie erhalten eine 401 aus der aktuellen Version, ändern ein URL-Segment von v2 zu v1 und erhalten 200 mit dem Namen, der E-Mail-Adresse und der Privatadresse eines Kunden. Anschließend werden die Konto-IDs in eine Massenliste übertragen. Durch den Fix wird die alte Version eingestellt, sodass jeder Pfad darunter den Wert 410 Gone zurückgibt. Eine veraltete Version in den Dokumenten bedeutet keine Einstellung.

Was Sie lernen in Mangelhaftes API-Inventar

Mangelhaftes API-Inventar — Trainingsschritte

  1. Eine alte Version, immer noch gelistet

    Emberline ist eine App für Solaranlagen und Energie zu Hause: Kunden verbinden ihre Module und ihren Speicher, und die App liest ihr Konto über Emberlines API aus. Heute hat Bob es auf Emberline abgesehen. Er hat weder ein Konto noch ein Token; er will schlicht eine Liste der Kunden samt Wohnadressen, um sie weiterzuverkaufen. Er beginnt bei der öffentlichen Entwicklerdokumentation von Emberline, um die API kennenzulernen.

  2. Veraltet, aber nicht verschwunden

    Die Dokumentation beschreibt zwei API-Versionen. Bob liest nach, wie beide gekennzeichnet sind — und eine Kennzeichnung sticht ihm ins Auge.

  3. Die aktuelle Version anfragen

    Zuerst ruft Bob die aktuelle Version genau so auf, wie es die Dokumentation beschreibt: Er fragt ein einzelnes Konto über dessen ID ab und nimmt dafür die Beispiel-ID aus der Referenz. Ein Token hat er nicht — das ist also der Fall ohne Authentifizierung. Wenn das Gateway seine Arbeit macht, muss es ihn abweisen.

  4. Das Gateway weist ab

    Die aktuelle Version hat genau das getan, was sie soll.

  5. Ein Segment ändern

    Bob schickt dieselbe Anfrage, weiterhin ohne Token, und ändert nur eine einzige Sache: die Version in der URL, von v2 auf v1 , den als veraltet gekennzeichneten Build. Alles andere bleibt gleich. Ist die alte Version wirklich verschwunden, muss diese Anfrage ins Leere laufen.

  6. Die vergessene Version antwortet

    Dieselbe Anfrage, die das Gateway eben abgewiesen hat, kommt jetzt mit Daten zurück.

  7. Die Konten durchzählen

    Ein einzelner Datensatz ist ein Warnsignal. Weil v1 überhaupt kein Token verlangt, hält Bob nichts davon ab, die Konto-IDs durchzuzählen. Er lässt die Version auf v1 stehen und ändert die ID auf den nächsten Kunden.

  8. Jeder Kunde, in großem Stil

    Noch eine ID, noch ein echter Kunde.

  9. Wissenscheck

    Sie haben gerade gesehen, wie ein Angreifer ganz ohne Konto Kundendatensätze liest, indem er die Version in der URL austauscht. Prägen Sie sich ein, warum das funktioniert.

  10. Der Alarm trifft ein

    Sie verantworten Emberlines API-Gateway sowie den Lebenszyklus jeder API-Version dahinter. Über Nacht hat das Monitoring Tausende Lesezugriffe ohne Authentifizierung auf den alten Konten-Endpunkt /v1 gemeldet — alle von einer einzigen Adresse, die die Konto-IDs der Reihe nach durchgezählt hat. Security Operations hat Ihnen eine E-Mail geschickt.

Abdeckung der Sicherheits-Frameworks

OWASP API Top 10

  • API9:2023 Improper Inventory Management

CWE

  • CWE-1059 Insufficient Technical Documentation

CIS Controls

  • CIS 16 Application Software Security

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security