Спасение SushiSwap - 0xMaki даёт показания
Из вока да в полымя.
Анонимный разработчик 0xMaki возглавил разработку SushiSwap после того, как основатель Chef Nomi позволил своей жадности жадности взять верх.
После того, как лето DeFi прошло и фарминг фуд-токенов сошел на нет, многие смирились с мыслью, что SushiSwap мертв и похоронен. Однако, разработчики проекта не прекращали работу ни на минуту, и вот недавно SushiSwap вернулся с новым меню.
いらっしゃいませ!!!
Но все было не так просто в баре Omakase.
Вчера поздно ночью неизвестный проковырял дыру в их смарт-контракте и стащил $15 тысяч, пока команда суши-поваров не выгнала его из кухни.
Rekt обратился к 0xMaki за его версией событий.
0xMaki: После публикации отчета Nansen я сам управлялся в Sushibar, чтобы снизить возможности арбитража. Я видел парочку странных небольших транзакций. Но я решил, что ничего страшного в этом не было, потому что бар работал прекрасно.
Первая микро-транзакция произошла дня 2-3 назад, но вчера она стала автоматической, я бы даже сказал «промышленного уровня».
Вот первое упоминание неполадок в Sushibar. (Discord)
Monstar
@0xMaki 源 義経 что происходит с суши-баром? Там полно всяких разных странных транзакций и похоже, что люди, делающие стакинг в баре не получают с него никаких суши.
0xMaki 源 義経 ответил Monstar
все работает как надо, просто сумма очень очень очень очень маленькая, насколько я понимаю
похоже, что кто-то потерял транзакцию, сейчас проверю
Monstar
Я так не думаю
потому что доступный к выводу остаток в баре очень сильно упал из-за этих транзакций
такое впечатление, что они выводят сами токены провайдеров ликвидности (не знаю, как такое может быть возможно), вместо того, чтобы выводить sushi, как положено
поэтому нет конвертации в sushi и стейкеры не получают вознаграждение
0xMaki 源 義経
проверяем сейчас вместе с одним человеком
может просто приложение boring странно себя ведет
Monstar
я думаю, кто-то сообразил, как обойти приложение boring (изменено)
и не делиться суши ни с кем в баре
но я не знаю, как воспроизвести то, что они делают, поэтому не могу протестировать
да, точно
https://etherscan.io/tx/0x7c6af5ca27ceb04aad514ddcaee8afc6dd4eb79d0816e24b007e7db205e93ce3
https://etherscan.io/address/0x1925e832c22522e0d9947ee4677120b2f28e4cd4#internaltx здесь видно все выводы с этого кошелька (изменено)
0xMaki 源 義経
@Monstar мы работаем над решением проблемы на данный момент, все фонды в безопасности, просто обычный эксплоит суши-бара, забрали комиссию, отстой, но хороший баг-баунти
мы отдадим сегодня 10k в пользу клиентов Sushibar
Rekt: Спасибо за ссылку. Что первым пришло тебе на ум?
0xMaki: Сперва я подумал: ну невозможно же, чтобы с баром что-то случилось, правильно?! Должно быть, дело во фронтенде. Транзакция была бессмысленной. Но когда в бар перестали поступать деньги, я подумал, что, что проблема намного глубже.
Примерно через 15 минут я понял, что дело плохо и сразу же связался с Banteg
Banteg не смог мне помочь, у него было 6 утра и он был занят работой над той штукой picke / cornichon. Все разработчики Sushi спали - они все в Европейском / Токийском часовом поясе, я один в северной Америке.
Rekt: К кому ты обратился за помощью?
0xMaki: Мне смогли помочь Andy a специалист по стратегиям из yEarn / бывший makerdao smart contract engineer и Daniel Que - экс-Coinbase
Rekt: Сколько времени ушло на починку?
0xMaki: 3-4 часа, чтобы воспроизвести и найти проблему.
Rekt: сколько было потеряно?
0xMaki: Потеряно всего 15 тысяч, потому что суши-бар может накапливать только 20-30 тысяч в день. 0.05% идет в пулы, и все надо делать вручную, и есть риск, что транзакция не пройдет.
Rekt: Хакерская атака или эксплоит?
0xMaki: Однозначно эксплоит, и очень умный - он заслужил эти деньги. Кстати, мне кажется, я его нашел...
Rekt: Ты больше впечатлен или обескуражен?
0xMaki: Однозначно впечатлен! Уж точно не обескуражен! Очень увлекательно наблюдать за всеми этими атаками / эксплойтами. Даже при серьезных аудитах всегда появляются какие-то новые сценарии, которые мы не планировали и о которых не подумали.
Это делает экосистему сильнее и устойчивее.
С этим атакующим мы потеряли всего 15 тысяч, может быть был кто-то еще, кто делал то же самое, надо будет изучить получше. Мы заметили этого, потому что из-за него начал страдать весь бар.
В любом случае, в 23:28 по моему времени мы (0xMaki и Andy) начали устранять проблему.
Потом мы проверяли небольшие транзакции, просто чтобы удостовериться, что они неопасные, и тут - черт - они оказались опасными.
Andy только что вернулся из перелета, он валился с ног от смены часовых поясов, ему пришлось пойти спать, поэтому я остался один, пока...
Rekt: Как он узнал?
0xMaki: Я ему написал, потому что остался один, без единого .sol джедая.
Rekt: .sol-даты
0xMaki: но жаль... было поздно, и у него были планы, как у любого нормального человека в субботу вечером, я думаю?!
И все сначала, никто не может помочь...
Попытался связаться с Chef Nomi, со всеми главными разработчиками, оставил пошаговое описание атаки в основном чате команды в надежде, что кто-то проснется
Потом я вспомнил про Daniel, мы были с ним в контакте с самого начала, я связался с ним, позвонил и ввел в курс дела.
Rekt: Ты еще разговариваешь с Nomi?
0xMaki: Нет.
0xMaki: Было 02:35 и у нас получилось воспроизвести!!! Мы поняли принцип эксплоита и могли его воспроизвести, а значит могли разработать решение.
В 03:19 у нас было решение.
0xMaki: Ситуация наладилась, команда просыпалась и работала над решением. Я тем временем занялся эксплоитером и увидел, что у него были в основном SNX и EHT.
Я просмотрел его транзакции, этот аккаунт не создавался для хакерской атаки, он ошивался по окрестностям и искал возможность для эксплоита.
Rekt: Почему ты так думаешь?
0xMaki: Чаевые. Он много раз получал чаевые в SNX и ESD. Значит, это кто-то, кто проводит много времени в обоих сообществах, скорее всего в Discord.
Я проверил по датам, кто получал и кто отправлял чаевые много раз подряд, и - бинго...
Инсайдер из сообщества SNX помог мне идентифицировать получателя чаевых.
Так что вот так, вся команда проснулась, у нас было предварительное решение и атаку удалось прекратить. И вот тогда новости попали в Twitter.
Замечание редактора После этого мы получили неоспоримое доказательство от подозреваемого -
«это не мог быть я»
0xMaki: Ничьи фонды не были потеряны, потому что украденные деньги предназначались на выплату чистой прибыли держателям xSushi. Мы выделим из нашей казны на 15 тысяч монет и разошлем их пропорционально всем пострадавшим.
Rekt: Тогда ничего серьезного, кто-то устроил себе легкий перекус! Хочешь что-нибудь передать подозреваемому напоследок?
0xMaki: Свяжись со мной! У нас для тебя есть много смарт-контрактов, которые ты можешь поковырять, и мы платим баг-баунти!
Я еще хочу поблагодарить всех, кто принимал участие в этом спасении, включая атакующего.
REKT представляет собой общественную площадку для анонимных авторов. Мы не несём ответственность за выражаемые точки зрения или контент на этом веб-сайте.
Пожертвование (ETH / ERC20): 0x3C5c2F4bCeC51a36494682f91Dbc6cA7c63B514C
Дисклеймер:
REKT не несет никакой ответственности за любое содержание, размещенное на нашем Веб-сайте или имеющее какое-либо отношение к оказываемым нами Услугам, независимо от того, было ли оно опубликовано или создано Анонимным Автором нашего Веб-сайта или REKT. Не смотря на то, что мы устанавливаем правила поведения и нормы публикаций для Анонимных Авторов, мы не контролируем и не несем ответственность за содержание публикаций Анонимных Авторов, а также за то, чем делятся и что передают Авторы с помощью нашего Сайта и наших Сервисов, и не несем ответственность за любое оскорбительное, неуместное, непристойное, незаконное или спорное содержание, с которым вы можете столкнуться на нашем Веб-сайте и на наших Сервисах. REKT не несет ответственность за поведение, будь то онлайн или офлайн, любого пользователя нашего Веб-сайта или наших Сервисов.