Розривний ланцюг

3 хаки, які аудит не знайшов

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

Злом BadgerDAO

BadgerDAO — це DAO, який зосереджений на перенесенні біткойнів у світ web3 децентралізованих фінансів (DeFi), побудований на смарт-контрактах 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. Потім вони створили договір про зловмисну ​​пропозицію та використали ФНС для голосування за свою пропозицію (4% позитивних голосів є умовою успішного проходження пропозиції). Контракт змінив кредитне плече токенів FTS з 0 до 0.7. Це дозволяє хакерам використовувати 70% вартості токенів FTS із кредитним плечем для надання активів у протоколі.

У Fortress Protocol ціна кожного токена визначається різними оракулами. Оракули — це об’єкти, які з’єднують блокчейни із зовнішніми системами, уможливлюючи таким чином виконання смарт-контрактів на основі вхідних і вихідних даних із реального світу. Серед них FTS, де ціна отримана від Umbrella Oracle. На жаль, у функції submit() оракула була вразливість, і хакери змогли маніпулювати машиною оракула, щоб встановити дуже високу ціну для FTS, щоб він міг позичити всі токени. Усі ці токени були конвертовані приблизно в 3 мільйони доларів США.

Fortress Protocol пройшов аудит як Hash0x, так і EtherAuthority, жоден з яких не виявив жодної вразливості оракула в коді. Причина проста: це було поза сферою їх дії, оскільки вразливість була в контракті іншого протоколу.

Хакі Blizz Finance & Venus Protocol

Якщо говорити про вразливість оракулів, то тут ми маємо величезну вразливість, яка дорого обійшлася двом платформам кредитування: 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 не відновиться. Протоколи повинні мати заходи щодо цих непередбачених подій, наприклад, власні автоматичні вимикачі для призупинення контрактів за таких умов.

Перейти до вмісту