Alex - stock.adobe.com

10 Tools für Sicherheitstests von APIs

Um APIs richtig abzusichern, müssen sie während des gesamten Entwicklungslebenszyklus getestet werden. Hier sind zehn Tools für automatisierte API-Sicherheitstests.

Programmierschnittstellen, kurz APIs, sind das Herzstück moderner Anwendungsarchitekturen. Aufgrund ihrer Bedeutung und ihrer Fähigkeit, den Zugriff auf Daten und Ressourcen zu ermöglichen, sind sie jedoch häufig das Ziel von Angreifern.

Der Markt für API-Security besteht sowohl aus Cloud-Diensten als auch aus solchen, die in Entwicklungs- und Laufzeitumgebungen integriert werden können. Starke API-Sicherheits-Tools sollten Fehlkonfigurationen bei der API-Integration, die Offenlegung sensibler Daten, Sicherheitslücken, den unsachgemäßen Umgang mit Anmeldeinformationen und Autorisierungstoken und vieles mehr erkennen. Viele Tools oder Dienste können auch als Präventivmaßnahme dienen, die böswillige Abfragen und Interaktionen mit APIs abwehrt.

Die unten aufgeführten Tools für API-Sicherheitstests sind nicht nach Rangfolge, sondern alphabetisch geordnet, da unterschiedliche Anwendungsfälle unterschiedliche Funktionen erfordern. Je nach den jeweiligen Anforderungen kann ein bestimmtes Tool für eine Organisation die beste Wahl sein, für eine andere jedoch nicht. Die meisten dieser Tools für API-Sicherheitstests bieten kostenlose Versionen oder kostenlose Testzeiträume an, aber Unternehmensnutzer werden wahrscheinlich kostenpflichtige Optionen oder Lizenzen benötigen. Dennoch lohnt es sich, jedes Tool vor der endgültigen Entscheidung zu testen, um zu sehen, wie es für Entwickler und Sicherheitsteams vor Ort funktioniert.

Unabhängig davon, für welche API-Sicherheitstest-Tools sich Unternehmen entscheiden, sind am Lebenszyklus einer API viele verschiedene Teams beteiligt, und es kommt natürlich zu schnellen Iterationen. Daher ist es wichtig festzulegen, wer die Gesamtverantwortung für das Testen und die fortlaufende Aufrechterhaltung der API-Sicherheit trägt.

Apache JMeter

Apache JMeter ist ein Open Source Java-Programm, das ursprünglich für Lasttests von Webanwendung konzipiert wurde. Es wurde um Funktionen zum Testen des Funktionsverhaltens und zur Leistungsmessung auf statischen und dynamischen Ressourcen von jedem Windows-, Linux- oder macOS-System aus erweitert.

Für Apache JMeter sind keine Programmierkenntnisse erforderlich. Es kann viele verschiedene Arten von Anwendungen, Servern und Protokollen verarbeiten und unterstützt die Verkettung von Anfragen. Tests können CSV-Dateien verwenden, um große Mengen an realistischem Datenverkehr zu generieren, der APIs unter Druck setzt. Eine Integration von JMeter und Jenkins ermöglicht es Administratoren, API-Tests in CI/CD-Pipelines (Continuous Integration/Continuous Delivery) einzubauen und JMeter für die API-Überwachung zu verwenden.

Beachten Sie jedoch, dass JMeter nicht in der Lage ist, Skripte und andere Browserfunktionen dynamisch auszuführen, was es zu einer eingeschränkten Option für gründliche Tests macht.

Apigee API Management

Apigee API Management, Teil der Google Cloud, richtet sich an Unternehmen, die große und komplexe Projekte erstellen, und unterstützt das Entwerfen, Erstellen, Testen, Bereitstellen und Überwachen von APIs, indem es Entwicklern ermöglicht, Datenverkehr, Fehlerraten und Reaktionszeiten zu verfolgen. Benutzer stellen ihre APIs auf Apigee über API-Proxys bereit, die als verwaltete Fassaden für Backend-Dienste fungieren. Diese Proxys entkoppeln die anwendungsseitigen APIs von den Backend-Diensten, sodass die Anwendungen die APIs trotz Codeänderungen im Backend ohne Unterbrechung weiter aufrufen können.

