bakalářská práce

Nástroj pro detekci bezpečnostních slabin webového serveru Nginx

Text práce 1.99 MB

Autor práce: Bc. Michal Wagner

Ak. rok: 2023/2024

Vedoucí: Ing. Bohuslav Křena, Ph.D.

Oponent: Ing. Martin Perešíni

Abstrakt:

Tato práce se zaměřuje na bezpečnost webového serveru Nginx a jeho konfigurační možnosti, s důrazem na funkci reverzního proxy serveru. Prozkoumává dostupné Nginx alternativy a bezpečnostní hrozby pro reverzní proxy servery. Dále se práce věnuje způsobu odhalení těchto bezpečnostních hrozeb pomocí metod penetračního testování a je provedena rešerše existujících nástrojů pro detekci bezpečnostních slabin reverzních proxy. V praktické části je vyvinutý nástroj pro demonstraci bezpečnostních útoků a detekci bezpečnostních slabin na server Nginx. V závěru práce je funkčnost nástroje otestována a na základě získaných zkušeností vytvořena technická specifikace pro nastavení reverzního proxy serveru Nginx omezující možnosti jeho napadení.

Klíčová slova:

bezpečnost, hrozba, zranitelnost, nginx, webový server, reverzní proxy

Termín obhajoby

12.06.2024

Výsledek obhajoby

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

znamkaCznamka

Klasifikace

C

Průběh obhajoby

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.

Otázky k obhajobě

  1. Dá sa vami vyvinutý nástroj porovnať s existujúcimi bezpečnostnými nástrojmi z hľadiska funkčnosti, jednoduchosti používania a presnosti? Existujú nejaké jedinečná funkcionalita alebo vylepšenia, ktoré nástroj ponúka oproti existujúcim nástrojom?
  2. Lze na základě vašich testů navrhnout lepší konfiguraci Nginx? Lze takto konfiguraci změnit i automaticky?

Jazyk práce

čeština

Fakulta

Ústav

Studijní program

Informační technologie (BIT)

Složení komise

doc. Ing. Ondřej Ryšavý, Ph.D. (předseda)
Ing. Tomáš Milet, Ph.D. (člen)
Ing. Josef Strnadel, Ph.D. (člen)
Ing. Matěj Grégr, Ph.D. (člen)
Ing. Filip Orság, Ph.D. (člen)

Posudek vedoucího
Ing. Bohuslav Křena, Ph.D.

S přístupem studenta jsem velice spokojen. Tento aspekt bych určitě hodnotil známkou A. Výsledná práce má však podle mého názoru určité rezervy, které mi brání navrhnout známku A pro celkové hodnocení, a to i přes to, že k těmto rezervám přispěly především okolnosti, na které neměl student vliv.

Kritérium hodnocení Slovní hodnocení
Informace k zadání

Jedná se o zadání z firmy Kyndryl. Obtížnost zadání považuji za přiměřenou, byť práce nakonec vedla k poněkud rozsáhlejší technické zprávě. Řešení práce určitě ovlivnilo to, že původní odborný vedoucí z firmy Kyndryl odešel. Oceňuji však, že Kyndryl rychle našel novou vedoucí práce. Až v průběhu řešení se ukázalo, že původně zamýšlené experimenty na serveru Kyndrylu nebude možné provést, protože Kyndryl má takové zabezpečení své infrastruktury, že plánované útoky nebyly úspěšné, a nedávalo tak smysl vyhodnocovat, při kterém nastavení jim Nginx server nejlépe odolá. Studentovi se s tím však podařilo vypořádat velice dobře.

Práce s literaturou

Použité prameny považuji za vhodně zvolené. Vzhledem k charakteru práce považuji za správné, že student cituje jednotlivé stránky dokumentace serveru Nginx a ne jeho dokumentaci jako celek, byť to seznam použitých pramenů prodloužilo.

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

