Älykäs sopimussuojaus: ketterä SDLC-lähestymistapa PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Älykäs sopimusturva: ketterä SDLC-lähestymistapa 

Lukeaika: 10 pöytäkirja

Blockchain on hajautettu ja suojattu kirjanpito. Mutta tämä väärentämisen estävä pääkirja on alttiina hakkeroille ja hyväksikäytölle. Hajauttaminen, joka on yksi Blockchainin vahvimmista eduista, on yksi haitoista. 

No, se on hyvä, mutta entä SDLC? 

Ohjelmiston elinkaarilähestymistapa, josta keskustelemme, perustuu älykkäiden sopimusten tietoturva-aukkojen luokitteluun useisiin vaiheisiin. 

Ensimmäisessä osiossa olemme selvittäneet älykkäiden sopimusten turvallisuuskysymykset. Ja seuraavassa osiossa käsittelemme sen ratkaisuja jaettuna neljään vaiheeseen; Tietoturvasuunnittelu, suojauksen toteutus, testaus ennen käyttöönottoa ja viimeinen, seuranta ja analyysi. 

ÄLYKÄSTEN SOPIMUSTEN TURVALLISUUSKYSYMYKSEN ANALYYSI 

Älykkäät sopimukset ovat alttiina erilaisille hakkeroille ja hyväksikäytölle. Nämä sopimukset, jotka ovat synonyymejä reaalimaailman laillisten sopimusten kanssa, toimivat itsenäisesti alkuperäisten lohkoketjujen ehtojen perusteella. 

Mutta oletko ajatellut, että jopa nuo alkuperäiset lohkoketjut voivat olla vastuussa älykkäiden sopimusten mahdollisista turvallisuusuhkista? Alla esittelemme joitain Blockchainsin ominaisuuksia samalle:

hajauttaminen: Sitä pidetään yhtenä blockchain-pohjaisten protokollien eduista. Mutta hyökkääjät ovat keksineet tavan muuttaa tämä positiivinen piirre negatiiviseksi. 

Haitalliset toimijat voivat luoda väärennetyn identiteetin kehittääkseen ja ottaakseen käyttöön älykkään sopimuksen. Joskus haavoittuvan sopimuksen tunnistaminen on vaikeaa, koska vain julkiset osoitteet (tai julkiset avaimet) ovat saatavilla julkisissa lohkoketjuissa. 

Avoimen lähdekoodin koodi: Tämä saattaa yllättää sinut, mutta kyllä, yleensä useimmat älykkäät sopimuskoodit ovat jossain määrin avoimen lähdekoodin. 

Sanotaan, että Ethereum Virtual Machinen (EVM) tapauksessa sen tavukoodi on aina julkinen. Jotkut Solidity-kääntäjät voivat auttaa sinua saamaan älykkään sopimusosoitteen ja Solidity-koodin. Lähdekoodin paljastaminen tekee tästä ominaisuudesta edun hyökkääjille. 

Kehittymättömät blockchain-alustat: Kehittäjälle on ensisijainen vaatimus perehtyä kehitysalustaan. On monia alikehittyneitä tai uusia lohkoketjualustoja, joten kehittäjät eivät voi kehittää syvällistä tietoa lohkoketjun toiminnoista. 

Tämä epäjohdonmukaisuus vaikuttaa älykkäisiin sopimuksiin synkronoinnin puutteen vuoksi. Blockchain-alustan puutteet jäävät huomaamatta sen jatkuvan kehityksen vuoksi. 

Tuntemattomat tapahtumat: Ensimmäisessä kohdassa olemme keskustelleet nimettömästä henkilöllisyydestä; Samoin lohkoketjujen liiketoimia ei julkisteta. Liiketoimia on mahdoton jäljittää, mikä johtaa moniin laittomiin toimiin. Koska kyseessä ovat rahoitustapahtumat, kaikki turvallisuusongelmat voivat johtaa valtaviin taloudellisiin menetyksiin. 

ÄLYKÄSTÄ SOPIMUSVARMUUSRATKAISUT

Nyt edistyessämme älykkäiden sopimusten suojauksessa, voimme verrata kaikkia älykkään sopimuksen turvaamiseen tarvittavia vaiheita sen kehitykseen. Kuten perinteisessä ohjelmistokehityksessä, meillä on tapana seurata kehityksen elinkaarta; Samoin voimme luokitella sopimuskehityksen elinkaaren. 

