izpis_h1_title_alt

Cyber security in decentralized applications
ID TURK, JAN (Avtor), ID Pustišek, Matevž (Mentor) Več o mentorju... Povezava se odpre v novem oknu, ID Živić, Nataša (Komentor)

.pdfPDF - Predstavitvena datoteka, prenos (8,37 MB)
MD5: 46EC6904872BFB2753C988E1950B95C5

Izvleček
Ethereum network introduced executable programming called smart contracts to blockchain technology ecosystem. With the ability to have executable smart contracts on a blockchain network, decentralised applications (DAPPs) started to reach the consumer market. As with every kind of executable programming the information security is an important part of smart contract development. The field is still relatively young; the Ethereum network and the smart contracts were brought to the public domain in 2015. Since then, the Ethereum network as well as the smart contract programming language, Solidity, has been rapidly developing and there are no extensive guidelines for secure development of smart contracts. This is the reason for researching smart contract security in this thesis. Blockchain technology overview is included in this thesis and is used as the basis to deduct the smart contract security aspects that need to be considered when writing smart contracts. Blockchain network types, elements and their interactions are analysed, to provide further background in the workings of the blockchain technology. Understanding how transactions are executed, how accounts are represented, the on-chain executable logic and how inter-chain communication is executed, is crucial to secure the development of smart contracts. Decentralised application security is broken down into blockchain network security, secure blockchain network governance, smart contract security and DAPP interaction security. Blockchain network security is analysed by comparing the relationship between the chain data integrity and transaction throughputs, as well as how the consensus algorithm of the blockchain network can impact the security of the data transmitted over it. Critical secure node mass is explained and its relationship to network security as well. Smart contract security is a multi-layered term. Smart contract execution sequence is explained in detail as well as how standardization is emerging in smart contract development. Zero-hour exploits, as well as third party code snippets, are detailed in relation to smart contract security. Smart contract weakness classification is explained. Secure smart contract deployment, code reviews and code verification are also discussed in detail. Finally, the way of how users and developers interact with smart contracts through DAPPs is discussed. DAPP security best practices are outlined starting with the CIA information security triad and passive and active smart contract security. Multi smart contract solutions, hybrid blockchain – server architectures, atomic swaps and blockchain network load predictions and testing are detailed in this chapter. The practical part of the thesis focuses on applying the previously analysed and outlined smart contract security practices to smart contract back end of a DAPP called Swether. Swether is an electrical charging solution that uses Ethereum network as its backend. The pre-thesis solution is presented and required improvements are presented. It was built in a monolithic manner, meaning there was one smart contract that handled all of the business logic as well as data storage and access control. The monolithic smart contract is separated into seven self-contained modules, which are thoroughly analysed and designed. The modules are classified into platform-agnostic, platform-specific and auxiliary groups. Platform agnostic group of modules is applicable to any project and it provides essential service for the whole platform. They provide per-module access control and module to address resolution service. Platform-specific group of modules contains business logic specific to the platform; in this case specific to charging station service. Auxiliary group of modules brings additional value to the platform and the modules contained in it can be used in various platforms but are not essential for the operation of the platform. Swether auxiliary modules are Loyalty, Escrow and Accumulator. Transitioning from a single smart contract environment to a multi smart contract environment required a secure way of inter-module access control. Smart Contract Tunnelling (SCT) is introduced to provide secure authentication and access control. SCT utilizes a platform-agnostic group of modules to verify the correct path of the transaction as well as access control for the origin user of the transaction. Each module was designed for upgradeability and data transfer. This means that if a module is upgraded, the access control can be transferred from the previous version of the module and all of the other modules are notified of the update, so that the update is seamless, and the operation of the platform is not interrupted. After the successful implementation of the security upgrade of Swether platform, all the smart contracts were analysed using MythX smart contract security audit tool. The results are presented and analysed. Finally, the roadmap for the future of Swether is laid out and the possible further improvements are presented.

Jezik:Angleški jezik
Ključne besede:Blockchain, Blockchain technology, Smart contracts, Ethereum, Smart contract security, Smart contract tunnelling
Vrsta gradiva:Magistrsko delo/naloga
Organizacija:FE - Fakulteta za elektrotehniko
Leto izida:2021
PID:20.500.12556/RUL-124838 Povezava se odpre v novem oknu
Datum objave v RUL:22.02.2021
Število ogledov:2652
Število prenosov:213
Metapodatki:XML DC-XML DC-RDF
:
Kopiraj citat
Objavi na:Bookmark and Share

