Stars [Hacked] Arena
Вы наверное слышали о нашумевшем взломе Stars Arena — ещё один SocialFi по типу FriendTech на Avalanche, который был запущен буквально неделю назад.
Мне посчастливилось пообщаться с тем самым lilitch.eth, которого и обвиняли в взломе данного SocialFi.
Сейчас вы узнаете, как скупость проекта привела к потерям около 3 млн$
📚 | Предисловие
Утром каждый второй паблик или инфл писали об этом событие у себя в блогах. Но особое внимание привлек персонаж под именем lilitch.eth, который написал тред в свой твиттер.
Дело в том, что он один из первых, кто написал разъяснение их большой дыры в контракте, за это на него и посыпался хейт от самой команды Stars Arena.
Прочитать тред можете тут
Если кратко, lilitch.eth утверждал, что функция контракта getPrice() забагована и можно продавать 0 акций, получая при этом AVAX.
После этого тред залетает в рекомендации и уже сейчас на нем более 625 тысяч просмотров.
🎤 | Интервью
Так случилось, что lilitch.eth сам написал мне, и я решил взять у него небольшое интервью, которое вы можете прочитать ниже.
> Когда ты наткнулся на дыру в контракте?
3 дня назад. Я писал снайпер для Friend Tech, конечно же, чтобы обогатится.
Чуть ошибаюсь с кодом и отправляю транзакции чтобы продать акции, но с 0 AVAX в поле для количества.
После этого смотрю в эксплорере - транзы не фейляться, в добавок мне еще и приходят AVAX. Я конечно очень удивляюсь и иду расследовать, почему же так получилось.
Контракт был неверифнутый - приходится декодить байткод и пытаться разобраться.
Спустя время прихожу к выводу, что проблема в неправильном подсчете цены за акцию, функция getPrice(), которая должна "по логике" возвращать ошибку при amount = 0, возвращала initialPrice = 0.004 AVAX.
При этом, цена транзакции на обычном 25 Gwei составляла около 0.0012 AVAX - что давало около х3 профит с такой махинации.
> Что ты решаешь делать дальше, имея такую профитную схему?
Я, как добросовестный whitehat, 3 часа ищу как мне связаться с командой проекта, чтобы рассказать им проблему и получить какой-то bug bounty.
В итоге я наконец-то добиваюсь контакта с командой. Хочу от них узнать СКОЛЬКО они готовы выделить, если я действительно нашел критическую уязвимость, на что они мне отвечают, что не могут это обсуждать, пока я не скину им свои socials (писал конечно же не с мейна) и сам эксплоит.
Меня такое не особо устраивало, потому что по общению чувствовал, что меня просто кинут, как только я им покажу эксплоит, и никакого bug bounty не будет.
Я предлагаю им найти 3 сторону (гаранта) чтобы провести обмен информацией на что получаю игнор.
Самое смешное, когда меня спрашивают сколько я хочу за эксплоит, я пишу что обычно за критические уязвимости платят 5-10% ТВЛ (на тот момент твл был около 1.1млн$), но я открыт к предложениям, на что получаю "you want 500$?".
> Не думал ли ты вынести их?
Как раз после предложения в 500$, меня выводит из себя, и я иду писать контракт, который продает акции 200 раз в одной транзакции - все работает.
Сразу иду писать тред про уязвимость.
После треда, ненадолго запускаю бота и жду, пока мой контракт скопируют и начнут выносить этупомойкуSocialFi.
Так и происходит — нахожу 5+ копий моего контракта, которые забивали блоки и поднимали газ прайс вплоть до момента, пока комиссия, чтобы получить из контракта 1$ за 1$ fee (никаких 5$ fee to gain 1$ и в помине не было).
> Как отреагировал проект на твой тред про них?
Команда наконец берется за дело - им потребовалось около 5 часов, чтобы поменять имплементацию прокси контракта :)
За это время вынесли не особо много - ~20-30k $
Мой тред залетает на 600к просмотров, меня ненавидят, называют фудером, объявляют войну.
> Какие твои дальнейшие действия после фуда в твою строну?
В конечном итоге команда все пофиксила. Приложение продолжает работу, все довольны, все забыли про всё через час.
При этом новый контракт также не верифают, не говорят откуда будут возвращать украденные AVAX.
Я иду спать, просыпаюсь и вижу TVL в 3$ млн у проекта.
Вроде бы все хорошо, я зла не держу, просто немножко угараю в их дискорде.
Продолжаю опять писать снайпер бота. Вроде как заканчиваю, оставляю работать и ухожу в афк, отдохнуть от всего происходящего.
> Какие твои эмоции были, когда ты увидел их TVL, который приравнялся к 0$?)
Через час сажусь за ПК и вижу TVL в 0$. Мне было очень смешно :)
Начинаю расследовать - все украли одной транзой.
Пишу пост про то, как их взломали.
Если кратко - самой БАЗОВОЙ АТАКОЙ REENTRANCY (я думаю такое бы даже ChatGPT спалил)
> Какого тебе, когда все обвиняют тебя в взломе проекта?
Я общаюсь с работягами в их дискорде, все думают за взломом стою я и угрожают вычислением и расправой.
Страшно на самом деле когда ВСЕ думают, что ты украл 3 миллиона$.
На какой бы спейс в твиттере я не зашел - все говорили "yeah it's that milady lilitch hacker from yesterday".
> К какому итогу вы пришли с командой Stars Arena?
В итоге сама команда AVAX стала на сторону проекта, писали что "это всего лишь 3 миллиона, не парьтесь".
Когда был спейс с командой проекта, они вроде-как нашли где взять деньги и будут опять запускаться.
Я же в свою очередь свел конфликт в мирное русло и сделал вот такой твит.
💭 | Пару слов от меня
Исходя из этой ситуации мы видим, как проект пожадничал 100k$ вознаграждением для bug bounty, а в итоге получил минус в 3 миллиона$.
Обычная история кодера, который хотел сделать дефолтного снайпер бота превратилась в очень нашумевший сюжет.
Иногда нужно выставлять приоритеты более правильней, чем Stars Arena.
Bug Bounty - очень полезная программа для любого проекта, всегда нужно слушать юзеров, которые нашли уязвимости.