Älykkäiden sopimusten kehitystyön elinkaari voidaan jakaa neljään vaiheeseen: tietoturvasuunnittelu, tietoturvan toteutus, testaus ennen käyttöönottoa sekä seuranta ja analysointi.

katsaus tietoturvateemoihin älykkäiden sopimusten elinkaaren näkökulmasta
yleiskatsaus turvallisuusteemoihin älykkäiden sopimusten elinkaaren näkökulmasta

1. TURVALLISUUSSUUNNIttelu 

Tämä ensimmäinen vaihe kiteyttää kolme teemaa; suunnitteluperiaate, suunnittelumalli ja suojausmallinnus (kuten yllä olevassa kuvassa näkyy). Näiden teemojen pääpaino on sopimussuunnittelussa ja turvallisuusuhkien ehkäisemisessä. 

SUUNNITTELUPERIAATE

Suunnitteluperiaatteet ovat perusideoita turvallisten älykkäiden sopimusten suunnittelussa lohkoketjussa. Sopimusten suunnittelussa on viisi olennaista periaatetta: Valmistaudu epäonnistumiseen, Ota käyttöön huolellisesti, Pidä sopimukset yksinkertaisina, Pysy ajan tasalla ja Pakko tietää lohkoketjun ominaisuuksista. 

Nyt saatat ajatella, kuinka ne auttavat luomaan turvallisen älykkään sopimuksen? 

Otetaan mikä tahansa periaatteista ylhäältä, esimerkiksi "Valmistaudu epäonnistumiseen", tämä tarkoittaa, että korjausjärjestelmien puuttuessa sopimuksen pitäisi pystyä reagoimaan virheisiin. Ja jos hyökkäys tapahtuu, sopimuksen pitäisi voida keskeyttää lisätappioiden estämiseksi. 

SUUNNITTELUMALLI

Ohjelmistosuunnittelussa suunnittelumallit ovat ratkaisuja, joita voidaan käyttää uudelleen ongelman ratkaisemiseksi. 

Jos otamme esimerkin Ethereumista, suojausmalleja on kuusi; Tarkista vaikutukset-vuorovaikutus, hätäpysäytys, Mutex, nopeustasaus, nopeusrajoitus ja tasapainoraja.  

Voimme käyttää näitä suojausmalleja lohkoketjun tietoturvaongelmien ratkaisemiseen, kuten Mutex-kuvion avulla voidaan käsitellä palautushaavoittuvuutta. 

Samanaikaisesti hätäpysäytysmalli voi auttaa meitä lopettamaan sopimuksen täytäntöönpanon, jos siihen vaikuttaa haavoittuvuus. 

TURVALLISUUSMALLINTO

Kehitetyn koodin ja sopimusten vaaditun koodin välillä voi olla eroja, koska Soliditya käytetään sopimusten luomiseen; tämä kieli tyydyttää Turingin täydellisyyden, mutta se on altis virheille. 

Yllä oleva kuva osoittaa, että tämä osavaihe kattaa kaksi vaihetta; turvallisuussuunnittelu ja toteutus. 

Turvallisuusmallinnus liittyy suoraan liiketoimintalogiikkaan; Koska spesifikaatiot johdetaan liiketoiminnasta, logiikka voidaan luokitella virheettömän semantiikan avulla. Tämä auttaa myöhemmin muodollisen varmennusprosessin aikana haavoittuvuuksien vähentämiseksi. 

2. TURVALLISUUDEN TOTEUTUS

Tässä osiossa käsittelemme kahta kolmesta teemasta; turvallisuus

Kehitys- ja turvallisuusmalli, kuten olemme jo käsitelleet tietoturvamallinnuksen viimeisessä vaiheessa.

TURVALLISUUDEN KEHITTÄMINEN

Tässä osiossa tarkastellaan, kuinka haavoittuvuudet voidaan välttää sopimuksen täytäntöönpanoprosessin aikana. 

Ethereum-alustalla meillä on tietoturva-EIP:t (Ethereumin parannusehdotukset) – suosituksia turvallisuusongelmien torjumiseksi Ethereum alusta. Siksi nämä EIP:t ovat huomionarvoisia älykkäiden sopimusten turvallisen toteuttamisen kannalta. 

