150 miljoni ASV dolāru ir slēgti Ethereum tīklā - kā pasargāt sevi

Sarežģītība ir drošības ienaidnieks

Paritāte ir Ethereum ieviešana, kas rakstīta Rustā, un kuru vada ļoti talantīgais Ethereum līdzdibinātājs Gavins Vuds. Īstenošana nodrošina ērti lietojamu grafisko interfeisu, lai izveidotu multi-sig makus. Daudzfunkciju līgumam, kas atbalsta šo funkcionalitāti, 2017. gada 19. jūlijā tika konstatēta ievainojamība, kuras rezultātā tika zaudēti 30 miljoni ASV dolāru. 2017. gada 7. novembrī maka līgumā tika atklāta otra ievainojamība, kuras rezultātā Eterī tika ieslodzīti 150 miljoni USD. Lai gan Ethereum nepiedāvā vienkāršu risinājumu augstas drošības makiem, ir dažas darbības, kuras varat veikt, lai nepieļautu šāda uzbrukuma upuri.

Kļūdas ziņojums, ko iesniedzis uzbrucējs

Tradicionālā ražošanas programmatūras vidē mēs varam izvietot kodu publiskai saskarnei, piemēram, vietnei. Ja kods, šķiet, neietver funkcionalitāti, mēs ceram, ka tas notiek, kas notiek? Varbūt neviens nepamana, iespējams, daži cilvēki sūdzas, dienas beigās mēs varam atjaunināt kodu, un mazie traucēkļi ir atrisināti. Ethereum pasaulē, kad mēs izvietot kodu, tas ir tur uz visiem laikiem, lai ikviens varētu redzēt un spēlēties. Ideālā pasaulē tikai jums ir piekļuve šim kodam, un blockchain pasaulē tam ir pieeja visiem. Tas nozīmē, ka, ja koda fragments tiek ievietots Ethereum tīklā, vairumā gadījumu to nav iespējams atjaunināt.

Saruna ar “uzbrucēju”

Ja ieguldīsim ēterā 1 miljonu ASV dolāru ēterī un tiks atrasts, ka viedajā līgumā ir ievainojamība, var rasties dažas lietas. Tas var palikt nepamanīts, to var pamanīt hakeris, kurš nolemj to izmantot, vai arī to atklās līguma īpašnieks un viņi varēs atgūt līdzekļus. Šajā gadījumā indivīds to izmantoja, apgalvojot, ka “pēta” iepriekšējo Paritātes sakāvi.

“Uzbrucējs”

Tātad, kā mēs varam sevi aizsargāt?

KISS princips - turiet to vienkārši muļķīgi

Lielākā daļa viedo līgumu ievieš ievainojamības, mēģinot ņemt vērā stūra gadījumus un optimizāciju. Pirmā paritātes ievainojamība bija saistīta ar mēģinājumu optimizēt izpildes laikā izmantoto gāzes daudzumu. Pašreizējā Paritātes ievainojamība bija saistīta ar jaunas, nepārbaudītas bibliotēkas funkcionalitātes iekļaušanu. Pārvaldāms viedais līgums satur minimālo funkcionalitātes daudzumu, kas nepieciešams uzdevuma veikšanai. Koda ieviešana priekšlaicīga risinājuma optimizēšanai palielina līguma sarežģītību, tādējādi samazinot drošību.

Vienības testi

Kopējā programmatūras izstrādē, kā arī viedā līgumu izstrādē var būt ērti nepamanīt atbilstošus vienības testus. Ja kods nav atsaucams, tiklīdz tas sasniedz ražošanu, nepieciešama augstāka rūpības pakāpe. Parasti jūsu viedā līgumā jāietver atbilstoši vienības testi, lai pārbaudītu viedā līguma funkcionalitāti, kā arī stūra gadījumus.

Viedās līgumu revīzijas

Ikvienam viedā līgumam, kas tiek nosūtīts uz ražošanu, jāveic drošības audits. Labam viedo līgumu drošības revidentam būs pieredze reālu pasaules viedo līgumu veidošanā, daudzos projektos GitHub, un viņš dalīsies kontrolsarakstā par kopējām ievainojamībām, kuras viņi meklē. Pārliecinieties, ka revidents var iesaistīties sarunā par dažādiem uzbrukuma vektoriem, kas saistīti ar jūsu viedo līgumu. Tā var nešķist formāla pieeja, tomēr nozare joprojām ir ļoti jauna, un šobrīd tā darbojas.

Šo vadlīniju ievērošana var palīdzēt mazināt risku un satraukumu, kas saistīts ar viedo līgumu nosūtīšanu Ethereum Mainnet.

Pārbaude, audits, izvietošana.