2020-9-30 16:30 |
Белый хакер под ником samczsun опубликовал детальный разбор «подпольной операции», в ходе которой удалось спасти 25 тысяч ETH стоимостью более 9.6 миллиона долларов в данный момент. Средства были выведены из смарт-контракта на базе Эфириума с выявленной уязвимостью. В инициативе участвовали разные эксперты по изучению блокчейна и цифровой безопасности. Если бы не их старания, монеты из смарт-контракта мог бы вывести и присвоить любой желающий.
Базовые понятия из сферы смарт-контрактов можно найти в этой статье. Также не забудьте прочитать, как формируются и выплачиваются комиссии майнерам в сети Эфириума, если ещё не успели ознакомиться с этой темой.
К чему могут привести уязвимости в смарт-контракте15 сентября samczsun занимался привычным для себя делом — он изучал смарт-контракты на базе Эфириума на предмет уязвимостей. Спустя некоторое время эксперт наткнулся на контракт проекта Lien Finance с суммой более 25 тысяч ETH. Главная проблема заключалась в том, что эти монеты при должном понимании дела мог забрать себе любой желающий.
В смарт-контракте была так называемая burn-функция, которая позволяла эмитировать бесполезные токены в обмен на ETH в Lien Finance. Чтобы почти 10 миллионов долларов не оказались в руках очередного мошенника, samczsun принял решение вмешаться.
Как спасти 10 миллионов долларов от уязвимого смарт-контракта, не дав злоумышленникам знать, что в нём есть проблемы?
How do you rescue 10 million dollars from a vulnerable smart contract without letting attackers know it’s there? Last Tuesday, @epheph, @sparkpool_eth, @tzhen, @wadealexc, and I found out.https://t.co/WOjO651VIw
— samczsun (@samczsun) September 24, 2020
Команда разработчиков Lien Finance анонимна, поэтому белый хакер заручился поддержкой исследователя из ConsenSys Александра Вэйда и специалиста по безопасности Эфириума Скотта Бигелоу. Перед «командой спасателей» было два пути решения проблемы.
Первый — посоветовать Lien Finance публично объявить об уязвимости. Однако в таком случае смарт-контрактом точно заинтересуются хакеры и тут же украдут средства. Второй — вывести монеты самостоятельно и потом вернуть их разработчикам. Но и здесь есть свои подводные камни. Возвращать ETH было небезопасно из-за «ботов-хищников» в мемпуле Эфириума.
Напомним, мемпул — это очередь из транзакций, которая формируется перед их подтверждением майнерами. Мемпул мониторят боты, которые могут автоматически копировать данные уязвимых транзакций со сменой адреса получателя монет на адрес мошенника. В итоге если бы перевод на 25 тысяч ETH оказался в мемпуле, монеты могли бы уйти не туда, куда нужно.
Речь идёт о так называемых арбитражных ботах-лидерах, также известных как фронтраннеры. Они мониторят транзакции на предмет возможности взлома, сообщает Decrypt. Как уточняют эксперты, фронтраннеры в состоянии скопировать транзакцию в мемпуле, заменить адреса на подходящие себе и убедиться, что обновлённая транзакция будет выбрана майнерами первой. Отсюда и название, которое переводится как «лидер» или дословно «бегущий впереди».
По данным партнёра Paradigm Research Дэна Робинсона, обычно фронтраннеры ищут определённые типы транзакций по типу торговых операций на децентрализованных биржах или обновлений платформ-оракулов. Они также могут копировать транзакции внутри цепочек операций. То есть если один перевод активирует проведение других транзакции — как это обычно происходит в смарт-контрактах — такие операции тоже подвергаются риску.
Забавно, что Робинсон считает проблему фронтраннеров значительно большей, чем можно себе представить. Вот его цитата.
Сегодня фронтраннеры это всего лишь боты. А завтра они будут майнерами.
Это интересно: Как разработчики Эфириума планируют решать проблему высоких комиссий за транзакции?
Спустя некоторое время к команде подключились исследовательница блокчейна Тина Чжень, эксперты аналитической компании CertiK и пул SparkPool. Программисты SparkPool написали «белый API», который позволил бы майнерам обработать транзакцию без вывода её в мемпул. Наконец, также был создан скрипт для автоматического перевода четырех последовательных транзакций команде Lien Finance, которую чуть ранее ввели в курс дела.
Но и это ещё не все — скрипт инициировал передачу не самого Эфириума, а выпущенных токенов SBT и LBT, чтобы потом разработчики проекта могли их конвертировать обратно в ETH через burn-функцию. Все приготовления принесли свой результат: создатели Lien Finance получили токены, конвертировали их в Эфириум и перевели в безопасное место.
История получила свой хэппи-энд: белому хакеру и его команде удалось спасти деньги, вывести их из-под прицела злоумышленников и сохранить репутацию проекта. Обычно уязвимости и невнимательность пользователей криптовалют заканчиваются плачевно.
Мы считаем, что ситуация положительна во всех смыслах. Во-первых, благодаря ей ниша стала чуть более безопасной, ведь на проблему явно обратят внимание разработчики других проектов и в случае чего исправят её на своей стороне. Во-вторых, мы убедились, что в индустрии криптовалют хватает людей, которые готовы помочь вместо того, чтобы присвоить себе чужие миллионы долларов. А значит она находится на правильном пути.
Ещё больше интересных новостей ищите в нашем крипточате. Также не забудьте посетить нашу страницу в Яндекс Дзене за новыми материалами.
ПОДПИСЫВАЙТЕСЬ НА НАШ КАНАЛ В ТЕЛЕГРАМЕ. ТУТ ХОРОШО!
Аналог Notcoin - Blum - Играй и зарабатывай Монеты