HROMADA, D. Forenzní analýza anonymizačních principů kryptoměnových sítí [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2024.

Posudky

Posudek vedoucího

Veselý, Vladimír

Písemná část má obvyklé členění reflektující studentův postup na řešení, nicméně je z ní cítit (typografie, překlepy, formulace), že byla dopracovávána v časovém presu. Při demonstraci implementace správně dělá, co práce proklamuje, tj. detekuje konkrétní výrobce peněženek v síťovém provozu na základě analýzy DNS. Současnou implementaci lze díky jejímu rozumnému software-inženýrskému pojetí snadno rozšiřovat o další chybějící funkce. Aktuálně slabou částí je nějaké ucelenější a reprodukovatelné testování (není zjevné, jaká data byla na vstupu, a jaké konkrétní výsledky po průchodu nástrojem z toho vypadly, aby to dalo důkaz o činnosti, o které píše kapitola testování). Práci hodnotím stupněm E. Student nastudoval, pochopil, navrhnul, implementoval (byť ne vše) a nějak otestoval, na čem jsme se domlouvali, ale v kvalitě, která je jen dostatečná.

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Informace k zadání Práce je součástí výzkumu kolem grantů MIXER a BLESK a tématicky spadá do dlouhodobých aktivit výzkumné skupiny NES@FIT .  Student měl za úkol zorientovat se v rozsáhlé problematice kryptoměn se zaměřením na obfuskační techniky (a obecně možnosti digitální forenzní analýzy v tomto odvětví) a po konzultaci s vedoucím implementovat nástroj, který by byl ku prospěchu bezpečnostním složkám. Svým záběrem se tedy jedná rozhodně o obtížnější zadání. Ambicí bylo v síťovém provozu: 1) hledat komunikaci, která by dané IP adrese (uživateli) přiřadila nějakou konkrétní hardwarovou/softwarovou peněženku; 2) hledat komunikaci vybraných kryptoměnových protokolů (např. Bitcoin), se zaměřením na extrakci dat z kryptoměnových transakcí (kde se měly uplatnit předchozí poznatky o obfuskaci) a extrakci metadat o peerech. V tomto ohledu současné výsledky, kterých práce dosáhla, naplnily mé očekávání jen částečně - podařilo se zapracovat na bodu 1).
Práce s literaturou Od množiny základní literatury se student sám aktivně a rychle zhostil vyhledávání relevantních zdrojů (včetně pár vědeckých článků), a to nepřeberného množství online dokumentů, neb žádná ucelenější vědecká publikace k tématu kryptoměn, deobfuskace, či analýzy provozu zatím není k dispozici.
Aktivita během řešení, konzultace, komunikace V průběhu zimního semestru student konzultoval, chodil pravidelně na schůzky připraven a systematicky pracoval na obsahu zadání, které vzájemnými debatami nabývalo na konkrétní podobě. Na základě narešeršování problematiky jsme se v zimě domluvili, že na problém ztotožňování uživatelů kryptoměn s jejich aktivitou v blockchainu se půjde skrz analýzu zachyceného síťového provozu potenciálního uživatele. Proběhl návrh aplikace, přičemž v letním semestru měla následovat jeho implementace a testování. Studentovi byly předány hardwarové peněženky a pobavili jsme se o tvorbě testovacích dat. V letním semestru jsme sešli asi jen dvakráte, přičemž posun na implementaci byl pomalejší, než jsem doufal.
Aktivita při dokončování V měsíci před odevzdáním k žádné schůzce bohužel nedošlo; první po dlouhé době tak byla až 4 dny před odevzdáním. Zde student konstruktivně a sebekriticky inicioval možnost odkladu BP. Prošli jsme si tedy celou písemnou i implementační část, kde problém byl především ve stavu písemné zprávy a absenci testování k tomu, co se podařilo implementovat. Domluvili jsme se, že se student zkusí vzedmout a ve zbývajícím čase odvést co nejvíce práce vedoucí k odevzdatelnému výsledku. Ve dni předcházejícím odevzdání jsem pak prošel písemnou část a poskytl komentáře, kde co vylepšit, přičemž některé byly více a jiné méně zohledněny.
Publikační činnost, ocenění Aktuální práce a zejména její implementační část je zveřejněna na GitHubu (viz https://github.com/DenisHromada/CryTraCtor ). Pokud se podaří implementaci dotáhnout, počítá se s její diseminací mezi bezpečnostní složky jako open-source variantě k nepředstavitelně dražším proprietárním řešením (jako např. https://www.cognyte.com/blockchain-analytics/ )
Navrhovaná známka
E
Body
59

Posudek oponenta

Zavřel, Jan

Práce je viditelně nekompletní, uspěchaná a sama o sobě v aktuálním stavu nedává smysl. I s přihlédnutím k obtížnějšímu a velmi otevřenému zadání jsem nucen hodnotit stupněm F, a to zejména na základě velmi slabé prezentační úrovně práce, ale i z dalších důvodů popsaných výše.

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Náročnost zadání Zadání hodnotím jako obtížnější a velmi otevřené. Nejenže se zadání neomezuje na jednu kryptoměnu, ale dále požaduje studium více různých hardwarových a softwarových produktů. Student také musí navrhnout a implementovat vlastní řešení pro deobfuskaci, které se pokusí asociovat uživatele s jejich transakcemi a adresami.
Rozsah splnění požadavků zadání První bod zadání požaduje prostudování kryptoměn, avšak práce se zaměřuje převážně na kryptoměnu Bitcoin. Kryptoměny Ethereum a Dash jsou zmíněny jen okrajově a většinou zcela opomenuty. Třetí bod zadání se týká implementace nástroje pro deobfuskaci přenosů mezi uživateli. Tento nástroj by měl také pokusit asociovat uživatele s jejich adresami či transakcemi. Čtvrtý bod pak požaduje testování na netriviálním množství transakcí. Řešitel místo toho vytvořil nástroj, který analyzuje zachycený provoz v .pcap souborech. Výstupem analýzy je typ a výrobce peněženky, jejíž provoz je zachycen ve zkoumaném provozu. Nedostatky samotného testování jsou popsány níže v sekci hodnocení prezentační úrovně technické zprávy. Vypracovaná práce tak vůbec nevytváří asociace mezi uživateli a transakcemi či adresami, ale maximálně mezi uživateli a typem peněženky. Student se odchýlil od zadání a je tak těžké posoudit, nakolik byla očekávání naplněna.
Rozsah technické zprávy Práce je rozsahově kratší, dle dostupných nástrojů má zhruba 37 normostran. Práce této komplexity by spíše měla dosahovat horní hranice limitu normostran.
Prezentační úroveň technické zprávy 35 Práce má logickou strukturu a jednotlivé kapitoly na sebe tématicky navazují. Informativní úroveň je velmi slabá, důležité informace k pochopení problematiky často chybí a zasazení do kontextu je často povrchní nebo zcela chybí. V abstraktu a úvodu jsou vyjmenovány zkoumané kryptoměnové peněženky, bohužel však chybí důvod pro jejich výběr či zasazení do kontextu jejich existence v ekosystému kryptoměn. Odůvodnění jejich výběru bych očekával také z důvodu, že se jedná se o kombinaci softwarových produktů s hardwarovou součástí a čistě softwarových produktů. V kapitole 2 jsou zmíněny, kromě Bitcoinu, další dvě kryptoměny, které autor považuje za relevantní: Dash a Ethereum. Výběr právě těchto dvou kryptoměn z desítek kandidátů není odůvodněn. Komplexní systémy těchto kryptoměn jsou pouze velice povrchně popsány na zhruba 10 řádcích textu pro každou měnu, a to bez jakékoliv další návaznosti v následujících kapitolách. Ve stejné kapitole je v popisu Bitcoinu například zmíněna problematika adres, ale jejich význam a důvod zahrnutí do textu nemusí být čtenáři zřejmý. V kapitole 3 student popisuje CoinJoin transakce a mixéry, bohužel tato složitá témata jsou shrnuta na 10 řádcích, z čehož může být čtenář více zmaten než informován. Nepomáhají ani příliš zjednodušená a nepopsaná schémata. V kapitole 4 je použita netradiční definice cold a hot wallets, původce těchto definic je nejasný, protože v kapitole chybí citace. V kapitole jsou dále popsány různé typy peněženek, bohužel čtenáři není po přečtení jasné, jak peněženky přesně komunikují se servery či kryptoměnovými uzly a proč. V kapitole 5 řešitel velmi stručně definuje model útočníka společně s diagramem, který je ale chybný. Kapitola dále zmiňuje možnost inspekce nešifrovaných DNS dotazů, ale i další tři jiné způsoby, které jsou však ve zbytku práce ignorovány. Kapitoly 6 a 7 o návrhu a implementaci obsahují pouze malé množství vysoce abstraktních diagramů a spíše popisují použité technologie a balíčky než metody detekce provozu pěněženky či konkrétní algoritmus fungování, což považuji za tristní. Kapitola testování je velice skromná, obsahuje pouze jednovětový popis testů a následně zhruba normostranu s neoptimistickými výsledky. V sekci testování není vůbec popsán průběh testování a celkově chybí pevnější struktura testů. Není jasné, jaké metody se testují, jak se testují a ani na jakých kryptoměnách se testují.
Formální úprava technické zprávy 50 Práce je psána v angličtině a bohužel obsahuje časté jazykové chyby, které zhoršují její srozumitelnost. V práci se objevují neobvyklé fráze, jako například "subjugated to testing" místo běžnějšího "subjected to testing", a dále věty se špatným slovosledem, například "...and its relationship cryptocurrencies with Ethereum and Dash". Práce obsahuje nemalé množství neúplných vět. Příklady zahrnují věty jako: Available for desktops and Android devices. Presented as a 'one-stop shop to buy crypto, grow assets, and manage NFTs'. If she also knows the destination and amount. Due to the difference in the number of necessary connections and participants. a další. Obrázky 3.1 a 3.2 jsou přehnaně abstraktní a neobsahují vysvětlující popisek. Obrázek 3.1 není dále odkazován v textu. Obrázek v kapitole 5 není dostatečně popsán a navíc je chybný. Doprovodné obrázky v kapitole 7 také nejsou dostatečně popsány a zároveň jsou nepřesné.
Práce s literaturou 60 Řešitel cituje v práci celkem 37 relevantních zdrojů. V některých teoretických kapitolách však není explicitně uvedeno, z čeho jsou informace čerpány (například kapitola 4.1). U citací konkrétních myšlenek často chybí přesnější určení kapitoly či rozsahu stránek (například citace [2] v sekci 4.1.4).
Realizační výstup 35 Výstupem je aplikace, která je schopná určit, zda se v pcap souboru nachází DNS dotaz obsahující doménu v databázi. Architektura aplikace je na dobré úrovni, bohužel zdánlivě nejdůležitější součást této aplikace, samotný algoritmus pro detekci provozu peněženky, je velmi jednoduchý. Podobného výsledku (bez datové perzistence a API) lze dosáhnout i s méně než 50 řádky kódu v Pythonu. Výsledné API aplikace není v textu popsáno, odkazované přílohy D a E jsou k tomuto účelu nevhodné. Pozitivně hodnotím ruční sesbírání domén pro zkoumané peněženky.
Využitelnost výsledků Aplikace je funkční a za určitých podmínek je schopná v zachyceném síťovém provozu detekovat provoz peněženek, pro které byly ručně sesbírány interní domény z internetu. K praktickému využití bohužel chybí další způsoby detekce provozu peněženky než jen DNS dotazy odesílané při inicializaci peněženky.
Navrhovaná známka
F
Body
35

Otázky

eVSKP id 152529