diplomová práce

Automatizovaný auditovací nástroj pro Unixové operační systémy

Text práce 2.27 MB

Autor práce: Bc. Branislav Kadlec

Ak. rok: 2025/2026

Vedoucí: Ing. Karel Kuchař, Ph.D.

Oponent: Ing. Petr Blažek, Ph.D.

Abstrakt:

Táto diplomová práca sa zaoberá návrhom a implementáciou modulárneho automatizovaného nástroja pre bezpečnostný audit Unixových operačných systémov. Nástroj je implementovaný v dvoch verziách a to v jazyku Python a Bash, pričom obe verzie umožňujú vykonávanie identických auditných procesov v lokálnom a verzia Python aj vo vzdialenom režime prostredníctvom SSH. Teoretická časť práce analyzuje aktuálne požiadavky na bezpečnosť operačných systémov, popisuje mechanizmy povinného riadenia prístupu so zameraním na SELinux a AppArmor, a poskytuje komparatívnu analýzu existujúcich auditovacích nástrojov ako sú Lynis, OpenSCAP, Tiger, Rkhunter a Chk-rootkit. Súčasťou teoretickej časti je tiež rozbor smernice NIS2 a jej praktických dopadov na organizácie prevádzkujúce Unixové systémy. Praktická časť práce popisuje návrh modulárnej architektúry nástroja s centrálnym riadiacim skriptom main.py a triedou EnumerationFramework, ktorá zabezpečuje dynamické načítavanie testovacích modulov, ich sekvenčné vykonávanie a zber výsledkov. Nástroja obsahuje 23 implementovaných testovacích modulov v a jazykoch Python a Bash pokrývajúcich desať tematických kategórií vrátane sieťovej bezpečnosti, správy používateľských účtov, hardeningu jadra, šifrovania disku a konfigurácie logovania. Výstupom auditu je štruktúrovaný report vo formáte JSON obsahujúci identifikované nedostatky, odporúčania na nápravu, normalizovanú závažnosť nálezov a číselné hodnotenie celkového stavu zabezpečenia. Funkčnosť navrhnutého riešenia bola overená na experimentálnom pracovisku pozostávajúcom z dvojice virtualizovaných strojov v prostredí VMware, kde bol simulovaný scenár reálneho bezpečnostného auditu vrátane vzdialeného testovania priemyselného RTU zariadenia. Merania preukázali, že nástroj počas lokálneho auditu spôsobí krátkodobý nárast využitia operačnej pamäte o 4 až 4,5 percentuálneho bodu pri základni okolo 39 %, pričom zaťaženie procesora zostáva počas celého behu nepatrné. Celkový objem dát prenesených pri vzdialenom audite zostal pod 1 MB, čo potvrdzuje použiteľnosť nástroja aj v obmedzených priemyselných prostrediach.

Klíčová slova:

bezpečnostný audit, Unixové operačné systémy, automatizácia, modulárna architektúra, NIS2, SELinux, AppArmor, Python, Bash, hardening

Termín obhajoby

09.06.2026

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaCznamka

Klasifikace

C

Průběh obhajoby

Student prezentoval výsledky své práce a komise byla seznámena s posudky. Otázky oponenta: - Zadání požaduje, aby bylo možné provádět audit skrze obě implementace. Můžete doložit výsledky auditu provedeného Bash verzí a vysvětlit, čím se výstup liší od verze Python, případně proč všechna měření a ukázky reportů vycházejí pouze z Python implementace? - V demonstrovaném běhu se spustilo pouze 22 z 23 testů. Můžete uvést, kolik testů a kategorií nástroj reálně obsahuje a co bylo příčinou, že se test passwordPolicyCheck v reportu neobjevil? - Bodové hodnocení vychází ze vzorce n×4 s penalizacemi podle závažnosti. Na základě, čeho byly zvoleny základní hodnota i jednotlivé penalizační váhy a jak je zajištěna srovnatelnost skóre mezi audity s odlišným počtem vykonaných testů? Student obhájil diplomovou práci s výhradami a odpověděl na otázky členů komise a oponenta.

Jazyk práce

slovenština

Fakulta

Ústav

Studijní program

Telekomunikační a informační technika (MPC-TIT)

Složení komise

doc. Ing. Petr Mlýnek, Ph.D. (předseda)
doc. Ing. Martin Vaculík, Ph.D. (místopředseda)
doc. Ing. Pavel Šilhavý, Ph.D. (člen)
doc. Ing. Martin Kyselák, Ph.D. (člen)
Ing. Rudolf Vohnout, Ph.D. (člen)
Ing. Pavel Bezpalec, Ph.D. (člen)
Ing. Lukáš Benešl, Ph.D. (člen)
Jakub Lešinský (člen)
Ing. Viet Anh Phan (člen)

