Analiza practicilor de securitate Smart Contract de către dezvoltatori

Analiza practicilor de securitate Smart Contract de către dezvoltatori 

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

Timp de citit: 5 minute

De când DeFi a început să crească vertiginos, a apărut un nou val de atacuri cu contracte inteligente care au dus la pierderea a sute de milioane de dolari. Din cifrele în creștere ale hackurilor reiese clar că securitatea este esențială pentru contractele inteligente. 

Majoritatea vulnerabilităților pot fi evitate în etapa de dezvoltare a contractelor dacă sunt respectate cele mai bune practici. Proiectele DeFi se grăbesc uneori să ajungă pe piață, făcând securitatea a doua prioritate. Există o diferență între dezvoltatorii în stadiu incipient și dezvoltatorii experimentați. Un dezvoltator experimentat cunoaște cele mai bune practici de securitate, instrumente și cunoștințe despre vulnerabilitățile comune și poate identifica problemele de securitate în stadiul incipient al dezvoltării. 

Contractele inteligente sunt reprezentarea digitală a acordurilor contractuale în cod. Execuția acestui cod este verificată și distribuită cu ajutorul nodurilor de rețea într-o rețea blockchain. 

În acest articol, vom acoperi factorul uman din spatele securității și confidențialității contractelor inteligente și vom analiza de ce dezvoltatorii sunt încă considerați „cea mai slabă verigă”.

Ce sunt vulnerabilitățile Smart Contract

Pe măsură ce contractele inteligente rulează pe rețele distribuite și fără permisiune, provoacă vulnerabilități din cauza eșecului în execuția contractului inteligent. Pe măsură ce fondurile sunt blocate în aceste contracte, aceasta devine o țintă foarte atractivă pentru hackeri, iar atacul cu succes poate determina hackerii să fugă cu fondurile direct din contracte. 

Unele vulnerabilități comune în contractele inteligente bazate pe EVM includ reintrare, depășirea întregului și controlul accesului nerestricționat. Pentru a exploata un contract cu reintrarea se face apel la contractul extern; apoi invocă un apel invers reintrat. Operațiunile de nivel scăzut precum „trimiterea”, „transferul” și „apelarea” sunt alarmante și acest lucru poate duce la vulnerabilități dacă excepțiile nu sunt tratate cu prudență. 

Inovațiile din spațiul Blockchain evoluează continuu, ceea ce are ca rezultat defecte de proiectare în contractele inteligente. Dezvoltatorii care construiesc aplicații descentralizate trebuie să facă față actualizărilor în platformele la care lucrează. Prin urmare, defectele obișnuite ale software-ului, cum ar fi controlul accesului, calculul incorect, condiția de cursă și multe altele, se pot intensifica pe platformele blockchain. 

Instrumente de securitate pentru contracte inteligente

Au fost adoptate diferite practici la diferite niveluri ale ciclului de viață al dezvoltării contractelor inteligente pentru a asigura și spori securitatea contractelor inteligente. 

Instrumente inteligente de testare a contractelor: Sunt dezvoltate mai multe instrumente pentru a analiza codul sursă al contractului și pentru a scana probleme de securitate cunoscute, cum ar fi reintrarea, depășirea, etc. Unele dintre cele mai utilizate instrumente sunt Oyente, Maian, MadMax și Vandal. 

Medii de dezvoltare și testare: Truffle este cadrul popular de dezvoltare pentru contractele inteligente. Dezvoltatorii pot scrie teste unitare și de integrare cu aceasta. Hardhat este un alt mediu de dezvoltare care ajută la rularea testelor, verificarea codului pentru greșeli și interacțiunea cu contractele inteligente; rulează pe o rețea de dezvoltare. Facilitează pluginuri pentru acoperirea codului, măsurarea gazului utilizat pe unitate de testare, verificarea automată a contractelor pe Etherscan, etc. Remix-ul este o altă suită potrivită pentru dezvoltatori; este utilizat pe scară largă datorită browserului IDE care acceptă testarea, dezvoltarea și implementarea contractelor inteligente. 

