Master's Thesis

Automating Security Scanning in Windows AD Environments

Final Thesis 1.11 MB

Author of thesis: Bc. Adam Maczkó

Acad. year: 2025/2026

Supervisor: Ing. Jan Pluskal, Ph.D.

Reviewer: doc. Ing. Petr Matoušek, Ph.D., M.A.

Abstract:

This thesis addresses the challenges of automated security scanning in Windows AD environments by developing a modular aggregation pipeline for combining outputs from multiple security collectors. SharpHound serves as the baseline collector, while GPOZaurr and PingCastle provide additional computer and Group Policy-related enrichment data. Collected outputs are normalised, correlated with existing AD entities, and merged into an enriched representation suitable for ingestion into BloodHound Community Edition (BHCE). A configuration-driven architecture allows security collectors and other components to be added or replaced without requiring modifications to the entire system. Deployment in Windows AD environments is supported through Group Policy, which distributes the required components and configures periodic execution on domain-joined machines. Validation was performed in an isolated virtual AD laboratory, followed by evaluation in a large-scale production environment. The evaluation results indicate that the proposed approach can extend the baseline graph with complementary scanner data and provide additional context for security analysis.

Keywords:

Active Directory, Security scanning, Scanning automation, Data aggregation, Pipeline, BloodHound

Date of defence

22.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaCznamka

Grading

C

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

Topics for thesis defence

  1. V řešení používáte implementaci pro AD. Zajímal jste se i o jiné implementace v rámci odlišných prostředí?

Language of thesis

English

Faculty

Department

Study programme

Information Technology and Artificial Intelligence (MITAI)

Specialization

Cybersecurity (NSEC)

Composition of Committee

doc. Mgr. Kamil Malinka, Ph.D. (předseda)
doc. Ing. Ondřej Ryšavý, Ph.D. (místopředseda)
Ing. Zbyněk Křivka, Ph.D. (člen)
doc. Ing. Ivan Homoliak, Ph.D. (člen)
Ing. Libor Polčák, Ph.D. (člen)
Ing. Radek Hranický, Ph.D. (člen)

Supervisor’s report
Ing. Jan Pluskal, Ph.D.

Práce přináší funkční prototyp pipeline, která agreguje výstupy nástrojů SharpHound, GPOZaurr a PingCastle a obohacuje jimi graf BloodHound CE. Kladně hodnotím nasazení v rozsáhlém produkčním prostředí, modulární konfigurovatelnou architekturu řízenou souborem TOML a 204 jednotkových testů.


Mám však značné výhrady k obsahové i prezentační stránce práce. Autorský přínos na úrovni návrhu je skromný; "agregační pipeline" v podstatě sestává z dynamického načítání tříd podle konfigurace a z prefixování atributů zapsaných do vlastností již existujících uzlů SharpHound grafu. Bod zadání týkající se konfliktního řešení byl zpracován formálně; samotné vyhodnocení v kapitole 6.3 je velmi tenké (pouze pět produkčních běhů, žádné srovnání s existujícími řešeními typu TriAD nebo FalconHound, byť jsou v kapitole 3 podrobně popsána), selhání kolektoru GPOZaurr jsou popsána jen jako "unhandled exceptions" bez identifikace příčiny.


Po formální stránce práce nekonzistentně kombinuje britskou a americkou angličtinu (normalise/normalize, serialise/serialize, organisation/organization), používá anglo-americké formátování čísel s desetinnou čárkou jako oddělovačem tisíců (28 výskytů), obsahuje řadu obrázků v podobě prostých screenshotů konzole GPMC bez další úpravy (obrázky 5.2 až 5.5) a v některých kapitolách trpí opakováním stejných slov a krátkými jednovětnými odstavci. Student v deklaraci uvádí použití nástroje ChatGPT k jazykovým korekturám a nástroje opencode při vývoji zdrojového kódu, což je ve stylu textu místy patrné.


Vzhledem k pozdnímu zahájení vlastního řešení, omezenému autorskému přínosu na úrovni návrhu, slabší práci s literaturou, formálním nedostatkům a tenkému vyhodnocení, přestože výsledný prototyp je funkční a nasazený v reálném prostředí, navrhuji práci hodnotit stupněm C jako dobrou.

Evaluation criteria Verbal classification
Informace k zadání

Cílem práce bylo navrhnout a implementovat agregační pipeline pro automatizaci bezpečnostního skenování v prostředí Microsoft Active Directory. Zadání předpokládalo orchestraci více skenovacích nástrojů, normalizaci jejich výstupů, korelaci nálezů a obohacení baseline grafu pro BloodHound Community Edition. Zadání bylo vypsáno na popud studenta, který práci řešil ve spolupráci s externím konzultantem z prostředí CSIRT Masarykovy univerzity. Po implementační stránce je úloha spíše integrační než výzkumná a pohybuje se v rovině zapouzdření existujících open-source nástrojů; komplexitu zvyšuje až nasazení v reálném produkčním AD prostředí prostřednictvím GPO a MSI instalátoru. Zadání proto považuji za průměrně obtížné. S dosaženými výsledky jsem spokojen jen částečně. Zadání bylo formálně splněno, mám však značné výhrady k bodu 2 (specifikace konfliktního řešení): implementace v sekci 4.1.3 explicitně přiznává, že "general automatic conflict resolution is not required" a vystačí si s prefixováním názvů polí, což za skutečný návrh konfliktního řešení nepovažuji. Slabě je zpracován i bod 6 (komplexní vyhodnocení), viz dále.

