APIs (Application Programming Interfaces) sind ein zweischneidiges Schwert für moderne Anwendungen wie mobile Apps, IoT-Anwendungen und Dienste von Drittanbietern, die in bestehende Anwendungen eingebettet sind. Sie vereinfachen die Architektur und die Bereitstellung, bringen aber eine Vielzahl von Risiken und Schwachstellen mit sich.
Leider erhalten API-Schwachstellen immer noch nicht die erforderliche Aufmerksamkeit. Alle Risiken, die Webanwendungen betreffen, betreffen auch Web Services, und dennoch funktionieren herkömmliche Tools zur Bewertung der Anwendungssicherheit wie Dynamic Application Security Testing (DAST) und Static Application Security Testing (SAST) entweder nicht gut mit APIs oder sind einfach irrelevant für sie.
APIs werden das Herzstück vieler KI-Fähigkeiten sein. Ihr Schutz könnte das größte Problem der Zukunft des Internets sein. Nachfolgend 14 Tipps von Radware für Sicherheitsmaßnahmen, mit denen APIs besser geschützt werden können:
- TLS ist erforderlich, um bei der Kommunikation zwischen dem Client und den APIs die Vertraulichkeit und Integrität der Daten während des Transports zu gewährleisten.
- TCP-Terminierung für die Erkennung von Netzwerk-Angriffen, bei denen IP-Fragmentierung angewendet wird.
- HTTP-Protokoll-Parsing und Durchsetzung des HTTP-RFC schützt vor verschiedenen HTTP-Angriffen wie NULL-Byte-Injection, verschlüsselte Angriffe, HRS-Angriffe, Content-Type-Mismatch, etc.
- Verkehrsnormalisierung zur Erkennung von Umgehungsangriffen. Verschlüsselte Angriffe können viele Sicherheitslösungen leicht umgehen.
- Message Size Policy Enforcement für HTTP-Nachrichten, Body, Header und JSON/XML-Elementgrößen schützt die Anwendung vor Pufferüberlauf-Angriffen, Ressourcenerschöpfung und anderen Verfügbarkeitsangriffen auf die API-Infrastruktur.
- Verwaltung von Zugriffskontrollrichtlinien mit:
– IP-basierten und geografischen Standortbeschränkungen, falls relevant
– Zugriffsbeschränkung auf bestimmte APIs, bei denen z.B. einige APIs für den öffentlichen Zugriff freigegeben werden sollen, während andere nur für den internen Gebrauch bestimmt sind.
– Zugriffsbeschränkungen auf bestimmte HTTP-Methoden, bei denen die für bestimmte Benutzer erlaubten Operationen für andere Benutzer oder Quellen verboten sind. (Ein Benutzer kann z.B. eine Lizenz generieren, aber die einmal generierte Lizenz nicht löschen.)
- Starke Typisierung und ein positives Sicherheitsmodell schützen die API-Infrastruktur. Die meisten Angriffe werden unmöglich, wenn z.B. der einzige erlaubte Werttyp im JSON-Element eine ganze Zahl mit dem Wertebereich von 1 – 100 ist.
- XML/JSON Gültigkeitsprüfung und Schemavalidierung bilden einen äußerst wichtigen Schutz. Typen, Wertebereiche, Größen und Reihenfolge der XML-Elemente müssen konfigurierbar sein.
- Datenraten-basierter Schutz pro Anwendung oder pro API ist ein wichtiger Schutz vor Servicemissbrauch, Brute-Force-Angriffen und DoS-Angriffen.
- XSS-Schutz sollte auf Regeln und Signaturen bekannter Angriffsmuster basieren.
- SQL- und No-SQL-Injection-Schutz kann durch Bereinigung und Validierung von Benutzereingaben sowie durch regelbasierte Angriffserkennung erreicht werden.
- Das Session-Management kann verwendet werden, um den API-Schlüssel zu schützen, der als Body-Argument oder im Cookie gepostet wird.
- Schutz vor Datenlecks ist unerlässlich, um sicherzustellen, dass Fehlermeldungen und sensible Informationen nicht an den potenziellen Angreifer gelangen.
- DDoS-Schutz ist der Schlüssel zur Verhinderung und Abschwächung einer Vielzahl von DDoS-Angriffstechniken, die API-Schwachstellen ausnutzen können.
Autor: Jürgen Haekel
www.radware.com