Tempo per leggere: 5 verbale
Il mondo di Web3 è un mondo di protocolli e standard. Sicuramente devi esserti imbattuto in diversi standard ERC. Alcuni degli standard ERC più famosi sono 20 e 721, rispettivamente per token e NFT. Ma Web3 non si limita a questo.
Vediamo aggiornamenti e aggiornamenti regolari in Web3. Uno degli ultimi aggiornamenti è stato ERC 4337, implementato su Ethereum Mainnet nel marzo 2023. Non tutti gli aggiornamenti hanno successo in una volta sola; lo stesso vale per ERC 4337. In questo blog, conosceremo le vulnerabilità relative alla sezione User Operation dello standard e il loro impatto. Innanzitutto iniziamo con una breve introduzione allo standard ERC 4337.
Che cos'è l'ERC 4337?
A differenza della rete di Bitcoin, Ethereum supporta i contratti intelligenti sulla catena, il che fa sì che Ethereum abbia due diversi tipi di account, uno transazionale o un account operativo. Inoltre, gli smart contract hanno il loro spazio, quasi come un account. Questi due tipi di account in Ethereum hanno le proprie funzionalità.
La maggior parte dei portafogli che funzionano con Ethereum sono EOA, il che significa gli account dell'utente, non quelli del contratto intelligente. Questo tipo di account ha i propri limiti. Una limitazione include l'unico affidamento dell'utente sulle chiavi private per accedere agli account e la richiesta di tutte le firme per le transazioni. Queste limitazioni hanno portato all'introduzione di ERC 4337.
L'ERC 4337 tenta di fornire l'astrazione dell'account combinando la migliore delle due funzionalità del tipo di account. Sì, account EOA e smart contract. Ciò è reso possibile da un singolo contratto che può effettuare transazioni di token e creare contratti contemporaneamente, ed ERC 4337 è uno standard che facilita questo nuovo fantastico progresso.
Vulnerabilità del pacchetto UserOperation?
Tutto ciò che riguarda questo standard e questo progetto è fantastico, ma cosa è andato storto? Ebbene, si è verificato un problema di implementazione che ha provocato hash incoerenti in base al metodo utilizzato per firmare. Ciò ha portato a conflitti di ordini, in particolare hash divergenti per le stesse UserOperations e hash in collisione per UserOperations diverse.
Le regioni interessate erano limitate a due vulnerabilità, la vulnerabilità di imballaggio EntryPoint e la vulnerabilità di imballaggio VerifyingPaymaster. Ne parleremo più avanti. Diamo prima una comprensione generale e poi impareremo a conoscerli individualmente.
Diamo un'occhiata a UserOperation.sol: -
Si vede il parametro UserOperation, un Calldata, che viene passato come argomento alla funzione pack. Esploriamo la struttura: -
Questi sono i campi contenuti nella struttura UserOperation. Per copiare questa grande porzione di Calldata in memoria, i segmenti di codice utilizzano l'assembly. Alcuni metodi dei contratti intendono catturare tutti i campi della UserOperation, inclusi i campi a dimensione variabile, chiamati anche campi dinamici nella codifica ABI. Ad esempio, la codifica dinamica in questa struttura è "initCode", "callData" e "paymasterAndData".
Alcuni metodi non possono includere 'paymasterAndData' perché quel campo non è ancora definito o dichiarato. I metodi utilizzano il campo di convenienza ".offset" fornito ai tipi di dati dinamici per farlo. Ma i contratti che utilizzano argomenti con codifica ABI non convalidano l'ordine in cui i campi sono definiti e la validità degli offset. È possibile costruire una rappresentazione valida delle operazioni dell'utente in Calldata con proprietà hash insolite.
Vulnerabilità dell'imballaggio EntryPoint
Il problema con UserOperation riguarda anche alcune delle altre parti dello standard, la vulnerabilità EntryPoint Packing è una di quelle. Quando viene utilizzato uno schema di hashing diverso tra l'EntryPoint e il contratto del portafoglio o viene utilizzata una codifica dell'operazione dell'utente non standard, vediamo la divergenza dell'hash.
Il rischio emerge come EntryPoint. Ora una singola operazione utente potrebbe essere rappresentata da più "user op hash" e lo stesso "user op hash" potrebbe rappresentare più operazioni utente. Ora questo può creare alcuni effetti indesiderati. Parliamo dell'impatto che può avere.
L'Erc 4337 è ancora in una fase molto iniziale, poiché è stato appena rilasciato a marzo, quindi l'impatto di queste vulnerabilità non è completamente noto. È difficile descrivere il potenziale impatto da una vista a volo d'uccello. Inoltre, l'impatto dipende dall'implementazione di bundler, indicizzatori, esploratori di operazioni utente e altri servizi off-chain. Diamo un'occhiata ad alcuni dei problemi causati da questa vulnerabilità.
- Ciò può causare un'esperienza confusa per l'utente perché l'hash dell'operazione dell'utente può cambiare tra il tempo di invio e quello di inclusione. Questo fenomeno è sconosciuto alla maggior parte dei portafogli, quindi potrebbero non tenere conto di questa differenza.
- I portafogli possono essere modificati e progettati per evitare intenzionalmente l'indicizzazione impostando tutti gli hash delle operazioni dell'utente in modo che siano gli stessi.
- Possiamo vedere una cattiva gestione di dati e chiavi se un servizio off-chain che monitora l'inclusione dell'operazione dell'utente manca l'inclusione di una determinata operazione dell'utente.
Verifica della vulnerabilità dell'imballaggio di Paymaster
A nessuno piace ordinare qualcosa dallo shopping online e ricevere un prodotto completamente diverso. Lo stesso vale per Web3, ma questa vulnerabilità degrada l'esperienza dell'utente. Un utente potrebbe avere contenuti alterati o diversi tra il momento della firma e l'inserimento nella catena. E il motivo per cui ciò accade è che due diverse operazioni utente restituiscono lo stesso hash dalla funzione "VerifyingPaymaster.getHash()".
La funzione VerifyingPaymaster.getHash() accetta alcuni argomenti come 'UserOperation', che è una struct, 'validUnitl', un valore uint48 e un validAfter un altro valore uint48. Il problema dei diversi contenuti tra tempo di firma e tempo di inclusione influisce sull'esperienza dell'utente e sulla sicurezza complessiva. Discutiamo alcune delle preoccupazioni che solleva.
- I firmatari offchain che accedono in un formato con codifica ABI dopo aver ricevuto le operazioni degli utenti o i firmatari con integrazioni contrattuali per preparare i dati per la firma diventano vulnerabili.
- L'hash può essere modificato per coprire meno elementi del previsto, il che può portare all'esclusione dall'hash di alcuni campi statici, come initCode ecc. Ciò può comportare un uso diverso da quello previsto per le firme di sponsorizzazione del Paymaster.
- Possiamo vedere una violazione e aggirare le regole modificando userOp.initCode e userOp.callData dopo aver ottenuto una firma. Ciò consentirà di utilizzare il token nativo del paymaster per scopi diversi dal conio di NFT senza gas.
Conclusione
Con il continuo progresso e sviluppo, assisteremo a molte cose fantastiche e ERC 4337 è una di queste. Mentre sviluppare e far progredire la sicurezza è qualcosa che non possiamo mai scendere a compromessi. È fantastico notare quanto velocemente sono state trovate le vulnerabilità nello standard e vengono condotte continue ricerche e sviluppi per renderlo sicuro.
È importante notare che anche alcune delle organizzazioni più grandi e conosciute che costruiscono in Web3 possono commettere errori relativi alla sicurezza, e sicuramente li fanno anche gli altri protocolli. La continua ascesa Incidenti Web3 negli ultimi anni è evidente.
La soluzione one-stop per proteggere te, i tuoi utenti e il tuo protocollo da tali minacce alla sicurezza richiede un controllo. Noi di QuillAudits, siamo uno dei migliori fornitori di servizi nel controllo dei contratti intelligenti e nella sicurezza blockchain, visitate il nostro sito Web per saperne di più e mettere al sicuro il vostro progetto. E rimanete sintonizzati per godervi altri blog informativi
34 Visualizzazioni
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- Platoblockchain. Web3 Metaverse Intelligence. Conoscenza amplificata. Accedi qui.
- Coniare il futuro con Adryenn Ashley. Accedi qui.
- Fonte: https://blog.quillhash.com/2023/04/24/understanding-erc-4337-user-operation-packing-vulnerability/
- :È
- :non
- 20
- 2023
- a
- WRI
- accesso
- Il mio account
- astrazione del conto
- conti
- operanti in
- aggiunta
- avanzamento
- Dopo shavasana, sedersi in silenzio; saluti;
- Tutti
- anche
- alterato
- an
- ed
- Un altro
- SONO
- argomento
- argomenti
- AS
- montaggio
- At
- Tentativi
- revisione
- revisione
- basato
- BE
- perché
- diventare
- essendo
- MIGLIORE
- fra
- Maggiore
- blockchain
- Sicurezza di Blockchain
- Blog
- violazione
- Costruzione
- ma
- by
- detto
- Materiale
- non può
- catturare
- Causare
- cause
- catena
- il cambiamento
- cambiando
- codice
- combinando
- Venire
- compromesso
- preoccupazioni
- confusione
- costruire
- testuali
- continuo
- contratto
- contratti
- comodità
- potuto
- coprire
- creare
- dati
- definito
- dipende
- schierato
- descrivere
- progettato
- in via di sviluppo
- Mercato
- differenza
- diverso
- discutere
- Divergenza
- do
- dinamico
- Presto
- fase iniziale
- effetti
- elementi
- godere
- interamente
- ERC-4337
- eccetera
- Ethereum
- RETE PRINCIPALE DI ETHEREUM
- Anche
- Ogni
- esempio
- esclusi
- previsto
- esperienza
- esplora
- Explorers
- occhio
- facilitando
- famoso
- Caratteristiche
- pochi
- campo
- campi
- Trovate
- Nome
- Nel
- formato
- essere trovato
- da
- completamente
- function
- funzionalità
- funzionamento
- Generale
- ottenere
- ottenere
- dato
- Go
- andando
- accade
- Hard
- hash
- hashing
- Avere
- Come
- HTTPS
- Impact
- impatti
- implementazione
- Implementazione
- importante
- in
- includere
- inclusi
- Compreso
- inclusione
- Individualmente
- informativo
- integrazioni
- intendono
- apposta
- ai miglioramenti
- Introduzione
- problema
- sicurezza
- IT
- ad appena
- Tasti
- conosciuto
- grandi
- Cognome
- con i più recenti
- portare
- IMPARARE
- piace
- limitazione
- limiti
- Limitato
- Guarda
- fatto
- mainnet
- make
- FA
- molti
- Marzo
- max-width
- Maggio..
- si intende
- Memorie
- metodo
- metodi
- forza
- coniazione
- maltrattamento
- miss
- errori
- modificato
- monitoraggio
- Scopri di più
- maggior parte
- multiplo
- nativo
- Token nativo
- Rete
- New
- NFT
- adesso
- of
- on
- ONE
- online
- acquisti online
- OP
- operazione
- operativa
- Operazioni
- or
- minimo
- Organizzazioni
- Altro
- Altri protocolli
- nostro
- ancora
- complessivo
- proprio
- PACK
- parametro
- particolarmente
- Ricambi
- Passato
- fenomeno
- Platone
- Platone Data Intelligence
- PlatoneDati
- possibile
- potenziale
- Preparare
- un bagno
- Chiavi private
- Prodotto
- progetto
- proprietà
- protegge
- protocollo
- protocolli
- fornire
- purché
- fornitori
- fini
- rapidamente
- quillhash
- solleva
- ragione
- ricevente
- per quanto riguarda
- regioni
- Basic
- rilasciato
- fiducia
- rappresentare
- rappresentazione
- rappresentato
- riparazioni
- ricerca e sviluppo
- colpevole
- ritorno
- Aumento
- Rischio
- norme
- stesso
- schema
- Sezione
- sicuro
- assicurato
- problemi di
- Minacce alla sicurezza
- vedere
- segmenti
- servizio
- fornitori di servizi
- Servizi
- regolazione
- alcuni
- Shopping
- segno
- firme
- firma
- contemporaneamente
- singolo
- smart
- smart contract
- Smart Contract
- So
- SOL
- soluzione
- alcuni
- qualcosa
- lo spazio
- sponsorizzazione
- Stage
- Standard
- standard
- inizia a
- soggiorno
- Ancora
- sottomissione
- di successo
- tale
- supporti
- certamente
- prende
- di
- che
- Il
- loro
- Li
- Là.
- Strumenti Bowman per analizzare le seguenti finiture:
- di
- cose
- questo
- quelli
- minacce
- tempo
- a
- token
- Tokens
- pure
- top
- transazione
- transazionale
- Le transazioni
- vero
- Tipi di
- e una comprensione reciproca
- non desiderato
- Aggiornanento
- Aggiornamenti
- Upgrades
- uso
- utilizzato
- Utente
- Esperienza da Utente
- utenti
- CONVALIDARE
- APPREZZIAMO
- molto
- Visualizza
- Visita
- vulnerabilità
- vulnerabilità
- Vulnerabile
- Portafoglio
- Portafogli
- Prima
- we
- Web3
- Sito web
- WELL
- noto
- sono stati
- Che
- quando
- quale
- while
- perché
- volere
- con
- testimoniare
- mondo
- Wrong
- anni
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro