Децентралізовані фінанси безпеки: повний аналіз типів поширених уразливостей та заходів їх запобігання

robot
Генерація анотацій у процесі

Децентралізовані фінанси Загальні вразливості безпеки та заходи запобігання

Нещодавно один експерт з безпеки провів для членів спільноти урок з безпеки в сфері Децентралізовані фінанси. Експерт оглянув значні випадки безпеки, з якими стикалася індустрія Web3 протягом останнього року, обговорив причини цих подій та способи їх уникнення, підсумував поширені вразливості смарт-контрактів та заходи запобігання, а також надав деякі поради з безпеки для проектів та звичайних користувачів.

Звичайні типи вразливостей DeFi в основному включають в себе кредитування з миттєвим позикою, маніпулювання цінами, проблеми з правами функцій, випадкові зовнішні виклики, проблеми з функцією fallback, вразливості бізнес-логіки, витік приватних ключів та атаки повторного входу. У цій статті буде зосереджено увагу на трьох типах: кредитування з миттєвим позикою, маніпуляція цінами та атака повторного входу.

Cobo Децентралізовані фінанси безпека (частина 2): Поширені уразливості безпеки DeFi та їх профілактика

Швидкий кредит

Швидкі позики є інновацією в Децентралізованих фінансах, але їх також часто використовують хакери. Зловмисники зазвичай позичають великі суми коштів через швидкі позики, щоб маніпулювати цінами або атакувати бізнес-логіку. Розробники повинні враховувати, чи можуть функції контракту викликати аномалії через величезні суми коштів, або чи можуть бути використані для отримання неправомірних винагород.

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

Маніпуляція цінами

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

  1. Використання даних третіх сторін при розрахунку ціни, але неправильний спосіб використання або відсутність перевірки призводить до маніпуляцій з ціною.
  2. Використання кількості токенів з деяких адрес як змінної для обчислень, при цьому баланс токенів на цих адресах може бути тимчасово збільшений або зменшений.

Атака повторного входу

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

Щоб вирішити проблему повторного входу, зверніть увагу на такі пункти:

  1. Необхідно запобігти проблемі повторного входу для єдиної функції;
  2. Дотримуйтесь моделі Checks-Effects-Interactions під час кодування;
  3. Використовуйте перевірений часом модифікатор від повторних викликів.

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

Рекомендації щодо безпеки від команди проекту

  1. Дотримуйтесь кращих практик безпеки під час розробки контрактів.
  2. Реалізувати можливості оновлення і призупинки контрактів.
  3. Використання механізму тайм-лок.
  4. Збільшити інвестиції в безпеку, створити вдосконалену систему безпеки.
  5. Підвищення обізнаності всіх працівників про безпеку.
  6. Запобігання внутрішнім злочинам, посилення контролю ризиків під час підвищення ефективності.
  7. Обережно впроваджувати залежності від третіх сторін, проводити безпечну перевірку для верхніх і нижніх потоків.

Як користувачам визначити, чи є смарт-контракт безпечним

  1. Підтвердьте, чи є контракт з відкритим кодом.
  2. Перевірте, чи використовує Owner децентралізований механізм мультипідпису.
  3. Перегляньте наявні торгові операції контракту.
  4. Дізнайтеся, чи є контракт агентським контрактом, чи можна його оновити, чи є часовий замок.
  5. Підтвердьте, чи контракт проходив аудит кількома установами, чи не є права Owner занадто великими.
  6. Звертайте увагу на використання оракулів, особливо будьте обережні з самостійно створеними або ненадійними оракулом.

Зосередившись на цих аспектах, користувачі можуть краще оцінити безпеку смарт-контрактів та знизити ризики участі в проектах Децентралізовані фінанси.

Переглянути оригінал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Нагородити
  • 3
  • Поділіться
Прокоментувати
0/400
BearMarketHustlervip
· 10год тому
Вразливості контрактів з'являються щодня, але ніхто не проявляє обережності.
Переглянути оригіналвідповісти на0
ImpermanentLossFanvip
· 10год тому
І знову граю, вже помер тисячу разів...
Переглянути оригіналвідповісти на0
  • Закріпити