Securitate inteligentă prin contract: o abordare agilă SDLC PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Securitate inteligentă prin contract: o abordare agilă SDLC 

Timp de citit: 10 minute

Blockchain este citat ca un registru descentralizat și inviolabil. Dar acest registru inviolabil este vulnerabil la hack-uri și exploatări. Descentralizarea, care este unul dintre cele mai puternice avantaje ale Blockchain, este unul dintre dezavantaje. 

Ei bine, dar ce zici de SDLC? 

Abordarea ciclului de viață software pe care urmează să o discutăm se bazează pe clasificarea vulnerabilităților de securitate din contractele inteligente în mai multe faze. 

În prima secțiune, am expus problemele de securitate din contractele inteligente. Și în secțiunea următoare, discutăm soluțiile sale împărțite în patru faze; Proiectarea securității, implementarea securității, testarea înainte de implementare și ultima, monitorizare și analiză. 

ANALIZA PROBLEMELOR DE SECURITATE ÎN CONTRACTE INTELIGENTE 

Contractele inteligente sunt vulnerabile la diferite hack-uri și exploatări. Aceste contracte, care sunt sinonime cu acordurile legale din lumea reală, rulează independent, pe baza termenilor blockchain-urilor native. 

Dar te-ai gândit că și acele blockchain-uri native pot fi, de asemenea, responsabile pentru potențialele amenințări la securitate în contractele inteligente? Mai jos, prezentăm câteva dintre caracteristicile Blockchain-urilor pentru aceeași:

Descentralizare: Este considerat unul dintre avantajele protocoalelor bazate pe blockchain. Dar atacatorii au conceput o modalitate de a transforma această caracteristică pozitivă într-una negativă. 

Actorii rău intenționați pot crea o identitate falsă pentru a dezvolta și implementa un contract inteligent. Uneori, devine greu să identifici un contract vulnerabil, deoarece numai adresa publică (sau) cheile publice sunt disponibile pe blockchain-urile publice. 

Cod sursă deschisă: Acest lucru vă poate surprinde, dar da, în general, majoritatea codurilor de contracte inteligente sunt oarecum open-source. 

Să spunem, în cazul mașinii virtuale Ethereum (EVM), codul său de octeți este întotdeauna public. Și unele decompilatoare Solidity vă pot ajuta să obțineți o adresă de contract inteligentă și codul Solidity. Expunerea codului sursă face ca această caracteristică să fie avantajoasă pentru atacatori. 

Platforme blockchain neevoluate: Pentru un dezvoltator, este o cerință principală să se familiarizeze cu platforma de dezvoltare. Există multe platforme blockchain subdezvoltate sau noi, astfel încât dezvoltatorii nu pot dezvolta o cunoaștere aprofundată a operațiunilor din blockchain. 

Această inconsecvență afectează contractele inteligente din cauza lipsei de sincronizare. Defectele platformei blockchain rămân neobservate datorită evoluției sale continue. 

Tranzacții necunoscute: În primul punct, am discutat despre identitatea anonimă; în mod similar, tranzacțiile pe blockchains nu sunt dezvăluite. Este imposibil de urmărit tranzacțiile, ceea ce duce la multe activități ilegale. Deoarece sunt implicate tranzacții financiare, orice problemă de securitate poate duce la pierderi financiare uriașe. 

SOLUȚII INTELIGENTE DE SECURITATE CONTRACTULUI

Acum, mergând mai departe în securitatea contractului inteligent, putem compara toți pașii necesari necesari pentru a asigura un contract inteligent cu evoluția acestuia. Ca și în dezvoltarea tradițională de software, avem tendința de a urma un ciclu de viață de dezvoltare; în mod similar, putem clasifica ciclul de viață al dezvoltării contractului. 

Ciclul de viață al dezvoltării unui contract inteligent poate fi împărțit în patru faze: proiectarea securității, implementarea securității, testarea înainte de implementare și monitorizarea și analiza.

Prezentare generală a temelor de securitate din perspectiva ciclului de viață al contractului inteligent
prezentare generală a temelor de securitate din perspectiva ciclului de viață al contractului inteligent

1. PROIECTARE DE SECURITATE 

Această primă fază încapsulează trei teme; principiul de proiectare, modelul de proiectare și modelarea de securitate (așa cum se arată în figura de mai sus). Accentul principal al acestor teme este pe proiectarea contractelor și modul în care pot fi evitate amenințările de securitate. 

PRINCIPIUL DE PROIECTARE