Apigee-Kunden können zwischen SaaS- und Hybridoptionen wählen. In der gehosteten SaaS-Version verwaltet Apigee die Umgebung. Die Hybridversion besteht aus einer Verwaltungsebene, die in der Cloud von Apigee ausgeführt wird, sowie einer Laufzeitebene, die On-Premises oder bei einem Cloud-Anbieter installiert ist. Das Hybridmodell beschränkt den API-Verkehr und die Daten auf das Unternehmen, kann jedoch einen erheblichen Konfigurations- und Anpassungsaufwand erfordern.

Die drei Abonnementpakete sind Standard, Enterprise und Enterprise Plus, wobei keines davon die Anzahl der einzelnen APIs oder Benutzer begrenzt. Höhere Stufen bieten jedoch eine größere Anzahl von API-Aufrufen. Organisationen können sich auch für das Pay-as-you-go-Modell von Apigee entscheiden, bei dem die Gebühren auf der Grundlage der Anzahl der API-Aufrufe, der pro Stunde genutzten Bereitstellungsumgebungen und der Anzahl der Proxy-Bereitstellungen berechnet werden. Die Preise von Apigee sind auf Anfrage erhältlich.

Assertible

Assertible bietet einfache und leistungsstarke API-Tests und -Überwachung mit schlüsselfertigen Zusicherungen für domänenspezifische Tests, einschließlich JSON-Schema-Validierung und JSONPath-Datenintegritätsprüfungen. Es lässt sich in gängige Entwicklungs- und Kommunikationswerkzeuge wie GitHub, Slack, PagerDuty und Zapier sowie in CI/CD-Dienste und -Plattformen integrieren. Es ist möglich, mehrere HTTP-Anfragen miteinander zu verketten, um kompliziertere Szenarien über Einrichtungsschritte zu testen, die es ermöglichen, Testvariablen aus einer HTTP-Anfrage zu erfassen.

Während es normalerweise zeitaufwendig ist, Tests auf dem neuesten Stand zu halten, kann Assertible alle Änderungen in API-Spezifikationen – wie Aktualisierungen von Antworten, Parametern und Headern – automatisch mit API-Tests synchronisieren. Entwickler müssen ihre Tests daher nicht mehr manuell aktualisieren, nachdem sie neue Parameter hinzugefügt oder die Antwort einer API geändert haben. Assertible enthält eine Funktion namens Encrypted Variables, die die Sicherheit verbessert, indem sie Token, Passwörter und andere sensible Datenfelder für API-Tests sicher speichert.

Kunden können aus vier Paketen wählen, darunter ein kostenloses persönliches Paket. Die kostenpflichtigen Pakete bieten eine gestaffelte Erhöhung der Anzahl der Tests, der Testhäufigkeit und der unterstützten Teammitglieder.

Insomnia

Insomnia, Teil von Kong, ist ein Open Source API-Client zum Erstellen, Organisieren, Teilen und Ausführen von REST- (Representational State Transfer), SOAP- (Simple Object Access Protocol), GraphQL- und gRPC-Anfragen von einer Mac-, Linux- oder Windows-Desktop-Anwendung aus. Er enthält einen integrierten Spezifikationseditor, mit dem Benutzer Änderungen sofort in der Vorschau anzeigen können, ohne die App oder Ansicht wechseln zu müssen, und er kann Code für mehr als zwölf verschiedene Sprachen generieren.

Insomnia unterstützt die Definition und Trennung von Umgebungsvariablen zur Wiederverwendung über Anfragen hinweg, global oder innerhalb einer öffentlichen oder privaten Umgebung. Benutzer können mit den Testsuite-Skripten von Insomnia benutzerdefinierte API-Testabläufe erstellen, einschließlich verketteter Anfragen. Der Code-Editor von Insomnia ist relativ einfach, erfordert jedoch einige Programmierkenntnisse. Mit Inso, der CLI der App, können Benutzer automatisierte Insomnia-API-Tests über GitHub, GitLab Jenkins, Vercel und andere Plattformen in ihre CI/CD-Pipelines integrieren.

Es gibt eine kostenlose Lizenz für Einzelbenutzer. Kong bietet kostenpflichtige Tarife für Einzelpersonen, Teams und Unternehmen mit zusätzlichen Funktionen wie eine unbegrenzte Anzahl von Mitarbeitern und Organisationen, native Git-Unterstützung und vieles mehr.

Karate

Karate ist ein Open-Source-Framework, das automatisierte API-Tests, Leistungstests und Mocking in einem einzigen Framework vereint. Obwohl es in Java implementiert ist, sind keine fortgeschrittenen Programmierkenntnisse erforderlich. Karate verwendet einen verhaltensgesteuerten Entwicklungsansatz und die Gherkin-Syntax (Given, When, Then) für die Codierung von Testskripten. Testdefinitionen können auch als funktionale Dokumentation für die API selbst dienen. Karate kann in CI/CD-Tools integriert werden.

