Децентралізовані фінанси Загальні вразливості безпеки та заходи запобігання
Нещодавно один з експертів з безпеки поділився з членами спільноти курсом з безпеки DeFi. Курс оглянув значні інциденти безпеки, які сталися в індустрії Web3 за останній рік, обговорив причини цих подій та способи їх уникнення, узагальнив поширені вразливості смарт-контрактів та заходи запобігання, а також надав деякі рекомендації щодо безпеки для проектів та звичайних користувачів.
Звичайні типи вразливостей DeFi включають в себе кредитування через миттєві позики, маніпуляцію цінами, проблеми з функціями доступу, довільні зовнішні виклики, проблеми з функцією fallback, вразливості бізнес-логіки, витоки приватних ключів та атаки повторного входу. У цій статті буде особливо розглянуто три типи: кредитування через миттєві позики, маніпуляцію цінами та атаки повторного входу.
Лендінг
Швидкі позики є інновацією в Децентралізованих фінансах, але їх також можуть використовувати хакери. Зловмисники зазвичай беруть у швидкий позик велику суму коштів, щоб маніпулювати цінами або атакувати бізнес-логіку. Розробники повинні враховувати, чи можуть функції контракту призвести до аномалій через величезні кошти, або чи можливо отримати неправомірні винагороди, взаємодіючи з кількома функціями в одній транзакції за рахунок величезних коштів.
Багато проектів DeFi виглядають дуже вигідно, але рівень команди проекту може бути різним. Деякі проекти можуть використовувати куплений код, і навіть якщо код сам по собі не має вразливостей, логічно можуть існувати проблеми. Наприклад, деякі проекти розподіляють винагороди у фіксований час на основі кількості токенів, що належать тримачам, що може бути використано зловмисниками, які беруть позики через flash loan для покупки великої кількості токенів, щоб отримати більшу частину винагороди під час їх розподілу.
Маніпуляція цінами
Проблема маніпуляцій з цінами тісно пов'язана з闪电贷, головним чином через те, що деякі параметри під час розрахунку ціни можуть контролюватися користувачами. Існує два основних типи проблем:
При розрахунку ціни використовуються дані третьої сторони, але спосіб використання неправильний або перевірка відсутня, що призводить до навмисного маніпулювання ціною.
Використання кількості токенів з певних адрес як обчислювальної змінної, при цьому баланс токенів на цих адресах може бути тимчасово збільшений або зменшений.
Атака повторного входу
Одним з основних ризиків виклику зовнішніх контрактів є те, що вони можуть взяти під контроль потік управління і внести непередбачувані зміни в дані. Наприклад, у функції зняття, якщо баланс користувача встановлюється на 0 лише в кінці функції, тоді повторний (і подальші) виклики все ще можуть успішно виконатися, що призведе до повторного зняття.
Щоб вирішити проблему повторного входу, слід звернути увагу на такі пункти:
Необхідно запобігти не лише проблемі повторного входу в одну функцію.
Дотримуйтесь моделі Checks-Effects-Interactions під час кодування.
Використовуйте перевірений часом модифікатор для захисту від повторних викликів.
Варто відзначити, що повторне винайдення колеса може призвести до більших ризиків. Використання перевірених кращих практик безпеки зазвичай є безпечнішим, ніж розробка нових методів самостійно.
Рекомендації з безпеки для проекту
Дотримуйтесь найкращих практик безпеки під час розробки контрактів.
Реалізація можливостей оновлення та призупинення контракту.
Використання механізму блокування часу.
Збільшити інвестиції в безпеку, створити вдосконалену систему безпеки.
Підвищити обізнаність усіх співробітників про безпеку.
Запобігання внутрішнім зловживанням, підвищуючи ефективність, одночасно зміцнюючи ризик-менеджмент.
Обережно вводьте третіх осіб, за замовчуванням вважайте, що як верхні, так і нижні ланки не є безпечними.
Як користувачам/LP визначити, чи є смарт-контракт безпечним
Підтвердьте, чи є контракт відкритим.
Перевірте, чи використовує власник мультипідпис, і чи є мультипідпис децентралізованим.
Перегляньте вже існуючі угоди за контрактом.
Підтвердьте, чи є контракт代理契约, чи можна його оновити, чи є часовий замок.
Перевірте, чи контракт проходив аудит у кількох організацій, і чи не є права Owner занадто великими.
Зверніть увагу на використання оракулів.
Зосередившись на цих аспектах, користувачі можуть краще оцінити безпеку смарт-контрактів і зменшити ймовірність участі в ризикованих проектах.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
9 лайків
Нагородити
9
6
Поділіться
Прокоментувати
0/400
GateUser-a180694b
· 8год тому
Термінові позики 啧啧啧 обдурювати людей, як лохів старий товариш?
Переглянути оригіналвідповісти на0
ContractCollector
· 8год тому
Зараз Термінові позики дійсно є найвразливішими до експлуатації.
Переглянути оригіналвідповісти на0
AirdropChaser
· 8год тому
Я спочатку спробую, подивлюсь, цього разу обдурили людей, як лохів.
Переглянути оригіналвідповісти на0
BridgeTrustFund
· 8год тому
Знову проблеми з Термінові позики
Переглянути оригіналвідповісти на0
DeFiVeteran
· 8год тому
Знову жертви Термінових позик.
Переглянути оригіналвідповісти на0
MidnightSnapHunter
· 9год тому
Повторні атаки вже давно обговорюються, зараз хто не знає про це?
Аналіз поширених вразливостей безпеки в Децентралізованих фінансах: запобігання ризикам Термінових позик, маніпуляцій з цінами та повторних атак
Децентралізовані фінанси Загальні вразливості безпеки та заходи запобігання
Нещодавно один з експертів з безпеки поділився з членами спільноти курсом з безпеки DeFi. Курс оглянув значні інциденти безпеки, які сталися в індустрії Web3 за останній рік, обговорив причини цих подій та способи їх уникнення, узагальнив поширені вразливості смарт-контрактів та заходи запобігання, а також надав деякі рекомендації щодо безпеки для проектів та звичайних користувачів.
Звичайні типи вразливостей DeFi включають в себе кредитування через миттєві позики, маніпуляцію цінами, проблеми з функціями доступу, довільні зовнішні виклики, проблеми з функцією fallback, вразливості бізнес-логіки, витоки приватних ключів та атаки повторного входу. У цій статті буде особливо розглянуто три типи: кредитування через миттєві позики, маніпуляцію цінами та атаки повторного входу.
Лендінг
Швидкі позики є інновацією в Децентралізованих фінансах, але їх також можуть використовувати хакери. Зловмисники зазвичай беруть у швидкий позик велику суму коштів, щоб маніпулювати цінами або атакувати бізнес-логіку. Розробники повинні враховувати, чи можуть функції контракту призвести до аномалій через величезні кошти, або чи можливо отримати неправомірні винагороди, взаємодіючи з кількома функціями в одній транзакції за рахунок величезних коштів.
Багато проектів DeFi виглядають дуже вигідно, але рівень команди проекту може бути різним. Деякі проекти можуть використовувати куплений код, і навіть якщо код сам по собі не має вразливостей, логічно можуть існувати проблеми. Наприклад, деякі проекти розподіляють винагороди у фіксований час на основі кількості токенів, що належать тримачам, що може бути використано зловмисниками, які беруть позики через flash loan для покупки великої кількості токенів, щоб отримати більшу частину винагороди під час їх розподілу.
Маніпуляція цінами
Проблема маніпуляцій з цінами тісно пов'язана з闪电贷, головним чином через те, що деякі параметри під час розрахунку ціни можуть контролюватися користувачами. Існує два основних типи проблем:
Атака повторного входу
Одним з основних ризиків виклику зовнішніх контрактів є те, що вони можуть взяти під контроль потік управління і внести непередбачувані зміни в дані. Наприклад, у функції зняття, якщо баланс користувача встановлюється на 0 лише в кінці функції, тоді повторний (і подальші) виклики все ще можуть успішно виконатися, що призведе до повторного зняття.
Щоб вирішити проблему повторного входу, слід звернути увагу на такі пункти:
Варто відзначити, що повторне винайдення колеса може призвести до більших ризиків. Використання перевірених кращих практик безпеки зазвичай є безпечнішим, ніж розробка нових методів самостійно.
Рекомендації з безпеки для проекту
Як користувачам/LP визначити, чи є смарт-контракт безпечним
Зосередившись на цих аспектах, користувачі можуть краще оцінити безпеку смарт-контрактів і зменшити ймовірність участі в ризикованих проектах.