29 ноября 2022 г. UTC

Есть ли смысл в аудите? 3 взлома, которые аудит не смог предотвратить

Article
Поделиться

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

Взлом BadgerDAO

BadgerDAO — это DAO, нацеленная на внедрение биткойнов в мир децентрализованных финансов (DeFi) web3, построенных на смарт-контрактах Ethereum. 2 декабря 2021 года криптовалюта >на сумму более 120 миллионов долларов

В ноябре хакеры смогли получить доступ к веб-сайту приложения Badger, используя скомпрометированный ключ API, который был создан без ведома или разрешения инженеров Badger для периодического внедрения вредоносного кода javascript, который затронул часть его клиентов. Этот код генерировал мошеннические подтверждения транзакций, которые, если они будут одобрены пользователями, позволяют хакерам в будущем переводить средства на свои собственные кошельки, а не на те, которые контролируются BadgerDAO. Они спокойно ждали, когда большая рыба попадется в ловушку.

1 декабря 2021 года пользователь с токеном ERC20 на сумму 50 миллионов долларов разрешил злоумышленнику доступ к своим средствам. Злоумышленники быстро отреагировали, выведя все средства этой жертвы на сумму 50 миллионов долларов, а затем опустошив доступные счета всех других жертв, накопленные за время операции злоумышленника, в результате чего общая прибыль составила 120 миллионов долларов.

Таким образом, взлом был основан на проблеме визуального дизайна криптокошелька, чтобы заставить пользователей одобрить вредоносную транзакцию. Но задолго до этого взлом мог произойти из-за использования скомпрометированного ключа API, хотя смарт-контракт, вероятно, был идеальным.

Взлом протокола Fortress

Fortress Protocol — это протокол кредитования DeFi, который работает в Binance Smart Chain. Утром 9 мая у него украли средства из-за злонамеренной атаки.

Слабые укрепления, окружающие оракул проекта и процесс управления, позволили вторгшимся хакерам передать вредоносное предложение и манипулировать ценой залога. Они начали с покупки 400 000 FTS (токен управления Fortress Protocol), 4% от общего предложения за 11,4 ETH. Затем они создали контракт с вредоносным предложением и использовали свою FTS для голосования за свое предложение (4% положительных голосов — это условие для успешного прохождения предложения). Контракт изменил кредитное плечо токенов FTS с 0 до 0,7. Это позволяет хакерам использовать 70% стоимости токенов FTS с кредитным плечом для кредитования активов в протоколе.

В Fortress Protocol цена каждого токена определяется разными оракулами. Оракулы — это объекты, которые соединяют блокчейны с внешними системами, тем самым позволяя выполнять смарт-контракты на основе входных и выходных данных из реального мира. Среди них FTS, где цена получается от Umbrella Oracle. К сожалению, в функции submit() оракула была уязвимость, и хакеры смогли манипулировать машиной оракула, чтобы установить очень высокую цену для FTS, чтобы он мог одолжить все токены. Все эти токены были конвертированы примерно в 3 миллиона долларов США.

Протокол Fortress был проверен как Hash0x, так и EtherAuthority, ни один из которых не обнаружил уязвимости оракула в коде. Причина проста, для них это было недоступно, потому что уязвимость была в контракте другого протокола.

Взломы протокола Blizz Finance и Venus

Говоря об уязвимостях оракулов, у нас тут есть одна очень огромная, которая дорого обошлась двум кредитным платформам: Blizz Finance и Venus Protocol.

Поскольку вся экосистема Terra рушилась, неудачный план восстановления UST обрушил цену LUNA на доли цента. Тем не менее, Chainlink, авторитетный оракул, который использовался обоими протоколами в качестве ценового канала для оценки залога, содержал жестко запрограммированную минимальную цену для LUNA на уровне 0,10 доллара США. Когда цена упала ниже этой, любой мог скупить большое количество LUNA по рыночной цене и использовать ее в качестве залога (стоимостью 0,10 доллара США) для заимствования средств у платформ.

Ущерб огромен: 8,5 млн долларов для Blizz Finance (все средства протокола) и 13,5 млн долларов для Venus Protocol (на 1 млрд долларов).

Это хороший пример того, что ни один протокол не является безошибочным, даже самый важный. Падение LUNA ниже $0,10 могло быть немыслимым в то время, когда Chainlink настраивал канал, но они должны были обновить параметры своего оракула, поскольку стало ясно, что LUNA не собирается восстанавливаться. В протоколах должны быть предусмотрены меры для таких непредвиденных событий, например, собственные автоматические выключатели для приостановки контрактов в таких условиях.

2017-2024 Coindar