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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

За допомогою вищезгаданих заходів, команда проекту та користувачі можуть в певній мірі підвищити безпеку DeFi проектів і знизити ризик атак.

DEFI0.75%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 8
  • Поділіться
Прокоментувати
0/400
SadMoneyMeowvip
· 07-18 23:00
Слухаючи так багато років без толку, все одно, якщо потрібно, обдурюватимуть людей, як лохів.
Переглянути оригіналвідповісти на0
DefiPlaybookvip
· 07-17 00:45
Статистика показує, що термінові позики становлять 43.7% збитків у Децентралізованих фінансах.
Переглянути оригіналвідповісти на0
LiquiditySurfervip
· 07-16 23:58
Захистіть свій гаманець, кожен
Переглянути оригіналвідповісти на0
FundingMartyrvip
· 07-15 23:30
Після того, як зазнаєш невдачі, тільки тоді починаєш запам'ятовувати.
Переглянути оригіналвідповісти на0
alpha_leakervip
· 07-15 23:17
Звичний хакер.
Переглянути оригіналвідповісти на0
GateUser-00be86fcvip
· 07-15 23:10
Стільки вразливостей, як з цим грати?
Переглянути оригіналвідповісти на0
LongTermDreamervip
· 07-15 23:03
Знову три роки як один день щоденника годування овець
Переглянути оригіналвідповісти на0
ImpermanentLossFanvip
· 07-15 23:02
новачок користувачам краще уникати
Переглянути оригіналвідповісти на0
  • Закріпити