Poly Network fue atacado por un Hacker: un fallo en el contrato provocó la modificación del keeper

robot
Generación de resúmenes en curso

Análisis del incidente de ataque del Hacker a Poly Network

Recientemente, el protocolo de interoperabilidad entre cadenas Poly Network sufrió un ataque de hacker, lo que generó una amplia atención. Según el análisis del equipo de seguridad, este ataque no fue causado por la filtración de la clave privada del keeper, sino que el atacante, a través de datos hábilmente construidos, aprovechó una vulnerabilidad del contrato para modificar la dirección del keeper del contrato EthCrossChainData.

Ataque central

La clave del ataque radica en la función verifyHeaderAndExecuteTx del contrato EthCrossChainManager. Esta función puede ejecutar transacciones específicas de cadena cruzada a través de la función _executeCrossChainTx. Dado que el propietario del contrato EthCrossChainData es el contrato EthCrossChainManager, este último tiene el derecho de llamar a la función putCurEpochConPubKeyBytes del contrato EthCrossChainData para cambiar el keeper.

Los atacantes aprovechan este mecanismo, pasando datos cuidadosamente diseñados a través de la función verifyHeaderAndExecuteTx, lo que hace que la función _executeCrossChainTx ejecute una llamada a la función putCurEpochConPubKeyBytes del contrato EthCrossChainData, cambiando así el rol de keeper a la dirección especificada por el atacante.

Proceso de ataque

  1. El atacante primero llama a la función putCurEpochConPubKeyBytes a través de la función verifyHeaderAndExecuteTx del contrato EthCrossChainManager, cambiando el keeper.

  2. Después de completar el reemplazo de la dirección del rol de keeper, el atacante podrá construir transacciones a su antojo y extraer cualquier cantidad de fondos del contrato.

  3. Después de completar el ataque, debido a que el keeper fue modificado, las transacciones normales de otros usuarios fueron rechazadas.

  4. Este modo de ataque no solo se implementó en la cadena BSC, también ocurrieron operaciones similares en la red de Ethereum.

Conclusión

La causa fundamental de este ataque radica en que el keeper del contrato EthCrossChainData puede ser modificado por el contrato EthCrossChainManager, y la función verifyHeaderAndExecuteTx del contrato EthCrossChainManager puede ejecutar los datos proporcionados por el usuario. Los atacantes aprovecharon esta falla de diseño modificando la dirección del keeper del contrato EthCrossChainData mediante la construcción de datos específicos, y no por la supuesta filtración de la clave privada del keeper.

Este evento resalta nuevamente la importancia del diseño de seguridad en los protocolos de cadena cruzada, así como los estrictos requisitos de gestión de permisos de contratos. También nos recuerda que, en el ecosistema blockchain, incluso las funciones que parecen inofensivas, si son mal utilizadas, pueden resultar en graves vulnerabilidades de seguridad.

Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • 5
  • Compartir
Comentar
0/400
LuckyBlindCatvip
· hace5h
Alguien más se está beneficiando de la situación.
Ver originalesResponder0
ServantOfSatoshivip
· 07-17 17:54
Y me he tumbado una y otra vez...
Ver originalesResponder0
FloorSweepervip
· 07-16 15:47
Es otra antigua tradición.
Ver originalesResponder0
ApeWithNoChainvip
· 07-16 15:38
Otro contrato ha sido arruinado~
Ver originalesResponder0
TeaTimeTradervip
· 07-16 15:30
Otra vez el keeper tiene problemas, tsk tsk.
Ver originalesResponder0
  • Anclado
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)