JSON- und XML-Assertions sind integriert und Tests können parallel ausgeführt werden, um die Leistung und Geschwindigkeit zu verbessern. Administratoren können Endbenutzer-Workflows mit API-Aufrufsequenzen testen. Darüber hinaus können Tests durch Hinzufügen von Gatling auch als Leistungstests verwendet werden, um zu überprüfen, ob die Serverantworten unter Last wie erwartet ausfallen. API-Testskripte können auch zur Automatisierung von UI-Tests verwendet werden, und der Karate-Debugger kann während der Bearbeitung einen Schritt zurückgehen und einen Schritt wiedergeben. Karate verfügt über eine umfangreiche Dokumentation, eine Vielzahl von Testbeispielen und eine aktive Entwicklergemeinschaft.

Als Open-Source-Programm ist Karate für Benutzer kostenlos. Organisationen können sich für eine der kostenpflichtigen Stufen entscheiden – Plus, Pro oder Ultimate – für zusätzliche Funktionen, einschließlich des Aufrufs von HTTP-APIs, Syntax- und Debugging-Support.

Katalon Studio

Katalon Studio ist ein beliebtes Testautomatisierungs-Tool für APIs sowie Web-, Mobil- und Desktop-Anwendungen. Es läuft unter Windows, Linux und macOS. Katalon Studio unterstützt SOAP- und REST-Anfragen und bietet mehrere Parametrisierungsfunktionen und -befehle mit Unterstützung für mehrere Datenquellen für datengesteuerte Tests.

Testskripte werden in der Programmiersprache Apache Groovy geschrieben, aber eine Benutzeroberfläche mit zwei Editoren erlaubt es Benutzern, zwischen dem Skript- und dem manuellen Bearbeitungsmodus zu wechseln. Der manuelle Modus ermöglicht es Benutzern mit begrenzten Programmierkenntnissen, Tests über eine Drag-and-Drop-Oberfläche zu generieren. Katalon Studio verfügt über einen Schnellstart-Assistenten und ein Aufzeichnungs- und Wiedergabe-Tool. Benutzer können auch Tests verketten.

Katalon Studio ist kostenlos, ebenso wie viele seiner Plugins. Die Premium-Version umfasst erweiterte Funktionen, private Plug-ins und Helpdesk-Support. Das kostenpflichtige Add-on Runtime Engine ermöglicht die CI/CD-Integration und Benutzer können damit Tests parallel planen und ausführen. Eine Ultimate-Version bietet zusätzliche Analyse- und KI-Funktionen. Die Preise sind auf Anfrage erhältlich.

Postman

Postman ist eine weit verbreitete Plattform zum Erstellen und Testen von APIs, die über 30 Millionen Benutzer in 500.000 Organisationen haben soll. Ursprünglich ein Chrome-Plugin, ist es jetzt als SaaS- oder Desktop-Anwendung verfügbar und mit Windows, Linux und macOS kompatibel.

In Postman-Sammlungen können Teams API-Anfragen und Beispiele organisieren, gruppieren, wiederverwenden und teilen, was die Zusammenarbeit, automatisierte Tests und die Verkettung von Anfragen ermöglicht. Durch das Anhängen von Monitoren an Sammlungen können Benutzer automatisierte API-Tests so planen, dass sie bis zu alle fünf Minuten ausgeführt werden, und potenzielle Probleme durch Warnmeldungen kennzeichnen.

Postman bietet eine Reihe von Video-Tutorials und eine solide Dokumentation. Es verfügt auch über eine besonders starke Community-Unterstützung, da viele Benutzer APIs, Sammlungen und Arbeitsbereiche veröffentlichen, um anderen bei der Schulung und Entwicklung zu helfen.

Es stehen vier verschiedene Pläne zur Verfügung, beginnend mit einer kostenlosen Version für bis zu drei Benutzer und einer kostenpflichtigen Basic-Version. Die Versionen Professional und Enterprise enthalten private Arbeitsbereiche, in denen Benutzer API-Artefakte speichern und andere Teammitglieder darauf zugreifen können, sowie Mocking-Funktionen, Identitäts- und Zugriffsverwaltung sowie erweiterte Berichterstellung und Analyse.

Sauce Labs Platform for Test