Principiile de proiectare sunt idei fundamentale pentru proiectarea de contracte inteligente sigure pe blockchain. Există cinci principii esențiale de proiectare pentru contracte: Pregătiți-vă pentru eșec, Lansați cu atenție, Păstrați contractele simple, Rămâneți la curent și Trebuie să cunoașteți proprietățile blockchain. 

Acum, vă puteți gândi, cum vor ajuta ele la crearea unui contract inteligent securizat? 

Să luăm oricare dintre principiile de mai sus, să spunem „Pregătiți-vă pentru eșec”, aceasta înseamnă că, în absența schemelor de corecție, contractul ar trebui să poată răspunde la erori. Și dacă are loc vreun atac, contractul ar trebui să poată fi întrerupt pentru a preveni orice pierdere ulterioară. 

MODEL DE DESIGN

În proiectarea software, modelele de design sunt soluțiile care pot fi reutilizate pentru a rezolva o problemă. 

Dacă luăm un exemplu de Ethereum, există șase modele de securitate; Verificare-efecte-interacțiune, Oprire de urgență, Mutex, Dobândă de viteză, Limită de rată și Limită de echilibru.  

Putem folosi aceste modele de securitate pentru a aborda problemele de securitate din blockchain, cum ar fi vulnerabilitatea de reintrare care poate fi gestionată de modelul Mutex. 

În același timp, modelul de oprire de urgență ne poate ajuta să reziliem execuția unui contract dacă acesta este afectat de o vulnerabilitate. 

MODELARE DE SECURITATE

Poate exista o diferență între codul dezvoltat și codul necesar pentru contracte, deoarece Solidity este folosit pentru a crea contracte; acest limbaj satisface caracterul complet al lui Turing, dar este predispus la erori. 

Figura de mai sus arată că această subfază acoperă două faze; proiectarea și implementarea securității. 

Modelarea securității este direct legată de logica afacerii; deoarece specificațiile sunt derivate din afacere, logica poate fi clasificată prin semantică fără erori. Acest lucru ajută mai târziu în timpul procesului de verificare formală efectuat pentru a atenua vulnerabilitățile. 

2. IMPLEMENTAREA SECURITATII

În această secțiune, vom acoperi două dintre cele trei teme; Securitate

Dezvoltare și șablon de securitate, așa cum am tratat deja modelarea de securitate în ultima fază.

DEZVOLTAREA SECURITATII

Această secțiune va vedea cum pot fi evitate vulnerabilitățile în timpul procesului de implementare a contractului. 

Pe platforma Ethereum, avem EIP-uri de securitate (Ethereum improvement proposals) – recomandări pentru combaterea problemelor de securitate pe Ethereum platformă. Astfel, aceste EIP-uri sunt demne de remarcat pentru implementarea în siguranță a contractelor inteligente. 

ȘABLAN DE SECURITATE

Șabloanele servesc drept origine pentru documentele noi. Șabloanele de contracte inteligente cu parametri operaționali conectează un acord legal la un cod executabil. 

În contextul securității smart contract, este posibil să extrageți șabloanele standard de contract cu parametrii de securitate actualizați, cum ar fi modelele de securitate și bibliotecile de securitate. Acest lucru va reduce posibilitatea apariției erorilor în codarea manuală. 

3. TESTARE ÎNAINTE DE IMPLICARE

Din nou, cerința acestei faze rezultă dintr-unul dintre avantajele contractelor inteligente – „Imuabilitatea”. 

Odată ce contractele inteligente sunt create, nu există nicio modalitate de a le modifica. Prin urmare, este obligatoriu să se efectueze suficiente teste pentru a asigura securitatea contractelor inteligente înainte de implementare.

Această fază acoperă trei parametri de securitate care trebuie urmați înainte de implementarea unui contract inteligent; Verificare formală riguroasă, instrumente de analiză a codului și audit de securitate. 

VERIFICARE FORMALA RIGOROSA

Verificarea formală este un proces bine definit care folosește raționamentul matematic și dovezile matematice pentru a verifica proprietățile dorite ale sistemului. 

Putem efectua verificare formală asupra contractelor inteligente, deoarece programul contractual este scurt și limitat în timp. Există mai multe moduri de a formaliza și verifica contractele inteligente în mod rigid; unele se bazează pe codul contractului, iar altele pe semantica mașinii virtuale Ethereum (EVM). 

INSTRUMENTE DE ANALIZA CODURILOR

