Master's Thesis

CTF framework for ethical hacking education

Final Thesis 2.17 MB

Author of thesis: Ing. Hung Do

Acad. year: 2025/2026

Supervisor: Ing. Zbyněk Lička

Reviewer: doc. Mgr. Kamil Malinka, Ph.D.

Abstract:

Capture the Flag (CTF) is a popular cybersecurity teaching method, combining education with gamification and competitiveness. It offers a great environment for participants to learn and practice their cybersecurity skills. However, creating a robust infrastructure for running CTF events requires a deep understanding of system administration. Traditional VM-based deployments consume excessive resources and scale poorly. We develop a resource-efficient framework that replaces VMs with lightweight containers, reducing memory consumption by 82% under full load with 10 active users. Scaling tests demonstrate that the container-based solution successfully handles up to 40 active users within a 10 GB RAM constraint, with memory scaling linearly at approximately 200–250 MB per user. The open-source framework includes a terminal-based platform and deployment stack for educators to self-host CTF infrastructure on a bare-metal machine. Key features include per-student unique challenge scenarios generated via templating to prevent flag sharing, per-user network isolation of challenge environments, and automatic flag validation. The framework simplifies CTF infrastructure management and reduces instructor burden.

Keywords:

Capture the flag, ethical hacking, CTF platform, virtualization and containerization, architecture design, SSH, CTF challenge design, challenge isolation

Date of defence

22.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaCznamka

Grading

C

Process of defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm C.

Topics for thesis defence

  1. Jaké úpravy by bylo potřeba udělat pro podporu týmových projektů?

Language of thesis

English

Faculty

Department

Study programme

Information Technology and Artificial Intelligence (MITAI)

Specialization

Cybersecurity (NSEC)

Composition of Committee

doc. Mgr. Kamil Malinka, Ph.D. (předseda)
doc. Ing. Ondřej Ryšavý, Ph.D. (místopředseda)
Ing. Zbyněk Křivka, Ph.D. (člen)
doc. Ing. Ivan Homoliak, Ph.D. (člen)
Ing. Libor Polčák, Ph.D. (člen)
Ing. Radek Hranický, Ph.D. (člen)

Supervisor’s report
Ing. Zbyněk Lička

Student splnil všechny body zadání a zároveň výrazně rozšířil funkčnost výsledného frameworku nad rámec požadavků zadání. Výsledné řešení je prakticky využitelné, veřejně dostupné a je plánováno jeho nasazení ve výuce. Oceňuji také průběžnou komunikaci, samostatný přístup, kvalitní realizaci a prezentaci výsledků nad rámec samotné práce. Celkově práci hodnotím jako výbornou.

Evaluation criteria Verbal classification
Informace k zadání

Práce se zabývá návrhem a implementací výpočetně efektivního CTF frameworku vhodného pro výukové účely. Zadání hodnotím jako průměrně obtížné, a to zejména s ohledem na skutečnost, že student navazoval na své předchozí řešení vytvořené v rámci projektové praxe. Současně však bylo nutné klást značný důraz nejen na základní funkčnost, ale také na praktickou využitelnost výsledku, izolaci uživatelů a hardwarovou efektivitu. Tyto požadavky byly důležité vzhledem k plánovanému nasazení frameworku ve výuce předmětu Bezpečnost informačních systémů. Student své původní řešení výrazně rozšířil a všechny body zadání splnil ve velmi dobré kvalitě. S dosaženými výsledky jsem velmi spokojen.

Pozn.: Původní řešení rozšířil například o:
- automatizované nasazení frameworku a scénářů
- monitorování spotřeby
- automatickou validaci tajemství

Aktivita při dokončování

Realizační výstup byl průběžně konzultován a dokončen s dostatečným předstihem. Textová část práce byla předložena včas, takže bylo možné zapracovat připomínky. Definitivní podoba práce tak byla dostatečně konzultována.

Publikační činnost, ocenění

Zdrojový kód projektu je veřejně dostupný, což zvyšuje praktickou využitelnost výsledného řešení a umožňuje jeho další rozvoj. Student dále prezentoval svou práci na konferenci Excel@FIT.

Práce s literaturou

Student pracoval s odbornými prameny přiměřenými charakteru technicky zaměřené diplomové práce. Tam, kde to bylo možné, využíval relevantní odbornou literaturu, současně však vycházel také z prakticky orientovaných online dokumentů a materiálů připravených pořadateli CTF soutěží. Zvolené zdroje považuji za vhodné vzhledem k zaměření práce.

Aktivita během řešení, konzultace, komunikace

