Back to Blog

Análise do Incidente de Segurança do Sanshu Inu

Code Auditing
July 21, 2021
3 min read

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 o accMfundPerShare. 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

Best Security Auditor for Web3

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

BlockSec Audit