Безпека DeFi: Посібник з захисту від термінових позик, маніпуляцій з цінами та атак повторного входу

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

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

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

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

Cobo Децентралізовані фінанси безпековий курс (частина друга): Звичайні уразливості безпеки в DeFi та їх профілактика

Швидкі позики

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

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

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

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

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

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

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

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

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

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

Рекомендації з безпеки

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

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

Користувачі/LP як можуть визначити, чи є смарт-контракт безпечним

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

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

DEFI10.42%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 6
  • Поділіться
Прокоментувати
0/400
SelfRuggervip
· 07-31 13:56
Знову обдурювати людей, як лохів, так? Просто тримай.
Переглянути оригіналвідповісти на0
FlashLoanKingvip
· 07-31 11:16
Знову зустрів Термінові позики yyds
Переглянути оригіналвідповісти на0
GovernancePretendervip
· 07-31 11:14
Захист безпеки також не лікує долю невдах
Переглянути оригіналвідповісти на0
LiquidatorFlashvip
· 07-31 11:13
Ціна Коливання 0.3% вже потребує ризик-менеджменту. Не чекайте на сигнал Ліквідуватися 99.99%.
Переглянути оригіналвідповісти на0
MEVHunterBearishvip
· 07-31 11:10
Щоденник обману
Переглянути оригіналвідповісти на0
rug_connoisseurvip
· 07-31 11:04
Написав стільки, а все одно те ж саме. Хіба це не знецінюється?
Переглянути оригіналвідповісти на0
  • Закріпити