Přístupnostní navigace
E-application
Search Search Close
Master's Thesis
Author of thesis: Bc. Jan Hranička
Acad. year: 2025/2026
Supervisor: Ing. Vojtěch Havlena, Ph.D.
Reviewer: doc. Ing. Ondřej Lengál, Ph.D.
Access control policies are a critical component of modern software services, governing what actions are permitted under what conditions. As policies grow in complexity and evolve over time, ensuring their correctness becomes increasingly difficult. Traditional testing is insufficient for this purpose, as policies must behave correctly for an unbounded space of inputs. This thesis proposes formal analyses for access control policies written in Rego, the language used by Open Policy Agent. The implementation of these analyses in the tool VeriRego showed the ability to detect inconsistencies, which could possibly result in a runtime error, as well as a dead code within Rego policies.
access control policies, policy analysis, Rego, Open Policy Agent, SMT solving, formal verification.
Date of defence
22.06.2026
Result of the defence
Defended (thesis was successfully defended)
Grading
A
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 A.
Topics for thesis defence
Language of thesis
English
Faculty
Fakulta informačních technologií
Department
Department of Intelligent Systems
Study programme
Information Technology and Artificial Intelligence (MITAI)
Specialization
Mathematical Methods (NMAT)
Composition of Committee
doc. Mgr. Adam Rogalewicz, Ph.D. (předseda) doc. RNDr. Milan Češka, Ph.D. (místopředseda) Ing. Martin Hrubý, Ph.D. (člen) Ing. Aleš Smrčka, Ph.D. (člen) Dr. Ing. Petr Peringer (člen) Ing. Jaroslav Rozman, Ph.D. (člen)
Supervisor’s reportIng. Vojtěch Havlena, Ph.D.
Diplomová práce Jana Hraničky přináší metodu pro analýzu politik pro řízení přístupu založenou na SMT solvingu. Navržená metoda převádí politiku v jazyce Rego do ekvivalentní SMT reprezentace, na základě které se potom provádějí analýzy (např. analýza zda dvě pravidla nenastavují stejnou položku v objektu). Zadání považuji za obtížné. Kladně hodnotím odvedenou práci a aktivitu studenta. Hodnotím stupněm A - výborně.
Diplomovou práci svým zadáním považuji za obtížnou. Jedná se o pilotní práci ve směru, kterému se ve výzkumné skupině VeriFIT plánujeme věnovat--analýze přístupových politik založenou na SMT solvingu. Jednalo se o výzkumnější práci u které předem nebylo zcela jasné, na jaké problémy se narazí. Přestože problémů nebylo málo, podařilo se vytvořit kvalitní práci, která zásadním způsobem přispívá k analýze přístupových politik.
Některé části práce byly dokončeny a konzultovány s dostatečným předstihem (zejména struktura práce a některé technické pasáže). Finální verze technické zprávy byla ale napsána v mírném spěchu, tak jsem byl nucen některé části procházet jen zběžně a nevím, jestli se všechny připomínky podařilo zapracovat.
Student se ve své práci významně podílel na vývoji nástroje pro analýzu Rego politik vyvýjenou ve spolupráci se skupinou VeriFIT. Je v plánu připravit článek, který zahrnuje studentovu práci, a poslat jej na prestižní konferenci.
Student byl schopen aktivně hledat zdroje a informace nad rámec doporučené literatury.
Student během semestru docházel na pravidelné schůzky. Aktivně přicházel s nápady, které si experimentálně ověřoval a řešil nejrůznější technické problémy, které se po cestě objevily. Na schůzky chodil připraven. Co se týče aktivity během řešení, nemám co vytknout.
Grade proposed by supervisor: A
Reviewer’s reportdoc. Ing. Ondřej Lengál, Ph.D.
Diplomová práce pana Jana Hraničky významně přispívá do oblasti analýzy politik řízení přístupu ke zdrojům a stojí jako jeden ze základů nástroje, který cílí na použití v praxi. Obsahuje nové, exaktně formulované, myšlenky, ale také implementaci schopnou odhalit případné problémy v Rego politikách. Doufám, že práce na projektu bude pokračovat v rámci dizertace. Práci hodnotím známkou A.
Evaluation level: zadání splněno
Požadavky byly splněny.
Evaluation level: je v obvyklém rozmezí
Diplomová práce má obvyklý rozsah.
Technická zpráva má logickou strukturu: nejdříve je zaveden jazyk Rego, potom je formálně definována jeho sémantika a pak následuje typový systém a algoritmus pro typovou inferenci. V další části je definován převod do SMT a následuje návrh dvou analýz (pro kolize a subsumpce) pro Rego politiky. Dále následuje popis implementace a experimentální vyhodnocení. Práce je pochopitelná, byť z důvodu své formálnější povahy vyžaduje při četbě vyšší míru soustředění.
Práce je psána anglicky, s průměrným počtem gramatických chyb a překlepů. Tady by pomohlo finální text ještě projet třeba spellcheckerem a nástrojem pro kontrolu gramatiky a stylu.
Typograficky je na tom práce slušně, ale občas člověk najde přetákající řádky či sirotky. Přechod mezi stranami 33 a 34 by určitě šlo udělat lépe.
Práce cituje relevantní literaturu, a to jak průmyslové zdroje (stránky pro technologii OPA), tak i vědecké práce (zabývající se, např., formalizacemi specifikačních jazyků, SMT solvery, atp.). Citace jsou v pořádku.
Student odevzdal obsah git repozitáře nástroje VeriRego se zdrojovými kódy v jazyce Go a osobně demonstroval funkčnost prototypu. Kód vypadá slušně. Vzhledem k tomu, že do repozitáře přispívá více lidí, by měl student říct, kterou část funkcionality implementoval on.
Jeden bod zadání práce je ověření vyvinutého nástroje na vhodně zvolené sadě Rego politik. Toto je učiněno, avšak vstupní politiky jsou ručně vytvořené příklady nastavení, což je škoda. Na druhou stranu chápu, že dostat se k reálným nastavením může být problematické.
Práce je jedním ze základů nástroje, který cílí na usuzování o Rego politikách v použití v průmyslové sféře. Tento nástroj ještě neexistuje, ale má již nyní velmi dobrý základ, na kterém lze dále stavět. Dále by bylo dobré práci (po dokončení) zkusit publikovat jako vědecký článek.
Evaluation level: značně obtížné zadání
Student měl za úkol nastudovat jazyk Rego a navrhnout a implementovat jeho převod do SMT (v rámci čehož také musel formalizovat sémantiku Rego, navrhnout typový systém a způsob odvozování typů atp.), což považuji za obtížné až značně obtížné v porovnání s průměrnou diplomovou prací na FITu.
Grade proposed by reviewer: A
Responsibility: Mgr. et Mgr. Hana Odstrčilová