Análisis profundo del ataque hacker a Poly Network: el rol de keeper del contrato EthCrossChainData fue alterado.

robot
Generación de resúmenes en curso

Análisis detallado del ataque de Hacker a Poly Network

Recientemente, el protocolo de interoperabilidad entre cadenas Poly Network sufrió un ataque de un Hacker, lo que generó una amplia atención. El equipo de seguridad realizó un análisis exhaustivo de este evento y determinó que los atacantes modificaron el rol de keeper del contrato EthCrossChainData mediante datos cuidadosamente elaborados, y no por la filtración de la clave privada del keeper como se había rumoreado anteriormente.

Ataque central

La clave del ataque radica en que la función verifyHeaderAndExecuteTx del contrato EthCrossChainManager puede ejecutar transacciones específicas entre cadenas a través de la función _executeCrossChainTx. Dado que el owner del contrato EthCrossChainData es el contrato EthCrossChainManager, este último puede llamar a la función putCurEpochConPubKeyBytes del contrato EthCrossChainData para modificar el keeper del contrato.

El atacante solo necesita pasar datos cuidadosamente diseñados a la función verifyHeaderAndExecuteTx, lo que permite que la función _executeCrossChainTx invoque la función putCurEpochConPubKeyBytes del contrato EthCrossChainData, cambiando así el rol de keeper a la dirección especificada por el atacante. Una vez completado el reemplazo de la dirección del rol de keeper, el atacante podrá construir transacciones a voluntad y extraer cualquier cantidad de fondos del contrato.

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 rol de keeper.

  2. A continuación, el hacker comenzó a llevar a cabo una serie de transacciones de ataque para extraer fondos del contrato.

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

  4. Métodos de ataque similares también se han implementado en la red de Ethereum, y el proceso es similar al ataque en BSC.

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 ingresados por el usuario a través de la función _executeCrossChainTx. El atacante explotó esta vulnerabilidad, construyendo datos específicos, logrando así cambiar el keeper del contrato EthCrossChainData a una dirección que controla, permitiendo la extracción ilegal de fondos del contrato.

Este evento resalta nuevamente la importancia de la auditoría de seguridad de los contratos inteligentes, especialmente en sistemas complejos que involucran operaciones entre cadenas y la gestión de roles clave. El equipo de desarrollo debería diseñar e implementar mecanismos de gestión de permisos para los contratos con mayor precaución, para evitar que se aprovechen vulnerabilidades de seguridad similares.

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
  • 4
  • Compartir
Comentar
0/400
ChainWanderingPoetvip
· hace14h
¿Te han hackeado de nuevo? ¿El contrato aún puede sostenerse?
Ver originalesResponder0
OfflineValidatorvip
· hace14h
Se ha descubierto otra vulnerabilidad.
Ver originalesResponder0
Rugpull幸存者vip
· hace15h
Otra vez fue golpeado en el suelo.
Ver originalesResponder0
airdrop_huntressvip
· hace15h
¿Otra vez un fallo en el contrato? ¿Así de simple?
Ver originalesResponder0
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)