Чорна діра поглинута: вразливість Vyper робить Curve надійно перевернутою

Нещодавно Curve, надстабільний валютний протокол, зазнав атаки повторного входу, що спричинило серйозні втрати. Нижче наведено аналіз безпеки MetaTrust Labs і рекомендації щодо безпеки для цієї атаки.

Огляд події

Відповідно до офіційного Twitter Curve Finance, 31 липня 2023 року деякі стабільні пули (alETH/msETH/pETH), написані за допомогою Vyper версії 0.2.15, зазнали атаки повторного входу. Curve Finance заявила, що атака була спричинена несправністю блокувань повторного входу у Vyper версії 0.2.15 і торкнулася лише пулів, які використовують чистий ETH. Наразі Curve оцінює збитки, інші басейни в безпеці.

Згідно з аналізом MetaTrust Labs, уразливість була представлена в період із серпня по жовтень 2021 року, в основному через компілятор Vyper версії 0.2.15/0.2.16/0.3.0. Причина вразливості полягає в тому, що логіка повторного входу в згенерованому байт-коді не повинна діяти через помилку в компіляторі.

Згідно зі статистичними даними мережі, інцидент зі зломом пулу стейблкойнів Curve Finance спричинив сукупний збиток у 52 мільйони доларів США в пулах Alchemix, JPEG'd, CRV/ETH тощо. Токен CRV від Curve Finance також сильно постраждав, знизившись більш ніж на 15% за день.

Аналіз причин

Причина, чому Curve Finance зазнала атаки цього разу, полягає в тому, що коли Curve використовувала мову Vyper для написання смарт-контрактів, вона використовувала Vyper версії 0.2.15.У цій версії є вразливість, яка називається несправними блокуваннями повторного входу (збій блокування повторного входу). Експлойт запущено атака повторного входу, щоб завдати втрат. Цього разу вразливість Curve Finance стосується певної мови.

Специфічні уразливості мови стосуються вразливостей, спричинених дефектами або несумісністю певної мови програмування чи самого компілятора. Такі вразливості часто важко знайти та запобігти, оскільки вони спричинені не недбалістю розробника чи логічними помилками, а проблемами базової технологічної платформи. Ці типи вразливостей також мають тенденцію впливати на кілька проектів або контрактів, оскільки всі вони використовують ту саму мову або компілятор.

Vyper — це мова програмування смарт-контрактів на основі Python, створена для більшої безпеки та читабельності. Vyper стверджує, що є мовою «безпека перш за все» і не підтримує деякі функції, які можуть спричинити загрози безпеці, наприклад класи, успадкування, модифікатори, вбудоване збирання тощо. Однак Vyper не ідеальний, і в ньому все ще є деякі помилки або лазівки, які можуть вплинути на безпеку контракту. Наприклад, окрім збою повторного блокування, з яким цього разу зіткнулася Curve Finance, у Vyper також виникли такі проблеми, як вихід масиву за межі, переповнення цілих чисел і помилки доступу до сховища.

Заходи безпеки

Цього разу для атаки повторного входу Curve Finance було вжито або запропоновано деякі контрзаходи. Ось кілька контрзаходів безпеки, які ви можете вжити:

  • Виведення ліквідності: для постраждалих пулів користувачі можуть вибирати ліквідність, щоб уникнути подальших втрат. На офіційному сайті Curve Finance передбачена зручна для користувачів кнопка виведення ліквідності.
  • Оновіть компілятор: для контрактів, які використовують компілятор версій Vyper 0.2.15/0.2.16/0.3.0, рекомендується оновити до останньої версії Vyper 0.3.1, яка вирішила проблему збою блокування повторного доступу. У той же час також рекомендується використовувати інші інструменти або методи для перевірки безпеки контракту, такі як формальна перевірка, аудит коду тощо.
  • Будьте пильними: щодо контрактів, написаних мовою Vyper або іншими мовами, рекомендується бути пильними, звертати увагу на оновлення мови чи компілятора та виправлення помилок, а також своєчасно вживати необхідних заходів для захисту своїх активів. У той же час також рекомендується, щоб під час використання нової мови або нової технології ретельно оцінювати її зрілість і стабільність і уникати сліпо гнатися за свіжістю або ефективністю.

Підведіть підсумки

Інцидент повторного входу в Curve Finance став нещасним інцидентом безпеки та уроком, який спонукав до роздумів. У сфері децентралізованих фінансів (DeFi) безпека завжди є головним пріоритетом. Сторони проекту повинні постійно вдосконалювати свою обізнаність і можливості щодо безпеки. Будь-яка деталь може стати проривом для зловмисників.

Слідуй за нами

Twitter: @MetaTrustLabs

Веб-сайт: metatrust.io

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Поділіться
Прокоментувати
0/400
Немає коментарів
  • Закріпити