Precio de Bitcoin Precio de Bitcoin
Ctrl+D Precio de Bitcoin
ads

Primera versión | Análisis de vulnerabilidad de riesgo centralizado del proyecto Keep3r

Author:

Time:

El 20 de noviembre de 2020, hora de Beijing, aparecieron algunas capturas de pantalla en la comunidad de Telegram que afirmaban que Keep3rLink aceptaba el servicio de auditoría de CertiK.

El mismo día, el equipo de investigación de seguridad de CertiK descubrió que el proyecto Keep3r tenía riesgos de seguridad centralizados.

El propietario del proyecto tiene demasiada autoridad para aumentar el límite de recompensas permitidas, por lo que se puede enviar cualquier cantidad de recompensas a cualquier participante y se puede acuñar cualquier cantidad de tokens a cualquier dirección.  

Guardar3rV1:

● Código Dirección:

https://github.com/keep3r-network/keep3r.network/blob/master/contracts/Keep3r.sol

● Dirección de implementación:

https://etherscan.io/address/0x1cEB5cB57C4D4E2b2433641b95Dd330A33185A44

Ayudante de Keep3rV1:

● Código de dirección:

https://github.com/keep3r-network/keep3r.network/blob/master/contracts/Keep3rV1Helper.sol

https://etherscan.io/address/0x93747c4260e64507a213b4016e1d435c9928617f

Como se muestra en la Figura 1 a continuación, el contrato inteligente Keep3rV1 del proyecto Keep3r define dos roles: gobierno y gobierno pendiente.

PeckShield: Discord de Aiternate ha sido atacado, los usuarios no deben hacer clic en ningún mensaje o enlace privado: el 6 de junio, PeckShield alertó que el proyecto NFT Discord de Aiternate ha sido atacado, no haga clic en ningún mensaje o enlace privado de Discord. [2022/6/6 4:05:02]

La función setGovernance() en la línea 1178 permite que el rol de gobierno actual establezca el rol de gobierno pendiente en cualquier dirección dada _governance.

Al mismo tiempo, en la función acceptGovernance() en la línea 1186, la función de gobierno pendiente actual puede autorizarse a sí misma como el rol de gobierno.

Por lo tanto, lógicamente, el rol de gobierno y el rol de gobierno pendiente se pueden autorizar de forma cíclica, y no hay ningún evento para recordar a los inversores el cambio del rol de gobierno y el rol de gobierno pendiente.

En este punto, el propietario del proyecto puede configurar libremente la dirección con dos funciones.

Figura 1: gobernanza, función de dirección pendiente y función de configuración de KPRH setKeep3rHelper()

Una vez que tenga el rol de gobierno, puede usar la función setKeep3rHelper() en la línea 1169 en la Figura 1 para modificar el contrato inteligente Keep3rHelper al que apunta el KPRH actual.

EOS supera la marca de $ 3 con un aumento intradiario del 4,85 %: según los datos de Huobi Global, EOS ha subido a corto plazo y superó la marca de los $ 3. Ahora se informa en $ 3,0001, con un aumento intradiario del 4,85 %. El mercado fluctúa mucho, así que haga un buen trabajo en el control de riesgos. [2021/1/31 18:29:27]

Después de la modificación, es muy probable que se modifique la implementación específica de KPRH.getQuoteLimit() en la línea 1076 de la Figura 2, y luego se devolverán diferentes valores de retorno al contrato Keep3rV1 que llamó a la función.

Figura 2: La función workReceipt() que recompensa a un guardián del usuario

Si el propietario del proyecto considera lanzar un ataque, dado que tiene el rol de gobierno, primero puede llamar a la función addKPRCredit() en la Figura 3.

En la línea 916, asigne cualquier cantidad de créditos a la dirección de un determinado trabajo (suponiendo que la dirección del trabajo es ADDR_A, que está controlada por el propietario del proyecto) (suponiendo que la cantidad de créditos otorgada es CREDIT_A, que está asociada con DIRECCIÓN_A).

Luego puede implementar un nuevo contrato inteligente Keep3rHelper y luego definir el método getQuoteLimit en el contrato inteligente para devolver el valor máximo de la variable de tipo uint.

Luego, el propietario del proyecto puede usar la dirección de ADDR_A para llamar a la función setKeep3rHelper() en la Figura 1 y apuntar el valor KPRH al contrato inteligente Keep3rHelper dado.

Finalmente llame a la función workReceipt() en la Figura 2, porque las 1076 líneas de código deben pasar porque la función KPRH.getQuoteLimit() está especificada para devolver el valor máximo.

En la línea 1077, dado que el propietario del proyecto usa la dirección de ADDR_A para realizar una llamada, la cantidad de créditos que posee en el contrato inteligente es CRÉDITO_A, por lo que la cantidad puede ser cualquier valor ligeramente menor que CREDIT_A.