Aktivita studenta byla vzorná. Práci se poctivě věnoval již v průběhu zimního semestru. V letním semestru měl řádně doloženou překážku ve studiu, na jejímž základě a s mým doporučením mu byl povolen týdenní odklad odevzdání práce.

Aktivita při dokončování

Postup prací i výsledná podoba práce byla se mnou konzultována, byť na výraznější posílení experimentů již dostatek času nebylo.

Publikační činnost, ocenění

Doporučení pro nastavení serveru Nginx (příloha B) se plánují využívat pro interní potřeby Kyndrylu.

Výsledný počet bodů navržený vedoucím: 89

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

Posudek oponenta
Ing. Martin Perešíni

Študent splnil všetky povinné body zadania. Práca dosahuje požadovanú kvalitu z hľadiska rozsahu, úpravy textu (s výnimkou drobných chýb) a prevedenia. Potenciál implementácie je určite prítomný. Celkovo hodnotím výsledok ako dobrý a navrhujem študentovi známku medzi B a C.

Kritérium hodnocení Slovní hodnocení Body
Náročnost zadání

Stupeň hodnocení: méně obtížné zadání

Práca sa zaoberá návrhom nástroja na detekciu bezpečnostných slabín Nginx serveru. Prácu považujem ako mierne náročnú.

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

Práca má logickú štruktúru, poradie kapitol je vhodne zvolené a celkovo je práca napísaná pre čitateľa zrozumiteľne.

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

Jazyková úroveň práce sa zdá byť dobrá, až na niektoré drobné nedostatky alebo štylistické chybičky. Z typografického hľadiska nemám k dielu žiadne väčšie výhrady. Jedine by som odporúčal pridať do teoretickej časti viac obrázkov (diagramov) vysvetľujúcich napríklad fungovanie útoku Syn-Flood a podobne.

84
Realizační výstup

Realizačný výstup a implementácia spĺňajú špecifikáciu. Výstupom implementácie je vytvorenie nástroja na otestovanie detekcie útokov na nakonfigurovaný Nginx server. Okrem samotnej implementácie sa študentovi podarilo aj vyhodnotiť dosiahnuté výsledky a efektívnosť jednotlivých útokov a konfigurácií. Samotný kód vyzerá byť v poriadku.

81
Využitelnost výsledků

Výsledky tejto práce sa pravdepodobne budú dať využiť v budúcnosti a ďalej rozšíriť.

Rozsah splnění požadavků zadání

Stupeň hodnocení: zadání splněno

Zadanie považujem za splnené. Študent zanalyzoval a oboznámil sa s problematikou útokov a detekcie útokov na reverse proxy webové servery. Následne naštudoval dokumentáciu Nginx serveru a implementoval nástroj na otestovanie detekcie útokov, ako napríklad klasický útok preťažením dotazov (denial-of-service). Študent potom pomocou daného nástroja a jeho konfigurácie vyhodnotil dosiahnuté výsledky detekcie útokov.

Rozsah technické zprávy

Stupeň hodnocení: je v obvyklém rozmezí

Rozsah technickej správy je okolo 70 normostrán (až 100 s prílohami). Dĺžka práce je teda v rámci rozsahu bakalárskej práce, výrazne bližšie k hornej hranici.

Práce s literaturou

Študent využíva relevantné zdroje v dostatočnom množstve, pričom informácie čerpal hlavne z webových stránok a príručiek dostupných na internete. Práca s literatúrou je na dobrej úrovni. Väčšiu výhradu mám jedine k počtu citácií, a považujem za redundantné citovať každú funkciu alebo modul konfigurácie serveru Nginx.

79
Otázky k obhajobě:
  1. Dá sa vami vyvinutý nástroj porovnať s existujúcimi bezpečnostnými nástrojmi z hľadiska funkčnosti, jednoduchosti používania a presnosti? Existujú nejaké jedinečná funkcionalita alebo vylepšenia, ktoré nástroj ponúka oproti existujúcim nástrojom?
Výsledný počet bodů navržený oponentem: 79

Známka navržená oponentem: C

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