Lukeaika: 5 pöytäkirja
Web3:n maailma on protokollien ja standardien maailma. Olet varmasti törmännyt useisiin ERC-standardeihin. Jotkut tunnetuimmista ERC-standardeista ovat 20 ja 721, jotka ovat vastaavasti tokeneille ja NFT:lle. Mutta Web3 ei rajoitu tähän.
Näemme Web3:ssa säännöllisesti päivityksiä ja päivityksiä. Yksi viimeisimmistä päivityksistä oli ERC 4337, joka otettiin käyttöön Ethereum Mainnetissä maaliskuussa 2023. Jokainen päivitys ei onnistu kerralla; sama pätee ERC 4337:ään. Tässä blogissa opimme standardin User Operation -osioon liittyvistä haavoittuvuuksista ja niiden vaikutuksista. Aloitetaan ensin lyhyellä esittelyllä ERC 4337 -standardiin.
Mikä on ERC 4337?
Toisin kuin Bitcoinin verkko, Ethereum tukee älykkäitä sopimuksia ketjussa, minkä ansiosta Ethereumilla on kaksi erityyppistä tiliä, yksi tapahtuma- tai toimintatili. Sen lisäksi älysopimuksilla on oma tila, melkein kuin tili. Näillä kahdella tilityypillä Ethereumissa on omat toiminnallisuutensa.
Useimmat Ethereumin kanssa toimivat lompakot ovat EOA:ita, mikä tarkoittaa käyttäjän tilejä, ei älykkäitä sopimustilejä. Tällaisilla tileillä on omat rajoituksensa. Yksi rajoitus sisältää käyttäjän yksinomaisen luottamuksen yksityisiin avaimiin päästäkseen tilille ja vaatia kaikki allekirjoitukset tapahtumia varten. Nämä rajoitukset saivat ERC 4337:n käyttöönoton.
ERC 4337 yrittää tarjota tilien abstraktiota yhdistämällä parhaat kahdesta tilityyppisestä ominaisuudesta. Kyllä, EOA:n ja älykkäiden sopimusten tilit. Tämän tekee mahdolliseksi yksi sopimus, joka voi välittää rahakkeita ja luoda sopimuksia samanaikaisesti, ja ERC 4337 on standardi, joka helpottaa tätä mahtavaa uutta edistystä.
UserOperation-pakkaushaavoittuvuus?
Kaikki tässä standardissa ja projektissa on mahtavaa, mutta mikä meni pieleen? No, oli toteutusongelma, joka johti epäjohdonmukaisiin tiivisteisiin allekirjoitusmenetelmän perusteella. Tämä johtaa järjestysristiriitoihin, erityisesti erilaisiin tiivisteisiin samoihin UserOperations-toimintoihin ja törmääviin tiivisteisiin eri UserOperations-toiminnoille.
Vaikuttavat alueet rajoittuivat kahteen haavoittuvuuteen, EntryPoint Packing -haavoittuvuuteen ja VerifyingPaymaster Packing -haavoittuvuuteen. Siitä lisää myöhemmin. Otetaan ensin yleinen käsitys ja sitten opimme niistä erikseen.
Katsotaanpa UserOperation.sol:-
UserOperation-parametri, Calldata, välitetään argumenttina pakettifunktiolle. Tutkitaan rakennetta: -
Nämä ovat kenttiä, joita UserOperation-rakenne sisältää. Kopioidakseen tämän suuren osan Calldatasta muistiin koodisegmentit käyttävät kokoonpanoa. Joidenkin sopimusten menetelmien tarkoituksena on kaapata kaikki UserOperationin kentät, mukaan lukien muuttuvan kokoiset kentät, joita kutsutaan myös dynaamiksi kentiksi ABI-koodauksessa. Esimerkiksi tämän rakenteen dynaaminen koodaus on "initCode", "callData" ja "paymasterAndData".
Jotkin menetelmät eivät voi sisältää 'paymasterAndData', koska kyseistä kenttää ei ole vielä määritetty tai ilmoitettu. Menetelmät käyttävät dynaamisille tietotyypeille tarjottua ".offset"-mukavuuskenttää tehdäkseen sen. Mutta ABI-koodattuja argumentteja käyttävät sopimukset eivät vahvista kenttien määrittelyjärjestystä ja kompensaatioiden kelpoisuutta. Calldatassa on mahdollista rakentaa kelvollinen esitys käyttäjän toiminnoista epätavallisilla hash-ominaisuuksilla.
EntryPoint-pakkaushaavoittuvuus
UserOperationin ongelma vaikuttaa myös joihinkin muihin standardin osiin, EntryPoint Packing -haavoittuvuus on yksi niistä. Kun EntryPointin ja lompakkosopimuksen välillä käytetään erilaista hajautusmenetelmää tai käytetään epätyypillistä käyttäjän operaatiokoodausta, havaitsemme hajautuseroja.
Riski näkyy EntryPoint-muodossa. Nyt yhtä käyttäjän operaatiota voitaisiin edustaa useilla 'user op hash'illa, ja sama 'user op hash' voisi edustaa useita käyttäjän toimintoja. Nyt tämä voi aiheuttaa ei-toivottuja vaikutuksia. Keskustellaan siitä, mitä vaikutuksia sillä voi olla.
Erc 4337 on vielä hyvin varhaisessa vaiheessa, koska se julkaistiin juuri maaliskuussa, joten näiden haavoittuvuuksien vaikutuksia ei täysin tunneta. Mahdollista vaikutusta on vaikea kuvailla lintuperspektiivistä. Sen lisäksi vaikutus riippuu niputtajien, indeksoijien, käyttäjän operaatioiden tutkijoiden ja muiden ketjun ulkopuolisten palveluiden käyttöönotosta. Katsotaanpa muutamia tämän haavoittuvuuden aiheuttamia ongelmia.
- Tämä voi aiheuttaa hämmentävän kokemuksen käyttäjälle, koska käyttäjän toimintojen hash voi vaihdella lähetys- ja sisällyttämisajan välillä. Tämä ilmiö on tuntematon useimmille lompakoille, joten ne eivät välttämättä ota huomioon tätä eroa.
- Lompakot voidaan muuttaa ja suunnitella siten, että ne tahallaan välttämään indeksointia asettamalla kaikki käyttäjän toimintojen tiivisteet samoiksi.
- Voimme havaita tietojen ja avainten väärinkäsittelyä, jos ketjun ulkopuolinen palvelu, joka valvoo käyttäjän toimintojen sisällyttämistä, jättää huomiotta tietyn käyttäjän toiminnon.
Maksajan pakkaushaavoittuvuuden tarkistaminen
Kukaan ei halua tilata jotain verkkokaupoista ja saada täysin erilaista tuotetta. Sama koskee Web3:a, mutta tämä haavoittuvuus heikentää käyttökokemusta. Käyttäjä voi olla muuttanut tai erilaista sisältöä allekirjoitusajan ja ketjuun kuulumisen välillä. Syynä tähän on se, että kaksi eri käyttäjän toimintoa palauttavat saman hajautusarvon VerifyingPaymaster.getHash()-funktiosta.
VerifyingPaymaster.getHash()-funktio ottaa muutaman argumentin, kuten 'UserOperation', joka on struct, 'validUnitl', uint48-arvon ja validAfter toisen uint48-arvon. Allekirjoitusajan ja sisällyttämisajan välisten erilaisten sisältöjen ongelma vaikuttaa käyttökokemukseen ja yleiseen turvallisuuteen. Keskustellaan muutamista sen herättämistä huolenaiheista.
- Offchain-allekirjoittajat, jotka kirjautuvat ABI-koodatussa muodossa vastaanotettuaan käyttäjätoimintoja, tai allekirjoittajat, joilla on sopimusintegraatiot tietojen valmistelemiseksi allekirjoitusta varten, tulevat haavoittuviksi.
- Hajautetta voidaan muokata kattamaan odotettua vähemmän elementtejä, mikä voi johtaa siihen, että jotkin staattiset kentät, kuten initCode jne., jäävät pois tiivisteestä. Tämä voi johtaa erilaiseen käyttöön kuin maksajan sponsorointiallekirjoituksiin on tarkoitettu.
- Voimme nähdä sääntöjen rikkomisen ja ohituksen muuttamalla userOp.initCode- ja userOp.callData-tiedostoja allekirjoituksen saamisen jälkeen. Tämä mahdollistaa maksajan alkuperäisen tunnuksen käytön muihin tarkoituksiin kuin kaasuttoman NFT:n lyömiseen.
Yhteenveto
Jatkuvan edistymisen ja kehityksen myötä tulemme todistamaan monia mahtavia asioita, ja ERC 4337 on yksi niistä. Turvallisuuden kehittäminen ja edistäminen on jotain, josta emme voi koskaan tinkiä. On mahtavaa huomata, kuinka nopeasti haavoittuvuudet standardista löytyivät, ja sen turvaamiseksi tehdään jatkuvaa tutkimusta ja kehitystä.
On tärkeää huomata, että jopa jotkin Web3:ssa rakentavat suurimmat ja tunnetuimmat organisaatiot voivat tehdä tietoturvaan liittyviä virheitä, ja varmasti myös muut protokollat tekevät niitä. Jatkuva nousu Web3-tapaukset viime vuosina on ilmeistä.
Yhden luukun ratkaisu, joka suojaa sinua, käyttäjiäsi ja protokollasi tällaisilta tietoturvauhkilta, on menossa tarkastukseen. Me QuillAudits, olemme yksi älykkäiden sopimusten auditoinnin ja blockchain-turvallisuuden parhaista palveluntarjoajista. Vieraile verkkosivustollamme saadaksesi lisätietoja ja varmistaaksesi projektisi. Pysy kuulolla, niin voit nauttia enemmän tällaisista informatiivisista blogeista
34 Näyttökerrat
- SEO-pohjainen sisällön ja PR-jakelu. Vahvista jo tänään.
- Platoblockchain. Web3 Metaverse Intelligence. Tietoa laajennettu. Pääsy tästä.
- Tulevaisuuden lyöminen Adryenn Ashley. Pääsy tästä.
- Lähde: https://blog.quillhash.com/2023/04/24/understanding-erc-4337-user-operation-packing-vulnerability/
- :On
- :ei
- 20
- 2023
- a
- Meistä
- pääsy
- Tili
- tilin abstraktio
- Tilit
- poikki
- Lisäksi
- edistäminen
- Jälkeen
- Kaikki
- Myös
- muuttunut
- an
- ja
- Toinen
- OVAT
- perustelu
- perustelut
- AS
- Kokoonpano
- At
- yrityksiä
- tilintarkastus
- tilintarkastus
- perustua
- BE
- koska
- tulevat
- ovat
- PARAS
- välillä
- Suurimmat
- blockchain
- Blockchain-turvallisuus
- Blogi
- rikkominen
- Rakentaminen
- mutta
- by
- nimeltään
- CAN
- ei voi
- kaapata
- Aiheuttaa
- syyt
- ketju
- muuttaa
- muuttuviin
- koodi
- yhdistely
- Tulla
- kompromissi
- huolenaiheet
- hämmentävä
- rakentaa
- sisältö
- jatkuva
- sopimus
- sopimukset
- mukavuus
- voisi
- kattaa
- luoda
- tiedot
- määritelty
- riippuu
- käyttöön
- kuvata
- suunniteltu
- kehittämällä
- Kehitys
- ero
- eri
- pohtia
- Eroavuus
- do
- dynaaminen
- Varhainen
- aikainen vaihe
- vaikutukset
- elementtejä
- nauttia
- täysin
- ERC-4337
- jne.
- ethereum
- ETHEREUM MAINNET
- Jopa
- Joka
- esimerkki
- ulkopuolelle
- odotettu
- experience
- tutkia
- Explorers
- silmä
- helpottaminen
- kuuluisa
- Ominaisuudet
- harvat
- ala
- Fields
- Löytää
- Etunimi
- varten
- muoto
- löytyi
- alkaen
- täysin
- toiminto
- toiminnallisuudet
- toiminta
- general
- saada
- saada
- tietty
- Go
- menee
- tapahtuu
- Kova
- hasis
- hajautusta
- Olla
- Miten
- HTTPS
- Vaikutus
- Vaikutukset
- täytäntöönpano
- täytäntöönpanosta
- tärkeä
- in
- sisältää
- sisältää
- Mukaan lukien
- sisällyttäminen
- Erikseen
- informatiivinen
- integraatiot
- aikovat
- tarkoituksella
- tulee
- esittely
- kysymys
- kysymykset
- IT
- vain
- avaimet
- tunnettu
- suuri
- Sukunimi
- uusin
- johtaa
- OPPIA
- pitää
- rajoitus
- rajoitukset
- rajallinen
- katso
- tehty
- mainnet
- tehdä
- TEE
- monet
- maaliskuu
- max-width
- Saattaa..
- välineet
- Muisti
- menetelmä
- menetelmät
- ehkä
- lyömisestä
- törmäyksiltä
- piti
- virheitä
- muokattu
- seuranta
- lisää
- eniten
- moninkertainen
- syntyperäinen
- Alkuperäinen merkki
- verkko
- Uusi
- NFT
- nyt
- of
- on
- ONE
- verkossa
- verkkokaupoissa
- OP
- toiminta
- toiminta-
- Operations
- or
- tilata
- organisatorinen
- Muut
- Muut pöytäkirjat
- meidän
- yli
- yleinen
- oma
- Pakkaus
- parametri
- erityisesti
- osat
- Hyväksytty
- ilmiö
- Platon
- Platonin tietotieto
- PlatonData
- mahdollinen
- mahdollinen
- Valmistella
- yksityinen
- Yksityiset avaimet
- Tuotteet
- projekti
- ominaisuudet
- suojella
- protokolla
- protokollat
- toimittaa
- mikäli
- tarjoajat
- tarkoituksiin
- nopeasti
- Quillhash
- herättää
- reason
- vastaanottava
- suhteen
- alueet
- säännöllinen
- julkaistu
- riippuvuus
- edustaa
- edustus
- edustettuina
- tutkimus
- tutkimus ja kehitys
- johtua
- palata
- Nousta
- Riski
- säännöt
- sama
- järjestelmä
- Osa
- turvallinen
- turvattu
- turvallisuus
- Turvallisuusuhkia
- nähdä
- segmentit
- palvelu
- palveluntarjoajat
- Palvelut
- asetus
- useat
- Ostokset
- merkki
- allekirjoitukset
- allekirjoittaminen
- samanaikaisesti
- single
- fiksu
- älykäs sopimus
- Smart-sopimukset
- So
- SOL
- ratkaisu
- jonkin verran
- jotain
- Tila
- sponsorointi
- Vaihe
- standardi
- standardit
- Alkaa
- pysyä
- Yhä
- jättämisestä
- onnistunut
- niin
- Tukee
- varmasti
- vie
- kuin
- että
- -
- heidän
- Niitä
- Siellä.
- Nämä
- ne
- asiat
- tätä
- ne
- uhat
- aika
- että
- symbolinen
- tokens
- liian
- ylin
- tehdä kauppaa
- kaupallisen
- Liiketoimet
- totta
- tyypit
- ymmärtäminen
- toivottuja
- Päivitykset
- Päivitykset
- päivityksiä
- käyttää
- käytetty
- käyttäjä
- Käyttäjäkokemus
- Käyttäjät
- VAHVISTA
- arvo
- hyvin
- Näytä
- Vierailla
- haavoittuvuuksia
- alttius
- Haavoittuva
- Lompakko
- Lompakot
- oli
- we
- Web3
- Verkkosivu
- HYVIN
- tunnettu
- olivat
- Mitä
- kun
- joka
- vaikka
- miksi
- tulee
- with
- Todistaja
- maailman-
- Väärä
- vuotta
- Voit
- Sinun
- zephyrnet