Užpuolikai paskatino 63 % ankstyvo naujosios Ethereum išmaniosios piniginės funkcijos naudojimo
„Ethereum“ spartusis klavišas į išmaniosios piniginės elgseną atsirado su nauja pasitikėjimo problema: piniginė gali padaryti įprastą adresą programuojamą neperkeliant vartotojo išteklių, o deleguotas kodas įgyja galią veikti su tos paskyros įgaliojimais.
USENIX Security ’26 paskelbtame recenzuojamame tyrime nustatyta, kad su užpuolikais susijusios sutartys buvo susijusios su 2 322 548 iš 3 664 166 EIP-7702 autorizacijos operacijų, kurios buvo stebimos septyniose grandinėse iki 2025 m. liepos 15 d. Tai sudaro 63 % istorinių operacijų apimties tyrėjų duomenų rinkinyje.
Autoriai santykinai nedidelį kenkėjiškų sutarčių rinkinį susiejo su pakartotiniais leidimais ir apibūdino tam tikrą užpuolikų kontroliuojamą veiklą kaip tikėtiną praktiką arba koncepcijos įrodymo testavimą ankstyvame tiriamajame etape.
Skaičius matuoja sandorius, o skirtingas piniginės paplitimas ir dabartinis 2026 m. atakų dažnis nepatenka į tyrimo sritį.
Kodėl užpuolikai dominavo ankstyvųjų leidimų skaičiuje
„Ethereum“ suaktyvino „Pectra“, įskaitant EIP-7702, 2025 m. gegužės 7 d. Galutinėje specifikacijoje buvo įdiegta 4 tipo operacija, leidžianti išoriškai priklausančiai paskyrai nustatyti diegto sutarties kodo rodyklę.
Adresas išlieka toks pat, pirminis privatus raktas išlaiko valdymą, o skambučiai į paskyrą gali vykdyti deleguotą kodą paskyros kontekste.
Toks dizainas gali suteikti įprastų piniginės funkcijų, susijusių su išmaniosiomis paskyromis, įskaitant paketinius skambučius ir remiamas operacijas, nepriverčiant vartotojo pereiti į naują adresą. Tai taip pat paverčia delegavimo tikslą piniginės infrastruktūra.
Buggy arba priešiškas kodas gali turėti galimybę atlikti patvirtinimus, pervedimus ir paraiškų skambučius kaip paskyrą.
Jame teigiama, kad programos neturėtų prašyti naudotojų savavališkų įgaliojimų parašų, nes nėra saugios bendrosios sąsajos, skirtos vartotojams įvertinti kodą su neribota prieiga prie paskyros. Tikimasi, kad piniginės patikrins įgyvendinimą.
Užpuolikai gali paruošti įgaliojimo laukus už grandinės ribų ir paprašyti aukos pasirašyti, o piniginė gali sumažinti sprendimą iki aukšto lygio paskyros atnaujinimo raginimo, o užmaskuoti sutarties adresą arba kodą gaunančią instituciją.
Protokolas patikrina paskyros savininko parašą, o piniginė vis tiek turi nustatyti, ar pasirinktas kodas vertas kontrolės.
Tyrėjai išanalizavo daugiau nei 22,8 milijardo istorinių operacijų Ethereum, Binance Smart Chain, Polygon, Optimism, Arbitrum, Base ir Gnosis.
Remdamiesi šiais duomenimis, jie ištyrė 3 664 166 EIP-7702 leidimus per atjungimą ir naudojo operacijų filtrus, baitų kodų analizę ir rankinę peržiūrą, kad nustatytų 924 kenkėjiškas sutartis. Jie priskyrė 793 atakoms, nukreiptoms į EOA, 124 kaip pagal sutartį taikomą paskyrą ir septynias kaip sudėtines atakas.
| Studijų priemonė | Ką užfiksuoja |
|---|---|
| 3 664 166 leidimai | Istorinės EIP-7702 operacijos septyniose grandinėse iki 2025 m. liepos 15 d |
| 2 322 548 įgaliojimai arba 63 proc. | Istorinės operacijos, susijusios su kenkėjiškomis EOA taikomomis sutartimis |
| 924 kenkėjiškos sutartys | Tyrėjų metodu aptiktas ir rankiniu būdu peržiūrėtas rinkinys |
| 2,36 mln | Aptiktas realizuotas praradimas trijose atakų kategorijose |
| Apie 10,14 mln | Galimas poveikis atskirame senosios sutarties pogrupyje |
Straipsnyje teigiama, kad kenkėjiškos sutartys buvo pakartotinai naudojamos neproporcingai, todėl operacijų skaičius gali padidėti daug greičiau nei atskirų sutarčių ar paveiktų vartotojų skaičius. Jaunoje autorizacijos rinkoje ta pasikartojanti užpuoliko veikla turėjo pernelyg didelį poveikį vardikliui.
Užpuolikai rado pakartojamą kelią į paskyros lygio instituciją, kol piniginės patikėjimo sprendimą nepadarė taip įskaitomai ir suvaržytam, kaip ir jo perteikiama galia.
Rizika siekia ne tik užgrobtas pinigines
Tyrimas išmatavo 2 362 848,76 USD realius nuostolius visose trijose atakų kategorijose. Atskira sąmata apėmė senesnes sutartis, kurių gynyboje buvo daroma prielaida, kad programuojamų EOA negali būti.
EIP-7702 pažeidžia seną prielaidą, kad msg.sender == tx.origin patikimai identifikuoja paprastą EOA arba blokuoja pagal sutartį vykdomą elgesį.
Tyrėjai nustatė 967 aktyvių Ethereum kontraktų pogrupyje, naudodami šį čekį kaip greitosios paskolos apsaugą, ir apskaičiavo, kad apie 10,1 mln. USD turtui gresia didelė rizika.
Aptikta vagystė sudarė apie 2,36 mln. USD, taigi, 10,14 mln. USD yra turtas, atskleistas remiantis gynybine prielaida, kuris nebelaikomas.
Tyrėjai pastebėjo, kad užpuolikai po atakos perjungia paskyras į gerybinį kodą, todėl tik dabartinės būsenos stebėjimas tapo nepatikimas. Jie taip pat rado 500 specialių nulinio delegavimo tikslų be įdiegto kodo.
Iš anksto apskaičiuotas CREATE2 adresas gali gauti kodą vėliau, pakeisdamas tai, ką paskyra vykdo, o įrašytas tikslas išliks toks pat.
Dėl šių modelių autorizavimo istorija yra saugumo ribos dalis. Piniginės ir stebėjimo įrankiai turi atsiminti, kur anksčiau buvo nurodyta paskyra, įvertinti deleguoto kodo pakeitimus ir nepanaudotą tikslą laikyti neišspręstu, o ne nekenksmingu.
Autorių taisyklės gali praleisti kenkėjiškas sutartis, kol pasirengimo sandoriai tampa matomi arba atakos naudojant naujas sąsajas, kurios neapima metodo. 924 sutartys yra aptiktas ir rankiniu būdu patikrintas rinkinys, o visa piktnaudžiavimo visata lieka nežinoma.
Saugus numatytasis elgesys prasideda nuo to, kad delegavimas yra piniginės valdomas diegimo sprendimas. Po studijų ethereum.org gairėse reikalaujama įtraukti delegavimo sutartis į baltąjį sąrašą, aiškiai nurodant tikslą, vengti savavališko perdavimo aparatinės įrangos piniginėse ir pasikliauti audituotais diegimais.
Paskyros abstrahavimo piniginės galimybės pasiūlymas nukreiptas ta pačia kryptimi, reikalaujantis griežto gerai žinomų, viešai audituotų išmaniųjų paskyrų diegimų sąrašo. Šie dokumentai neįvertina, kaip nuosekliai gamybinės piniginės tai priėmė.
Programos turėtų paprašyti joms reikalingos funkcijos ir palikti paskyros diegimą piniginei. Norėdami gauti patvirtinimą ir apsikeitimą vienu srautu, dabartinės „Ethereum Foundation“ gairės nukreipia kūrėjus į piniginės sąsają, pvz., ERC-5792.
Tada piniginė gali pasirinkti EIP-7702, ERC-4337 ar kitą paskyros sistemą, neprašant vartotojo patvirtinti programos pasirinkto žemo lygio delegavimo kodo.
Dabartinėse rekomendacijose rekomenduojama pasirašyti inicijavimo parametrus arba apriboti sąranką iki ERC-4337 EntryPoint, uždarant priekinį kelią, kuriame užpuolikas pakeičia savo reikšmes.
Tyrimas nustatė susijusį gedimo režimą sename piniginės kode: kūrėjai nebepaleidžiami, kai paskyra perduodama pagal esamą sutartį, todėl nuosavybės teisė gali likti nenustatyta ir gali būti pareikšta iš išorės.
Gerybinė srovės žymeklis negali ištrinti kenkėjiškos istorijos, o taikinys be kodo gali pradėti elgtis vėliau. Piniginėms reikalingi patvarūs prieigos teisės įrašai, aiškūs įspėjimai, kai pasikeičia delegavimas, ir naudotojams suprantamas pašalinimo kelias.
Kad EIP-7702 piniginės programavimas būtų saugus pagal numatytuosius nustatymus, reikia, kad piniginės delegavimą traktuotų kaip paskyros valdymo plokštumos įdiegimą: apribotų, kas gali to užklausti, atskleisti, kas tiksliai valdys paskyrą, patikrinti, kaip ji inicijuojama, ir toliau stebėti, kai pasikeičia žymeklis.
