El 21 de julio, nuestro sistema DeFiRanger reportó un par de transacciones sospechosas. Tras un análisis manual, confirmamos que estas transacciones son ataques a Sanshu Inu. Específicamente, el contrato Memstake de Sanshu Inu fue atacado mediante el abuso del mecanismo de deflación.
A continuación, utilizaremos múltiples transacciones de ataque para ilustrar el proceso del ataque.
Flujo del Ataque
La siguiente figura enumera algunas de las transacciones lanzadas por el atacante (0x333).

El ataque consta de cuatro pasos. El más crítico es el segundo paso, que aprovecha el mecanismo de deflación del token ERC20 para manipular el cálculo de recompensas del contrato inteligente Memstake.


-
Paso 1 (preparación): El atacante crea dos contratos de ataque. El primero es un contrato que deposita 2.049B de KEANU. El segundo es el contrato de ataque.
-
Paso 2 (manipulación): el atacante primero toma prestada una gran cantidad de tokens KEANU mediante un préstamo flash (Hacia un Primer Paso para Entender los Préstamos Flash y sus Aplicaciones en el Ecosistema DeFi (SBC 2021)) de uniswapV2, y luego deposita los tokens en/retira del Memestake usando el segundo contrato inteligente creado en el paso 1. Dado que KEANU tiene un mecanismo de deflación que quema el 2% de los tokens en cada transacción, el número real de tokens depositados en el Memestake es menor que el valor (
user.amount) mantenido por el contrato Memestake. El atacante repite este proceso y hace que el número de tokens KEANU dentro del Memestake disminuya a un valor pequeño (1e-07). Véase la transacción 0x00ed y la siguiente figura.

- Paso 3 (obtención de ganancias): El atacante invoca
Memestake.updatePool()para actualizaraccMfundPerShare. Este valor depende del número de tokens KEANU (que fue manipulado en el segundo paso). Luego el atacante obtiene una gran cantidad de Mfund (~61M). Véase la transacción 0xa945 para más detalles.

- Paso 4 (intercambio a WETH): El atacante intercambia MFund y KEANU por WETH y blanquea el dinero a través de Tornado.Cash. El atacante obtuvo 55,9484578158357 ETH como ganancias.
MISC
De manera interesante, el segundo/tercer paso del ataque está relacionado con Flashbots. El segundo paso compra KEANU con 38 ETH (0x00ed). Esta transacción es atacada por un ataque sandwich (a través de Flashbots) -- lo que convierte al propio atacante en víctima de un ataque sandwich. El tercer paso (0xa945) vende MFund en uniswap, lo que crea una oportunidad de arbitraje que fue aprovechada por un buscador de Flashbots.
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 fin, BlockSec ofrece 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 rastreo 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 prestado servicios a más de 300 clientes distinguidos como MetaMask, Uniswap Foundation, Compound, Forta y PancakeSwap, y ha recibido decenas de millones de dólares en dos rondas de financiamiento de inversores prominentes, incluidos Matrix Partners, Vitalbridge Capital y Fenbushi Capital.
Sitio web oficial: https://blocksec.com/
Cuenta oficial de Twitter: https://twitter.com/BlockSecTeam



