3 metų senumo klaida sukelia 1,3 mln. USD nutekėjimą ir priverčia 10 dienų sustabdyti „blockchain“
Įprastas Radix kodo keitiklis sukūrė saugyklos trūkumą, dėl kurios pavogta maždaug 1,3 milijono dolerių, o vėliau privertė tikrintojus sustabdyti blokų grandinę.
„Radix Foundation“ rugsėjo 17 d. pranešė, kad „RDX Works“ kūrimo komanda šį defektą įvedė 2023 m. birželio mėn. išvalydama „Radix Engine“ – programinės įrangos lygmenį, kuris vykdo operacijas ir užtikrina turto nuosavybės teisę visame tinkle. Pažeidžiamumas buvo nepastebėtas daugiau nei trejus metus, kol užpuolikas ja pasinaudojo rugpjūčio 31 d.
Bendruomenės knygos rekonstrukcija rodo, kad užpuolikas per 26 sandorius atsiėmė apie 458 915 USDC, 72 420 USDT, 61,08 ETH, 6,35 supakuotų Bitcoin, 536,16 SOL ir 32,91 BNB. Turtas buvo vertas apytiksliai 1,26 mln. USD, remiantis rugpjūčio 31 d. rinkos kainomis, o užpuolikai iš saugyklos paėmė dar 13 000 XRD, kad sumokėtų sandorio mokesčius. Vien dvi stabilios monetos sudarė apie 531 335 USD.
Pavogtas turtas per „Hyperlane“ buvo išsiųstas į „Ethereum“, „BNB Chain“ ir „Solana“, o vėliau parduotas už ETH, sakė Radixas. Pati „Hyperlane“ veikė taip, kaip suplanuota: užpuolikas jau buvo įsigijęs turtą per „Radix Engine“, prieš naudodamas tiltą, kad perkeltų juos kitur. Jokie privatūs raktai nebuvo pažeisti.
Tačiau tiesioginis praradimas neįvertino galimo poveikio. Radix tyrėjai padarė išvadą, kad trūkumas galėjo būti panaudotas prieš bet kurią saugyklą tinkle, todėl kilo pavojus žetonams ir kitam turtui, esančiam už užpuoliko nukreiptų blokų ribų.
Dėl to tinklo tikrintojai sąmoningai sumokėjo pakankamai akcijų neprisijungę, kad nepasiektų bendro sutarimo ir sustabdytų papildomų operacijų, kol kūrėjai stengėsi taisyti.
Radix audito miss paverčia priežiūros klaidą sisteminiu gedimu
Pažeidžiamumas jau buvo atliktas nepriklausomo saugumo patikrinimo metu, kol užpuolikas jį surado.
2024 m. Zellic patikrino Radix protokolą, įskaitant variklio branduolį, kuriame buvo defektas. Peržiūros metu autorizavimo trūkumas neaptiktas, nors pažeidžiamas kodas buvo įvestas praėjusių metų pertvarkymo metu.
Klaida pakeitė tai, kaip variklis tvarkė saugyklos nuorodas. Operacija gali identifikuoti kito vartotojo saugyklą pagal jos vidinį adresą ir perduoti šią nuorodą į specialiai sukurtą išmaniosios sutarties kodą. Tada variklis leido iškviesti įprastas išėmimo funkcijas, tinkamai neįgyvendinant nuosavybės ribos, dėl kurios prašymas turėjo būti atmestas.
Tai suteikė užpuolikui prieigą prie naudotojų paskyrų, programų ir likvidumo fondų turimo turto, negavus savininkų parašų.
Fondas nurodė, kad užpuolikas rugpjūčio 31 d. nuo 16:02 iki 16:57 UTC baigė 26 išnaudojimo operacijas. Kai tyrėjai nustatė, kad pažeidžiamumas egzistuoja vykdymo lygmenyje, o ne vienoje programoje, tikrintojai koordinavo operacijų užbaigimo sustabdymą.
Sustojimas truko daugiau nei 10 dienų. Protokolo pataisa papildė patikras, neleidžiančias naudoti apribotos saugyklos nuorodos įprastam išėmimui, o vartotojų operacijos buvo atnaujintos rugsėjo 11 d., remiantis bendruomenės knygos rekonstrukcija.
Įvykis taip pat sukėlė antrinių nuostolių likvidumo fonduose, kai užpuolikas pašalino sujungtą turtą iš vienos prekybos porų pusės. Iškraipytos kainos leido kitai paskyrai išgauti milijonus XRD iš paveiktų telkinių, parodydamos, kaip vykdymo lygmens gedimas gali sukelti ekonominę žalą net po to, kai pradinis turtas paliko tinklą.
Radix teigė, kad prideda regresijos testus, stiprina savo saugumo peržiūros procesą ir formalizuoja skubios pagalbos procedūrų tikrintuvus, naudojamus tinklo gyvybingumui nutraukti.
Fondas taip pat teigė, kad ateityje atliekant saugos darbus turi būti atsižvelgiama į vis labiau pajėgius dirbtinio intelekto kodo analizės įrankius, kurie, jo nuomone, galėjo padėti užpuolikui nustatyti metų senumo defektą.
Kitas iššūkis kūrėjams ir tikrintojams yra užkirsti kelią panašiems įprastiems priežiūros darbams tyliai pakeisti saugumo prielaidas, kurių gali nepastebėti išoriniai auditai.
Ši užduotis apima ne tik išnaudoto kodo taisymą. „Radix“ dabar turi sustiprinti peržiūros procesą, susijusį su autorizacijos logikos pakeitimais, tuo pačiu atkurdamas vartotojų ir likvidumo teikėjų, kurių turtas galiausiai priklauso nuo to, ar variklis tinkamai įgyvendina šias ribas, pasitikėjimą.