TURVALLISUUSMALLI

Mallit toimivat uusien asiakirjojen alkuperänä. Älykkäät sopimusmallit toimintaparametreineen yhdistävät laillisen sopimuksen suoritettavaan koodiin. 

Älykkään sopimusturvallisuuden yhteydessä on mahdollista purkaa vakiosopimusmallit päivitetyillä suojausparametreilla, kuten suojauskuvioilla ja tietoturvakirjastoilla. Tämä vähentää virheiden mahdollisuutta manuaalisessa koodauksessa. 

3. TESTAUS ENNEN KÄYTTÖÖNOTTOA

Jälleen tämän vaiheen vaatimus johtuu yhdestä älykkäiden sopimusten eduista - "muuttumattomuudesta". 

Kun älykkäät sopimukset on luotu, niitä ei voi muuttaa. Siksi on pakollista suorittaa riittävät testit älykkäiden sopimusten turvallisuuden varmistamiseksi ennen käyttöönottoa.

Tämä vaihe kattaa kolme suojausparametria, joita on noudatettava ennen älykkään sopimuksen käyttöönottoa; Tiukka muodollinen todentaminen, koodianalyysityökalut ja suojaustarkastus. 

TÄRKEÄ MUODOLLISUUS TARKASTUS

Muodollinen todentaminen on hyvin määritelty prosessi, joka hyödyntää matemaattista päättelyä ja matemaattisia todisteita järjestelmän haluttujen ominaisuuksien tarkistamiseksi. 

Voimme tehdä älykkäille sopimuksille muodollisen tarkastuksen, koska sopimusohjelma on lyhyt ja määräaikainen. Älykkäät sopimukset voidaan virallistaa ja tarkistaa tiukasti useilla tavoilla; Jotkut perustuvat sopimuskoodiin ja toiset Ethereum-virtuaalikoneen (EVM) semantiikkaan. 

KOODIN ANALYYSITYÖKALUT

Koodin analyysi tehdään suorittamatta ohjelmia. Tätä tarkoitusta varten käytämme joitain työkaluja, joita kutsutaan Static Application Security Testing (SAST) -työkaluiksi. Nämä työkalut auttavat löytämään lähdekoodin tietoturvapuutteita. 

Näillä työkaluilla suoritettava analyysi voi sisältää yhden tai kaikki seuraavista vaiheista:

(I) Luo väliesitys (IR), kuten abstrakti syntaksipuu (AST), yksityiskohtaista analyysiä varten. 

(Ii) Täydennä IR riittävällä tiedolla, joka on saatu staattisen ohjauksen tai päivämäärävirta-analyysistä ja muodollisista varmennustekniikoista; Näitä tekniikoita ovat: symbolinen suoritus, abstrakti tulkinta ja symbolisen mallin tarkistus. 

Mutta mitä työkaluja voidaan käyttää Smart Contractin koodianalyysiin? 

Vaikka tietoturva-analyysin suorittamiseen voidaan käyttää monia työkaluja, Oyente on suosituin. 

Kuuntelija voidaan käyttää EVM-älysopimusten tietoturva-analyysien tekemiseen. Se käyttää "symbolista suoritusta" löytääkseen neljä yleistä vikaa; tapahtumajärjestysriippuvuus, aikaleimariippuvuus, väärin käsitellyt poikkeukset ja uudelleentulo. 

Oyenten arkkitehtuuri
Oyenten arkkitehtuuri

Oyenten arkkitehtuuri osoittaa, että se ottaa tavukoodin ja esittää syötteenä Ethereumin globaalin tilan. 

Yksi Oyenten kääntöpuolista on, että se havaitsee vain tietoturva-aukkoja. Oyenten käyttämä symbolinen suoritustekniikka ei tutki kaikkia mahdollisia polkuja. Näin ollen syntyy tarve muita työkaluja, kuten turvallisuutta ja manuaalisia tarkastuksia varten. 

TURVALLISUUSTARKASTUS

Aloitamme tämän osion siitä, mihin jätimme edellisen; manuaaliset auditoinnit. 

