Tiempo de lectura: 5 minutos
El mundo de Web3 es un mundo de protocolos y estándares. Seguro que te has topado con varios estándares ERC. Algunos de los estándares ERC más famosos son 20 y 721, que son para tokens y NFT, respectivamente. Pero Web3 no se limita a eso.
Vemos actualizaciones periódicas y actualizaciones en Web3. Una de las últimas actualizaciones fue ERC 4337, implementada en Ethereum Mainnet en marzo de 2023. No todas las actualizaciones son exitosas de una sola vez; lo mismo ocurre con ERC 4337. En este blog, aprenderemos sobre las vulnerabilidades relacionadas con la sección Operación del usuario del estándar y su impacto. En primer lugar, comencemos con una breve introducción al estándar ERC 4337.
¿Qué es ERC 4337?
A diferencia de la red de Bitcoin, Ethereum admite contratos inteligentes en la cadena, lo que hace que Ethereum tenga dos tipos diferentes de cuentas, una transaccional o una cuenta operativa. Además de eso, los contratos inteligentes tienen su propio espacio, casi como una cuenta. Estos dos tipos de cuentas en Ethereum tienen sus propias funcionalidades.
La mayoría de las billeteras que funcionan con Ethereum son EOA, lo que significa las cuentas del usuario, no las de los contratos inteligentes. Este tipo de cuentas tienen sus propias limitaciones. Una limitación incluye la confianza exclusiva del usuario en las claves privadas para acceder a las cuentas y requerir todas las firmas para las transacciones. Estas limitaciones impulsaron la introducción de ERC 4337.
El ERC 4337 intenta proporcionar abstracción de cuenta al combinar lo mejor de las dos características de tipo de cuenta. Sí, EOA y cuentas de contrato inteligente. Esto es posible gracias a un solo contrato que puede realizar transacciones de tokens y crear contratos simultáneamente, y ERC 4337 es un estándar que facilita este nuevo e increíble avance.
¿Vulnerabilidad de empaquetado de UserOperation?
Todo acerca de este estándar y proyecto es increíble, pero ¿qué salió mal? Bueno, hubo un problema de implementación que resultó en hashes inconsistentes según el método utilizado para firmar. Esto conduce a conflictos de órdenes, particularmente hashes divergentes para las mismas UserOperations y hashes en colisión para diferentes UserOperations.
Las regiones afectadas se limitaron a dos vulnerabilidades, la vulnerabilidad de empaque de EntryPoint y la vulnerabilidad de empaque de VerifyingPaymaster. Más sobre eso más adelante. Primero tengamos una comprensión general, y luego aprenderemos sobre ellos individualmente.
Echemos un vistazo a UserOperation.sol: -
Verá que el parámetro UserOperation, un Calldata, se pasa como argumento a la función de paquete. Exploremos la estructura: -
Estos son los campos que lleva la estructura UserOperation. Para copiar esta gran parte de Calldata en la memoria, los segmentos de código usan ensamblador. Algunos métodos de los contratos pretenden capturar todos los campos de la UserOperation, incluidos los campos de tamaño variable, también llamados campos dinámicos en la codificación ABI. Por ejemplo, la codificación dinámica en esta estructura es 'initCode', 'callData' y 'paymasterAndData'.
Algunos métodos no pueden incluir 'paymasterAndData' porque ese campo aún no está definido o declarado. Los métodos usan el campo de conveniencia '.offset' proporcionado a los tipos de datos dinámicos para hacer eso. Pero los contratos que usan argumentos codificados en ABI no validan el orden en que se definen los campos y la validez de las compensaciones. Es posible construir una representación válida de las operaciones del usuario en Calldata con propiedades hash inusuales.
Vulnerabilidad de embalaje de EntryPoint
El problema con UserOperation también afecta a algunas de las otras partes del estándar, la vulnerabilidad de EntryPoint Packing es una de ellas. Cuando se usa un esquema hash diferente entre el EntryPoint y el contrato de billetera o se usa una codificación de operación de usuario no estándar, vemos una divergencia hash.
El riesgo emerge como EntryPoint. Ahora, una sola operación de usuario podría representarse mediante múltiples 'hash de operación de usuario', y el mismo 'hash de operación de usuario' podría representar múltiples operaciones de usuario. Ahora bien, esto puede crear algunos efectos no deseados. Analicemos el impacto que puede tener.
El Erc 4337 aún se encuentra en una etapa muy temprana, ya que se lanzó en marzo, por lo que el impacto de estas vulnerabilidades no se conoce por completo. Es difícil describir el impacto potencial a vista de pájaro. Sobre eso, el impacto depende de la implementación de paquetes, indexadores, exploradores de operaciones de usuario y otros servicios fuera de la cadena. Veamos algunos de los problemas que causa esta vulnerabilidad.
- Esto puede causar una experiencia confusa para el usuario porque el hash de la operación del usuario puede cambiar entre el momento del envío y el momento de la inclusión. Este fenómeno es desconocido para la mayoría de las billeteras, por lo que es posible que no tengan en cuenta esa diferencia.
- Las billeteras se pueden modificar y diseñar para evitar intencionalmente la indexación configurando todos los hashes de operación del usuario para que sean iguales.
- Podemos ver un mal manejo de datos y claves si un servicio fuera de la cadena que monitorea la inclusión de la operación del usuario pierde la inclusión de una operación de usuario determinada.
Verificación de la vulnerabilidad de embalaje de Paymaster
A nadie le gusta pedir algo de compras en línea y recibir un producto completamente diferente. Lo mismo ocurre en Web3, pero esta vulnerabilidad degrada la experiencia del usuario. Un usuario puede tener contenidos alterados o diferentes entre el momento de la firma y la inclusión en la cadena. Y la razón por la que esto sucede es que dos operaciones de usuario diferentes devuelven el mismo hash de la función 'VerificandoPaymaster.getHash()'.
La función VerifyingPaymaster.getHash() toma algunos argumentos como 'UserOperation', que es una estructura, 'validUnitl', un valor uint48 y validAfter otro valor uint48. El problema de los diferentes contenidos entre el tiempo de firma y el tiempo de inclusión afecta la experiencia del usuario y la seguridad general. Analicemos algunas de las preocupaciones que plantea.
- Los firmantes fuera de la cadena que firman en un formato codificado ABI después de recibir las operaciones del usuario o los firmantes con integraciones de contrato para preparar los datos para la firma se vuelven vulnerables.
- El hash se puede modificar para cubrir menos elementos de los esperados, lo que puede provocar que algunos de los campos estáticos, como initCode, etc., se excluyan del hash. Esto puede resultar en un uso diferente al previsto para las firmas de patrocinio del pagador.
- Podemos ver una infracción y eludir las reglas cambiando userOp.initCode y userOp.callData después de obtener una firma. Esto permitirá que el token nativo del pagador se use para fines distintos a la acuñación de NFT sin gas.
Conclusión
Con el constante avance y desarrollo, seremos testigos de muchas cosas increíbles, y ERC 4337 es una de ellas. Si bien el desarrollo y el avance de la seguridad es algo que nunca podemos comprometer. Es increíble notar lo rápido que se encontraron las vulnerabilidades en el estándar, y se están llevando a cabo investigaciones y desarrollos continuos para hacerlo seguro.
Es importante tener en cuenta que incluso algunas de las organizaciones más grandes y conocidas que se basan en Web3 pueden cometer errores relacionados con la seguridad, y seguramente los otros protocolos también los cometen. El aumento continuo de Incidencias web3 en los últimos años es evidente.
La solución integral para protegerlo a usted, a sus usuarios y a su protocolo de tales amenazas de seguridad es someterse a una auditoría. Nosotros, QuillAudits, somos uno de los principales proveedores de servicios en auditoría de contratos inteligentes y seguridad de blockchain. Visite nuestro sitio web para obtener más información y asegurar su proyecto. Y estad atentos para disfrutar de más blogs informativos de este tipo.
34 Vistas
- Distribución de relaciones públicas y contenido potenciado por SEO. Consiga amplificado hoy.
- Platoblockchain. Inteligencia del Metaverso Web3. Conocimiento amplificado. Accede Aquí.
- Acuñando el futuro con Adryenn Ashley. Accede Aquí.
- Fuente: https://blog.quillhash.com/2023/04/24/understanding-erc-4337-user-operation-packing-vulnerability/
- :es
- :no
- 20
- 2023
- a
- Nuestra Empresa
- de la máquina
- Mi Cuenta
- abstracción de cuenta
- Cuentas
- a través de
- adición
- avance
- Después
- Todos
- también
- alterado
- an
- y
- Otra
- somos
- argumento
- argumentos
- AS
- Asamblea
- At
- Los intentos
- auditoría
- auditoría
- basado
- BE
- porque
- a las que has recomendado
- "Ser"
- MEJOR
- entre
- Mayor
- blockchain
- Blockchain security
- Blog
- incumplimiento
- Construir la
- pero
- by
- , que son
- PUEDEN
- no puede
- capturar
- Causa
- causas
- cadena
- el cambio
- cambio
- código
- combinar
- cómo
- compromiso
- Inquietudes
- confuso
- construir
- contenido
- continuo
- contrato
- contratos
- comodidad
- podría
- Protectora
- Para crear
- datos
- se define
- depende
- desplegado
- describir
- diseñado
- el desarrollo
- Desarrollo
- un cambio
- una experiencia diferente
- discutir
- Divergencia
- do
- lugar de trabajo dinámico
- Temprano en la
- Etapa temprana
- los efectos
- elementos
- disfrutando
- enteramente
- ERC-4337
- etc.
- Etereum
- RED PRINCIPAL ETHEREUM
- Incluso
- Cada
- ejemplo
- excluidos
- esperado
- experience
- explorar
- Exploradores
- ojos
- facilitando
- famoso
- Caracteristicas
- pocos
- campo
- Terrenos
- Encuentre
- Nombre
- formato
- encontrado
- Desde
- completamente
- función
- funcionalidades
- funcionamiento
- General
- obtener
- conseguir
- dado
- Go
- va
- que sucede
- Difícil
- hachís
- Hashing
- Tienen
- Cómo
- HTTPS
- Impacto
- Impactos
- implementación
- implementación
- importante
- in
- incluir
- incluye
- Incluye
- inclusión
- Individualmente
- informativo
- integraciones
- la intención de
- intencionalmente
- dentro
- Introducción
- cuestiones
- IT
- solo
- claves
- conocido
- large
- Apellido
- más reciente
- Lead
- APRENDE:
- como
- la limitación
- limitaciones
- Limitada
- Mira
- hecho
- mainnet
- para lograr
- HACE
- muchos
- Marzo
- max-ancho
- Puede..
- significa
- Salud Cerebral
- Método
- métodos
- podría
- acuñación
- mal manejo
- extraña
- errores
- modificado
- monitoreo
- más,
- MEJOR DE TU
- múltiples
- nativo
- Token nativo
- del sistema,
- Nuevo
- NFT
- ahora
- of
- on
- ONE
- en línea
- las compras en línea
- OP
- Inteligente
- operativos.
- Operaciones
- or
- solicite
- Organización
- Otro
- Otros protocolos
- nuestros
- Más de
- total
- EL DESARROLLADOR
- .
- parámetro
- particularmente
- partes
- pasado
- un fenómeno mundial
- Platón
- Inteligencia de datos de Platón
- PlatónDatos
- posible
- posible
- Preparar
- privada
- Llaves privadas
- Producto
- proyecto
- propiedades
- proteger
- protocolo
- protocolos
- proporcionar
- previsto
- los proveedores
- fines
- con rapidez
- hachís
- plantea
- razón
- aprovecha
- con respecto a
- regiones
- regular
- liberado
- dependencia
- representar
- representación
- representado
- la investigación
- la investigación y el desarrollo
- resultado
- volvemos
- Subir
- Riesgo
- reglas
- mismo
- esquema
- Sección
- seguro
- asegurado
- EN LINEA
- Las amenazas de seguridad
- ver
- segmentos
- de coches
- proveedores de servicios
- Servicios
- pólipo
- Varios
- Compras
- firmar
- Firmas
- firma
- simultáneamente
- soltero
- inteligente
- contrato inteligente
- Contratos Inteligentes
- So
- SOL
- a medida
- algo
- algo
- Espacio
- patrocinio
- Etapa
- estándar
- estándares de salud
- comienzo
- quedarse
- Sin embargo
- enviarlo a consideración
- exitosos
- tal
- soportes
- seguramente
- toma
- que
- esa
- La
- su
- Les
- Ahí.
- Estas
- ellos
- cosas
- así
- aquellos
- amenazas
- equipo
- a
- ficha
- Tokens
- demasiado
- parte superior
- tramitar
- transaccional
- Transacciones
- verdadero
- tipos
- comprensión
- no deseado
- Actualizar
- Actualizaciones
- actualizaciones
- utilizan el
- usado
- Usuario
- experiencia como usuario
- usuarios
- VALIDAR
- propuesta de
- muy
- Ver
- Visite
- Vulnerabilidades
- vulnerabilidad
- Vulnerable
- Billetera
- Carteras
- fue
- we
- Web3
- Página web
- WELL
- bien conocido
- tuvieron
- ¿
- cuando
- que
- mientras
- porque
- seguirá
- Testigo
- mundo
- Mal
- años
- Usted
- tú
- zephyrnet