OKEx останавливает торги токенами ERC20 после обнаружения бага, который выводить астрономические суммы
Вчера гонконгская биржа остановила торги токенами ERC20 в результате бага, который позволял хакерам генерировать астрономические суммы токенов блокчейнов конкретных стартапов.
OKEx - третья крупнейшая биржа в мире по торговым объемам, просто приостановила активность ERC20 через уязвимость, которую они назвали BatchOverFlow.
Мы приостановили депозиты всех токенов ERC-20 из-за обнаружения нового бага смарт-контракта - BatchOverFlow. Используя ошибку, атакующие могли генерировать очень большое количество токенов и размещать их на обычный адрес. Это сделало много токенов ERC-20 уязвимыми для ценовых манипуляций атакующими,
- написала компания в своих объявлениях от техподдержки.
Конкретно проблема со стандартом ERC20 заключается в том, что он не выдает никаких ошибок при перезагрузке полных чисел. Он просто продолжает работать с кодом. Это может позволить хакерам "перезагружать" целое число до момента, когда создастся то, что известно в сообществе программистов как "overload".
Обратное программирование атаки
BeautyChain была среди первых, кто стал жертвой такой атаки в воскресенье, когда атакующим удалось сгенерировать 10^58 (единица с 58 нулями после нее) токенов BEC, используя преимущества уязвимости целочисленного переполнения в функции "batchTransfer " кода их смарт-контрактов.
В 13:18 22 апреля цена BEC значительно колебалась из-за проблем с безопасностью смарт-контракта BEC. После изучения Beauty Chain Foundation, Beauty Chain приостановила все транзакции и переводы,
- говорится на сайте организации.
Если посмотреть в код смарт-контракта, мы можем заметить функцию "batchTransfer " и выяснить, что она передает три аргумента, в том числе один, который называется "_value", представляющий количество токенов, которые должны быть отправлены в массив адресов, который передается в функцию "_receivers".
Здесь проблемой является целое число "_value". Хакеры просто могли передать "_value" с астрономически большими числами, и функция будет работать без выполнения проверок. По умолчанию при обнулении, условное "require " далее в коде не выполняет свою работу и платформа направляет невероятно большую сумму токенов хакерам.
Объявление Beauty Chain о приостановлении привело к тому, что ее токен BEC потерял половину своей стоимости, несмотря на это, команде удалось приостановить действие смарт-контракта до того, как хакерам удалось перевести свои токены в другую валюту. Стартап сообщил, что в ближайшем будущем он будет работать над запуском исправленного контракта.
Опасность подражания
OKEx использовала слово "много" для описания доли токенов ERC20, затронутых этим багом. Многие из них используют смарт-контракты с конкретно этой пакетной функцией.
Когда код стандартизирован и скопирован с одного смарт-контракта в другой, а не написан с нуля, нехватка разнообразия выявляет недостатки в коллективной экосистеме. Чтобы предупредить это, смарт-контракты ERC20 должны быть написаны без использования генераторов кода. А для этого нужны ресурсы для найма квалифицированных кодеров.
На данный момент OKEx сказала, что держит ситуацию под контролем и "уже сконтактировалась с командами, которых это касается, чтобы они провели расследование и приняли меры, необходимые для предотвращения атаки". Однако, важно помнить о том, что умные контракты не являются безгрешными и компании должны делать их лучше, проверять их код, возможно даже с участием вознаграждений за выявление бага, чтобы убедиться, что они задействовали наиболее талантливых людей для охоты за потенциальными багами.