Master's Thesis

Security Testing Tool for GraphQL

Final Thesis 2.66 MB

Author of thesis: Ing. Martin Dolák

Acad. year: 2025/2026

Supervisor: doc. Ing. Zdeněk Martinásek, Ph.D.

Reviewer: Ing. Tomáš Lieskovan, Ph.D.

Abstract:

This thesis examines the security of the GraphQL interface and analyzes known vulnerabilities available from public sources. The theoretical section includes a description of existing GraphQL interfaces, a summary of potential threats specific to GraphQL, and an explanation of their causes. The practical part of the thesis includes the design and implementation of a checklist based on the theoretical background, the implementation of the ptgraphql testing tool, which is used for penetration testing of GraphQL interfaces, and, finally, the implementation of an experimental environment used to test the tool’s functionality in a controlled setting.

Keywords:

GraphQL, Vulnerabilities, Penetration Testing, API, PenterepTools, Experimental Workplace, Checklist

Date of defence

09.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

Process of defence

Student prezentoval výsledky své práce a komise byla seznámena s posudky. Student obhájil diplomovou práci a odpověděl na otázky členů komise a oponenta. Otázky: V souboru introspection.py je cesta k nástroji graphql-cop zapsána jako hardcoded absolutní cesta /home/ubuntu/graphql-cop/venv/bin/python3. Jakým způsobem by bylo možné tuto závislost vyřešit, aby byl nástroj ptgraphql nasaditelný v libovolném prostředí bez nutnosti zásahu do zdrojového kódu? Funkčnost nástroje byla ověřena výhradně na záměrně zranitelném experimentálním pracovišti. Jak by se nástroj choval při spuštění na reálném, správně zabezpečeném GraphQL API – očekáváte výskyt falešně pozitivních nálezů, a pokud ano, u kterých modulů?

Language of thesis

Czech

Faculty

Department

Study programme

Information Security (MPC-IBE)

Composition of Committee

doc. Ing. Karel Burda, CSc. (předseda)
Mgr. Jakub Vostoupal, Ph.D. (člen)
prof. Ing. Róbert Hudec, PhD. (místopředseda)
Ing. Anna Kubánková, Ph.D. (člen)
Ing. Antonín Bohačík (člen)
doc. Ing. David Kubánek, Ph.D. (člen)
Ing. Petr Dzurenda, Ph.D. (člen)
Ing. Ondřej Mokrý, Ph.D. (člen)

Student Martin Dolák pracoval aktivně na řešení diplomové práce a pravidelně konzultovala dosažené výsledky. Veškeré podněty a návrhy reflektovala v práci. Hlavním přínosem práce je vlastní návrh a implementace nástroje podporující bezpečnostní penetrační webových aplikací. Implementovaný nástroj ověřuje bezpečnost rozhraní GraphQL. Funkčnost implementovaného nástroje jsem testoval a potvrzuji použitelnost v rámci black-box testování. Nástroj splňuje požadavky zadání (licence, využité knihovny atdp.). Student postupoval dle zadaní a nejprve vhodně analyzoval zranitelnosti rozhraní. Student využil celkem 66 zdrojů, které jsou aktuální. Práce je po formální stránce i odborné na velmi vysoké úrovni. Konstatuji, že veškeré definované cíle práce byly splněny a navrhuji práci k obhajobě s hodnocením A. Points proposed by supervisor: 90

Grade proposed by supervisor: A

Reviewer’s report
Ing. Tomáš Lieskovan, Ph.D.

Diplomová práce Bc. Martina Doláka se věnuje bezpečnostnímu testování GraphQL API. Téma je aktuální a relevantní. Autor systematicky analyzoval zranitelnosti specifické pro GraphQL a na jejich základě navrhl kontrolní seznam 45 testů. Výsledkem praktické části je funkční nástroj ptgraphql implementovaný v Pythonu jako rozšíření platformy PenterepTools, strukturovaný do sedmi modulů odpovídajících oblastem kontrolního seznamu. Funkčnost nástroje byla ověřena na záměrně zranitelném experimentálním pracovišti provozovaném na VirtualBoxu (Ubuntu 24.04) s GraphQL serverem provozovaným v Docker Compose na bázi Apollo Server + Express.

Formální zpracování práce je na vysoké úrovni, zdroje jsou aktuální a správně citovány. K práci mám tyto výhrady:
1, Hardcoded absolutní cesta k externímu nástroji graphql-cop výrazně snižuje přenositelnost řešení.
2, Chybí vyhodnocení míry falešně pozitivních nálezů na reálném prostředí.

Uvedené výhrady jsou spíše podněty k diskusi a nebrání úspěšné obhajobě. Celkové hodnocení: A (výborně). Topics for thesis defence:
  1. V souboru introspection.py je cesta k nástroji graphql-cop zapsána jako hardcoded absolutní cesta /home/ubuntu/graphql-cop/venv/bin/python3. Jakým způsobem by bylo možné tuto závislost vyřešit, aby byl nástroj ptgraphql nasaditelný v libovolném prostředí bez nutnosti zásahu do zdrojového kódu?
  2. Funkčnost nástroje byla ověřena výhradně na záměrně zranitelném experimentálním pracovišti. Jak by se nástroj choval při spuštění na reálném, správně zabezpečeném GraphQL API – očekáváte výskyt falešně pozitivních nálezů, a pokud ano, u kterých modulů?
Points proposed by reviewer: 90

Grade proposed by reviewer: A

Responsibility: Mgr. et Mgr. Hana Odstrčilová