Аналіз інциденту з атакою хакера на платформу DeFi Balancer
29 червня вночі два ERC20 дефляційні токенні пулу платформи Balancer зазнали атаки хакера, що призвело до збитків понад 500 тисяч доларів. Після втручання аналітиків безпеки було виявлено, що корінь проблеми полягає в тому, що дефляційні токени Balancer не сумісні з його смарт-контрактами в певних специфічних сценаріях, що дозволило зловмисникам створити пул токенів з ціновим відхиленням і отримати з цього прибуток.
Хакерські атаки поділяються на чотири основні етапи:
Отримати 104,331 WETH через миттєвий кредит з певної платформи.
Постійно виконуючи swapexactMountin() виклик, поки кількість STA токенів, що належать Balancer, не зменшиться майже до нуля, залишившись лише 0.000000000000000001 STA.
Використовуючи несумісність токена STA з розумним контрактом Balancer, тобто невідповідність обліку та балансу, вичерпали інші активи в ліквідності, зрештою отримавши прибуток у 523,616.52 доларів.
Погасити миттєвий кредит та перевести цифрові активи, отримані в результаті атаки.
!
У ключовій фазі атаки, Хакер через функцію swapExactAmountIn() відправив дуже невелику кількість STA до BPool, отримуючи величезну різницю у вартості в обмін на велику кількість WETH. Оскільки при переказі STA буде спалено 1% комісії, насправді BPool не може отримати жодного STA, що призводить до невідповідності між фактичним залишком та внутрішнім обліком. Атакуючий потім, викликаючи функцію gulp(), постійно скидає _records[STA], підтримуючи дуже невелику кількість залишку STA в BPool, таким чином продовжуючи обмінювати інші активи за високою ціною.
!
Ця подія знову виявила ризики сумісності, що існують у комбінації Децентралізованих фінансів. Для запобігання подібним атакам можна розглянути такі оптимізаційні рішення:
Коли сума переказу недостатня для сплати комісії, STA/STONK під час виконання transfer() або transferFrom() повинні безпосередньо скасувати операцію або повернути False.
Balancer повинен перевіряти фактичний баланс BPool після кожного виклику функції transferFrom().
!
Проте найкращим рішенням залишається запобігання в майбутньому. Розробники DeFi проєктів повинні дотримуватися добрих кодових стандартів, шукати допомогу у сторонніх безпечних компаній для проведення всебічних тестів на атаки та захист, а також ретельно перевіряти різні стандарти токенів і комбінації поведінки DeFi проєктів.
!
Конкретні збитки, завдані під час атаки на Balancer, включають:
601.3 ЗХ.
11 031,4 SNX
22 593,2 ПОСИЛАННЯ
116 107,8 STA
53.4 КОМП
Загальні збитки складають приблизно 523,616.52 доларів США цифрових активів.
!
!
!
!
!
Ця подія безсумнівно матиме важливий вплив на спільноту Децентралізовані фінанси, а також застерігає всіх розробників проектів Децентралізовані фінанси, що вони повинні приділяти велику увагу безпеці смарт-контрактів.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
Balancer зазнав атаки хакера на 500 тисяч доларів: вразливість у контракті DeFi знову б’є на сполох
Аналіз інциденту з атакою хакера на платформу DeFi Balancer
29 червня вночі два ERC20 дефляційні токенні пулу платформи Balancer зазнали атаки хакера, що призвело до збитків понад 500 тисяч доларів. Після втручання аналітиків безпеки було виявлено, що корінь проблеми полягає в тому, що дефляційні токени Balancer не сумісні з його смарт-контрактами в певних специфічних сценаріях, що дозволило зловмисникам створити пул токенів з ціновим відхиленням і отримати з цього прибуток.
Хакерські атаки поділяються на чотири основні етапи:
Отримати 104,331 WETH через миттєвий кредит з певної платформи.
Постійно виконуючи swapexactMountin() виклик, поки кількість STA токенів, що належать Balancer, не зменшиться майже до нуля, залишившись лише 0.000000000000000001 STA.
Використовуючи несумісність токена STA з розумним контрактом Balancer, тобто невідповідність обліку та балансу, вичерпали інші активи в ліквідності, зрештою отримавши прибуток у 523,616.52 доларів.
Погасити миттєвий кредит та перевести цифрові активи, отримані в результаті атаки.
!
У ключовій фазі атаки, Хакер через функцію swapExactAmountIn() відправив дуже невелику кількість STA до BPool, отримуючи величезну різницю у вартості в обмін на велику кількість WETH. Оскільки при переказі STA буде спалено 1% комісії, насправді BPool не може отримати жодного STA, що призводить до невідповідності між фактичним залишком та внутрішнім обліком. Атакуючий потім, викликаючи функцію gulp(), постійно скидає _records[STA], підтримуючи дуже невелику кількість залишку STA в BPool, таким чином продовжуючи обмінювати інші активи за високою ціною.
!
Ця подія знову виявила ризики сумісності, що існують у комбінації Децентралізованих фінансів. Для запобігання подібним атакам можна розглянути такі оптимізаційні рішення:
Коли сума переказу недостатня для сплати комісії, STA/STONK під час виконання transfer() або transferFrom() повинні безпосередньо скасувати операцію або повернути False.
Balancer повинен перевіряти фактичний баланс BPool після кожного виклику функції transferFrom().
!
Проте найкращим рішенням залишається запобігання в майбутньому. Розробники DeFi проєктів повинні дотримуватися добрих кодових стандартів, шукати допомогу у сторонніх безпечних компаній для проведення всебічних тестів на атаки та захист, а також ретельно перевіряти різні стандарти токенів і комбінації поведінки DeFi проєктів.
!
Конкретні збитки, завдані під час атаки на Balancer, включають:
Загальні збитки складають приблизно 523,616.52 доларів США цифрових активів.
!
!
!
!
!
Ця подія безсумнівно матиме важливий вплив на спільноту Децентралізовані фінанси, а також застерігає всіх розробників проектів Децентралізовані фінанси, що вони повинні приділяти велику увагу безпеці смарт-контрактів.