Mutta ensin ymmärretään tietoturvatarkastuksen tarve; Olipa kyseessä Ronin Networkin hakkerointi tai Poly Networkin hakkerointi, auditoimaton koodi on alttiin hakkeroille ja hyväksikäytölle. 

Ne johtavat suuriin taloudellisiin menetyksiin. Ei vain Web3-projektisi auditoiminen, vaan myös asiantuntevien ammattilaisten auditoiminen, koska se riippuu tarkastajien ammatillisesta kyvystä suorittaa tietoturvatarkastuksia. 

Jälleen, mistä löytää ammattitaitoisia asiantuntijoita? Sinun ei tarvitse mennä minnekään etsimään luotettavia tilintarkastajia; klikkaus https://t.me/quillhash ottaa yhteyttä johonkin heistä! 

Ihanteellinen älykäs sopimustarkastus on manuaalisen ja automaattisen koodianalyysin yhdistelmä; Kuten edellisessä kohdassa totesimme, vaikka Oyenten kaltaisten työkalujen automaattisen koodianalyysin jälkeenkin, sopimuksessa on mahdollisuus tunnistamattomiin haavoittuvuuksiin. 

Tämän vuoksi tietoturva-auditorit voivat analysoida manuaalisesti jokaisen koodirivin ja testata niitä mahdollisten haavoittuvuuksien varalta. 

4. SEURANTA JA ANALYYSI

Muistatko jatkuvasti kehittyvän Blockchain-periaatteen, josta keskustelimme alun perin? 

Tämä vaihe perustuu samaan teemaan; Kun sopimus on otettu käyttöön ja ajettu, joitain aiemmissa vaiheissa huomaamatta jääneitä haavoittuvuuksia saattaa ilmetä uusien julkaisujen ja toistuvien päivitysten vuoksi, jotka myöhemmin tekevät sopimuksista vähemmän tehokkaita. 

Voimme suorittaa; bug bounty, turvallisuusseuranta ja post hoc -analyysi näiden esteiden voittamiseksi. 

BUG BOUNTY

Kun harkitsemme sopimuksiin liittyviä käyttöönoton jälkeisiä turvallisuusongelmia, Bug Bounties voi olla hyödyllinen. Aiemmin käsitelty muodollinen varmennustekniikka on staattinen analyysitekniikka. Bug bounty puolestaan ​​on dynaaminen analyysitekniikka. 

Bug bounty -konsepti on yksinkertainen; hakkerit löytävät vikoja, ja vastineeksi heille maksetaan taloudellisia palkkioita. Näyttää win-win-tilanteelta, eikö? Mutta se ei ole!

Saalis tässä on; että bugien arvo voi olla korkeampi kuin harmaiden markkinoiden palkkio, ja on mahdollista, että hakkerit voivat hyödyntää tai myydä bugeja saadakseen korkean hinnan. 

Joskus projektin omistajat kieltävät maksamasta palkkiota, ellei vikoja vahvisteta; hakkerit ovat myös huolissaan maksujen epävarmuudesta virheiden paljastumisen jälkeen. 

Tämän ratkaisemiseksi ehdotettiin bug bounty -kehystä, joka tunnetaan nimellä "Hydra". 

Hydra hyödyntää exploit gap -teknologiaa nimeltä N-of-N-version programming (NNVP) virhepalkkiojärjestelmänä lohkoketjussa. 

Hydra-runko päillä
Hydra-runko päillä

TURVALLISUUDEN SEURANTA

Voimme käyttää staattista koodianalyysiä tietoturva-aukkojen löytämiseen, mutta tätä menetelmää käytetään ennen älykkäiden sopimusten käyttöönottoa. 

Mutta löytääksemme vikoja ja mahdollisia haavoittuvuuksia reaaliajassa, meidän on seurattava ja analysoitava lohkoketjun tapahtumatietoja. 

Näitä älykkäitä sopimuksia analysoimalla löydettyjä haavoittuvuuksia voidaan kutsua jäljityshaavoittuvuuksiksi. Kolmen tyyppiset sopimukset ovat näiden haavoittuvuuksien keskipisteessä; 

(I) Ahneet sopimukset (sopimukset, jotka pysyvät hengissä ja lukitsevat Etherin määräämättömäksi ajaksi).

(Ii) tuhlaajapoikasopimukset (sopimukset, jotka vuotavat varoja huolimattomasti mielivaltaisille käyttäjille) ja

