Ошибка Банкора раскрывает опасную практику в Ethereum DeFi

Новости

Уязвимость, обнаруженная на Bancor 18 июня, позволила бы хакерам просто истощать средства любого, кто взаимодействовал с его умными контрактами.Эксплойт опирался на концепцию авторизации снятия средств, представленную в стандарте ERC-20.Это позволяет различным приложениям Ethereum (ETH) автоматически снимать деньги с кошельков пользователей.

Как писал Одед Лейба, инженер-исследователь в ZenGo, функция вывода средств по умному контракту Bancor была по ошибке установлена ​​так, что каждый мог ее назвать.

Bancor предпринял упреждающие действия, чтобы «украсть» средства пользователей, прежде чем злоумышленники смогут вмешаться.

Эта проблема усугублялась тем фактом, что контракты Bancor требовали неограниченного разрешения на снятие денег при первом взаимодействии с протоколом.Даже если пользователи планируют протестировать протокол только с ограниченным количеством средств, система может вывести весь остаток этого конкретного токена.

Как оказалось, многие другие DApps на Ethereum делают то же самое.

Неограниченное одобрение в течение неограниченного времени

Как рассказал Cointelegraph Лейба, многие известные децентрализованные финансы, или DeFi, требуют бесконечного одобрения приложений.Среди протестированных командой ZenGo Compound, Uniswap, bZX, Aave, Kyber и dYdX имеют бесконечные или чрезвычайно большие разрешения.

Кейн Уорвик, основатель Synthetix, сказал Cointelegraph, что бесконечные разрешения позволяют повысить удобство использования и снизить потребление газа при компромиссе с более высоким риском.Пока что большинство платформ DeFi предпочитают удобство использования.Тем не менее, после аварии, Bancor решил изменить свои контракты, чтобы только утверждать необходимую сумму с каждой сделкой.

Cointelegraph также связался с Aave, чтобы узнать больше об их решении использовать бесконечные надбавки, но не получил ответа.

Warwick считает, что «это серьезная проблема, поскольку каждый новый контракт, который вы даете« бесконечное одобрение », подвергает вас большему риску в случае компрометации контракта».

Даже когда платформа больше не используется, разрешения остаются в силе.Лейба отметил, что более 160 адресов остаются уязвимыми для «умного» контракта Bancor, предположительно без средств.Однако, если они вернутся к активности, хакеры смогут украсть деньги в любой момент времени.

Стандарты виноваты?

Существуют фундаментальные ограничения для стандарта токенов ERC-20, обычно используемого сегодня.С одной стороны, одобрения не могут иметь ограничения по времени, что могло бы помочь смягчить некоторые из долгосрочных последствий бесконечных разрешений.

Различные конкурирующие стандарты, такие как ERC-223, стремились смягчить проблему, исключив необходимость предоставления разрешений в целом.В большинстве существующих приложений взаимодействие со смарт-контрактом можно каждый раз вручную подписывать без существенного влияния на работу пользователя.

Однако умные контракты не могут отвечать на односторонние «переводные» звонки, сделанные пользователем.Вместо этого они должны собирать токены самостоятельно, используя функцию «TransferFrom», которая требует настройки квоты с помощью метода «Approve».

Уорик объяснил, что команда изначально использовала более продвинутый стандарт ERC-223.Однако проблемы с чрезмерным использованием газа и ошибки в контрактах, которые не поддерживали новый стандарт, заставили сообщество отказаться от него.Добавил он:

«Стандарты сложны, и когда все разработано для ERC20, односторонний переход на ERC223 создает много трений».

Как это исправить

Некоторые кошельки позволяют пользователям изменять конкретную сумму надбавки во время запроса на утверждение, хотя немногие четко раскрывают значение по умолчанию.ZenGo внедрила систему, в которой утверждения отправляются одновременно с каждой передачей, что может помочь защитить пользователей за счет более высокого потребления газа.

Уорик поделился своими методами безопасности:

«Я даю контрактам неограниченное количество разрешений, но я очень осторожен, с какими из моих счетов я делаю это, и с какими контрактами я даю их, потому что это меньше трений, но намного более высокий риск».

Он также предположил, что «стоит проводить техническое обслуживание», убрав допуски по неиспользованным контрактам с помощью таких инструментов, как «Отмена», «Одобренная зона» и TAC.

Оцените автора
CryptoHamster.org
Добавить комментарий