Go to course navigation

Theses

Theses

Topics of master theses suitable for students of NIE-BLO. Contact Josef Gattermayer if interrested.

Bezpečnostní audit Ethereum projektu

Množství finančních projektů postavených čistě na technologii blockchain raketově roste, obor decentralizovaných financí (DeFi) je na vzestupu nejen kvůli kvantitativnímu uvolňování tradičních (fiat) měn. Problém je, že smart kontrakty jsou počítačový kód, který může obsahovat (a obsahuje) bugy. Kvůli decentralizované povaze není možné tento bug jednoduše opravit a jakmile je smart kontrakt spuštěn, je pod konstantním útokem hackerů. Proto existuje obor auditování smart kontraktů, aby se snížila pravděpodobnost hacknutí kontraktů. Vaším úkolem bude si takovýto audit zkusit na nějakém vzorovém smart kontraktu.

Pokyny:

  1. Seznamte se s technologií Ethereum a programovacím jazykem Solidity.
  2. Společně s vedoucím práce vyberte projekt přiměřeného rozsahu, proveďte jeho základní analýzu.
  3. Proveďte lokální deployment projektu.
  4. Doplňte existující testy ke zvýšení test coverage >90%.
  5. Proveďte statickou analýzu kódu a kontrolu proti známým zranitelnostem.
  6. Napište fuzzy testy pro parametry funkcí i pořadí volání funkcí.
  7. Proveďte manuální code review.

Detektory zranitelností Ethereum projektů

V DeFi i dalších oblastech, kde je používán Ethereum blockchain, dochází stále k množství hackerských útoků. Jedním ze způsobů, jak těmto útokům zamezit, je pomocí statických analyzátorů kódu, které identifikují zranitelnosti například v rámci IDE nebo CI/CD procesu.

