21 июля наша система DeFiRanger зафиксировала несколько подозрительных транзакций. После ручного анализа мы подтвердили, что эти транзакции являются атакой на Sanshu Inu. В частности, контракт Memstake Sanshu Inu был атакован путем злоупотребления механизмом «дефляции» (deflation). Ниже мы используем несколько транзакций атаки, чтобы проиллюстрировать процесс взлома.
Ход атаки
На рисунке ниже перечислены некоторые транзакции, запущенные злоумышленником (0x333).

Атака состоит из четырех шагов. Критическим является второй этап, который использует механизм дефляции токена ERC20 для манипулирования расчетом вознаграждения в смарт-контракте Memstake.


-
Шаг 1 (подготовка): Атакующий создает два контракта для атаки. Первый — это контракт, который депонирует 2,049 млрд KEANU. Второй — это сам контракт для совершения атаки.
-
Шаг 2 (манипуляция): Атакующий сначала берет большое количество токенов KEANU с помощью флеш-займа (Towards A First Step to Understand Flash Loan and Its Applications in DeFi Ecosystem (SBC 2021)) из uniswapV2, а затем депонирует/выводит токены из Memestake, используя второй смарт-контракт, созданный на первом шаге. Поскольку у KEANU есть механизм дефляции, который сжигает 2% токенов при каждой транзакции, реальное количество токенов, депонированных в Memestake, оказывается меньше значения (
user.amount), хранящегося в контракте Memestake. Злоумышленник повторяет этот процесс, добиваясь того, чтобы количество токенов KEANU внутри Memestake уменьшилось до мизерного значения (1e-07). См. транзакцию 0x00ed и рисунок ниже.

- Шаг 3 (получение прибыли): Атакующий вызывает
Memestake.updatePool()для обновления значенияaccMfundPerShare. Это значение зависит от количества токенов KEANU (которыми манипулировали на втором шаге). Затем атакующий получает большое количество Mfund (~61 млн). Подробности см. в транзакции 0xa945.

- Шаг 4 (обмен на WETH): Атакующий обменивает MFund и KEANU на WETH и отмывает деньги через Tornado.Cash. Прибыль злоумышленника составила 55,9484578158357 ETH.
Разное
Интересно, что второй и третий шаги атаки связаны с Flashbots. На втором шаге атакующий покупает KEANU за 38 ETH (0x00ed). Эта транзакция подвергается сэндвич-атаке (через Flashbots), что делает самого злоумышленника жертвой сэндвич-атаки. На третьем шаге (0xa945) злоумышленник продает MFund на Uniswap, что создает арбитражную возможность, которую перехватывает искатель (searcher) из Flashbots.
О компании BlockSec
BlockSec — передовая компания в области безопасности блокчейнов, основанная в 2021 году группой всемирно признанных экспертов по безопасности. Компания стремится повысить уровень безопасности и удобства использования развивающегося мира Web3, чтобы способствовать его массовому внедрению. С этой целью BlockSec предоставляет услуги по аудиту безопасности смарт-контрактов и EVM-сетей, платформу Phalcon для разработки систем безопасности и проактивного блокирования угроз, платформу MetaSleuth для отслеживания и расследования транзакций, а также расширение MetaDock для эффективной работы Web3-разработчиков в криптомире.
На сегодняшний день компания обслужила более 300 уважаемых клиентов, таких как MetaMask, Uniswap Foundation, Compound, Forta и PancakeSwap, и привлекла десятки миллионов долларов США в двух раундах финансирования от ведущих инвесторов, включая Matrix Partners, Vitalbridge Capital и Fenbushi Capital.
Официальный сайт: https://blocksec.com/
Официальный аккаунт в Twitter: https://twitter.com/BlockSecTeam



