Az intelligens szerződésbiztonsági gyakorlatok fejlesztői elemzése

Az intelligens szerződésbiztonsági gyakorlatok fejlesztői elemzése 

Analysis of Smart Contract Security Practices by Developers  PlatoBlockchain Data Intelligence. Vertical Search. Ai.

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:

  1.  Jellemzők a rosszindulatú kódok kinyerése és a forráskód szemantikai egyeztetése;
  2.  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;
  3.  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:

  1. Arra kérik őket, hogy a lehető leghamarabb szállítsák le a projektet. Ezért a biztonság másodlagossá válik
  2. Néha a projektek más népszerű projekteket vetnek fel 
  3. 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:

  1. A kód sorai közötti olvasás és a támadó szemszögéből való gondolkodás. 
  2. 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. 
  3. 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

Időbélyeg:

Még több Quillhash