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
Análise do Incidente de Segurança do Sanshu Inu