bakalářská práce

Detekce internetových hrozeb jazykem YARA

Text práce 3.06 MB

Autor práce: Bc. Michal Krulich

Ak. rok: 2024/2025

Vedoucí: Ing. Dominika Regéciová

Oponent: Ing. Daniel Poliakov

Abstrakt:

Táto práca rieši návrh nových metód pre detekciu webových hrozieb pomocou jazyka YARA. Rozširujúce metódy sú integrované do nástroja YARA-X cez novo-implementované moduly, ktoré zdokonalujú možnosti jazyka YARA a jeho detekciu hľadaných vzorov a rysov. Webové hrozby, na ktoré sa práca zameriava, sú hrozby vyskytujúce sa v emailoch a na webových stránkach. Pri emailoch ide o najbežnejší formát EML a formát Outlook MSG spoločnosti Microsoft. Pri webových stránkach je skúmaná štruktúra dokumentov HTML a analyzovaný JavaScript kód. Analyzátor JavaScript kódu využíva poznatky z teórie prekladačov pre účely odhaľovania rysov v obfuskovanom kóde. Analýza a extrakcia kľúčových dát v daných formátoch je integrovaná do samostatných modulov nástroja YARA-X.

Klíčová slova:

YARA, YARA-X, webové hrozby, malware, statická analýza, dynamická analýza, email, EML, MS-Outlook MSG, MS-CFB, HTML, JavaScript, obfuskovaný kód, extrakcia dát.

Termín obhajoby

18.06.2025

Výsledek obhajoby

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

znamkaAznamka

Klasifikace

A

Průběh obhajoby

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.

Otázky k obhajobě

  1. V rámci vyhodnocení zmiňujete pro každý typ souborů příklad pravidel, kde nový modul má více detekcí a uvádíte důvod (např. odstranění obfuskace u Javascript modulu a nárůst o 30 procent). Jsou tyto důvody pouze odhady (Vaše nebo malware analytika), nebo jste při testu validovali jednotlivé detekované soubory, že nejde o falešné pozitiva?
  2. Je hlavním vylepšením detekce to, že Váš modul správně připraví vstupní data k další analýze hrozeb? 

Jazyk práce

slovenština

Fakulta

Ústav

Studijní program

Informační technologie (BIT)

Složení komise

doc. Ing. Ondřej Ryšavý, Ph.D. (předseda)
Ing. Tomáš Milet, Ph.D. (člen)
Ing. Marcela Zachariášová, Ph.D. (člen)
Ing. Filip Orság, Ph.D. (člen)
doc. RNDr. Dana Hliněná, Ph.D. (člen)

Posudek vedoucího
Ing. Dominika Regéciová

Student navrhl a implementoval několik rozsáhlých rozšíření pro nový open-source projekt YARA-X, konkrétně HTML, JS, a e-mailových modulů. Návrh a implementaci student aktivně konzultoval s malwarovými analytiky, aby maximálně pokryl potřeby pro detekce zmíněných formátů.


Výsledný kód je pokryt sérii testů a porovnán s předchozím řešením. Zároveň kód prošel schvalovacím procesem a je z velké části zařazen do chystané verze, která je právě integrována do infrastruktury v rámci firmy Gen.


Celkově práci nemám co vytknout. Z těchto důvodů navrhuji hodnocení z A.

Kritérium hodnocení Slovní hodnocení
Informace k zadání

Zadání považuji za náročnější z důvodu rozsáhlosti výsledného projektu. Student se do velké míry podílel na tvorbě nové generace nástroje YARA, YARA-X. Tento nový nástroj, psaný v jazyce Rust, rozšiřoval o kritické moduly pro podporů detekcí pro HTML, JS a e-mailové soubory. Student řešení aktivně řešil s malwarovými analytiky, aby byly moduly efektivní pro detekce a zároveň obsahovaly žádanou funkcionalitu. V průběhu vznikaly požadavky, které překračovaly rozsah původního zadání, student je však vždy ochotně zapracoval. Student rovněž odváděl velmi kvalitní práci, výsledné moduly se nyní zavádí do interních systémů ve firmě Gen.

