- El pirata informático encargado del exploit a Platypus sólo se llevó una pequeña parte de los fondos robados inicialmente.
- La empresa de seguridad Blockchain BlockSec pudo aprovechar una laguna en el contrato del atacante y recuperar 2,4 millones de monedas en dólares estadounidenses en la dirección de Platypus con una implementación de proxy de actualización.
Después de que el protocolo Platypus fuera hackeado ayer, al menos 2,4 millones de USDC fueron devueltos a la plataforma explotada con la ayuda de la firma de seguridad blockchain BlockSec.
De los casi 9,1 millones de dólares en fondos robados de Platypus, se reveló que el atacante sólo pudo cobrar 270.000 dólares, según MetalSleuth, una herramienta de visualización de Blocksec.
Unos 8,5 millones de dólares de los fondos robados están congelados en el contrato al que fueron transferidos, y otros 380.000 dólares de un segundo intento de explotación fueron enviados accidentalmente de vuelta a Aave, según muestran los datos de la cadena.
La recuperación de una parte de los fondos robados para Platypus giró en torno al plan de BlockSec de aprovechar una laguna en el contrato del atacante.
«Aprovechando esta laguna, el proyecto puede transferir los fondos del contrato del atacante a la cuenta del proyecto», explicó al portal The Block Yajin Zhou, cofundador de BlockSec.
«El proyecto recuperó 2 millones de dólares utilizando la prueba de concepto proporcionada por nosotros. Esto fue para recuperar los fondos en el contrato del atacante», según Zhou, quien añadió que unos 8 millones de dólares en activos quedaron varados ya que el contrato del atacante carece de una función de transferencia.
Recuperar el hackeo
Para recuperar los fondos, BlockSec utilizó una función de devolución de llamada en el contrato del atacante.
«El ataque se lanzó a través de la interfaz de devolución de llamada de préstamo flash en el contrato de ataque. Esta función de devolución de llamada no tiene control de acceso. Y durante esta función de devolución de llamada, el atacante hardcoded la lógica para aprobar USDC al contrato del proyecto (que es un proxy)», señaló Zhou.
«Así, el proyecto puede invocar primero la función de devolución de llamada en el contrato del atacante para aprobar USDC en el contrato del proyecto. A continuación, el contrato del proyecto puede retirar el USDC del contrato del atacante actualizando el proxy a una nueva implementación», explicó Zhou.