Analiza codului se face fără executarea programelor. În acest scop, folosim câteva instrumente numite Instrumente de testare a securității aplicațiilor statice (SAST). Aceste instrumente ajută la descoperirea defectelor de securitate în codul sursă. 

Analiza efectuată de aceste instrumente poate include unul sau toți pașii următori:

(I) Creați o reprezentare intermediară (IR), cum ar fi un arbore de sintaxă abstractă (AST), pentru o analiză detaliată. 

(Ii) Completați IR cu suficiente informații obținute din controlul static sau analiza fluxului de date și tehnici de verificare formală; aceste tehnici includ: execuția simbolică, interpretarea abstractă și verificarea modelului simbolic. 

Dar care sunt instrumentele pe care le puteți folosi pentru a efectua analiza codului pe Smart Contract? 

Deși există multe instrumente pe care le puteți folosi pentru a efectua analiza de securitate, Oyente este cel mai popular. 

Ascultător poate fi folosit pentru a efectua analize de securitate pentru contractele inteligente EVM. Utilizează „execuția simbolică” pentru a descoperi patru erori comune; dependența de ordonare a tranzacțiilor, dependența de marcaj temporal, excepțiile gestionate greșit și reintrarea. 

Arhitectura din Oyente
Arhitectura din Oyente

Arhitectura Oyente arată că ia bytecode și prezintă starea globală Ethereum ca intrare. 

Una dintre reversurile Oyente este că detectează doar vulnerabilitățile de securitate. Tehnica de execuție simbolică folosită de Oyente nu explorează toate căile posibile. Astfel, apare nevoia altor instrumente precum Securitatea și auditurile manuale. 

AUDIT DE SECURITATE

Vom începe această secțiune de unde am lăsat-o pe ultima; auditurile manuale. 

Dar mai întâi, să înțelegem necesitatea unui audit de securitate; fie că este hack-ul Ronin Network sau hack-ul Poly Network, codul neauditat este cel mai vulnerabil la hack-uri și exploatări. 

Acestea duc la pierderi financiare uriașe. Nu doar auditarea proiectului Web3, de fapt, ci și auditarea acestuia de către profesioniști experți contează, deoarece depinde de capacitatea profesională a auditorilor de a efectua audituri de securitate. 

Din nou, unde să găsești acești experți profesioniști? Nu trebuie să mergeți nicăieri în căutarea auditorilor de încredere; clic https://t.me/quillhash pentru a lua legătura cu unul dintre ei! 

Un audit de contract inteligent ideal este o combinație de analiză manuală și automată a codului; așa cum am discutat în punctul anterior, deși mergi după analiza automată a codului din instrumente precum Oyente, există posibilitatea unor vulnerabilități neidentificate în contract. 

Astfel, pentru a depăși acest lucru, auditorii de securitate pot analiza manual fiecare linie de cod și le pot testa împotriva potențialelor vulnerabilități. 

4. MONITORIZARE ȘI ANALIZĂ

Vă amintiți principiul în continuă evoluție al Blockchain-ului despre care am discutat inițial? 

Această fază se bazează pe aceeași temă; odată ce contractul a fost implementat și rulat, unele vulnerabilități care au fost lăsate neobservate în etapele anterioare pot apărea din cauza noilor versiuni și a actualizărilor frecvente care ulterior fac contractele mai puțin eficiente. 

Putem efectua; recompensă de erori, monitorizare a securității și analiză post-hoc pentru a depăși aceste bariere. 

BUG BOUNTY

Deoarece luăm în considerare problemele de securitate post-implementare cu contracte, Bug Bounties poate fi de ajutor. Tehnica de verificare formală discutată anterior este o tehnică de analiză statică. Bug Bounty, pe de altă parte, este o tehnică de analiză dinamică. 

Conceptul din spatele Bug Bounty este simplu; hackerii descoperă erori și, în schimb, sunt plătiți cu niște recompense financiare. Pare o situație de câștig-câștig, nu? Dar nu este!

Captura aici este; că valoarea erorilor poate fi mai mare decât recompensele de pe piețele gri și este posibil ca hackerii să exploateze sau să vândă erorile pentru a obține un preț ridicat. 

Uneori, proprietarii de proiecte neagă plata recompensei dacă erorile nu sunt confirmate; hackerii se îngrijorează și de incertitudinea plăților după dezvăluirea erorilor. 

Pentru a depăși acest lucru, a fost propus un cadru de recompense pentru erori, cunoscut sub numele de „Hydra”. 

Hydra utilizează o tehnologie exploit gap numită N-of-N-version programming (NNVP) ca sistem de recompensă pentru erori pe blockchain. 