Student byl během řešení práce velmi aktivní. Průběžně komunikoval, rychle reagoval na zpětnou vazbu a sám si domlouval konzultace. Na konzultace chodil dobře připraven a pravidelně představoval aktuální stav implementovaného frameworku, včetně praktických demonstrací. Jeho přístup k řešení hodnotím jako samostatný, iniciativní a zodpovědný.

Points proposed by supervisor: 100

Grade proposed by supervisor: A

Reviewer’s report
doc. Mgr. Kamil Malinka, Ph.D.

Student vytvořil funkční řešení, které splňuje zadání a má praktické využití ve výuce. Oceňuji automatizaci nasazení, pěkné vizualizace návrhu a skutečnost, že realizované řešení bude reálně použito.


Práce však působí místy nedotaženě. Některé části implementace jsou splněny pouze v základním rozsahu, chybí podrobnější dokumentace, testování je omezené a některé důležité aspekty nejsou v textu dostatečně popsány. Student také mohl lépe zdůvodnit architektonická rozhodnutí a výběr použitých technologií. Celkově jde o funkční práci, které by prospělo pečlivější dotažení některých částí.

Evaluation criteria Verbal classification Points
Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Všechny body zadání byly splněny. Některé části však mohly být realizovány ve větším detailu. Platforma například podporuje skórování, ale práce s ním není z pohledu uživatele příliš komfortní. Podobně práce podporuje variabilitu flagů, ale sama ji neimplementuje a očekává, že ji dodá operátor.

V textu také chybí některé důležité části, například popis principu sběru logů aktivit studentů. Tato funkcionalita je v kódu přítomna, ale práce s logy je zatím neohrabaná a jejich vyhodnocení vyžaduje ruční práci se záznamy v databázi. Nezohledněna zůstala také budoucí potřeba týmových projektů.

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Rozsah technické zprávy považuji za odpovídající. Text je místy poněkud rozvláčný a některé části by mohly být věcnější. Zároveň v něm chybí detailnější vysvětlení některých implementačních a architektonických rozhodnutí.

Prezentační úroveň technické zprávy

Technická zpráva je srozumitelná a obsahuje pěkné vizualizace návrhu. Pozitivně hodnotím zejména grafické znázornění architektury a dalších návrhových částí.

Na druhou stranu student celkově nedostatečně vysvětluje architektonické volby a důvody pro výběr konkrétního technologického stacku. Např. volba nástroje Podman pro kontejnerovou orchestraci je zdůvodněna pouze velmi stručně. Některým částem textu by také prospělo doplnění poznámek pod čarou, například u zmiňovaných softwarových platforem.

75
Formální úprava technické zprávy

Po formální stránce je práce celkově přijatelná. Vyskytují se však drobné typografické nedostatky. Některé obrázky jsou příliš malé a hůře čitelné. Text je místy zbytečně rozvláčný, což mírně snižuje jeho přehlednost.

75
Práce s literaturou

Práce obsahuje přibližně 50 referencí, což považuji za dostatečné. Některým částem by nicméně prospělo doplnění dalších odkazů nebo vysvětlujících poznámek, zejména tam, kde jsou zmiňovány konkrétní softwarové platformy. Celkově je však práce s literaturou v pořádku.

75
Realizační výstup

Implementace je funkční a splňuje požadavky zadání. Oceňuji automatizaci nasazení, která je praktickým a užitečným prvkem výsledného řešení.

Kód je dostatečně komentovaný pouze v některých částech. Dokumentace je podle uvedených poznámek plánována, ale zatím není součástí práce. Některé funkcionality, například práce se skórováním nebo logy, jsou sice implementovány, ale jejich využití není pro uživatele ani obsluhu příliš pohodlné.

Testování mohlo být důkladnější. Očekával bych podrobnější ověření chování v okrajových situacích, například při nedostatku paměti. Maximálně bylo testováno 40 uživatelů, přestože se očekává nasazení pro 100 až 150 uživatelů. Vhodné by bylo také testování v prostředí, kde má být řešení reálně nasazeno, a testování obsluhou.

75
Využitelnost výsledků

Výsledek práce je prakticky využitelný. Řešení bude nasazeno při výuce na FITu a mělo by přispět ke zlepšení současného stavu. Pro širší a pohodlnější používání by však bylo vhodné dopracovat dokumentaci, uživatelskou přívětivost některých funkcí a podporu budoucích týmových projektů.

Náročnost zadání

Evaluation level: průměrně obtížné zadání

Zadání považuji za průměrně obtížné. Jedná se o jasně ohraničenou implementační práci, u které byly požadavky poměrně konkrétně vymezené.

Topics for thesis defence:
  1. Jaké úpravy by bylo potřeba udělat pro podporu týmových projektů?
Points proposed by reviewer: 75

Grade proposed by reviewer: C

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