Децентралізовані фінанси безпека: поширені типи вразливостей та заходи запобігання
Нещодавно один фахівець з безпеки поділився уроком з безпеки DeFi для членів спільноти. Він оглянув значні інциденти безпеки, які сталися в індустрії Web3 за останній рік, обговорив причини їх виникнення та способи уникнення, підсумував поширені вразливості смарт-контрактів та заходи запобігання, а також надав кілька порад щодо безпеки для проектів та звичайних користувачів.
Звичайні типи вразливостей DeFi включають в себе миттєві позики, маніпуляції цінами, проблеми з правами функцій, довільні зовнішні виклики, проблеми з функцією fallback, вразливості бізнес-логіки, витоки приватних ключів та атаки повторного входу. Ця стаття зосередиться на трьох типах: миттєві позики, маніпуляції цінами та атаки повторного входу.
Швидкий кредит
Швидкі кредити - це інновація Децентралізованих фінансів, але їх також часто використовують хакери. Зловмисники позичають великі суми через швидкі кредити, щоб маніпулювати цінами або атакувати бізнес-логіку. Розробники повинні враховувати, чи можуть функції контракту викликати аномалії через величезні кошти або бути використаними для отримання неналежних винагород шляхом взаємодії з кількома функціями в одній транзакції.
Багато проектів у сфері Децентралізовані фінанси виглядають дуже прибутковими, але насправді рівень команди проекту може бути різним. Навіть якщо сам код не має вразливостей, у логіці все ще можуть бути проблеми. Наприклад, деякі проекти розподіляють винагороди в певний час відповідно до кількості токенів у тримача, але зловмисники можуть використовувати флеш-кредити для покупки великої кількості токенів, щоб отримати більшу частину винагороди під час їх розподілу.
Ціна маніпуляції
Проблема маніпуляції цінами тісно пов'язана з миттєвими кредитами, головним чином через те, що деякі параметри при розрахунку цін можуть контролюватися користувачем. Існує два основних типи проблем:
При розрахунку ціни використовуються дані третьої сторони, але спосіб використання є неправильним або перевірка відсутня, що призводить до маніпуляцій з ціною.
Використання кількості токенів з певних адрес як обчислювальної змінної, при цьому баланс токенів цих адрес може бути тимчасово збільшений або зменшений.
Атака повторного входу
Одним з основних ризиків виклику зовнішніх смарт-контрактів є те, що вони можуть перехопити контрольний потік і внести непередбачувані зміни в дані. Типовим прикладом атаки повторного входу є ситуація, коли в функції виведення баланс користувача встановлюється в 0 лише в кінці функції, що дозволяє багаторазово викликати функцію та успішно виводити кошти.
Щоб вирішити проблему повторного входу, необхідно звернути увагу на такі моменти:
Необхідно не лише запобігти проблемі повторного входу для однієї функції
Дотримуйтесь моделі Checks-Effects-Interactions під час кодування
Використовуйте перевірений часом модифікатор для запобігання повторним викликам
У безпечних практиках слід намагатися використовувати вже перевірені зрілі рішення, а не повторно винаходити велосипед.
Рекомендації з безпеки для проєкту
Дотримуватися найкращих практик безпеки під час розробки контрактів
Реалізація можливостей оновлення та призупинення контрактів
Використання механізму таймлоків
Збільшити інвестиції в безпеку, створити вдосконалену систему безпеки
Підвищення обізнаності всіх співробітників щодо безпеки
Запобігання внутрішнім зловживанням, підвищуючи ефективність, одночасно посилюючи контроль ризиків.
Обережно впроваджуйте сторонні компоненти, забезпечуючи їх безпеку
Як користувачам визначити безпеку смарт-контрактів
Підтвердьте, чи є контракт відкритим
Перевірте, чи власник використовує децентралізований мультипідписний механізм
Перегляньте вже існуючі торгові ситуації контракту
Підтвердіть, чи є контракт агентським контрактом, чи можна його оновити, чи є часовий замок.
Перевірте, чи контракт був перевірений кількома агентствами, чи не є права власника занадто великими.
Звертайте увагу на використання оркулів, віддавайте перевагу відомим оркулів.
Зосередивши увагу на зазначених вище пунктах, користувачі можуть краще оцінити безпеку DeFi проекту, що дозволить їм приймати більш обґрунтовані інвестиційні рішення.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
10 лайків
Нагородити
10
4
Поділіться
Прокоментувати
0/400
MidnightSeller
· 5год тому
Знову проводять аудит, вечірка проєкту це сприйме?
Переглянути оригіналвідповісти на0
UncommonNPC
· 07-22 05:57
Все ж таки, атакувальні методи численні...
Переглянути оригіналвідповісти на0
NeverPresent
· 07-22 05:54
Знову говорять про аудит, як ніби нічого не сказали.
Посібник з безпеки DeFi: Глибина аналізу поширених вразливостей та стратегій запобігання
Децентралізовані фінанси безпека: поширені типи вразливостей та заходи запобігання
Нещодавно один фахівець з безпеки поділився уроком з безпеки DeFi для членів спільноти. Він оглянув значні інциденти безпеки, які сталися в індустрії Web3 за останній рік, обговорив причини їх виникнення та способи уникнення, підсумував поширені вразливості смарт-контрактів та заходи запобігання, а також надав кілька порад щодо безпеки для проектів та звичайних користувачів.
Звичайні типи вразливостей DeFi включають в себе миттєві позики, маніпуляції цінами, проблеми з правами функцій, довільні зовнішні виклики, проблеми з функцією fallback, вразливості бізнес-логіки, витоки приватних ключів та атаки повторного входу. Ця стаття зосередиться на трьох типах: миттєві позики, маніпуляції цінами та атаки повторного входу.
Швидкий кредит
Швидкі кредити - це інновація Децентралізованих фінансів, але їх також часто використовують хакери. Зловмисники позичають великі суми через швидкі кредити, щоб маніпулювати цінами або атакувати бізнес-логіку. Розробники повинні враховувати, чи можуть функції контракту викликати аномалії через величезні кошти або бути використаними для отримання неналежних винагород шляхом взаємодії з кількома функціями в одній транзакції.
Багато проектів у сфері Децентралізовані фінанси виглядають дуже прибутковими, але насправді рівень команди проекту може бути різним. Навіть якщо сам код не має вразливостей, у логіці все ще можуть бути проблеми. Наприклад, деякі проекти розподіляють винагороди в певний час відповідно до кількості токенів у тримача, але зловмисники можуть використовувати флеш-кредити для покупки великої кількості токенів, щоб отримати більшу частину винагороди під час їх розподілу.
Ціна маніпуляції
Проблема маніпуляції цінами тісно пов'язана з миттєвими кредитами, головним чином через те, що деякі параметри при розрахунку цін можуть контролюватися користувачем. Існує два основних типи проблем:
Атака повторного входу
Одним з основних ризиків виклику зовнішніх смарт-контрактів є те, що вони можуть перехопити контрольний потік і внести непередбачувані зміни в дані. Типовим прикладом атаки повторного входу є ситуація, коли в функції виведення баланс користувача встановлюється в 0 лише в кінці функції, що дозволяє багаторазово викликати функцію та успішно виводити кошти.
Щоб вирішити проблему повторного входу, необхідно звернути увагу на такі моменти:
У безпечних практиках слід намагатися використовувати вже перевірені зрілі рішення, а не повторно винаходити велосипед.
Рекомендації з безпеки для проєкту
Як користувачам визначити безпеку смарт-контрактів
Зосередивши увагу на зазначених вище пунктах, користувачі можуть краще оцінити безпеку DeFi проекту, що дозволить їм приймати більш обґрунтовані інвестиційні рішення.