Arukate lepingute turvalisuse tavade analüüs arendajate poolt

Arukate lepingute turvalisuse tavade analüüs arendajate poolt 

Arendajate PlatoBlockchain Data Intelligence nutikate lepingute turvatavade analüüs. Vertikaalne otsing. Ai.

Lugemise aeg: 5 protokoll

Pärast seda, kui DeFi hakkas hüppeliselt tõusma, on tekkinud uus nutikate lepingute rünnakute laine, mis on põhjustanud sadade miljonite dollarite kaotuse. Kasvavate häkkimisnumbrite põhjal on selge, et turvalisus on nutikate lepingute jaoks ülioluline. 

Enamikku haavatavusi saab lepingute väljatöötamise etapis vältida, kui järgida parimaid tavasid. DeFi projektid kiirustavad mõnikord turule jõudma, muutes turvalisuse teiseks prioriteediks. Varasel etapil arendajatel ja kogenud arendajatel on erinevus. Kogenud arendaja teab parimaid turbetavasid, tööriistu ja teadmisi levinud haavatavuste kohta ning suudab tuvastada turvaprobleemid arenduse varases staadiumis. 

Nutikad lepingud on lepinguliste kokkulepete digitaalne esitus koodis. Selle koodi täitmist kontrollitakse ja levitatakse plokiahela võrgu võrgusõlmede abil. 

Selles artiklis käsitleme nutikate lepingute turvalisuse ja privaatsuse taga olevat inimtegurit ning analüüsime, miks arendajaid peetakse endiselt "nõrgeimaks lüliks".

Mis on nutikate lepingute haavatavused

Kuna nutikad lepingud töötavad hajutatud ja lubadeta võrkudes, põhjustab see nutika lepingu täitmise tõrgete tõttu turvaauke. Kuna rahalised vahendid on nendesse lepingutesse lukustatud, muutub see häkkerite jaoks väga atraktiivseks sihtmärgiks ja edukas rünnak võib viia häkkeriteni otse lepingutest saadud vahenditega. 

Mõned levinumad EVM-põhiste nutikate lepingute haavatavused hõlmavad taassisenemine, täisarvude ületäitumine ja piiramatu juurdepääsu kontroll. Taassisenemisega sõlmitud lepingu kasutamiseks helistatakse välislepingule; seejärel kutsub see esile uuesti siseneja tagasihelistamise. Madala taseme toimingud, nagu "saatmine", "edastus" ja "helista", on murettekitavad ning see võib põhjustada turvaauke, kui erandeid ei käsitleta ettevaatlikult. 

Blockchaini ruumi uuendused arenevad pidevalt, mille tulemuseks on arukate lepingute kujundusvigu. Detsentraliseeritud rakendusi loovad arendajad peavad tegelema nende platvormide värskendustega, millega nad töötavad. Seetõttu võivad plokiahela platvormidel süveneda levinud tarkvaravead, nagu juurdepääsukontroll, vale arvutus, võistlusseisund ja mitmed muud. 

Nutikad lepingute turvatööriistad

Nutikate lepingute arendamise elutsükli erinevatel tasanditel on kasutusele võetud erinevaid praktikaid, et tagada ja suurendada nutikate lepingute turvalisust. 

Nutikad lepingute testimise tööriistad: Lepingu lähtekoodi analüüsimiseks ja teadaolevate turvaprobleemide (nt uuesti sisenemine, ületäitumine jne) otsimiseks on välja töötatud mitmeid tööriistu. Mõned kõige laialdasemalt kasutatavad tööriistad on Oyente, Maian, MadMax ja Vandal. 

Arendus- ja testimiskeskkonnad: Trühvel on populaarne nutikate lepingute arendusraamistik. Arendajad saavad sellega kirjutada üksuse- ja integratsiooniteste. Hardhat on veel üks arenduskeskkond, mis aitab käivitada teste, kontrollida koodi vigade suhtes ja suhelda nutikate lepingutega; see töötab arendusvõrgus. See hõlbustab pistikprogrammide kasutamist koodi katmiseks, ühikutesti kohta kasutatava gaasi mõõtmiseks, Etherscani lepingute automaatseks kontrollimiseks jne. Remix on veel üks arendajatele mõeldud komplekt; seda kasutatakse laialdaselt tänu brauseri IDE-le, mis toetab nutikate lepingute testimist, arendamist ja juurutamist. 