Aktivita při dokončování

Finální podoba textu byla se mnou konzultována, část předaných připomínek však zůstala zapracována pouze částečně, což se promítlo do typografické a jazykové úrovně odevzdané verze.

Publikační činnost, ocenění

Programové řešení je zveřejněno jako open-source projekt v repozitáři CSIRT MU na GitLabu (gitlab.ics.muni.cz) a bylo prakticky nasazeno v produkčním AD prostředí Masarykovy univerzity (doména ucn.muni.cz) s pěti automatizovanými běhy. Praktické nasazení v rozsáhlém produkčním prostředí (323 686 objektů) považuji za nejsilnější stránku práce. Publikační činnost spojená s prací zaznamenána nebyla.

Práce s literaturou

Student samostatně nalezl 42 zdrojů, jejich složení však považuji za nevyvážené. Z celkového počtu tvoří 18 odkazů přímé odkazy na Microsoft Learn, další významnou skupinou jsou GitHub repozitáře a blogové příspěvky vendor stránek. Recenzované publikace jsou v seznamu pouze tři (zdroje 7, 35, 42), z toho zdroj 7 pochází z roku 2011 a knižní zdroj 8 z roku 2013. Vzhledem k charakteru diplomové práce v aktivně rozvíjené výzkumné oblasti (attack-path management, AD security posture) bych očekával výrazně širší zastoupení recenzovaných zdrojů a aktuálních standardů. V záznamu zdroje 8 se navíc objevuje typografický překlep "5th editionth ed.". Citace jsou v textu vesměs umístěny správně u převzatých myšlenek.

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

Student pracoval převážně samostatně ve spolupráci s externím konzultantem. Aktivita během zimního semestru byla výrazně omezená a vlastní vývoj práce probíhal převážně až od poloviny letního semestru. Konzultace se mnou probíhaly nepravidelně a iniciativa byla spíše na konzultantovi. Na konzultacích, ke kterým došlo, byl student připraven a diskuze byla věcná.

Points proposed by supervisor: 75

Grade proposed by supervisor: C

Výsledek DP je funkční a umožňuje skenování objektů v síti s MS Active Directory, což lze využít pro bezpečnostní analýzu. Systém integruje existující nástroje do jednoho celku. 

Evaluation criteria Verbal classification Points
Rozsah splnění požadavků zadání

Evaluation level: zadání splněno s drobnými výhradami

Název práce je bezpečnostní skenování AD sítě, nicméně použité nástroje provádějí pouze sběr dat z kontroleru AD a dalších zařízení bez bezpečnostní analýzy. Vyhodnocení nasbíraných dat je nutné provádět manuálně. Systém sám o sobě nedetekuje žádné zranitelnosti, nekonzistence či hrozby. 

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

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

V technické zprávě chybí podrobnosti ohledně sbíraných dat ze systému SharpHound, například popis formátu, způsob normalizace či uložení. Bylo by dobré zmínit, jak se systém chová v případě nekompletních či chybných dat. Popis attack graphu a attack path neodpovídá standardní definici používané u analýzy bezpečnosti, v této práci se attack graph omezuje na vztahy mezi objekty či skupinami AD, chybí reprezentace zranitelností či škodlivých akcí formou hran či speciálních uzlů.

U popisu dostupných skenovacích nástrojů v části 3.2 bych očekával srovnání popisovaných nástrojů s uvedením, proč si autor vybral určité nástroje a jak rozšiřují možnosti bezpečnostní analýzy. 

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

Text práce obsahuje řadu typografických a stylistických nedostatků: zvýraznění textu tučným písmem místo kurzívou, nepřesné uvádění zkratek (DC - domain controller - str. 2, DC - domain component, tab. 2.1), nekonzistentní používání velkých písmen (section 3.2, Section 3.2.1, table 3.2, Figure 2.1), chybné používání přivlastňovacích podstatných jmen (possessive nouns) u neživých objektů v angličtině (module's design, pipeline's stages, object's properties) či zbytečné mezery na konci stránek (str. 5, 12,15,17, 21...). 

65
Práce s literaturou

Literatura obsahuje převážně odkazy na manuálové stránky, což odpovídá typu práce. Seznam literatury měl být při použití číselných odkazů řazen podle pořadí výskytu odkazu v textu, nikoliv podle abecedy. 

85
Realizační výstup

Realizační výstup je funkční. V práci by bylo vhodné uvést, co všechno je potřeba nakonfigurovat, aby systém běžel v novém prostředí. Při skenování by bylo užitečné zobrazit uživateli očekávanou dobu běhu.

80
Využitelnost výsledků

Výsledek byl vytvořen jako podpůrný nástroj pro bezpečnostní skenování pro  ÚVT MU. 

Náročnost zadání

Evaluation level: průměrně obtížné zadání

Cílem DP bylo implementovat automatické bezpečnostní skenování prostředí MS Active Directory pomocí dostupných nástrojů. Student měl za úkol získat monitorovací data z více nástrojů, spojit je do jednoho nástroje a zobrazit v analytickém nástroji BloodHound. Součástí zadání bylo vytvořit virtuální lab pro testování Active Directory. 

Points proposed by reviewer: 75

Grade proposed by reviewer: C

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