Olvasási idő: 5 jegyzőkönyv
Mióta a DeFi az egekbe szökött, az intelligens szerződéses támadások új hulláma jelent meg, amely több száz millió dollár elvesztéséhez vezetett. A növekvő hackszámokból egyértelműen kitűnik, hogy a biztonság kritikus az intelligens szerződéseknél.
A sérülékenységek nagy része a szerződések fejlesztési szakaszában elhárítható, ha követik a legjobb gyakorlatokat. A DeFi projektek néha sietnek a piacra kerülni, így a biztonság a második prioritás. Különbség van a korai fázisú fejlesztők és a tapasztalt fejlesztők között. Egy tapasztalt fejlesztő ismeri a legjobb biztonsági gyakorlatokat, eszközöket és ismereteket a gyakori sebezhetőségekről, és már a fejlesztés korai szakaszában azonosítani tudja a biztonsági problémákat.
Az intelligens szerződések a szerződéses megállapodások kódban történő digitális megjelenítése. Ennek a kódnak a végrehajtását a blokklánc hálózatban lévő hálózati csomópontok segítségével ellenőrzik és terjesztik.
Ebben a cikkben kitérünk az intelligens szerződések biztonsága és magánélete mögött meghúzódó emberi tényezőre, és elemezzük, miért tekintik még mindig a fejlesztőket a „leggyengébb láncszemnek”.
Mik azok az intelligens szerződések sebezhetőségei
Mivel az intelligens szerződések elosztott és engedély nélküli hálózatokon futnak, az intelligens szerződések végrehajtásának hibája miatt sebezhetőséget okoz. Mivel ezekben a szerződésekben pénzeszközöket zárnak le, nagyon vonzó célponttá válik a hackerek számára, és a sikeres támadások arra késztethetik a hackereket, hogy közvetlenül a szerződésekből származó pénzeszközökkel meneküljenek el.
Az EVM-alapú intelligens szerződések néhány gyakori sérülékenysége közé tartozik újbóli belépés, egész számok túlcsordulása és korlátlan hozzáférés-vezérlés. Az újbóli belépővel kötött szerződés hasznosításához a külső szerződés felhívása történik; ezután újra belépő visszahívást indít. Az olyan alacsony szintű műveletek, mint a „küldés”, „átadás” és „hívás” riasztóak, és ez sebezhetőséghez vezethet, ha a kivételeket nem kezelik körültekintően.
A Blockchain tér innovációi folyamatosan fejlődnek, ami az intelligens szerződések tervezési hibáihoz vezet. A decentralizált alkalmazásokat fejlesztő fejlesztőknek meg kell küzdeniük a frissítésekkel azokon a platformokon, amelyeken dolgoznak. Ezért az olyan gyakori szoftverhibák, mint a hozzáférés-szabályozás, a helytelen számítások, a versenyfeltételek és sok más, felerősödhetnek a blokklánc platformokon.
Intelligens szerződésbiztonsági eszközök
Az intelligens szerződések fejlesztési életciklusának különböző szintjein különféle gyakorlatokat alkalmaztak az intelligens szerződések biztonságának biztosítása és javítása érdekében.
Intelligens szerződéstesztelő eszközök: Számos eszközt fejlesztettek ki a szerződés forráskódjának elemzésére és az ismert biztonsági problémák, például az újrabelépés, túlcsordulás stb. keresésére. A legszélesebb körben használt eszközök az Oyente, a Maian, a MadMax és a Vandal.
Fejlesztési és tesztelési környezetek: A Truffle az intelligens szerződések népszerű fejlesztési kerete. A fejlesztők ezzel egység- és integrációs teszteket írhatnak. A Hardhat egy másik fejlesztői környezet, amely segít a tesztek futtatásában, a kód hibáinak ellenőrzésében és az intelligens szerződésekkel való interakcióban; fejlesztői hálózaton fut. Lehetővé teszi a beépülő modulok használatát a kód lefedésére, az egységtesztenként használt gáz mennyiségének mérésére, a szerződések automatikus ellenőrzésére az Etherscan-en stb. A remix egy másik fejlesztői programcsomag; széles körben használják a böngésző IDE miatt, amely támogatja az intelligens szerződések tesztelését, fejlesztését és telepítését.
Kód auditok: Az intelligens szerződések auditálása segít csökkenteni a dAapp-al kapcsolatos kockázatokat. Intelligens szerződés-auditokat célszerű elvégezni, amikor a szerződések tesztelési fázisban vannak. Néhány auditáláshoz használt eszközök vagy Surya, Mythrill, és a MythX. Noha az automatizált auditálás nem elegendő a szerződésekkel kapcsolatos kockázatok csökkentésére, javasolt egy megbízható cégtől, például a QuillAuditstól, harmadik féltől származó manuális auditálást végezni. Az audit során a sebezhetőségeket három fő módon észlelik:
- Jellemzők a rosszindulatú kódok kinyerése és a forráskód szemantikai egyeztetése;
- A rendszer teljességének igazolására szolgáló matematikai megközelítést követve az auditor megvizsgál minden lehetséges bemeneti tesztet az összes lehetséges tesztesethez képest, amely előfordulhat;
- Vezérlési folyamatgráf létrehozása a szerződés logikai egységeivel, amelyen keresztül az auditor bejárja az összes kódútvonalat, hogy megvizsgálja a logikai tervezési hibákat
Biztonságos intelligens szerződésfejlesztés
Ha alaposan megvizsgáljuk a legutóbbi intelligens szerződések kihasználását, akkor a fejlesztők hibái miatt több sebezhetőség fordult elő. Ezért az intelligens szerződésekben lévő kiskapuk elkerülése az intelligens szerződések biztonságos fejlesztését jelenti, szem előtt tartva a felhasználókat a fejlesztési életciklus során. Sok korai fázisú fejlesztő nem tartja a biztonságot a fő tényezőnek, és nem ismeri az intelligens szerződések biztonságát szolgáló erőforrásokat és eszközöket.
Intelligens szerződésbiztonsági betekintések
A fejlesztők többsége nem tartja elsődlegesnek a biztonságot az intelligens szerződések fejlesztése során, mert:
- Arra kérik őket, hogy a lehető leghamarabb szállítsák le a projektet. Ezért a biztonság másodlagossá válik
- Néha a projektek más népszerű projekteket vetnek fel
- Valaki a csapatból elvégzi az auditot
Ettől eltekintve általában azt halljuk, hogy a fejlesztők azt mondják, hogy a Solidity bizonyos korlátokkal rendelkezik a biztonság fenntartásában. Ez eltér a mainstream nyelvtől, mivel a funkciók nincsenek kifejezetten definiálva. A megfelelő karakterlánc- és tömb-manipulációk végrehajtása is nehézségekbe ütközik, mivel a Solidity nem rendelkezik közvetlen nyelvi/könyvtári támogatással.
A fejlesztők lépései az intelligens szerződésbiztonság érdekében.
Az intelligens szerződések biztonságával foglalkozó fejlesztők a fejlesztési szakaszban különféle módszereket követnek a kockázatok mérséklésére, például:
- A kód sorai közötti olvasás és a támadó szemszögéből való gondolkodás.
- Folyamatábra rajzolása az információáramlás elemzéséhez, és megvizsgálja azokat a pontokat, ahol léteznek tartaléklehetőségek; ezért a grafikus ábrázolás sok logikai kérdést megoldhat.
- Intelligens szerződésbiztonsági eszközök használata, amelyek közül néhányat korábban említettünk
Az intelligens szerződéses biztonsági eszközök bizonyos korlátai nem triviálisak, mivel a szerződés telepítése után meg kell írni a konstruktőrt, majd tesztelni kell a szerződést. Ezen kívül semmilyen eszköz nem integrálható a fejlesztési folyamatba; kódot kell írnia egy IDE-be, majd egy másik eszközzel tesztelni kell. A fejlesztők könnyen tesztelhetik a kódot a fordítón, nem pedig bármilyen más eszközt.
Azt is láttuk, hogy az intelligens szerződésekkel és ellenőrzéssel kapcsolatos előzetes ismeretekkel rendelkező fejlesztők általában jobban áttekintik a kódot, és jobban ismerik a legjobb biztonsági gyakorlatokat. Segít elkerülni a szerződés ismert sebezhetőségeit is. Sok új fejlesztő alábecsüli a biztonságot, és nem tekinti prioritásnak, mert projektjeit többnyire teszthálózatokon telepíti, ahol a hibák és a szerződésekben lévő kiskapuk nincs valódi hatással.
Következtetés
A Smart Contract fejlesztőinek biztonsági felfogása és gyakorlata leginkább a külső auditokon alapul, hogy biztosítsák projektjeik biztonságát. Mivel manuálisan értékelik a biztonságot, és gyakran nincsenek erőforrások és eszközök. A DeFi projektek és a kapcsolódó biztonsági támadások közelmúltbeli növekedése miatt a kezdő fejlesztőknek ki kell használniuk az eszközök támogatását a kockázatok csökkentése érdekében.
14 Nézetek
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- Platoblockchain. Web3 metaverzum intelligencia. Felerősített tudás. Hozzáférés itt.
- Forrás: https://blog.quillhash.com/2023/01/13/analysis-of-smart-contract-security-practices-by-developers/
- a
- Rólunk
- hozzáférés
- fogadott
- Után
- ellen
- megállapodások
- Minden termék
- elemzés
- elemez
- és a
- Másik
- külön
- alkalmazások
- megközelítés
- Sor
- cikkben
- segítséget nyújt
- társult
- Támadó
- Támadások
- vonzó
- könyvvizsgálat
- könyvvizsgálat
- ellenőrzések
- Automatizált
- automatikusan
- elkerülve
- tudatosság
- mert
- válik
- mögött
- BEST
- legjobb gyakorlatok
- Jobb
- között
- blockchain
- Blockchain hálózat
- Blockchain tér
- böngésző
- bogarak
- Épület
- hívás
- ami
- visz
- szállítás
- esetek
- okai
- óvatosan
- Táblázatos
- ellenőrzése
- világos
- szorosan
- kód
- Közös
- feltétel
- magatartások
- Fontolja
- figyelembe vett
- szerződés
- szerződések
- ellenőrzés
- terjed
- létrehozása
- kritikai
- üzlet
- decentralizált
- Decentralizált alkalmazások
- Defi
- defi projektek
- szállít
- telepíteni
- bevezetéséhez
- Design
- észlelt
- fejlett
- Fejlesztő
- fejlesztők
- fejlesztése
- Fejlesztés
- különbség
- különböző
- nehézségek
- digitális
- közvetlen
- közvetlenül
- megosztott
- Ennek
- dollár
- alatt
- Korai
- korai fázis
- alakult
- biztosítására
- Környezet
- környezetek
- stb.
- Etherscan
- fejlődik
- megvizsgálja
- végrehajtás
- tapasztalt
- Exploit
- hasznosítja
- külső
- megkönnyíti
- Kudarc
- Jellemzők
- ábrák
- Cég
- hibái
- áramlási
- következik
- követ
- következő
- villa
- Keretrendszer
- ból ből
- funkciók
- alapok
- GAS
- grafikon
- csapkod
- hackerek
- történik
- tekintettel
- segít
- segít
- itt
- Találat
- HTML
- HTTPS
- emberi
- Több száz
- több száz millió
- azonosítani
- Hatás
- in
- tartalmaz
- információ
- velejáró
- bemenet
- integrált
- integráció
- kölcsönható
- behívja
- kérdések
- IT
- Tart
- tartás
- tudás
- ismert
- hiány
- nyelv
- nagyobb
- vezet
- vezető
- szintek
- élet
- korlátozások
- vonalak
- zárt
- néz
- kiskapuk
- le
- készült
- Fő
- főáram
- Gyártás
- kézikönyv
- kézzel
- sok
- piacára
- egyező
- matematikai
- eszközök
- intézkedés
- említett
- mód
- esetleg
- Több millió
- bánja
- hibákat
- Enyhít
- több
- a legtöbb
- Szükség
- hálózat
- hálózatok
- Új
- csomópontok
- novícius
- szám
- történt
- Művelet
- Más
- Egyéb
- perspektíva
- fázis
- Platformok
- Plató
- Platón adatintelligencia
- PlatoData
- Plugins
- pont
- Népszerű
- lehetőségek
- lehetséges
- potenciális
- gyakorlat
- előnyös
- Előzetes
- prioritás
- magánélet
- folyamat
- program
- projektek
- megfelelő
- Quillhash
- Futam
- igazi
- új
- csökkenteni
- összefüggő
- Remix
- képviselet
- Tudástár
- Eredmények
- Kritika
- Emelkedik
- felkelő
- kockázatok
- futás
- futás
- beolvasás
- fűszerezett
- Második
- biztonság
- biztonság
- számos
- okos
- okos szerződés
- Intelligens szerződésbiztonság
- Intelligens szerződések
- szoftver
- szilárdság
- SOLVE
- néhány
- forrás
- forráskód
- Hely
- Színpad
- kezdődött
- Még mindig
- sikeresen
- ilyen
- elegendő
- kíséret
- támogatás
- Támogatja
- Vesz
- cél
- csapat
- teszt
- Tesztelés
- tesztek
- A
- azok
- ebből adódóan
- Gondolkodás
- harmadik fél
- három
- Keresztül
- idő
- nak nek
- szerszám
- szerszámok
- felső
- megbízható
- egység
- egységek
- Frissítés
- használ
- Felhasználók
- rendszerint
- különféle
- ellenőrzött
- ellenőrzése
- sérülékenységek
- hullám
- módon
- ami
- míg
- WHO
- széles körben
- lesz
- dolgozó
- ír
- kódot írni
- te
- zephyrnet