Барсуки в берлоге sushi
Басруки всегда ходят по одним и тем же тропинкам во время своих ночных вылазок за едой. Поэтому в лесу появляются хорошо проторенные тропы.
Если на привычном пути возникает какая-то помеха или препятствие, это сбивает животное с толку. В итоге им приходится спариваться не с тем партнером.
Мы получили тревожный сигнал о сделке, в которой опытный пользователь DeFi трансформировал 0.001 в 81.68 ETH с помощью токена DIGG проекта Badger DAO.
Изучив поподробнее, мы выяснили, что хотя атака и имела место быть, но утечка уже устранена. То, что воспринималось как угроза всему протоколу SushiSwap, оказалось лишь смышленым падальщиком, который подобрал объедки.
Уже ранее замеченный кошелек воспользовался брешью, которая вновь зазияла из-за забывчивости команды SushiSwap.
Эта транзакция показалась нам подозрительной на первый взгляд. Но, поговорив с командой Sushi, мы поняли, что особого повода для беспокойства не было.
Вот что представляла собой эта транзакция. SushiMaker попытался перевести 0.05% комиссии с обмена DIGG/WBTC (за ~24 часа) через пул DIGG/ETH, в котором было мало ликвидности и высокое проскальзывание. В результате провайдерам ликвидности пары DIGG/ETH пришлось заплатить несоразмерную комиссию.
Эту комиссию предполагалось выплатить холдерам XSUSHI, но вместо них ее получил хакер.
Как ему удалось?
Решение проблемы было найдено несколькими неделями ранее, но его нужно было встроить вручную в каждый пул. Во время работ падальщик и пробрался внутрь и забрал комиссию, предназначавшуюся холдерам xSushi.
Когда новые пары добавлялись в программу Onsen протокола Sushiswap, были добавлены и несколько пар без Эфириума. Но конкретно в случае пары DIGG/WBTC для нее не был создан “мост” в SushiMaker.
SushiMaker это смарт-контракт, который собирает 0.05% комиссию с трейдинга и позволяет перераспределять её между пользователями, которые отдали в стакинг SUSHI в обмен на xSUSHI, чтобы получать дополнительное вознаграждение в SUSHI не теряя времени.
По умолчанию SushiMaker продает накопленные сборы (и их пары) в ETH, а затем в SUSHI.
Мост означает, что, когда SushiMaker продает сборы какого-либо актива, не используя ETH-пару, то он может продать их любому активу вне Эфириума, который может присвоить себе ликвидность.
Если моста нет, то может быть добавлена ликвидность с целью создания ETH-пары, с помощью которой SushiMaker будет пытаться конвертировать сборы с этого актива и как следствие пострадает из-за высокой цены из-за маленького объема ликвидности.
Как следствие, сборы, накопленные в контракте SushiMaker, пойдут на вознаграждение провайдеров ликвидности этой ETH-пары, но не владельцев xSUSHI, как изначально предполагалось.
К счастью, никакие соответствующие позиции провайдеров ликвидности или xSUSHI не пострадали. Потеряна только прибыль с актива за предыдущий день (0.05% сборов со свопов DIGG/WBTC - 81 ETH).
Для решения этой проблемы держателей xSUSHI в контракте мейкера был установлен мост для DIGG-пар. Этот мост также интегрирован в SushiMaker.
Дискуссия в дискорде SushiSwap дала нам более четкое понятие о механизме атаки:
Мы проанализировали адрес падальщика и выяснили, что он - известный пользователь ботов и флэш-кредитов.
Данные с Nansen
Мы нашли несколько транзакций, которые говорят о том, что вот этот пользователь пытался воспользоваться брешью и украсть комиссию, причитающуюся провайдерам ликвидности.
0x90fb0c9976361f537330a5617a404045ffb3fef5972cf67b531386014eeae7a9
0x0af5a6d2d8b49f68dcfd4599a0e767450e76e08a5aeba9b3d534a604d308e60b
0xcec93808a657d00cbb0245711e9419d0ea278b3a60a9a6d0a8c3353523c0e982
0xe0527f7befaea54257113a09c8b3f4cd416e11a0e196cd2ba2e5e07c47767ddf
Могла произойти катастрофа, но обошлось лишь небольшим позором для команды SushiSwap.
Несмотря на то, что хакеру удалось провести свою махинацию, мы можем считать, что для SushiSwap это был предупредительный выстрел. А им на данный момент доверено защищать $1.9 миллиарда TLV.
В обсуждении в Discord говорится, что они не будут автоматизировать это исправление. Вместо этого они будут как и раньше стараться не забыть применять его каждый раз. Это настораживает.
Зачет допускать возможность человеческой ошибки, если в этом нет необходимости?
Даже если код децентрализован, разработчики берут на себя огромную ответственность, работая с протоколами с таким огромным объемом активов. Последствия стресса часто недооценивают, и мы знаем, как много разработчиков становятся жертвами эмоционального выгорания. Во время написания кода много чего может пойти не так. Поэтому, может быть команде SushiSwap стоило бы немного больше полагаться на автоматизированность в данной ситуации.
Эта история служит напоминанием о том, что протоколы находятся под постоянным наблюдением хакеров и арбитражеров. Те следят за каждым их движением и пытаются залезть в карман или полностью вырубить.
Тем не менее, эта проверка работает в обе стороны: даже такие любители из Твиттера как “simp2win” могут распознать хакера издалека. Это очень похвально, но лучше бы 791им предоставить анализ экспертам.
Мы любим хакеров, которым есть что сказать. Поэтому нам было приятно получить следующее сообщение через Ethereum call data.
Почему этот чувак simp2win написал в твиттере, что я заработал 10 миллионов? лол, хотелось бы.
REKT представляет собой общественную площадку для анонимных авторов. Мы не несём ответственность за выражаемые точки зрения или контент на этом веб-сайте.
Пожертвование (ETH / ERC20): 0x3C5c2F4bCeC51a36494682f91Dbc6cA7c63B514C
Дисклеймер:
REKT не несет никакой ответственности за любое содержание, размещенное на нашем Веб-сайте или имеющее какое-либо отношение к оказываемым нами Услугам, независимо от того, было ли оно опубликовано или создано Анонимным Автором нашего Веб-сайта или REKT. Не смотря на то, что мы устанавливаем правила поведения и нормы публикаций для Анонимных Авторов, мы не контролируем и не несем ответственность за содержание публикаций Анонимных Авторов, а также за то, чем делятся и что передают Авторы с помощью нашего Сайта и наших Сервисов, и не несем ответственность за любое оскорбительное, неуместное, непристойное, незаконное или спорное содержание, с которым вы можете столкнуться на нашем Веб-сайте и на наших Сервисах. REKT не несет ответственность за поведение, будь то онлайн или офлайн, любого пользователя нашего Веб-сайта или наших Сервисов.