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:
- Sisaldab pahatahtlikust koodist eraldamist ja lähtekoodi semantilist sobitamist;
- 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;
- 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:
- Neil palutakse projekt võimalikult kiiresti ellu viia. Seetõttu muutub turvalisus teisejärguliseks
- Mõnikord ühendavad projektid teisi populaarseid projekte
- 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:
- Koodi ridade vahelt lugemine ja ründaja vaatenurgast mõtlemine.
- Vooskeemi koostamine, et analüüsida infovoogu ja vaadelda kohti, kus on olemas varuvõimalused; seetõttu võib graafiline esitus lahendada paljusid loogilisi probleeme.
- 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
- SEO-põhise sisu ja PR-levi. Võimenduge juba täna.
- Platoblockchain. Web3 metaversiooni intelligentsus. Täiustatud teadmised. Juurdepääs siia.
- Allikas: https://blog.quillhash.com/2023/01/13/analysis-of-smart-contract-security-practices-by-developers/
- a
- MEIST
- juurdepääs
- vastu
- pärast
- vastu
- lepingud
- Materjal: BPA ja flataatide vaba plastik
- analüüs
- analüüsima
- ja
- Teine
- lahus
- rakendused
- lähenemine
- Array
- artikkel
- abistab
- seotud
- Ründamine
- Reageerib
- ahvatlev
- audit
- auditeerimine
- auditid
- Automatiseeritud
- automaatselt
- vältides
- teadlikkus
- sest
- muutub
- taga
- BEST
- parimaid tavasid
- Parem
- vahel
- blockchain
- Blockchain võrk
- Plokiahela ruum
- brauseri
- vead
- Ehitus
- helistama
- mis
- viima
- kes
- juhtudel
- põhjuste
- ettevaatlikult
- Joonis
- kontroll
- selge
- lähedalt
- kood
- ühine
- seisund
- dirigeerib
- Arvestama
- kaaluda
- leping
- lepingud
- kontrollida
- cover
- loomine
- kriitiline
- tegelema
- Detsentraliseeritud
- Detsentraliseeritud rakendused
- Defi
- defi projektid
- tarnima
- juurutada
- juurutamine
- Disain
- tuvastatud
- arenenud
- arendaja
- Arendajad
- arenev
- & Tarkvaraarendus
- erinevus
- erinev
- raskusi
- digitaalne
- otsene
- otse
- jagatud
- teeme
- dollarit
- ajal
- Varajane
- varajases staadiumis
- tekkinud
- tagama
- keskkond
- keskkondades
- jms
- eetriskanal
- areneb
- Uurib
- täitmine
- kogenud
- Ekspluateeri
- ärakasutamine
- väline
- hõlbustab
- ebaedu
- FUNKTSIOONID
- arvandmed
- Firma
- vigu
- voog
- järgima
- Järgneb
- Järel
- kahvel
- Raamistik
- Alates
- funktsioonid
- raha
- GAS
- graafik
- näksima
- häkkerid
- juhtuda
- võttes
- aitama
- aitab
- siin
- Tulemus
- HTML
- HTTPS
- inim-
- sajad
- sadu miljoneid
- identifitseerima
- mõju
- in
- sisaldama
- info
- omane
- sisend
- integreeritud
- integratsioon
- suhtlevad
- kutsub
- küsimustes
- IT
- hoidma
- pidamine
- teadmised
- teatud
- puudus
- keel
- suurem
- viima
- juhtivate
- taset
- elu
- piirangud
- liinid
- lukus
- Vaata
- lünki
- kaotus
- tehtud
- põhiline
- mainstream
- Tegemine
- käsiraamat
- käsitsi
- palju
- Turg
- sobitamine
- matemaatiline
- vahendid
- mõõtma
- mainitud
- meetodid
- võib
- miljonid
- meeles
- vigu
- Leevendada
- rohkem
- kõige
- Vajadus
- võrk
- võrgustikud
- Uus
- sõlmed
- algaja
- number
- toimunud
- Operations
- Muu
- teised
- perspektiiv
- faas
- Platvormid
- Platon
- Platoni andmete intelligentsus
- PlatoData
- pluginad
- võrra
- populaarne
- võimalused
- võimalik
- potentsiaal
- tavad
- eelistatav
- Eelnev
- prioriteet
- privaatsus
- protsess
- projekt
- projektid
- korralik
- Quillhash
- Rass
- reaalne
- hiljuti
- vähendama
- seotud
- Remix
- esindamine
- Vahendid
- Tulemused
- läbi
- Tõusma
- tõusev
- riskide
- jooks
- jooksmine
- skaneerida
- maitsestatud
- Teine
- kindlustama
- turvalisus
- mitu
- nutikas
- arukas leping
- Nutikas lepingu turvalisus
- Tarkvaralepingud
- tarkvara
- kindlus
- LAHENDAGE
- mõned
- allikas
- lähtekoodi
- Ruum
- Stage
- alustatud
- Veel
- Edukalt
- selline
- piisav
- komplekt
- toetama
- Toetab
- Võtma
- sihtmärk
- meeskond
- test
- Testimine
- testid
- .
- oma
- seetõttu
- Mõtlemine
- kolmanda osapoole
- kolm
- Läbi
- aeg
- et
- tööriist
- töövahendid
- ülemine
- usaldusväärne
- üksus
- üksused
- Uudised
- kasutama
- Kasutajad
- tavaliselt
- eri
- kinnitatud
- kontrollima
- Haavatavused
- Wave
- kuidas
- mis
- kuigi
- WHO
- laialdaselt
- will
- töö
- kirjutama
- kirjutada kood
- sa
- sephyrnet