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.
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á.
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/ ) |
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.
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. |
eVSKP id 152529