API Security Testing

Marxer, Maximilian Lukas (2021) API Security Testing. Other thesis, OST Ostschweizer Fachhochschule.

[thumbnail of FS 2021-BA-EP-Marxer-API Security Testing.pdf] Text
FS 2021-BA-EP-Marxer-API Security Testing.pdf - Supplemental Material

Download (3MB)

Abstract

Aufgabenstellung
Das Ziel dieser Arbeit war es, ein Konzept zu entwerfen mit dem man APIs auf ihre Sicherheit testen kann. Dazu wurde eine Beispielapplikation (Spring Boot „Mockup“ API) entwickelt, die den Kauf und Verkauf von Wertpapieren simuliert und eine Zugriffskontrolle implementiert. An der API soll demonstriert werden, wie Schwachstellen durch Sicherheitstests entdeckt werden können. Um die Funktionalität und Sicherheit der API zu überprüfen, sollen neben den üblichen Unit- und Integration-Tests auch End-to-End Tests an der API durchgeführt werden. Für diese Tests soll ein geeignetes Tool in der Arbeit bestimmt werden. Die Tests sollen automatisiert in der CI/CD Pipeline ausgeführt werden.

Methodik
Zu Beginn der Arbeit wurde eine Tool-Evaluation über aktuelle Tools zum Testen einer API durchgeführt. Durch die Evaluation wurde ein Tool bestimmt werden, mit welchem die End-to-End Tests an der API durchgeführt werden können. Dabei wurden drei verschiedene Tools genauer untersucht und auf ihre Funktionen analysiert. Anhand der gesammelten Erkenntnisse wurde mit Praxispartner zusammen entschieden, dass die Tests mit dem Postman Tool durchgeführt werden. Nach dieser Entscheidung wurde ein Lösungskonzept entwickelt, um Sicherheitsanforderungen der Beispielapplikation und die dazu nötige Architektur zu definieren. Für die definierte Architektur wurde eine Bedrohungsmodellierung durchgeführt, um die Schwachstellen der Beispielapplikation zu identifizieren und zu priorisieren. Für die Analyse der Schwachstellen wurden die OWASP Top 10 Schwachstellen für APIs verwendet. Nach der Analyse konnten die priorisierten Schwachstellen durch Security API Tests überprüft werden.

Ergebnis
Für das Testen der Security wurde eine funktionsfähige API entwickelt. Die Authentifizierung & Autorisierung wurde mit der Keycloak Anwendung umgesetzt und verwendet ein sogenanntes standarisiertes JSON Web Access Token, kurz JWT. Es wurde ein API Gateway aufgesetzt und so konfiguriert, dass alle Anfragen von Benutzern darüber geleitet wird. Er beschränkt die Anzahl der Aufrufe und zeichnet sie auf. Für die Authentifizierung bildet er aus der Signatur des JWT-Tokens einen Opaque-Token. Die Header und Payload Informationen des JWTs bleiben dadurch dem Benutzer verborgen und sind nur dem API Gateway bekannt. Die API wurde mit Unit- und Integration-Tests und End-to-End Tests auf ihre korrekte Funktionalität und Sicherheit getestet. Die Tests wurden automatisiert in die CI/CD Pipeline integriert. Ebenfalls wurde eine statische Code Analyse und ein automatisierter Penetration Test durchgeführt. Die Ergebnisse der Tests haben viele Schwachstellen der Beispielapplikation aufgezeigt. Für einige dieser Schwachstellen wurden Massnahmen getroffen, um diese zu mindern. Die Arbeit zeigt exemplarisch auf, wie eine API auf ihre Sicherheit getestet werden kann.

Item Type: Thesis (Other)
Subjects: Topics > Software > Testing and Simulation
Topics > Software > Testing and Simulation > Unit-Testing
Topics > Security
Area of Application > Web based
Technologies > Programming Languages > Java
Technologies > Databases > PostgreSQL
Technologies > Protocols > REST
Divisions: Bachelor of Science FHO in Informatik > Bachelor Thesis
Depositing User: OST Deposit User
Contributors:
Contribution
Name
Email
Thesis advisor
Weiler, Nathalie
UNSPECIFIED
Date Deposited: 13 Dec 2021 10:23
Last Modified: 13 Dec 2021 10:23
URI: https://eprints.ost.ch/id/eprint/965

Actions (login required)

View Item
View Item