Finální práce byla dokončena v předstihu a řádně konzultována. Zadání pak bylo splněno ve všech bodech.

Práce s literaturou

Student si hledal literaturu aktivně a samostatně. Seznam použitých zdrojů považuji za vhodný a plně dostatečný.

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

Student pracoval na zadání aktivně hned od začátku. Práci pravidelně konzultoval, jak se mnou, tak odborným konzultantem. Nad rámec toho rovněž zadané implementaci průběžně řešil s malwarovými analytiky pro ještě lepší rozšíření pro jazyk YARA-X. Dodržoval dohodnuté termíny a na konzultacích byl vždy připraven.

Aktivita při dokončování

Veškerá práce byla dokončena v předstihu a byla konzultována se mnou i odborným konzultantem.

Publikační činnost, ocenění

-

Výsledný počet bodů navržený vedoucím: 98

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

Posudek oponenta
Ing. Daniel Poliakov

Práci hodnotím velmi kladně. Student odprezentoval potřebné znalosti týkající se webových hrozeb a použivaných systému, na ně navázal návrhem modulů (kde bylo i do značné míry zdůvodněno proč je co navrženo jak a jaké varianty byly zváženy), implementací, funkčním vyhodnocením a výkonnostním měřením. Student odvedl značné množství práce a věřím, že by práce určitě obstála i jako diplomová práce.

Kritérium hodnocení Slovní hodnocení Body
Náročnost zadání

Stupeň hodnocení: obtížnější zadání

Student měl za úkol soustředit se na systém modulů v projektech YARA a YARA-X pro vybrané formáty typické ve webovém prostředí, navrhnout moduly, ty implementovat a vyhodnotit. Zadání považuji za náročnější kvůli množství informací potřebných k nastudování - detaily jednotlivých formátů, fungování YARA i YARA-X, či jazyka Rust.

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

Práce se velmi dobře čte, je pochopitelná, dobře strukturovaná. Text je doplněn o řadu ukázek a diagramů, které vysvětlují koncepty. Nemám co vytknout. 

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

Práce je precizní po jazykové i typografické stránce. Jediná maličkost, které jsem si všimnul, tak je malá nekonzistence v ukončování popisu obrázků tečkou (např. Obr. 5.3. vs Obr. 6.3.).

100
Realizační výstup

Student udělal množství implementační práce i vyhodnocení. Dodané moduly jsou zdokumentované. V rámci kódu označil, které části jsou čistě autorské a které části patří pod původní projekt.

100
Využitelnost výsledků

Práce je využitelná v praxi tak, jak byla odevzdána.

Rozsah splnění požadavků zadání

Stupeň hodnocení: zadání splněno a práce obsahuje podstatná rozšíření

Zadání je zcela splněno, ať už rozsahem práce, tak hloubkou, do jaké se při samotném řešení šlo. 

Rozsah technické zprávy

Stupeň hodnocení: přesahuje obvyklé rozmezí

Technická zpráva přesahuje obvyklé rozmezí. V kladném slova smyslu je informačně bohatá. V teoretické části student uvádí jak obecné informace k webovým hrozbám, tak konkrétní případy z posledních let. Jednotlivé komponenty návrhu i implementace jsou vysvětleny v rozumné míře.

Práce s literaturou

Student se vhodně odkazuje na zdroje v průběhu celého textu. Ať už na referenční literaturu nebo nástroje a dokumentace uvedené pod čarou. Zdroje odpovídají charakteru práce.

100
Otázky k obhajobě:
  1. V rámci vyhodnocení zmiňujete pro každý typ souborů příklad pravidel, kde nový modul má více detekcí a uvádíte důvod (např. odstranění obfuskace u Javascript modulu a nárůst o 30 procent). Jsou tyto důvody pouze odhady (Vaše nebo malware analytika), nebo jste při testu validovali jednotlivé detekované soubory, že nejde o falešné pozitiva?
Výsledný počet bodů navržený oponentem: 100

Známka navržená oponentem: A

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