Woke [https://github.com/Ackee-Blockchain/woke] je open source nástroj usnadňující analýzu a vývoj kontraktů v jazyce Solidity. Jednou z jeho hlavních funkcionalit je modul pro detekci zranitelností a chyb využívající statické analýzy kódu. Modul poskytuje rozhraní, pomocí kterého je možné rozšířit nástroj Woke o další detektory. Detekované problémy jsou uživateli prezentovány ve formě textového výstupu v terminálu nebo ve vývojovém prostředí Visual Studio Code.

Pokyny:

  1. Analyzujte existující detektory nástroje Woke včetně IR datového modelu, který se v detektorech využívá.
  2. Po dohodě s vedoucím práce navrhněte a implementujte nové detektory chyb a zranitelností. Můžete implementovat větší množství jednodušších detektorů (např. dle https://swcregistry.io/), nebo navrhnout a implementovat méně netriviálních, např. s využitím strojového učení, analýzy velkých dat a dalších metodik. Příklad triviálního detektoru - https://github.com/Ackee-Blockchain/woke/blob/ec40e33192860a90853f3922fdfc1e51270b2b40/woke/analysis/detectors/unchecked_return_value.py.
  3. Implementované detektory otestujte na vhodně vytvořených testovacích kontraktech i kontraktech nasazených na veřejném blockchainu.

On-chain reprezentace auditu v síti Solana

Cílem práce je seznámit se s blockchain sítí Solana a navrhnout a implementovat formát pro on-chain reprezentaci bezpečnostních auditů.

Pokyny:

  1. Proveďte rešerši stávajících řešení a přístupů v jiných blockchain sítích (např. ERC-7512).
  2. Seznamte se a popište nejdůležitější principy a programovací model sítě Solana (především data a executable accounts, PDAs apod.).
  3. Navrhněte a implementujte:
    • Vhodný formát pro on-chain reprezentaci auditů.
    • Uživatelský explorer zobrazující stav auditů daných programů.
    • SDK pro vytváření a čtení on-chain reprezentací auditů.
  4. Diskutujte silné a slabé stránky vašeho řešení a případná rozšíření.

Použití strojového učení ve statickém bezpečnostním testování Ethereum smart kontraktů

Jsme již tam? Nahradí AI práci bezpečnostních inženýrů? Cílem práce je to zjistit na návrhu jednoduchého detektoru.

Pokyny:

  1. Proveďte rešerši stávajícího výzkumu a přistupů ML v kontextu SAST.
  2. Navrhněte řešení detekce jedné zranitelnosti pomocí ML.
  3. Připravte training data pro jednu konkrétní zranitelnost.
  4. Implementujte a natrénujte několik modelů.
  5. Porovnejte a zhodnoťte výsledky jednotlivých přístupů.

Automatizované generování testů pomocí LLM (Large Language Model)

  1. Proveďte rešerši stávajícího výzkumu a přistupů pro generování unit testů nebo fuzz testů pomocí LLM.
  2. Navrhněte vhodné řešení aplikace LLM pro generování nebo úpravu stávajících testů Solidity smart kontraktů.
  3. Implementujte navržené řešení.
  4. Kvalitu implementace zhodnoťte, porovnejte proti jiným přístupům automatizovaného testování smart kontraktů.

Aplikace OpenAI Chat GPT v detektorech zranitelností a kvality kódu

  1. Analyzujte existující řešení detektorů statické analýzy pro Solidity smart kontrakty.
  2. Zvolte vhodné problémy pro detekci statickou analýzou a Chat GPT.
  3. Upravte stávající detektory nebo implementujte nové detektory s využitím Chat GPT.
  4. Vyhodnoťte kvalitu detektorů běžnými metrikami a porovnejte s jinými řešeními.

Ethereum Account Abstraction

Pokyny:

  1. Popište problémy, které account abstraction řeší.
  2. Proveďte detailní analýzu stávajících návrhů řešení account abstraction, popište technické řešení, výhody, nevýhody a možné dopady na uživatele a ekosystém.
  3. Praktická část? 🤷

Debugger jazyka Solidity

Debugger je jedním z nejpotřebnějších nástrojů při vývoji i analýze kódu. V případě jazyka Solidity existuje debugger jako součást vývojového prostředí Remix, který však umožňuje krokování pouze po instrukcích a nepodporuje možnost debugování transakcí vytvořených mimo Remix IDE. Toto vývojové prostředí také nenabízí příliš velkou podporu pro jazyk Solidity (funkcionality jako “Go to definition”, “Find all usages”, “Rename symbol”).

Cílem je implementace debuggeru jazyka Solidity do nástroje Woke a VS Code rozšíření Tools for Solidity. Debugger by měl podporovat krokování po celých výrazech jazyka Solidity a umožňovat debugování transakce vytvořené na lokálním development chainu nebo veřejném blockchainu pomocí jejího hashe.

Pokyny:

  1. Analyzujte protokol DAP (Debug Adapter Protocol), který je využíván pro implementaci debuggeru do vývojového prostředí VS Code.
  2. Implementujte debugger jazyka Solidity do nástroje Woke podporující komunikaci prostřednictvím DAP protokolu.
  3. Otestujte správnost implementace na vhodně vytvořených testovacích kontraktech i kontraktech nasazených na veřejném blockchainu.

Developer tooling for Solana

Solana is a blockchain (or more precise a global state machine) that excels in speed and scalability over other blockchains that allow to run programs such as Ethereum. But the ecosystem is very new and lacks some standard development tooling.

Commands:

  1. Analyse Solana blockchain and its ecosystem.
  2. Analyse Trdelnik, Solana Rust client.
  3. Propose new functionality for Trdelnik (after discussion with the supervisor).
  4. Implement given functionality.
  5. Test correctness of your implementation.

Bezpečnostní audit Solana (Rust) projektu

Množství finančních projektů postavených čistě na technologii blockchain raketově roste, obor decentralizovaných financí (DeFi) je na vzestupu nejen kvůli kvantitativnímu uvolňování tradičních (fiat) měn. Problém je, že smart kontrakty jsou počítačový kód, který může obsahovat (a obsahuje) bugy. Kvůli decentralizované povaze není možné tento bug jednoduše opravit a jakmile je smart kontrakt spuštěn, je pod konstantním útokem hackerů. Proto existuje obor auditování smart kontraktů, aby se snížila pravděpodobnost hacknutí kontraktů. Vaším úkolem bude si takovýto audit zkusit na nějakém vzorovém smart kontraktu. Ekosystém Solana je teprve v začátku, takže zde existuje málo nástorojů a dominantním postupem je code review Rust kódu.

Pokyny:

  1. Seznamte se s technologií Solana a programovacím jazykem Rust.
  2. Společně s vedoucím práce vyberte projekt přiměřeného rozsahu, proveďte jeho základní analýzu.
  3. Proveďte lokální deployment projektu.
  4. Doplňte existující testy ke zvýšení test coverage >90%.
  5. Proveďte statickou analýzu kódu a kontrolu proti známým zranitelnostem.
  6. Napište fuzzy testy pro parametry funkcí i pořadí volání funkcí.
  7. Proveďte manuální code review.

Analýza bezpečnosti ZKP (zero-knowledge proofs) pro Ethereum

Blockchainové technologie v poslední letech akcelerovali vývoj ZKP a stanovili první reálné globální využití pro běžné uživatele. Motivací pro vývoj bylo vyřešení škálovatelnosti a pseudo-anonymity blockchainů. Setkáváme se nyní s projekty co umožňují rychlejší a lacinější zpracování transakcí nebo i jejich plnou anonymitu. Náplní této práce je zjistit zda-li tato řešení svým inovativním přístupem neovlivňují negativním způsobem bezpečnost uživatelů, případně zda-li deklarované soukromí nemůže být ohrozeno.

Cíle:

  1. Představení ZKP a jejich využití v Ethereu
  2. Porovnání implementace ZK (SNARK i STARK) a Optimistic rollups pro škálování Etherea a bezpečnostní aspekty těchto řešení
  3. Analýza trusted setup ceremony, secure enclaves (využití Intel SGX apod.), případně dalších důležitých prvků pro bezpečné fungování protokolů
  4. Audit ZK protokolu na Ethereu, který využívá ZKP pro soukromí uživatelů
  5. Vytvoření metodologie pro audit ZK protokolů

Pokyny:

  1. Seznamte se s ZKP obecně a poté prozkoumejte jejich využití pro blockchain
  2. Prověřte bezpečnostní aspekty ZKP v jednotlivých vertikálách
  3. V praktické části vypracujte bezpečnostní audit ZK projektu dle uvážení po diskusi s vedoucím práce (např. Obscuro, Secret Network, Aztec Network, …)