Back to Blog

Cómo recuperamos los fondos robados para TransitSwap (y BabySwap)

Code Auditing
October 10, 2022
4 min read

BabySwap y TransitSwap en BSC fueron atacados el 1 de octubre. Algunas transacciones de ataque fueron adelantadas por un Bot. Curiosamente, este bot era susceptible a la vulnerabilidad de la herramienta profanity, y logramos recuperar su clave privada con éxito. También conseguimos aplicar ingeniería inversa al contrato del bot y retirar los fondos del contrato del bot a nuestra cuenta segura. Hemos transferido los fondos a TransitSwap y actualmente estamos contactando a BabySwap.

La detección del ataque a BabySwap

El 2022–10–01 14:47 (UTC), nuestro sistema interno reportó una transacción de ataque. Nuestro análisis posterior mostró que esto se debe a las fábricas controladas en el contrato de enrutamiento inteligente. Sin embargo, no revelamos los detalles en ese momento ya que el proyecto seguía siendo vulnerable. Contactamos a BabySwap a través de Twitter DM y TG, pero no obtuvimos respuesta.

Durante la investigación, encontramos que esta transacción fue emitida por una cuenta bot, que adelantó la transacción de ataque original. Además, esta cuenta tiene un patrón con ocho ceros al inicio, lo que parece indicar que fue generada por la herramienta profanity, la cual es vulnerable a la vulnerabilidad de dicha herramienta.

La recuperación de la clave privada del bot

El 2022–10–01 16:10 (UTC), nuestra herramienta recuperó con éxito la clave privada de este bot en aproximadamente 20 minutos. Con la clave privada recuperada, transferimos los fondos a una cuenta segura (que es el proceso típico de nuestro rescate). De lo contrario, otros que también recuperen la clave privada pueden tomar el control de la cuenta, y los fondos en la cuenta estarán en riesgo.

Transferencia de los fondos fuera del bot

El desafío es que los fondos están en el contrato desplegado por el bot en lugar de en la propia cuenta EOA del bot. Cómo transferir los fondos es un desafío.

Descompilamos el contrato y encontramos que hay una función de retiro en el contrato (como se muestra en la siguiente figura).

Esta función puede aprovecharse para retirar los fondos del contrato. El primer argumento es la dirección del token, y el segundo argumento debe ser cero.

Enviamos una transacción y retiramos con éxito los fondos del contrato al bot y luego transferimos los fondos a nuestra cuenta segura.

¡Llega otro ataque!

Un par de horas después, nuestro sistema reportó otro ataque en TransitSwap. Hay un par de transacciones de ataque desde diferentes direcciones, y ¡una transacción fue adelantada por este bot nuevamente! Sin embargo, dado que el contrato desplegado por el bot es uno diferente, la función para transferir los fondos es distinta.

Devolución de los fondos

Tras una deliberación interna, decidimos devolver los fondos a los proyectos atacados (en lugar de al bot) por las siguientes razones.

  • En primer lugar, los fondos fueron obtenidos por el bot a través del ataque a contratos vulnerables. Aunque el bot adelantó la transacción de ataque (en lugar de lanzar el ataque en primer lugar), seguimos considerando que la transacción de adelantamiento de una transacción de ataque también es un ataque.
  • En segundo lugar, los fondos pertenecen a las víctimas del ataque, es decir, a los usuarios de los protocolos DeFi afectados. Los usuarios sufrieron mucho debido a la vulnerabilidad en el protocolo DeFi. Deberían recibir los fondos de los atacantes.

Hemos transferido los fondos a la dirección oficial del receptor de fondos de TransitFinance y estamos contactando a BabySwap.

Actualización del rescate

Todavía estamos en proceso de rescatar direcciones vulnerables. El desafío es que no se puede determinar si una dirección es vulnerable antes de recuperar su clave privada. Aunque tenemos un algoritmo optimizado, debido a la limitación de la capacidad de cómputo, aún necesitamos más tiempo para completar todo el rescate. Publicaremos un informe detallado más adelante para deliberar sobre todo el proceso y responder las siguientes preguntas.

  • ¿Cuántas direcciones son vulnerables?
  • ¿Cuál es el impacto de la vulnerabilidad, es decir, cuántos activos están en riesgo debido a la vulnerabilidad?
  • ¿Cuál es la situación general del ataque de esta vulnerabilidad?

Permanezca atento y seguro.

Acerca de BlockSec

BlockSec es una empresa pionera en seguridad blockchain establecida en 2021 por un grupo de expertos en seguridad de renombre mundial. La empresa está comprometida con mejorar la seguridad y la usabilidad del emergente mundo Web3 con el fin de facilitar su adopción masiva. Con este objetivo, BlockSec ofrece servicios de auditoría de seguridad de contratos inteligentes y cadenas EVM, la plataforma Phalcon para el desarrollo de seguridad y el bloqueo proactivo de amenazas, la plataforma MetaSleuth para el rastreo e investigación de fondos, y la extensión MetaSuites para que los constructores de web3 naveguen eficientemente en el mundo cripto.

Hasta la fecha, la empresa ha prestado servicios a más de 300 clientes de renombre, como MetaMask, Uniswap Foundation, Compound, Forta y PancakeSwap, y ha recibido decenas de millones de dólares estadounidenses en dos rondas de financiación de inversores prominentes, incluyendo Matrix Partners, Vitalbridge Capital y Fenbushi Capital.

Sitio web oficial: https://blocksec.com/

Cuenta oficial de Twitter: https://twitter.com/BlockSecTeam

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit