Master's Thesis

Analysis of Access Control Policies

Final Thesis 980.79 kB

Author of thesis: Ing. 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
Information about assignment

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. 

Activity during solution, consultations, communication

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. 

Publication activity, awards

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. 

Work with literature

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

Activity during solution, consultations, communication

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 Max. points
The extent to which the requirements of the assignment have been met

Evaluation level: assignment fulfilled

Požadavky byly splněny.

Extent of the technical report

Evaluation level: is within the usual extent

Diplomová práce má obvyklý rozsah.

Presentation level of the technical report

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 100
Formal preparation of a technical report

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 100
Work with literature

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 100
Realisation output

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 100
Usability of results

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.

The difficulty of the assignment

Evaluation level: very difficult assignment

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á