150 miljonit dollarit on lukustatud Ethereumi võrku - kuidas end kaitsta

Keerukus on turvalisuse vaenlane

Paarsus on Rustis kirjutatud Ethereumi teostus, mille juhiks on Ethereumi väga andekas kaasjuht Gavin Wood. Rakendus pakub mitme sigiga rahakottide loomiseks hõlpsasti kasutatavat GUI-d. Selle funktsionaalsuse aluseks olnud mitme sigiga lepingus leiti 19. juulil 2017 haavatavus, mis tõi kaasa 30 miljoni dollari kaotuse. 7. novembril 2017 leiti rahakotilepingus teine ​​haavatavus, mille tagajärjel tehti 150 miljoni dollari suurune eetrisõit Eetrisse. Kuigi Ethereum ei paku kõrge turvalisusega rahakottide jaoks lihtsat lahendust, on mõned sammud, mida saate teha sellise rünnaku ohvriks langemise vältimiseks.

Ründaja esitatud veateade

Traditsioonilises tootmistarkvara keskkonnas saame koodi juurutada avalikku liidesesse, näiteks veebisaidile. Mis juhtub, kui kood ei sisalda funktsioone, mida me loodetavasti teeme? Võib-olla keegi ei märka, võib-olla mõned inimesed kurdavad, et päeva lõpuks saame koodi värskendada ja väiksemgi ebameeldivus on lahendatud. Ethereumi maailmas on üks kord kooditükk kasutusele võetud, see on seal igavesti, et kõik saaksid seda näha ja mängida. Ideaalses maailmas on sellele koodile juurdepääs ainult teil, plokiahela maailmas on sellele juurdepääs kõigil. See tähendab, et kui koodiosa paigaldatakse Ethereumi võrku, pole seda enamikul juhtudel võimalik värskendada.

Vestlus “ründajaga”

Kui paneme Eetrisse ühe miljoni dollari väärtuses aruka lepingu ja leitakse, et nutileping sisaldab haavatavust, võib juhtuda mõni asi. See võib jääda märkamatuks, seda võib märgata häkker, kes otsustab selle ära kasutada, või siis lepinguomanik paljastab selle ja nad saavad raha tagasi. Sel juhul kasutas seda ära üksikisik, kes väitis end olevat "pariteedi häkki" uurinud.

Ründaja

Kuidas me saame end kaitsta?

KISS põhimõte - pidage seda lihtsalt lolliks

Enamik nutikaid lepinguid tutvustab haavatavusi, üritades arvestada nurkade juhtumite ja optimeerimisega. Esimene pariteedi haavatavus oli tingitud katsest optimeerida täitmise ajal kasutatud gaasi kogust. Pariteedi praegune haavatavus tulenes uute, testimata teegi funktsioonide kaasamisest. Hallatav nutileping sisaldab minimaalset funktsionaalsust, mis on vajalik ülesande täitmiseks. Koodi juurutamine enneaegse lahenduse optimeerimiseks suurendab lepingu keerukust, vähendades seeläbi turvalisust.

Ühiktestid

Nii tavalises tarkvaraarenduses kui ka aruka lepingu arendamisel võib olla mugav üksikute testide tähelepanuta jätmine. Kui kood ei ole pärast tootmiseni tühistatavat, on vaja suuremat hoolsust. Rusikareeglina peaks teie nutikas leping sisaldama piisavaid ühikuteste, et kontrollida teie nutika lepingu funktsionaalsust ning ka nurgaümbriseid.

Nutikad lepingute auditid

Kõik nutikad lepingud, mis tootmisele saadetakse, peaksid läbima turvaauditi. Heal nutika lepingu turvalisuse audiitoril on kogemus reaalainete nutikate lepingute loomiseks, hulgaliselt projekte GitHubis ning ta jagab kontrollnimekirja levinud turvaaukude kohta, mida nad otsivad. Veenduge, et audiitor saaks vestelda mitmesugustest rünnakuvektoritest, mis on seotud teie nutika lepinguga. See ei pruugi tunduda formaalne lähenemisviis, kuid tööstus on endiselt väga noor ja nii see praegu töötab.

Nende juhiste järgimine aitab vähendada arukate lepingute saatmisega Ethereum Mainnetti seotud riske ja ärevust.

Test, audit, juurutamine.