Разрыв цепи

3 хака, которые аудит не смог найти

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

Взлом BadgerDAO

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

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

1 декабря 2021 года пользователь с токеном ERC50 на сумму 20 миллионов долларов разрешил злоумышленнику доступ к своим средствам. Злоумышленники быстро отреагировали, выведя все средства этой жертвы на сумму 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 не собирается восстанавливаться. В протоколах должны быть предусмотрены меры для таких непредвиденных событий, например, собственные автоматические выключатели для приостановки контрактов в таких условиях.

перейти к содержанию