Posudek vedoucího
Ing. Karel Kuchař, Ph.D.

Práce je členěna do dvou hlavních kapitol, s rozsahem 89 stran. Z formálního hlediska práce obsahuje gramatické a typografické nedostatky, místy se v práci objevují neodborné výrazy, text je místy méně přehledný. Některé obrázky nejsou vektorové. Práce využívá celkem 24 zdrojů, kde je využita zejména odborná literatura a webové odkazy na nástroje. Práce je zaměřena na vytvoření automatizovaného auditovacího nástroje ve dvou implementacích (Python a Bash). Validace představená v kapitole 2 byla provedena na virtualizovaném a reálném průmyslovém zařízení. Student navrhl a vypracoval nástroj zpracovávající celkem 23 testů z 10 definovaných kategorií. Zadání práce považuji za splněné. Student vypracoval obě implementace nástroje (Python a Bash), kde pouze skrze Python implementaci je možné provádět vzdálené testování. Z pohledu praktického zpracování je práce na velmi dobré úrovni a výsledky jsou využitelné v praxi, jejich prezentace však snižuje celkovou úroveň, kde např. obr. 2.6 má popis y-onové osy odlišný s titulkem obrázku; na str. 65 dochází k přetékání textu mimo stránku atp. Student byl během semestru aktivní a pravidelně konzultoval. Na základě výše zmíněného doporučuji práci k obhajobě s bodovým hodnocením B, 82 bodů. Výsledný počet bodů navržený vedoucím: 82

Známka navržená vedoucím: B

Posudek oponenta
Ing. Petr Blažek, Ph.D.

Předložená diplomová práce o 89 stranách včetně příloh je členěna do dvou kapitol. Teoretická část (kap. 1) shrnuje problematiku informační bezpečnosti, Unixových systémů, mechanismů MAC (SELinux, AppArmor), bezpečnostních rámců (ISO/IEC 27001, CIS, NIS2) a vybraných auditních nástrojů (Lynis, OpenSCAP, Tiger, Rkhunter, Chkrootkit). Praktická část (kap. 2) popisuje architekturu nástroje, implementované testy, strukturu reportů a systém hodnocení. Funkčnost je ověřena na dvou virtuálních strojích a na vzdáleném auditu RTU přes SSH.
Výhradu k práci mám k nekonzistentnímu popisu počtu testů a kategorií, které student definuje, kde počet testů kolísá mezi „10“ a „23“ a u kategorií mezi sedmi a deseti.
Další výhradu mám k požadavku zadání auditovat skrze obě implementace, všechna měření a reporty vycházejí z Python verze a Bash implementace není doložena jediným výstupem. Autor navíc v kap. 2.3 sám uvádí, že pro Bash verzi textový report v požadovaném rozsahu a část kategorií „budú predmetom finálneho dopracovania“.
Dále interpretace výsledků testování je chaotická, obr. 2.6 má popisek jako „Využitie CPU“, ale osa Y zobrazuje RAM, a osa obr. 2.7 nese jednotku „b/s“, přestože vynesené hodnoty spíše odpovídají paketům za sekundu, nikoli bitové propustnosti vzhledem k popisu v textu.
Formálně práce obsahuje řadu chyb – nestandardní číslování (2.0.1–2.0.4), nesoulad adres pracoviště (obr. 2.3 vs. text), nejednotné přípony souborů .py/.sh v tab 2.1 a 2.2, překlepy, přetékání textu. V literatuře je uvedeno 24 zdrojů, což je průměrný počet a jejich použití je korektní.
Přes výše uvedené nedostatky je samotná aplikace ve verzi Python funkční a z větší části i ve verzi pro Bash, a proto hodnotím cíle práce jako splněné a doporučuji práci k obhajobě s hodnocením D/65 bodů. Otázky k obhajobě:
  1. Zadání požaduje, aby bylo možné provádět audit skrze obě implementace. Můžete doložit výsledky auditu provedeného Bash verzí a vysvětlit, čím se výstup liší od verze Python, případně proč všechna měření a ukázky reportů vycházejí pouze z Python implementace?
  2. V demonstrovaném běhu se spustilo pouze 22 z 23 testů. Můžete uvést, kolik testů a kategorií nástroj reálně obsahuje a co bylo příčinou, že se test passwordPolicyCheck v reportu neobjevil?
  3. Bodové hodnocení vychází ze vzorce n×4 s penalizacemi podle závažnosti. Na základě, čeho byly zvoleny základní hodnota i jednotlivé penalizační váhy a jak je zajištěna srovnatelnost skóre mezi audity s odlišným počtem vykonaných testů?
Výsledný počet bodů navržený oponentem: 65

Známka navržená oponentem: D

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová