bakalářská práce

Penetrační testování posílené umělou inteligencí

Text práce 3.54 MB Příloha 8.93 MB

Autor práce: Daniel Linduška

Ak. rok: 2025/2026

Vedoucí: Ing. Willi Lazarov

Oponent: doc. Ing. Zdeněk Martinásek, Ph.D.

Abstrakt:

Tato bakalářská práce se zabývá využitím velkých jazykových modelů pro podporu a zefektivnění procesu penetračního testování. Teoretická část shrnuje základy pentestingu a fungování jazykových modelů. Hlavním cílem praktické části je návrh a realizace expertního AI asistenta (PentestAssistant), který je určen pro bezpečné lokální nasazení. Systém integruje vektorové úložiště (ChromaDB) obsahující zpracovaná data odborných bezpečnostních metodik OWASP ASVS a WSTG. V rámci práce jsou využity vybrané open-source modely (Gemma3:4b, Llama3.1:8b a Falcon3:7b) provozované lokálně prostřednictvím platformy Ollama. Výsledné řešení je vyvinuto v jazyce Python s využitím frameworku Flask na základě architektury klient-server. Uživatelům nabízí jak responzivní webové rozhraní, tak vzdáleného klientského průvodce pro příkazovou řádku komunikujícího přes zabezpečené REST API, přičemž pro lokální správu je k dispozici samostatná konzolová aplikace běžící přímo na serveru. Součástí systému jsou rovněž moduly pro správu účtů, chatů a automatizované generování PDF reportů z testování. Praktický přínos práce doplňuje experimentální testování na zranitelné platformě OWASP BWA, které bylo uskutečněno pod přímým a výhradním vedením navrženého asistenta.

Klíčová slova:

velké jazykové modely, etický hacking, penetrační testování, Retrieval-augmented Generation, OWASP ASVS, OWASP WSTG, Ollama, ChromaDB, Flask, automatizace

Termín obhajoby

16.06.2026

Výsledek obhajoby

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

znamkaAznamka

Klasifikace

A

Průběh obhajoby

Student prezentoval výsledky své práce a komise byla seznámena s posudky. Student obhájil bakalářskou práci a odpověděl na otázky členů komise a oponenta. Otázky: 1. Jaké jsou hlavní limity použití LLM v penetračním testování z hlediska bezpečnosti? 2. Proč nebyly testovány LLM modely s větším počtem parametrů např. 20b nebo 31b? 3. Máte v práci nějaká objektivní kritéria dle kterých jste modely hodnotil? 4. Co znamená spojení Mixture of Experts? 5. Řešil jste v práci, zda je jazykové modely vůbec právně možné použít k penetračnímu testování?

Jazyk práce

čeština

Fakulta

Ústav

Studijní program

Informační bezpečnost (BPC-IBE)

Složení komise

prof. Ing. Radim Burget, Ph.D. (předseda)
doc. Ing. Lukáš Malina, Ph.D. (místopředseda)
Mgr. Jakub Vostoupal, Ph.D. (člen)
Ing. Martin Zukal, Ph.D. (člen)
Ing. Martin Jonák, Ph.D. (člen)
Ing. Michal Švento (člen)
Ing. Willi Lazarov (člen)

Posudek vedoucího
Ing. Willi Lazarov

Bakalářská práce se věnuje využití velkých jazykových modelů (LLM) pro podporu penetračního testování v lokálním nasazením. Výstupem práce je AI asistent, který na základě metodologie OWASP navádí uživatele během testování a umožňuje generování reportů. V teoretické části student popisuje problematiku penetračního testování, čemuž následuje popis principů fungování LLM. Součástí je také srovnání 13 lokálních modelů, na základě kterého student zdůvodnil výběr tří kandidátů pro praktickou realizaci.

V praktické části je představen návrh a implementace AI asistenta. Kladně hodnotím využití metody RAG se znalostní bází obsahující vektorizované dokumenty OWASP ASVS 5.0 a WSTG. Student vyvinul vlastní řešení skládající se z webové aplikace, REST API, lokálního CLI a klientského API skriptu. Řešení bylo následně ověřeno na zranitelné aplikaci pod vedením AI asistenta, ve kterém byly vybrané modely srovnány z hlediska rychlosti a relevance odpovědí. Výsledné hodnocení modelů je věcné a podložené konkrétními zjištěnými nedostatky.

Po formální stránce je práce na dobré úrovni a obsahuje minimum překlepů nebo typografických chyb. Výtku bych měl pouze k snímkům obrazovek, které mohly být provedeny ve vyšší kvalitě a jednotném formátu. Citováno je celkem 36 zdrojů složených převážně z odborných publikací a dokumentací k použitým nástrojům a technologiím.

Veškeré stanovené cíle bakalářské práce považuji za splněné. Student práci pravidelně konzultoval, vyvinutý asistent je funkční a s ohledem na lokální nasazení vhodně řeší práci s citlivými daty. Na základě uvedených skutečností doporučuji práci k obhajobě s hodnocením A/92. Výsledný počet bodů navržený vedoucím: 92

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

Student Daniel Linduška se věnoval ve své práci výzkumu a praktickému využití moderních metod umělé inteligence (AI), zejména velkých jazykových modelů, k podpoře penetračního testování. Hlavním cílem bylo analyzovat možnosti využití velkých jazykových modelů v oblasti penetračního testování a navrhnout vlastní systém AI asistenta. Student ve své bakalářské práci splnil zadání v plném rozsahu. Hlavním přínosem byl vlastní návrh a implementace PentestAssistant a jeho experimentálnímu ověření. Návrh AI asistenta využívá RAG architektury, vektorovou databázi ChromaDB naplněnou daty OWASP ASVS a WSTG a modulární aplikaci (web + CLI + API) – viz obr.3.1. Oceňuji využití moderních technologií (Flask, Ollama, LangChain), důraz na bezpečnost (lokální běh modelů, správa API klíčů) a velmi kvalitní návrh architektury systému. Práce vykazuje znaky samostatné tvůrčí činnosti a odpovídá úrovni kvalitního inženýrského návrhu. Teoretická část práce je zpracována přehledně a systematicky. Student zde detailně popisuje fáze a typy penetračního testování, představuje principy velkých jazykových modelů včetně jejich architektury a omezení (např. halucinace), provádí srovnání vybraných LLM modelů.  Dále student odůvodní volbu Ollama pro lokální nasazení a verifikaci asistenta. V poslední části práce student provedl experimentální testování na platformě OWASP BWA, kde bylo provedeno srovnání modelů (Llama, Gemma, Falcon). Výsledky jsou interpretovány správně a prokazují, že integrace RAG výrazně zvyšuje kvalitu odpovědí modelů. Práci navrhuji k obhajobě s hodnocením A. Otázky k obhajobě:
  1. Jaké jsou hlavní limity použití LLM v penetračním testování z hlediska bezpečnosti?
  2. Proč nebyly testovány LLM modely se větším počtem parametrů např. 20b nebo 31 b ?
Výsledný počet bodů navržený oponentem: 92

Známka navržená oponentem: A

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