(Iii) Itsemurhasopimukset (sopimukset, jotka kuka tahansa mielivaltainen käyttäjä voi tappaa). 

Jopa tehokkaasti takaisinsoittovapaiden (ECF) -objektien käsitettä ehdotettiin haavoittuvuuksien tunnistamiseksi valvomalla ECF-objekteja. 

Tämän yhteydessä esiteltiin myös online-algoritmi; se auttoi löytämään tuntemattomia haavoittuvuuksia. Samassa ehdotuksessa ehdotettiin älykkäiden sopimusten toteuttamista Testnetissä ennen käyttöönottoa Mainnetissä. 

Monitoring UI on Blockchain-valvontaalusta, joka käyttää React.js:ää. Tällä alustalla voidaan suorittaa tapahtumia, tarkistaa omaisuutta ja tiedustella Blockchainin tilasta. 

Emme voi luottaa tähän alustaan ​​älykkäiden sopimusten turvallisessa seurannassa, mutta koska suurin osa älykkäisiin sopimuksiin liittyvistä tapahtumatiedoista löytyy, voimme havaita hyväksikäytöt reaaliajassa seuraamalla omaisuuden siirtoa. 

POST HOC -ANALYYSI

Post Hoc Analysis käyttää blockchain-tapahtumatietoja analysoidakseen, löytääkseen tai jäljittääkseen lohkoketjussa olevia mahdollisia uhkia maallikon termein. 

Jos käsittelemme Graph-analyysiä, se on suunniteltu tapa kerätä kaikki tapahtumatiedot (mukaan lukien sisäiset tapahtumat älykkäistä sopimuksista). 

Näiden tietojen avulla he laativat kolme kaaviota; 

(I) Rahavirtakaavio (MFG)

(Ii) Sopimuksen luontikaavio (CCG) ja

(Iii) Sopimuskutsukaavio (CIG)

Edellä mainittujen kaavioiden analyysin perusteella ehdotettiin monia uusia havaintoja, kuten ratkaisuja useiden keskenään vuorovaikutteisten sopimusten välisiin turvallisuusongelmiin. 

Yleiskatsaus kaavioanalyysiin
Yleiskatsaus kaavioanalyysiin

Ponzi-järjestelmä on yksi klassisista petosjärjestelmistä, jonka kautta voidaan hankkia suuri määrä varoja ja vaikuttaa alkuperäiseen lohkoketjuun. Tämän petoksen torjumiseksi ehdotettiin luokittelumekanismia Ponzi-suunnitelmien havaitsemiseksi Ethereumissa. 

Tämä mekanismi hyödyntää tiedon louhintaa ja koneoppimista Ponzi-sopimusten havaitsemiseen. Tämä prosessi toimii, vaikka älykkäiden sopimusten lähdekoodi ei olisi saatavilla. 

Älykkään Ponzi-skeeman havaitsemisen kehys
Älykkään Ponzi-skeeman havaitsemisen kehys

Avain Takeaway

Siinä se, joo, siinä se nyt!

Jos olet ollut kanssamme tähän asti, olisimme kiitollisia siitä. Venytmättä enempää, lopuksi sanoisimme vain, että älykkäiden sopimusten ekosysteemi on hajautettu, ja virheitä on vaikea korjata. 

Olemme yrittäneet murtaa älykkäiden sopimusten turvallisuuden ohjelmistojen elinkaaren näkökulmasta. 

Olemme ensin keskustelleet lohkoketjun tärkeimmistä ominaisuuksista tietoturvakysymykset älykkäissä sopimuksissa. Luokittelimme älykkäiden sopimusten tietoturvaratkaisut neljään vaiheeseen. Toivomme tuovamme lisää postauksia, jotta pysyt edessäsi kasvavan Web3-ekosysteemin haasteissa. 

Mitä mieltä olet tästä ketterästä SDLC-lähestymistavasta älykkäiden sopimusten tietoturvaan? Jaa ajatuksesi alla olevissa kommenteissa!

46 Näyttökerrat

Viesti Älykäs sopimusturva: ketterä SDLC-lähestymistapa  ilmestyi ensin Blog.quillhash.

Aikaleima:

Lisää aiheesta Quillhash