Em 21 de julho, nosso sistema DeFiRanger reportou algumas transações suspeitas. Após análise manual, confirmamos que essas transações são ataques ao Sanshu Inu. Especificamente, o contrato Memstake do Sanshu Inu foi atacado pelo abuso do mecanismo de deflation.
A seguir, utilizaremos múltiplas transações de ataque para ilustrar o processo do ataque.
Fluxo do Ataque
A figura a seguir lista algumas das transações realizadas pelo atacante (0x333).

O ataque consiste em quatro etapas. A etapa crítica é a segunda, que aproveita o mecanismo de deflação do token ERC20 para manipular o cálculo de recompensas do contrato inteligente Memstake.


-
Etapa 1 (preparação): O atacante cria dois contratos de ataque. O primeiro é um contrato que deposita 2.049B de KEANU. O segundo é o contrato de ataque.
-
Etapa 2 (manipulação): o atacante primeiro toma emprestado uma grande quantidade de tokens KEANU usando o flash loan (Towards A First Step to Understand Flash Loan and Its Applications in DeFi Ecosystem (SBC 2021)) do uniswapV2, e então deposita os tokens no/retira do Memestake usando o segundo contrato inteligente criado na etapa 1. Como o KEANU possui um mecanismo de deflação, que queima 2% dos tokens a cada transação, o número real de tokens depositados no Memestake é menor do que o valor (
user.amount) mantido pelo contrato Memestake. O atacante repete esse processo e faz com que o número de tokens KEANU dentro do Memestake diminua para um valor pequeno (1e-07). Veja a transação 0x00ed e a figura a seguir.

- Etapa 3 (obtendo lucro): O atacante invoca o
Memestake.updatePool()para atualizar oaccMfundPerShare. Esse valor depende do número de tokens KEANU (que foi manipulado na segunda etapa). Em seguida, o atacante obtém uma grande quantidade de Mfund (~61M). Veja a transação 0xa945 para mais detalhes.

- Etapa 4 (convertendo para WETH): O atacante troca o MFund e KEANU por WETH e lava o dinheiro através do Tornado.Cash. O atacante obteve 55,9484578158357 ETH como lucro.
MISC
De forma interessante, a segunda/terceira etapa do ataque está relacionada ao Flashbots. A segunda etapa compra KEANU com 38 ETH (0x00ed). Essa transação é atacada por um ataque sanduíche (através do Flashbots) — o que torna o próprio atacante uma vítima de um ataque sanduíche. A terceira etapa (0xa945) vende MFund no uniswap, o que cria uma oportunidade de arbitragem que foi capturada por um buscador do Flashbots.
Sobre a BlockSec
A BlockSec é uma empresa pioneira em segurança de blockchain, fundada em 2021 por um grupo de especialistas em segurança mundialmente reconhecidos. A empresa está comprometida em aprimorar a segurança e a usabilidade para o emergente mundo Web3, com o objetivo de facilitar sua adoção em massa. Para isso, a BlockSec oferece serviços de auditoria de segurança para contratos inteligentes e redes EVM, a plataforma Phalcon para desenvolvimento seguro e bloqueio proativo de ameaças, a plataforma MetaSleuth para rastreamento e investigação de fundos, e a extensão MetaDock para construtores web3 que navegam com eficiência no mundo cripto.
Até o momento, a empresa atendeu mais de 300 clientes renomados, como MetaMask, Uniswap Foundation, Compound, Forta e PancakeSwap, e recebeu dezenas de milhões de dólares americanos em duas rodadas de financiamento de investidores proeminentes, incluindo Matrix Partners, Vitalbridge Capital e Fenbushi Capital.
Site oficial: https://blocksec.com/
Conta oficial no Twitter: https://twitter.com/BlockSecTeam