Cadrul Hydra cu capete
Cadrul Hydra cu capete

MONITORIZAREA SECURITATII

Putem folosi analiza codului static pentru a descoperi vulnerabilitățile de securitate, dar această metodă este folosită înainte de implementarea contractelor inteligente. 

Dar pentru a găsi erori și potențiale vulnerabilități în timp real, trebuie să monitorizăm și să analizăm datele tranzacțiilor pe blockchain. 

Aceste vulnerabilități descoperite prin analiza contractelor inteligente pot fi numite vulnerabilități de urmărire. Trei tipuri de contracte se află în centrul acestor vulnerabilități de urmărire; 

(I) Contracte lacome (contracte care rămân în viață și blochează Ether pe termen nelimitat).

(Ii) Contracte risipitoare (contracte care scurg fonduri neglijent către utilizatori arbitrari) și,

(Iii) Contracte suicidare (contracte pe care orice utilizator arbitrar le poate ucide). 

Chiar și o noțiune de obiecte Effectively Callback Free (ECF) a fost propusă pentru a identifica vulnerabilități prin monitorizarea obiectelor ECF. 

În context, a fost prezentat și un algoritm online; a ajutat la descoperirea unor vulnerabilități necunoscute. În aceeași propunere, s-a sugerat să se execute contracte inteligente pe Testnet înainte de a fi implementate pe Mainnet. 

Monitoring UI este o platformă de monitorizare Blockchain care utilizează React.js. Această platformă poate fi utilizată pentru a efectua tranzacții, pentru a verifica activele și pentru a se întreba despre starea Blockchain-ului. 

Nu ne putem baza pe această platformă pentru monitorizarea securizată a contractelor inteligente, dar deoarece majoritatea datelor privind tranzacțiile legate de contractele inteligente pot fi găsite, putem detecta exploatările în timp real urmărind transferul de active. 

ANALIZA POST HOC

Analiza post-hoc folosește datele privind tranzacțiile blockchain pentru a analiza, descoperi sau urmări potențialele amenințări ale blockchain-ului în termeni simpli. 

Dacă discutăm despre analiza Graph, aceasta a fost concepută ca o abordare pentru a colecta toate datele despre tranzacții (aceasta a inclus tranzacțiile interne din contractele inteligente). 

Cu ajutorul acestor date au pregătit trei grafice; 

(I) Un grafic al fluxului monetar (MFG)

(Ii) Graficul de creare a contractului (CCG) și,

(Iii) Graficul de invocare a contractului (CIG)

Pe baza analizei graficelor menționate mai sus, au fost propuse multe constatări noi, cum ar fi soluții la problemele de securitate dintre mai multe contracte care interacționează între ele. 

O prezentare generală a analizei grafice
O prezentare generală a analizei grafice

Schema Ponzi este una dintre schemele clasice de fraudă prin care pot fi achiziționate un număr mare de fonduri și pot afecta blockchain-ul nativ. Pentru a combate această fraudă, a fost propus un mecanism de clasificare pentru a detecta schemele Ponzi pe Ethereum. 

Acest mecanism utilizează data mining și machine learning pentru a detecta contractele Ponzi. Acest proces funcționează chiar dacă codul sursă al contractelor inteligente nu este disponibil. 

Cadrul de detectare inteligentă a schemei Ponzi
Cadrul de detectare inteligentă a schemei Ponzi

Cheie de luat cu cheie

Asta e, da, asta e deocamdată!

Dacă ați fost cu noi până acum, am aprecia. Fără a întinde mai mult, într-o notă de încheiere, am spune doar că ecosistemul de contracte inteligente este descentralizat și este greu de corectat pentru bug-uri. 

Am încercat să distrugem securitatea contractelor inteligente din perspectiva ciclului de viață al software-ului. 

Am discutat mai întâi despre caracteristicile cheie ale blockchain-ului probleme de securitate în contractele inteligente. Am clasificat soluțiile de securitate pentru contractele inteligente în patru faze. Sperăm să aducem mai multe postări pentru a vă menține în fața provocărilor din ecosistemul în creștere Web3. 

Ce părere aveți despre această abordare agilă SDLC pentru securitatea unui contract inteligent? Împărtășește-ți gândurile în comentariile de mai jos!

46 Vizualizări

Mesaj Securitate inteligentă prin contract: o abordare agilă SDLC  a apărut în primul rând pe Blog.quillhash.

Timestamp-ul:

Mai mult de la Quillhash