Después de pasar la línea 1077, el monto de la recompensa se entrega a la dirección del guardián.

Finalmente, el guardián puede llamar a la función de transferencia ERC20 dentro del contrato para transferir las recompensas obtenidas a la dirección proporcionada por él mismo para completar el ataque.

Figura 3: La función addKPRCredit() para aumentar la cantidad de créditos para un trabajo

Además de las lagunas de riesgo de centralización descritas anteriormente, mint() en la Figura 4 permite acuñar una cantidad arbitraria de tokens para la dirección del rol de gobierno.

La dirección del rol de gobierno se puede establecer a través de la función setGovernance() y acceptGovernance() en la Figura 1.

También significa que mientras el administrador del proyecto tenga el rol de gobierno, puede acuñar cualquier cantidad de tokens en cualquier dirección restableciendo la dirección del rol de gobierno.

Figura 4: La función mint() que permite que el rol de gobierno acuñe tokens a voluntad

Al consultar los datos del contrato inteligente Keep3rV1 en etherscan, la Figura 5 muestra que la dirección del propietario de Keep3rV1 es 0x2d407ddb06311396fe14d4b49da5f0471447d45c.

Al mismo tiempo, como se muestra en la Figura 6, la dirección del rol de gobierno a las 11 a. m., hora de Beijing, el 20 de noviembre también es 0x2d407ddb06311396fe14d4b49da5f0471447d45c.

Se puede saber que el propietario del proyecto tiene la autoridad de la función de gobierno, por lo que tiene la autoridad para atacar y beneficiarse a través de las vulnerabilidades centralizadas mencionadas anteriormente.

Figura 5: Propietario del contrato inteligente Keep3rV1 y otra información relacionada

Figura 6: Dirección del rol de gobierno

Como la tecnología central disruptiva de la era, blockchain se ha utilizado ampliamente en varios campos, y los riesgos de seguridad ocultos bajo los beneficios y beneficios no deben ignorarse.

Las auditorías de seguridad ahora son estándar para proyectos de alta calidad.

Si el proyecto no ha sido auditado, para el usuario, el comportamiento de inversión debe ser extremadamente cauteloso; para la parte del proyecto, es necesario preparar materiales relevantes y encontrar una empresa auditora profesional y de buena reputación para auditar.

Si el proyecto ha sido auditado, es necesario tratar de comprender los antecedentes de la empresa auditora y los indicadores en su informe de auditoría.

CertiK utiliza herramientas de verificación formal para demostrar la confiabilidad de los contratos inteligentes. Los expertos en auditoría interna de la compañía utilizarán una variedad de métodos de prueba de software, incluida la verificación formal, combinados con un equipo de hackers de sombrero blanco de primera clase para proporcionar pruebas de penetración profesionales, a fin de garantizar que el proyecto desde el front-end hasta la seguridad general de los contratos inteligentes.

Recientemente, algunas partes del proyecto emitieron informes de auditoría falsos bajo la apariencia de CertiK.

Tags:

Intercambio de bitcoins
Golden Outpost | OKB se dispara un 19% ¿OKEx está a punto de reanudar los retiros?

OKEx suspende la crisis de retiro y puede ver el amanecer de una solución en un futuro cercano.Los datos de OKEx muestran que la moneda de la plataforma OKEx, OKB, comenzó a subir desde 4.

Observación dorada | Los datos muestran que BCHN está en una posición dominante cerca de la bifurcación dura.

Todavía quedan 3 días hasta el hard fork de BCH.Desde que Bitcoin Cash BCH anunció a principios de este mes que completará la bifurcación dura el 15 de noviembre, 15.

Antes de la bifurcación dura, se transfirieron más de 1,5 millones de BCH al intercambio, o puede haber presión de venta

Los titulares de BCH están luchando por transferir sus tokens a los intercambios antes de la bifurcación dura del 15 de noviembre.Según Chainalysis.

Primera versión | Análisis de vulnerabilidad de riesgo centralizado del proyecto Keep3r

El 20 de noviembre de 2020, hora de Beijing, aparecieron algunas capturas de pantalla en la comunidad de Telegram que afirmaban que Keep3rLink aceptaba el servicio de auditoría de CertiK.El mismo día.

Golden Observation 丨 Hablando sobre la forma de cifrar la colección de arte

Golden Finance Blockchain Noticias del 23 de noviembre Con el desarrollo de la tecnología blockchain.

Exclusivo de Forbes: Chainalysis, una conocida agencia de investigación de bitcoins, ha recibido $100 millones en financiamiento

Un nuevo unicornio de la industria de bitcoin está en el horizonte, y después de días de rumores en torno a la industria de las criptomonedas.

ETH2.0: el compromiso de PoS tiene un profundo impacto en ETH

Con el lanzamiento del contrato de almacenamiento de Ethereum.

ads