bakalářská práce

Orchestrační systém pro simulaci softwarových zranitelností

Text práce 2.04 MB Příloha 35.63 kB

Autor práce: Jakub Myška

Ak. rok: 2025/2026

Vedoucí: Ing. Willi Lazarov

Oponent: Ing. David Kohout, Ph.D.

Abstrakt:

Tato práce se zabývá návrhem a implementací systému pro orchestraci zranitelných softwarových prostředí určených pro testování. Teoretická část se nejprve zaměřuje na softwarové zranitelnosti a jejich klasifikaci, dále pak také popisuje kritické vrstvy aplikační bezpečnosti. Na závěr této části jsou představena již existující řešení pro simulaci zranitelností a jsou mezi sebou porovnány. V praktické části je nejprve vytvořen vysokoúrovňový návrh orchestračního systému a popsány technologie použité pro implementaci. Dále jsou vypsány automatizační playbooky i představeny funkcionality systému. Závěrem této části je představení uživatelského rozhraní. Výstupem bakalářské práce je webová platforma vhodná pro použití ve výuce i testování bezpečnostních scénářů.

Klíčová slova:

Docker, kontejnerizace, Ansible, Flask, PostgreSQL, orchestrace, zranitelnosti, CVE, CWE, bezpečnostní testování, automatizace

Termín obhajoby

16.06.2026

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaBznamka

Klasifikace

B

Průběh obhajoby

Student prezentoval výsledky své práce a komise byla seznámena s posudky. Student obhájil bakalářskou práci a odpověděl na otázky členů komise a oponenta. Otázky: Jaké bezpečnostní riziko představuje možnost spouštět z webového rozhraní libovolné Docker obrazy a jaká opatření by bylo vhodné implementovat pro minimalizaci těchto rizik? Bylo by možné doplnit informace o zranitelnostech formou tooltipů nebo informačního dialogu či panelu tak, aby měl uživatel okamžitý přehled o jednotlivých zranitelnostech bez nutnosti opouštět rozhraní aplikace? Jakým způsobem by bylo možné takovou funkcionalitu implementovat? Na základě jakého parametru párujete nalezené zranitelnosti s databází zranitelností? Proč byl zvolen právě software Ansible?

Jazyk práce

čeština

Fakulta

Ústav

Studijní program

Informační bezpečnost (BPC-IBE)

Složení komise

prof. Ing. Jan Hajný, Ph.D. (předseda)
doc. Ing. Pavel Mašek, Ph.D. (místopředseda)
Mgr. Václav Stupka, Ph.D. (člen)
Ing. Adrián Tomašov, Ph.D. (člen)
Ing. Jan Dvořák, Ph.D. (člen)
Ing. David Kohout, Ph.D. (člen)
Ing. Vojtěch Sikora (člen)

Posudek vedoucího
Ing. Willi Lazarov

Bakalářská práce se věnuje návrhu a implementaci orchestračního systému pro simulaci softwarových zranitelností v izolovaném prostředí. Výstupem práce je aplikace postavená na technologiích Docker a Ansible, která umožňuje automatizované nasazování zranitelných služeb. V teoretické části student popisuje klasifikaci zranitelností pomocí CVE, CWE a OWASP Top 10. Následně jsou popsány vybrané vrstvy aplikační bezpečnosti a existující řešení pro simulaci zranitelností včetně jejich srovnání.

V praktické části je nejprve představen návrh systému. V rámci orchestrace student připravil dynamické Ansible playbooky pro správu životního cyklu kontejnerů, řešení dvouúrovňového logování a správu Docker kontejnerů. Pro obsluhu systému vyvinul student vlastní uživatelské rozhraní ve formě interaktivního panelu. Implementované funkcionality jsou postupně popsány, avšak místy až příliš obecně bez hlubšího technického rozboru. Postrádám rovněž ověření systému v měřitelných podmínkách včetně autentizační a autorizační vrstvy pro produkční nasazení.

Po formální stránce je práce se svými 44 stranami na dobré úrovni s občasným výskytem překlepů v textové části. Citováno je celkem 17 zdrojů složených převážně z webových stránek a dokumentací k použitým technologiím.

Veškeré stanovené cíle bakalářské práce považuji za splněné. Student realizaci práce pravidelně konzultoval a mé revize postupně zapracovával. Vytvořený systém je funkční a rozšiřitelný. Na základě uvedených skutečností doporučuji práci k obhajobě s hodnocením B/80. Výsledný počet bodů navržený vedoucím: 80

Známka navržená vedoucím: B

Posudek oponenta
Ing. David Kohout, Ph.D.

Student se v rámci bakalářské práce zabýval implementací orchestračního systému pro simulaci softwarových zranitelností. V teoretické části práce jsou popsány základní klasifikační systémy zranitelností (CVE, CWE a OWASP Top 10), kritické vrstvy aplikační bezpečnosti a vybraná existující řešení pro simulaci zranitelností. Praktická část se věnuje návrhu a implementaci webové platformy umožňující nasazení a správu kontejnerizovaných služeb obsahujících známé zranitelnosti.

Po formální stránce je práce zpracována na odpovídající úrovni, místy je však text poměrně stručný. V seznamu literatury převažují webové zdroje a dokumentace k použitým technologiím. Přínosné by bylo doplnění o odborné publikace. Vysokoúrovňový návrh systému (obrázek 3.1) by mohl být zpracován přehledněji. V práci mi také chybí celkový pohled na navrženou aplikaci, který by usnadnil orientaci v popisovaném uživatelském rozhraní.

Implementované řešení je funkční a splňuje cíle zadání. Aplikace umožňuje správu kontejnerů, automatizované spouštění Ansible playbooků i zobrazení zranitelností vztahujících se k jednotlivým verzím služeb. Za přínosné považuji zejména propojení s databází zranitelností a automatizaci nasazení prostředí. V oblasti uživatelského rozhraní bych však uvítal lepší zpětnou vazbu při operacích, jako je nasazení, restart či zastavení kontejneru, aby měl uživatel přehled o průběhu prováděných akcí.

Zadání bakalářské práce však považuji za splněné a navrhuji hodnocení B/85. Otázky k obhajobě:
  1. Bylo by možné doplnit informace o zranitelnostech formou tooltipů nebo informačního dialogu či panelu tak, aby měl uživatel okamžitý přehled o jednotlivých zranitelnostech bez nutnosti opouštět rozhraní aplikace? Jakým způsobem by bylo možné takovou funkcionalitu implementovat?
  2. Jaké bezpečnostní riziko představuje možnost spouštět z webového rozhraní libovolné Docker obrazy a jaká opatření by bylo vhodné implementovat pro minimalizaci těchto rizik?
Výsledný počet bodů navržený oponentem: 85

Známka navržená oponentem: B

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová