Master's Thesis

Analysis of Access Control Policies

Final Thesis 980.79 kB

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.

Abstract:

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.

Keywords:

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)

znamkaAznamka

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

  1. Můžete uvést, která část architektury či funkcionality nástroje VeriRego je Vaším dílem?
  2. Jak to je s rozhodnutelností analýz pro Rego? Jsou rozhodnutelné nebo ne (a proč)? Pokud ne, máte fragment jazyka Rego, kde rozhodnutelnost lze garantovat?
  3. Můžete okomentovat provedené experimenty?
  4. Využil jste nástroj Z3-Noodler?

Language of thesis

English

Faculty

Department

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 report
Ing. 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ě.

Evaluation criteria Verbal classification
Informace k zadání

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. 

Aktivita při dokončování

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. 

Publikační činnost, ocenění

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. 

Práce s literaturou

Student byl schopen aktivně hledat zdroje a informace nad rámec doporučené literatury. 

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

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.

Points proposed by supervisor: 93

Grade proposed by supervisor: A

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 criteria Verbal classification Points
Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Požadavky byly splněny.

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Diplomová práce má obvyklý rozsah.

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

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í.

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

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.

87
Práce s literaturou

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.

95
Realizační výstup

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é.

95
Využitelnost výsledků

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.

Náročnost zadání

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.

Topics for thesis defence:
  1. Jak to je s rozhodnutelností analýz pro Rego? Jsou rozhodnutelné nebo ne (a proč)? Pokud ne, máte fragment jazyka Rego, kde rozhodnutelnost lze garantovat?
  2. Můžete uvést, která část architektury či funkcionality nástroje VeriRego je Vaším dílem?
Points proposed by reviewer: 92

Grade proposed by reviewer: A

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