Sauce Labs Platform for Test, früher Sauce Labs API Testing and Monitoring, ist eine umfassende Plattform für das Testen, Überwachen, Fehlermelden und Debuggen von Webdiensten und REST-APIs. Die Sauce Labs Platform for Test wurde von Grund auf für komprimierte DevTest-Workflows entwickelt und ermöglicht es Administratoren, Tests automatisch aus Nutzlasten oder Spezifikationsdateien zu generieren und sie dann entweder in einer integrierten Entwicklungsumgebung oder in einem einfachen Drag-and-Drop-Test-Composer zu bearbeiten. Funktionstests können im Test-Composer wiederverwendet werden, um auf effiziente Weise dynamische, datengesteuerte und durchgängige API-Flow-Tests zu erstellen, mit vielen Optionen zur Observability und zur Validierung realer Szenarien.

Benutzer haben auch die Möglichkeit, API-Tests als Monitore wiederzuverwenden, die sie in jeder Umgebung, einschließlich der Produktion, durch Integration mit einer CI/CD-Pipeline oder dem integrierten Autoscheduler von Sauce einsetzen können. Die im Hintergrund laufenden Funktionsmonitore können Warnmeldungen und detaillierte Berichte bereitstellen, um die Fehlerbehebung zu beschleunigen. Durch die Vereinheitlichung aller API-Tests und -Monitore auf einer zentralen Plattform verfügt das Management über eine einzige Version des API-Zustands sowie über Einblicke in laufende Tests.

Platform for Test ist in drei Modellen erhältlich, die alle eine unbegrenzte Anzahl von Benutzern und Testminuten beinhalten: Live Testing, Virtual Cloud und Real Device Cloud. Es wird auch Unternehmens-Support angeboten.

SoapUI und ReadyAPI

SoapUI, 2006 von SmartBear entwickelt, war das erste Open Source Test-Tool für SOAP- und REST-APIs. Es ist als Desktop-Anwendung für Windows, Linux und macOS verfügbar. Das selbsternannte Schweizer Taschenmesser der automatisierten Funktions- und Regressionstests ermöglicht es Benutzern, Funktionstests von einfach bis komplex mit einfachen Drag-and-Drop-Aktionen zu erstellen und auszuführen. Die generierten Skripte können wiederverwendet werden und unterstützen die Verkettung von Support-Anfragen.

Eine kostenpflichtige Pro-Version namens ReadyAPI stellt zusätzliche Funktionen zur Verfügung, darunter datengesteuerte Leistungstests, Servicevirtualisierung, Mocking und CI/CD-Pipeline-Integration, mit Unterstützung für GraphQL, Java Message Service und Java Database Connectivity. Sie ist in drei Modulen für API-Tests, API-Leistungstests und API-Virtualisierung erhältlich. Kunden haben auch die Möglichkeit, alle drei Module als Paket zu einem reduzierten, individuellen Preis zu erwerben.

Swagger

Swagger, das von SmartBear unterstützt wird, ist eine benutzerfreundliche Suite von Open Source Tools zum Designen, Erstellen, Testen und Dokumentieren von APIs. Die Swagger-Spezifikation, die Grundlage für die Tool-Suite, wurde 2016 zur OpenAPI-Spezifikation.

Die Suite enthält den Swagger Editor, der eine API-Spezifikation visualisiert und Echtzeit-Benutzerinteraktion und -Feedback ermöglicht. Swagger Codegen generiert Server-Stubs in mehr als 20 verschiedenen Sprachen und Client-SDKs in über 40 verschiedenen Sprachen, sodass Endentwickler problemlos in Live-APIs integrieren können. Swagger UI ermöglicht es jedem, die Ressourcen einer API zu visualisieren und mit ihnen zu interagieren, ohne Zugriff auf ihre Implementierungslogik zu haben. Andere Tools in der Suite erlauben die Erstellung von Antwort-Mockups für nicht implementierte Methoden und die Veröffentlichung eines gesamten API-Projekts auf jeder beliebigen Node.js-Plattform.

Die Nutzung von Swagger ist kostenlos. Die SwaggerHub-Plattform, welche die Swagger-Suite mit zusätzlichen Funktionen integriert, ist in Team- oder Enterprise-Paketen erhältlich. Der Team-Plan umfasst zusätzliche Integrationen, wiederverwendbare Domains und Funktionen für die Zusammenarbeit. Der Enterprise-Plan, der On-Premises oder als SaaS-Option verfügbar ist, umfasst Prioritäts-Support und API-Standardisierung. Die Enterprise-Preise sind auf Anfrage erhältlich.

Erfahren Sie mehr über Softwareentwicklung