Koodi auditid: Nutikate lepingute auditeerimine aitab maandada dAappiga seotud riske. Nutikate lepingute auditeid on eelistatav teha siis, kui lepingud on testimise faasis. Mõned auditeerimiseks kasutatavad tööriistad on Surya, Müütriilja MythX. Kuigi automaatne auditeerimine ei ole lepingutega seotud riskide vähendamiseks piisav, soovitatakse teha kolmanda osapoole käsitsi auditeid usaldusväärselt ettevõttelt, näiteks QuillAuditsilt. Auditi käigus tuvastatakse haavatavused kolmel peamisel viisil:

  1.  Sisaldab pahatahtlikust koodist eraldamist ja lähtekoodi semantilist sobitamist;
  2.  Järgides matemaatilist lähenemist süsteemi täielikkuse kontrollimiseks, uurib audiitor siin kõiki võimalikke sisendteste kõigi võimalike katsejuhtumite suhtes, mis võivad juhtuda;
  3.  Lepingu loogikaüksustega juhtimisvoo graafiku loomine, mille kaudu audiitor läbib kõik kooditeed, et kontrollida loogilise disaini vigu

Turvaline nutikas lepingute arendamine

Kui vaatame tähelepanelikult hiljutisi nutikate lepingute ärakasutamist, ilmnes arendajate vigade tõttu suurem hulk turvaauke. Seetõttu tähendab nutikate lepingute lünkade vältimine nutikate lepingute turvalist arendamist, pidades kasutajaid meeles kogu arenduse elutsükli jooksul. Paljud varajases staadiumis arendajad ei pea turvalisust peamiseks teguriks ning neil puudub teadlikkus nutikate lepingute turvalisuse ressurssidest ja tööriistadest. 

Nutikate lepingute turvalisuse ülevaade

Enamik arendajaid ei pea nutikate lepingute väljatöötamisel turvalisust esmatähtsaks, kuna:

  1. Neil palutakse projekt võimalikult kiiresti ellu viia. Seetõttu muutub turvalisus teisejärguliseks
  2. Mõnikord ühendavad projektid teisi populaarseid projekte 
  3. Keegi meeskonnast viib läbi auditi

Peale selle kuuleme tavaliselt arendajaid ütlemas, et Solidityl on turvalisuse säilitamisel teatud piirangud. See erineb tavakeelest, kuna funktsioone ei ole selgelt määratletud. Samuti on raskusi õigete stringide ja massiiviga manipuleerimisega, kuna Solidityl puudub otsene keele/teegi tugi.

Sammud, mida arendajad võtavad nutika lepingu turvalisuse tagamiseks.

Nutikate lepingute turvalisusest hoolivad arendajad järgivad arendusetapis erinevaid meetodeid riskide maandamiseks, näiteks:

  1. Koodi ridade vahelt lugemine ja ründaja vaatenurgast mõtlemine. 
  2. Vooskeemi koostamine, et analüüsida infovoogu ja vaadelda kohti, kus on olemas varuvõimalused; seetõttu võib graafiline esitus lahendada paljusid loogilisi probleeme. 
  3. Nutikate lepingute turvatööriistade kasutamine, millest mõnda mainisime varem 

Mõned nutikate lepingute turvatööriistade piirangud ei ole triviaalsed, kuna pärast lepingu juurutamist peate kirjutama konstruktori ja seejärel lepingut testima. Peale selle ei saa arendusprotsessi integreerida ühtegi tööriista; peate kirjutama koodi IDE-sse ja seejärel kasutama selle testimiseks mõnda muud tööriista. Arendajatel on lihtne testida koodi kompilaatoris, mitte kasutada mõnda muud tööriista. 

Samuti oleme näinud, et nutikate lepingute ja auditeerimisega seotud eelteadmistega arendajad kipuvad koodi paremini üle vaatama ja on teadlikumad parimatest turvatavadest. Samuti aitab see vältida teadaolevaid haavatavusi lepingus. Paljud uued arendajad alahindavad turvalisust ega pea seda prioriteediks, sest enamasti juurutavad nad oma projekte testvõrkudesse, kus lepingute vead ja lüngad ei avalda tegelikku mõju. 

Järeldus

Smart Contracti arendajate arusaamad turvalisusest ja -tavad tuginevad oma projektide turvalisuse tagamiseks enamasti välistele audititele. Kuna nad hindavad turvalisust käsitsi ja neil pole sageli ressursse ja tööriistu. Seoses DeFi projektide ja nendega seotud turvarünnete arvu hiljutise kasvuga peavad algajad arendajad kasutama tööriistu, et riske eelnevalt maandada. 

14 views

Ajatempel:

Veel alates Quillhash