ŠKRHÁK, P. Vývoj kalkulátoru pro hodnocení zranitelností v Javascriptu [online]. Brno: Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. 2021.

Posudky

Posudek vedoucího

Holasová, Eva

Student zpracoval bakalářskou práci na téma "Vývoj kalkulátoru pro hodnocení zranitelností v Javascriptu". Práce má 72 stran a je logicky členěna do sedmi kapitol, přičemž první čtyři se věnují analýze jednotlivých metodik výpočtu, jejich porovnání a využití u příkladů webových zranitelností, kde v popisu webových zranitelností dochází k nepřesnostem. Poslední tři kapitoly se zabývají návrhem, implementací a testováním aplikace. Práce obsahuje UML diagramy jednotlivých komponent a tyto komponenty jsou v práci popsány. Aplikace byla vytvořena pomocí frameworku Vue.JS a Javascriptu, v souladu se zadáním. V aplikaci jsou implementovány obě metodologie pro výpočet. Testování aplikace bylo realizováno pomocí ASVS, jak z pohledu funkčnosti aplikace a možnosti výpočtu vektorů zranitelností k jednotlivým vybraným bodům ASVS, tak z pohledu, zda aplikace sama splňuje vybrané požadavky ASVS. Práce obsahuje malé množství chyb. Některé obrázky nejsou vektorové. Student byl proaktivní, práci pravidelně konzultoval a zasílal reporty. Literatura obsahuje převážně zdroje k metodologiím, popisu zranitelností a použitým technologiím. Celkem bylo použito 40 zdrojů. Zadání práce považuji za splněné a doporučuji k obhajobě s hodnocením A, 92 bodů. Níže uvádím posudek odborného konzultanta Romana Kümmela. Hlavním cílem práce je návrh a implementace kalkulátoru pro hodnocení zranitelností podle dvou standardů. Standardy CVSS a OWASP RRM byly zvoleny vhodně. Předložená bakalářská práce obsahuje nedostatky v podobě nesouhlasně vyplněných hodnot v tabulkách, např. tabulka 4.4, kde uvedená hodnota neodpovídá zkratce v CVSS. Z texu dále přímo nevyplývá, že není možné konkrétní zranitelnost hodnit vždy stejně, ale že záleží na konkrétním místě výskytu, například CSRF bude mít jiné hodnocení, pokud umožňuje odhlášení uživatele, a zcela jiné pokud umožňuje odstranění uživatelského účtu. U příkladů hodnocení mi proto chybí detailní popis výskytu konkrétní zranitelnosti a její následné ohodnocení. V práci jsou častokrát použity výrazy, které působí jako strojový překlad a v praxi se v uvedené podobě běžně nepoužívají. Např. časté použití slova "komponent" v mužském rodě (z jazykového hlediska je to sice také v pořádku, ale v praxi se běžně používá slovo "komponenta" v rodě ženském). Práce dále obsahuje mnoho nepřesností a zavádějících informací, například při popisu CSRF zranitelnosti je uvedeno: "Tato zranitelnost umožňuje útočníkovi provést akci na webu, kde je oběť autorizovaná, s právy oběti[22]. Úspěšný útok na tuto zranitelnost má katastrofální dopad na důvěrnost a integritu, a v některých případech i na dostupnost (útok na web, kdy je poslán požadavek s autorizací administrátora). Útok na tuto zranitelnost vyžaduje jistou formu sociálního inženýrství.". Uvedené není možné tímto způsobem generalizovat, stejně jako následující tvrzení o XSS zranitelnosti: "Žádný z těchto typů nemá žádný vliv na dostupnost, ale zatímco odražený a DOM XSS mají nízký dopad jak na důvěrnost, tak na integritu, má uložený XSS vysoký dopad na důvěrnost a žádný dopad na integritu". Pro praktickou část (vlastní návrh a implementaci aplikace) zvolil student vhodné prostředky a postupy. Implementaci bych vytkl pouze dynamicky tvořené cesty v URL, na které není možné se dostat přímým přístupem (návštěvník musí vždy začínat na homepage), špatné vykreslování stránek na mobilních zařízeních, nebo chybějící validaci formátu vstupních dat na straně serveru. Samotná funkčnost aplikace je bezchybná a splňuje všechny vytyčené cíle práce. Navrhuji hodnotit známkou C.

Navrhovaná známka
A
Body
92

Posudek oponenta

Fujdiak, Radek

Zadání považuji za splněné, byl vytvořen kalkulátor pro hodnocení zranitelností dle požadavků. Prezentační a formální stránka práce je na průměrné úrovni, obsahuje klasické chyby jako např. přesah bloku textu, různý formát citací, nedodržení zarovnání textu, hůře čitelné nevektorové obrázky a další. Grafická i textová část je vyrovnaná. Citační zdroje (celkem 40) jsou z velké části formou webových stránek, v rámci bakalářské práce, resp. popisu problematiky i hodnocení zranitelností bych očekával zahrnutí mnohem více odborné literatury, na které by student práci založil. V teoretické části chybí srovnání metod, hlubší odůvodnění výběru či obhájení vůči ostatním simulačním i detekčním metodám. Toto srovnání bych následně uvítal i v rámci praktické části resp. následného kritického zhodnocení výsledků vůči aktuálně známým metodám a již provedeným experimentům odborné komunity ať už vědecké či vysokoškolské. V rámci praktické části byla vytvořena databáze založena na standardních principech hodnocení zranitelnosti jako CVSS či OWASP. Chybí mi zde srovnání s ostatními databázemi a přidaná hodnota studenta. Celkově hodnotím práci jako dobrou, tedy známkou C/79.

Navrhovaná známka
C
Body
79

Otázky

eVSKP id 133535