Уязвимость смарт-контракта позволила хакерам вывести 8 вигинтиллионов токенов BEC

В воскресенье популярная биржа криптовалют OKEx приостановила вывод и торговлю токенами BeautyChain (BEC), сославшись на «аномальную активность». Подробнее об этой активности рассказало сообщество Coinmonks на Medium.



Они сообщили, что разработали автоматизированную систему для сканирования подозрительных переводов ERC20-токенов, которая и подала сигнал бедствия 22 апреля.

Как выяснилось, кто-то вывел 8 вигинтиллионов (значение с 63 нулями) BEC со смарт-контракта.

При более подробном изучении контракта была выявлена ранее неизвестная уязвимость, которую участники сообщества Coinmonks назвали batchOverflow.

«Уязвимая функция расположена в batchTransfer в следующем коде:

Как указано в строке 257, внутренняя переменная amount высчитывается как произведение cnt и _value. Второй параметр, _value, может быть задан как произвольное 256-битное значение, скажем, 0x8000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000 (63 нуля). Имея два _receivers, пропущенных в batchTransfer() с этим чрезвычайно большим _value, мы можем переполнить amount и обнулить его. После обнуления amount атакующий может обойти проверку в строках 258-259 и сделать вычитание в строке 261 неприменимым. Здесь мы приходим к интересной части: как показано в строках 262-265, к балансу двух получателей будет добавлено чрезвычайно большое значение _value, что не будет стоить атакующему ни цента!»

Исследователи также смогли повторить эту операцию с другим смарт-контрактом, токены которого не торгуются на биржах, и обнаружили ещё целый ряд контрактов с дефектом, к которым привязаны токены, обращающиеся на торговых площадках.

Они попытались предупредить владельцев смарт-контрактов о наличии уязвимости, однако практикуемый Ethereum принцип «код есть закон» затрудняет этот процесс.

Особую проблему уязвимость представляет для децентрализованных бирж, поскольку они даже не смогут остановить атаку. В то же время, огромные объёмы токенов могут обмениваться на биткоины, Ethereum и другие криптовалюты и использоваться для манипулирования ценами всех участвующих в транзакциях активов подобно тому, как это было во время фишинговой атаки на биржу Binance и пампа Viacoin.
Фото: ronstik