Audituri de cod: Auditarea contractelor inteligente ajută la atenuarea riscurilor asociate cu dAapp. Este de preferat să se efectueze audituri smart contract atunci când contractele sunt în faza de testare. niste instrumente utilizate pentru audit sunt Surya, Mitril, și MythX. Deși auditul automatizat nu este suficient pentru a reduce riscurile asociate cu contractele, se recomandă să faceți audituri manuale de la o terță parte de la o firmă de încredere, cum ar fi QuillAudits. În timpul unui audit, vulnerabilitățile sunt detectate în trei moduri principale:

  1.  Caracteristici de extragere din cod rău intenționat și potrivire semantică pe codul sursă;
  2.  Urmând o abordare matematică pentru a verifica caracterul complet al unui sistem, aici auditorul examinează fiecare test de intrare posibil cu toate cazurile de testare potențiale care s-ar putea întâmpla;
  3.  Crearea unui grafic de flux de control cu ​​unitățile logice ale contractului prin care auditorul parcurge toate căile de cod pentru a inspecta defectele de proiectare logică

Dezvoltare securizată de contracte inteligente

Dacă ne uităm îndeaproape la exploatările recente ale contractelor inteligente, un număr mai mare de vulnerabilități au apărut din cauza greșelilor dezvoltatorilor. Prin urmare, evitarea lacunelor în contractele inteligente înseamnă dezvoltarea în siguranță a contractelor inteligente, ținând cont de utilizatori în timpul ciclului de viață al dezvoltării. Mulți dezvoltatori din stadiul inițial nu consideră securitatea principalul factor și nu conștientizează resursele și instrumentele pentru securitatea unui contract inteligent. 

Informații despre securitatea contractelor inteligente

Majoritatea dezvoltatorilor nu păstrează securitatea ca prioritate maximă atunci când dezvoltă contracte inteligente, deoarece:

  1. Li se cere să livreze proiectul cât mai curând posibil. Prin urmare, securitatea devine secundară
  2. Uneori, proiectele bifurcă alte proiecte populare 
  3. Cineva din echipă efectuează auditul

În afară de asta, de obicei auzim dezvoltatori spunând că Solidity are unele limitări inerente pentru menținerea securității. Este diferit de limbajul mainstream, deoarece funcțiile nu sunt definite în mod explicit. Există, de asemenea, dificultăți în efectuarea manipulărilor adecvate de șir și matrice, deoarece Solidity nu are suport direct pentru limbaj/bibliotecă.

Pași pe care dezvoltatorii îi parcurg pentru securitatea Smart Contract.

Dezvoltatorii cărora le pasă de securitatea contractelor inteligente urmează diverse metode în etapa de dezvoltare pentru a atenua riscurile, cum ar fi:

  1. Citirea printre rândurile codului și gândirea din perspectiva atacatorului. 
  2. Desenarea unei organigrame pentru a analiza fluxul de informații și a privi punctele în care există posibilități de rezervă; prin urmare, a avea o reprezentare grafică poate rezolva multe probleme logice. 
  3. Utilizarea instrumentelor de securitate pentru contracte inteligente, dintre care unele le-am menționat mai devreme 

Unele limitări ale instrumentelor de securitate pentru contracte inteligente nu sunt banale, deoarece după implementarea contractului, trebuie să scrieți un constructor și apoi să testați contractul. În afară de aceasta, niciun instrument nu poate fi integrat în procesul de dezvoltare; trebuie să scrieți cod într-un IDE și apoi să utilizați un alt instrument pentru a-l testa. Dezvoltatorilor le va fi ușor să testeze codul pe compilator, mai degrabă decât să folosească orice alt instrument. 

Am văzut, de asemenea, că dezvoltatorii cu cunoștințe anterioare despre contractele inteligente și auditare tind să revizuiască mai bine codul și să aibă mai multă conștientizare cu privire la cele mai bune practici de securitate. De asemenea, ajută la evitarea vulnerabilităților cunoscute din contract. Mulți dezvoltatori noi subestimează securitatea și nu o consideră o prioritate, deoarece își desfășoară proiectele în cea mai mare parte pe rețele de testare în care erorile și lacunele din contracte nu au un impact real. 

Concluzie

Percepțiile și practicile de securitate ale dezvoltatorilor de Smart Contract se bazează în principal pe audituri externe pentru a asigura securitatea proiectelor lor. Deoarece evaluează securitatea manual și adesea lipsesc resurse și instrumente. Odată cu creșterea recentă a proiectelor DeFi și a atacurilor de securitate asociate, dezvoltatorii începători trebuie să beneficieze de sprijinul instrumentelor pentru a atenua riscurile în prealabil. 

14 Vizualizări

Timestamp-ul:

Mai mult de la Quillhash