Sekundarni jezik

Jezik:Slovenski jezik
Naslov:Kibernetska varnost v decentraliziranih aplikacijah
Izvleček:
Ethereum omrežje je v ekosistem tehnologij veriženja blokov vneslo izvršljive programske kode. Z možnostjo uporabe izvršljivih pametnih pogodb so decentralizirane aplikacije (DAPPs) dosegle končne uporabnike. Kot pri vsakem pisanju izvršljive programske kode, je tudi pri pametnih pogodbah pomembna informacijska varnost. Področje je še relativno mlado; Ethereum omrežje in pametne pogodbe so v javno uporabo prišli leta 2015. Od takrat sta se Ethereum omrežje in programski jezik za pisanje pametnih pogodb, Solidity, hitro razvijala, vendar ekstenzivne smernice za varen razvoj pametnih pogodb ne obstajajo. To je razlog za raziskovanje področja varnosti pametnih pogodb v tem delu. V delu je vključen pregled tehnologije blokovnih verig kot osnova za izpeljavo sklepov o varnosti pametnih pogodb, ki jih je treba upoštevati pri programiranju pametnih pogodb. Tipi omrežij veriženja blokov, elementi teh omrežij in njihove interakcije so analizirani tako, da podajo dodatno ozadje v delovanje tehnologije veriženja blokov. Razumevanje postopka izvedbe transakcij, prezentacije računov, izvršljive logike vključene v blokih in kako se izvaja komunikacija med različnimi omrežji veriženja blokov, so nujne za razumevanje delovanja pametnih pogodb. Varnost decentraliziranih aplikacij je razdeljena na varnost omrežij veriženja blokov, varnosti nadzora nad omrežjem veriženja blokov, varnosti pametnih pogodb in varnosti interakcije z decentraliziranimi aplikacijami. Varnost omrežja veriženja blokov je analizirana s pomočjo primerjave razmerja med integriteto podatkov shranjenih v blokih in hitrostjo transakcij ter z analizo tega, kako lahko konsenzni algoritem omrežja veriženja blokov vpliva na varnost podatkov, ki se pretakajo po njem. Kritična varna masa vozlišč je razložena skupaj z razlago njenega vpliva na varnost omrežja. Varnost pametnih pogodb je večslojen termin. Postopek izvedbe pametnih pogodb je podrobno razložen skupaj s postopki standardizacije razvijanja pametnih pogodb, ki se pojavljajo. Napadi ničte ure in uporaba tujih delčkov programske kode so razloženi v povezavi z varnostjo pametnih pogodb. Klasifikacija šibkosti pametnih pogodb (SWC) je razložena. Varno uvajanje pametnih pogodb, revizija kode in verifikacija kode so podrobno razloženi. Na koncu poglavja je razložen tudi način, kako razvijalci in uporabniki interaktirajo s pametnimi pogodbami prek decentraliziranih aplikacij. Dobre prakse decentraliziranih aplikacij so orisane s pomočjo CIA triade infomacijske varnosti ter pasivne in aktivne varnosti pametnih pogodb. Rešitve iz več pametnih pogodb, hibridne, blokovne verige – strežniki, arhitekture, atomske menjave ter predvidevanja obremenitve omrežji blokovnih verig in njihovo testiranje so podrobno razloženi v tem poglavju. Praktični del teze uporabi predhodno analizirane dobre prakse varnosti pametnih pogodb. Te so uporabljene na pametni pogodbi zaledja decentralizirane aplikacije Swether. Swether je električna polnilna rešitev, ki uporablja Ethereum omrežje za svoje zaledje. Stanje rešitve pred tezo je predstavljeno in potrebne varnostne nadgranje so predstavljene. Rešitev je bila zgrajena kot monolitna aplikacija, kar pomeni, da je ena pametna pogodba zagotavljala vso poslovno logiko kot tudi shranjevanje podatkov in nadzor dostopa. Monolitna pametna pogodba je razdeljena v sedem samostojnih modulov, ki so natačno analizirani in načrtovani. Ti moduli so klasificirani v tri skupine: Skupina modulov neodvisnih od platforme, skupina modulov specifičnih za platforme in skupina dodatnih modulov. Moduli neodvisni od platforme so moduli, ki so lahko uporabljeni v kakršnikoli platformi in zagotavljajo nujne storitve za celotno platformo. Ti moduli zagotavljajo nadzor dostopa in storitev razločanja naslovov. V platformi Swether sta to modula Administracija (angl. Administration) in Direktorij pametnih pogodb (angl. Smart contract directory). Administracija vsem pametnim pogodbam v platformi zagotavlja nadzor dostopa in podpira štiri različne nivoje dostopnih pravic. Direktorij pametnih pogodb predstavlja imena naslovov vseh aktivnih pametnih pogodb, povezanih z moduli, ki jim pripadajo. Specifični moduli za platforme zagotavljajo poslovno logiko specifično za platformo, v primeru Swethra je to logika za storitev električnega polnjenja (angl. Charging station directory). Med module specifične za platformo spada tudi Jedrni modul (angl. Core). Ta modul se povezuje z vsemi ostalimi moduli in je edini modul, s katem interaktira končni uporabnik. Za posredovanje klicev ostalim modulom uporablja Direktorij pametnih pogodb, da razreši naslov pametne pogodbe iz imena modula, v katerega posreduje klic. Dodatni moduli zagotavljajo dodano vrednost platformi. Moduli, ki se nahajajo v tej skupini niso nujni za delovanje platforme in so lahko uporabljeni v katerikoli platformi. Dodatni moduli platforme Swether so moduli, ki zagotavljajo nagrajevanje zvestobe (angl. Loyalty), plačevanje storitve s posrednikom (angl. Escrow) in zbiranje zasluženih sredstev (angl. Accumulator). Modul nagrajevanja zvestobe uporablja standardizirane kovance ERC 20 za nagrajevanje uporabnikov za uporabo platforme. Plačevanje storitve s posrednikom omogoča, da uporabnik nakaže plačilo za polnjenje, ki je nakazano ponudniku polnjenja šele, ko je polnjenje opravljeno. Na ta način lahko dvignemo nivo zaupanja uporabnikov storitve polnjenja in ponudnikov polnjenja, saj zagotovimo, da nihče ne izgubi sredstev, le ena izmed strani odstopi od dogovora o polnjenju oziroma plačila. Modul za zbiranje zasluženih sredstev omogoča lastnikom električnih polnilnic, da izberejo, kdaj in kam želijo nakazati sredstva, ki so jih prejeli s ponujanjem polnjenja. Prehod z ene pametne pogodbe na več pametnih pogodb potrebuje varen način komunikacije med moduli. Tuneliranje med pametnimi pogodbami (angl. Smart Contract Tunnelling -- SCT) je bilo razvito, da zagotavlja varno avtentikacijo in kontrolo dostopa. SCT uporablja module neodvisne od platforme, da verificira pot transakcije kot tudi nadzor dostopa do klicev za izvornega klicatelja transakcije. Jedrni modul uporablja SCT za vzpostavitev tunela z modulom tako, da posreduje klic metode pametni pogodbi ciljnega modula, kjer pridobi njen naslov prek Direktorija pametnih pogodb. Pred izvršitvijo metode ciljni modul preveri, če je izvornemu računu transakcije dovoljen klic metode s pomočjo Administracije. Hkrati ciljni modul izvede preverbo, če je klic posredoval modul, ki mu je dovoljeno posredovanje klica te metode, kar naredi s pomočjo Direktorija pametnih pogodb. Le če obe preverbi vrneta dovoljen klic, potem je metoda izvršena. Vsak modul je bil zgrajen z upoštevanjem možnosti nadgrajevanja in prenosa informacij. To pomeni, da se, v primeru nadgraditve modula, lahko prenese pravice dostopa iz predhodne verzije in da so vsi ostali moduli obveščeni o nadgradnji. Tako je nadgradnja brezprekinitvena in delovanje platforme nemoteno. Po uspešni implementaciji varnostne nadgradnje platforme Swether so bile vse pametne pogodbe analizirane z orodjem MythX, ki je orodje za varnostno analizo pametnih pogodb. Orodje je zaznalo 179 kršitev, ki so bile vse namerno vključene. MythX zazna kršitve SWC, ki so sprejemljive v primerih, ko so bile vključene z razumevanjem ranljivosti, ki jih prinašajo. Na koncu je začrtana pot mogoča za nadaljne nadgradnje platforme Swether, ki predstavi prehod na konzorcijsko omrežje. Slednje vsebuje tudi vključitev atomske zamenjave, dodajanje novih modulov in standardizacijo SCT mehanizma.

Ključne besede:Blokovne verige, Tehnologija veriženja blokov, Pametne pogodbe, Ethereum, Varnost pametnih pogodb, Tuneliranje med pametnimi pogodbam

Podobna dela

Podobna dela v RUL:
Podobna dela v drugih slovenskih zbirkah:

Nazaj