Olvasási idő: 5 jegyzőkönyv
A Web3 világa a protokollok és szabványok világa. Biztosan találkoztál több ERC szabvánnyal. A leghíresebb ERC-szabványok közül néhány a 20 és 721, amelyek a tokenekre, illetve az NFT-re vonatkoznak. De a Web3 nem korlátozódik erre.
Rendszeres frissítéseket és frissítéseket látunk a Web3-ban. Az egyik legújabb frissítés az ERC 4337 volt, amelyet 2023 márciusában telepítettek az Ethereum Mainnet hálózatra. Nem minden frissítés sikeres egyszerre; Ugyanez igaz az ERC 4337-re is. Ebben a blogban megismerkedünk a szabvány Felhasználói műveletekkel kapcsolatos sebezhetőségeiről és azok hatásairól. Először is kezdjük az ERC 4337 szabvány rövid bemutatásával.
Mi az ERC 4337?
A Bitcoin hálózatával ellentétben Ethereum támogatja az intelligens szerződéseket a láncon, így az Ethereum két különböző típusú számlával rendelkezik, egy tranzakciós vagy egy működési számlával. Ezen kívül az intelligens szerződéseknek saját területük van, szinte fiókként. Ennek a két fióktípusnak az Ethereumban saját funkciói vannak.
A legtöbb Ethereummal működő pénztárca EOA, ami a felhasználói fiókokat jelenti, nem az intelligens szerződéses fiókokat. Az ilyen típusú számláknak saját korlátai vannak. Az egyik korlátozás magában foglalja, hogy a felhasználó kizárólag a privát kulcsokra hagyatkozhat a fiókokhoz való hozzáféréshez, és minden aláírást megkövetel a tranzakciókhoz. Ezek a korlátozások késztették az ERC 4337 bevezetését.
Az ERC 4337 megkísérli fiókabsztrakciót biztosítani a két fióktípusú szolgáltatás legjobbjainak kombinálásával. Igen, az EOA és az intelligens szerződéses fiókok. Ezt egyetlen szerződés teszi lehetővé, amely egyszerre képes tokeneket lebonyolítani és szerződéseket létrehozni, az ERC 4337 pedig egy szabvány, amely megkönnyíti ezt a fantasztikus új fejlesztést.
UserOperation csomagolási sebezhetőség?
Ebben a szabványban és a projektben minden fantasztikus, de mi romlott el? Nos, volt egy megvalósítási probléma, amely következetlen hash-eket eredményezett az aláíráshoz használt módszer alapján. Ez sorrendi összeütközéshez vezet, különösen ugyanazon UserOperations eltérő kivonataihoz és ütköző hashekhez a különböző UserOperations esetében.
Az érintett régiók két sérülékenységre korlátozódtak, az EntryPoint Packing Vulnerability és a VerifyingPaymaster Packing Vulnerability. Erről majd később. Először ismerkedjünk meg általánosan, majd egyenként tanuljuk meg őket.
Vessünk egy pillantást a UserOperation.sol oldalra:-
Látja, hogy a UserOperation paraméter, egy Calldata, argumentumként kerül átadásra a pack függvénynek. Nézzük meg a szerkezetet:
Ezek azok a mezők, amelyeket a UserOperation struktúra hordoz. A Calldata nagy részének a memóriába másolásához a kódszegmensek összeállítást használnak. A szerződések egyes módszerei a UserOperation összes mezőjét kívánják rögzíteni, beleértve a változó méretű mezőket is, amelyeket ABI-kódolásban dinamikus mezőknek is neveznek. Például ebben a struktúrában a dinamikus kódolás a következő: 'initCode', 'callData' és 'paymasterAndData'.
Egyes metódusok nem tartalmazhatják a „paymasterAndData” értéket, mert ez a mező még nincs meghatározva vagy deklarálva. A módszerek ehhez a dinamikus adattípusokhoz biztosított „.offset” kényelmi mezőt használják. Az ABI-kódolású argumentumokat használó szerződések azonban nem érvényesítik a mezők meghatározásának sorrendjét és az eltolások érvényességét. Lehetőség van a Calldata felhasználói műveleteinek érvényes megjelenítésére szokatlan hash tulajdonságokkal.
EntryPoint csomagolási sebezhetőség
A UserOperation problémája a szabvány néhány más részét is érinti, ezek egyike az EntryPoint Packing sebezhetősége. Ha más kivonatolási sémát használnak az EntryPoint és a pénztárca szerződés között, vagy nem szabványos felhasználói műveleti kódolást használnak, akkor hash eltérést tapasztalunk.
A kockázat EntryPointként jelenik meg. Most egyetlen felhasználói műveletet több „felhasználói műveleti hash” is képviselhet, és ugyanaz a „felhasználói műveleti hash” több felhasználói műveletet is képviselhet. Most ez nemkívánatos hatásokat eredményezhet. Beszéljük meg, milyen hatással lehet.
Az Erc 4337 még nagyon korai stádiumban van, mivel éppen márciusban jelent meg, így ezeknek a sebezhetőségeknek a hatása nem teljesen ismert. Nehéz leírni a lehetséges hatást madártávlatból. Ezen túlmenően a hatás a kötegelők, indexelők, felhasználói művelet-felfedezők és egyéb láncon kívüli szolgáltatások megvalósításától függ. Nézzünk meg néhány problémát, amelyet ez a sebezhetőség okoz.
- Ez zavaró élményt okozhat a felhasználó számára, mivel a felhasználói műveleti hash változhat a benyújtás és a felvételi idő között. Ez a jelenség a legtöbb pénztárca számára ismeretlen, ezért előfordulhat, hogy nem magyarázzák ezt a különbséget.
- A pénztárcák módosíthatók és úgy tervezhetők, hogy szándékosan elkerüljék az indexelést az összes felhasználói művelet hashének azonosra állításával.
- Adatok és kulcsok helytelen kezelését láthatjuk, ha a felhasználói műveletek bevonását figyelő láncon kívüli szolgáltatás kihagyja egy adott felhasználói művelet felvételét.
APaymaster csomagolási biztonsági résének ellenőrzése
Senki sem szeret online vásárlásból rendelni valamit, és teljesen más terméket kapni. Ugyanez van a Web3-on is, de ez a biztonsági rés rontja a felhasználói élményt. Előfordulhat, hogy a felhasználó megváltoztatta vagy eltérő tartalommal rendelkezik az aláírási idő és a láncba való felvétel között. Ennek az az oka, hogy két különböző felhasználói művelet ugyanazt a hash-t adja vissza a „VerifyingPaymaster.getHash()” függvényből.
A VerifyingPaymaster.getHash() függvény néhány argumentumot vesz fel, mint például a „UserOperation”, amely egy struct, „validUnitl”, egy uint48 érték és egy validAfter egy másik uint48 érték. Az aláírási idő és a beillesztési idő közötti eltérő tartalmak kérdése befolyásolja a felhasználói élményt és az általános biztonságot. Nézzünk meg néhányat az általa felvetett aggályok közül.
- Azok a hálózaton kívüli aláírók, akik ABI-kódolású formátumban jelentkeznek be, miután megkapták a felhasználói műveleteket, vagy az aláírásra előkészített szerződéses integrációkkal rendelkező aláírók, sebezhetővé válnak.
- A hash módosítható úgy, hogy a vártnál kevesebb elemet fedjen le, ami ahhoz vezethet, hogy egyes statikus mezők, például az initCode stb., kikerülnek a hashből. Ez a kifizető szponzori aláírásainak szándékától eltérő felhasználást eredményezhet.
- A szabályok megsértését és megkerülését láthatjuk a userOp.initCode és a userOp.callData módosításával az aláírás megszerzése után. Ez lehetővé teszi, hogy a fizető natív tokenjét a gázmentes NFT-veréstől eltérő célokra használják fel.
Következtetés
A folyamatos fejlődés és fejlesztés során sok fantasztikus dolognak leszünk tanúi, és az ERC 4337 is ezek közé tartozik. Miközben a biztonság fejlesztése és fejlesztése olyasvalami, amiben soha nem köthetünk kompromisszumot. Lenyűgöző, hogy milyen gyorsan megtalálták a szabvány biztonsági réseit, és folyamatos kutatás-fejlesztés folyik a biztonság érdekében.
Fontos megjegyezni, hogy a Web3-ba építkező legnagyobb és legismertebb szervezetek is elkövethetnek biztonsági hibákat, és bizonyára a többi protokoll is elkövet. A folyamatos emelkedés Web3 incidensek az elmúlt néhány évben nyilvánvaló.
Az egyablakos megoldás, amely megvédi Önt, felhasználóit és protokollját az ilyen biztonsági fenyegetésektől, ellenőrzésre kerül. Mi, QuillAudits, az egyik vezető szolgáltató az intelligens szerződés-audit és a blokklánc-biztonság területén. Látogassa meg weboldalunkat, hogy többet megtudjon, és biztosítsa projektjét. És maradjon velünk, hogy még több ilyen informatív blogot élvezhessen
34 Nézetek
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- Platoblockchain. Web3 metaverzum intelligencia. Felerősített tudás. Hozzáférés itt.
- A jövő pénzverése – Adryenn Ashley. Hozzáférés itt.
- Forrás: https://blog.quillhash.com/2023/04/24/understanding-erc-4337-user-operation-packing-vulnerability/
- :is
- :nem
- 20
- 2023
- a
- Rólunk
- hozzáférés
- Fiók
- számla absztrakció
- Fiókok
- át
- mellett
- haladás
- Után
- Minden termék
- Is
- megváltozott
- an
- és a
- Másik
- VANNAK
- érv
- érvek
- AS
- Assembly
- At
- Kísérletek
- könyvvizsgálat
- könyvvizsgálat
- alapján
- BE
- mert
- válik
- hogy
- BEST
- között
- Legnagyobb
- blockchain
- Blockchain biztonság
- Blog
- megsértése
- Épület
- de
- by
- hívott
- TUD
- nem tud
- elfog
- Okoz
- okai
- lánc
- változik
- változó
- kód
- kombinálása
- hogyan
- kompromisszum
- aggodalmak
- zavaró
- konstrukció
- tartalom
- folyamatos
- szerződés
- szerződések
- kényelem
- tudott
- terjed
- teremt
- dátum
- meghatározott
- függ
- telepített
- leírni
- tervezett
- fejlesztése
- Fejlesztés
- különbség
- különböző
- megvitatni
- Divergencia
- do
- dinamikus
- Korai
- korai fázis
- hatások
- elemek
- élvez
- teljesen
- ERC-4337
- stb.
- Ethereum
- ETHEREUM MAINNET
- Még
- Minden
- példa
- kizárt
- várható
- tapasztalat
- feltárása
- Explorers
- szem
- megkönnyítését
- híres
- Jellemzők
- kevés
- mező
- Fields
- Találjon
- vezetéknév
- A
- formátum
- talált
- ból ből
- teljesen
- funkció
- funkciós
- működése
- általános
- kap
- szerzés
- adott
- Go
- megy
- megtörténik
- Kemény
- hash
- tördelő
- Legyen
- Hogyan
- HTTPS
- Hatás
- Hatások
- végrehajtás
- végrehajtási
- fontos
- in
- tartalmaz
- magában foglalja a
- Beleértve
- befogadás
- Egyénileg
- tájékoztató
- integrációk
- szándékozik
- szándékosan
- bele
- Bevezetés
- kérdés
- kérdések
- IT
- éppen
- kulcsok
- ismert
- nagy
- keresztnév
- legutolsó
- vezet
- TANUL
- mint
- korlátozás
- korlátozások
- Korlátozott
- néz
- készült
- mainnet
- csinál
- KÉSZÍT
- sok
- március
- max-width
- Lehet..
- eszközök
- Memory design
- módszer
- mód
- esetleg
- verése
- helytelen kezelése
- hiányzik
- hibákat
- módosított
- ellenőrzés
- több
- a legtöbb
- többszörös
- bennszülött
- Natív token
- hálózat
- Új
- NFT
- Most
- of
- on
- ONE
- online
- online vásárlás
- OP
- működés
- operatív
- Művelet
- or
- érdekében
- szervezetek
- Más
- Egyéb protokollok
- mi
- felett
- átfogó
- saját
- Csomag
- paraméter
- különösen
- alkatrészek
- Elmúlt
- jelenség
- Plató
- Platón adatintelligencia
- PlatoData
- lehetséges
- potenciális
- Készít
- magán
- Saját kulcsok
- Termékek
- program
- ingatlanait
- védelme
- protokoll
- protokollok
- ad
- feltéve,
- szolgáltatók
- célokra
- gyorsan
- Quillhash
- emelés
- ok
- fogadó
- tekintettel
- régiók
- szabályos
- felszabaduló
- bizalom
- képvisel
- képviselet
- képviselők
- kutatás
- kutatás és fejlesztés
- eredményez
- visszatérés
- Emelkedik
- Kockázat
- szabályok
- azonos
- rendszer
- Rész
- biztonság
- biztosított
- biztonság
- Biztonsági fenyegetések
- lát
- szegmensek
- szolgáltatás
- szolgáltatók
- Szolgáltatások
- beállítás
- számos
- Bevásárlás
- <p></p>
- aláírások
- aláírás
- egyszerre
- egyetlen
- okos
- okos szerződés
- Intelligens szerződések
- So
- SOL
- megoldások
- néhány
- valami
- Hely
- szponzorálás
- Színpad
- standard
- szabványok
- kezdet
- tartózkodás
- Még mindig
- benyújtása
- sikeres
- ilyen
- Támogatja
- biztosan
- tart
- mint
- hogy
- A
- azok
- Őket
- Ott.
- Ezek
- ők
- dolgok
- ezt
- azok
- fenyegetések
- idő
- nak nek
- jelképes
- tokenek
- is
- felső
- lebonyolít
- ügyleti
- Tranzakciók
- igaz
- típusok
- megértés
- felesleges
- Frissítések
- Frissítés
- fejlesztések
- használ
- használt
- használó
- User Experience
- Felhasználók
- ÉRVÉNYESÍT
- érték
- nagyon
- Megnézem
- Látogat
- sérülékenységek
- sebezhetőség
- Sebezhető
- pénztárca
- Pénztárcák
- volt
- we
- Web3
- weboldal
- JÓL
- jól ismert
- voltak
- Mit
- amikor
- ami
- míg
- miért
- lesz
- val vel
- tanú
- világ
- Rossz
- év
- te
- A te
- zephyrnet