Introducción
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. También logramos realizar ingeniería inversa del 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.
Cronología
La Detección del Ataque en 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 enrutador inteligente. Sin embargo, no divulgamos los detalles en ese momento ya que el proyecto aún era 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, que es vulnerable a la vulnerabilidad de la herramienta profanity.
La Recuperación de la Clave Privada del Bot
El 2022-10-01 16:10 (UTC), nuestra herramienta recuperó exitosamente la clave privada de este bot en aproximadamente 20 minutos. Para 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ían en riesgo.
Transferencia de Fondos Fuera del Bot
El desafío es que los fondos están en el contrato desplegado por el bot en lugar de 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 exitosamente 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 TransSwap. 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 diferente, la función para transferir los fondos es diferente.

Devolver los Fondos
Tras deliberación interna, decidimos devolver los fondos a los proyectos atacados (en lugar de al bot) por las siguientes razones.
-
Primero, 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), aún consideramos que la transacción de adelantamiento de una transacción de ataque también es un ataque.
-
Segundo, los fondos pertenecen a las víctimas del ataque, es decir, 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 el proceso de rescate de 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?
Estén atentos y seguros.
Conclusión
Hacer que un proyecto DeFi sea seguro no es una tarea fácil. Además de la auditoría de código, creemos que la comunidad debe adoptar un método proactivo para monitorear el estado del proyecto y bloquear el ataque antes de que ocurra.
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 a mejorar la seguridad y la usabilidad para el emergente mundo Web3 con el fin de facilitar su adopción masiva. Con este fin, BlockSec proporciona servicios de auditoría de seguridad para contratos inteligentes y cadenas EVM, la plataforma Phalcon para el desarrollo de seguridad y el bloqueo proactivo de amenazas, la plataforma MetaSleuth para el seguimiento e investigación de fondos, y la extensión MetaDock para que los constructores de web3 naveguen eficientemente en el mundo cripto.
Hasta la fecha, la empresa ha atendido a más de 300 clientes distinguidos como MetaMask, Uniswap Foundation, Compound, Forta y PancakeSwap, y ha recibido decenas de millones de dólares estadounidenses en dos rondas de financiamiento 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



