Децентралізовані фінанси поширені уразливості безпеки та заходи запобігання
Нещодавно один з експертів з безпеки поділився з членами спільноти уроком з безпеки в Децентралізованих фінансах. Цей експерт переглянув значні події безпеки, які сталися в індустрії Web3 за останній рік, обговорив причини цих подій і способи їх уникнення, підсумував поширені вразливості смарт-контрактів і заходи профілактики, а також дав кілька порад щодо безпеки для проектів і звичайних користувачів.
Звичайні типи вразливостей DeFi в основному включають блискавичні позики, маніпуляції цінами, проблеми з функціональними правами, довільні зовнішні виклики, проблеми з функцією fallback, вразливості бізнес-логіки, витоки приватних ключів та атаки повторного входу. У цій статті буде особливо розглянуто три типи: блискавичні позики, маніпуляції цінами та атаки повторного входу.
Швидкий кредит
Швидкі кредити є інновацією в Децентралізованих фінансах, але їх також часто використовують хакери. Зловмисники беруть в борг великі суми коштів через швидкі кредити, щоб маніпулювати цінами або атакувати бізнес-логіку. Розробники повинні враховувати, чи можуть функції контракту викликати аномалії через великі суми коштів або бути використаними для отримання неправомірної вигоди шляхом взаємодії з кількома функціями в одній транзакції.
Багато проектів у Децентралізованих фінансах виглядають дуже прибутковими, але насправді рівень їхніх розробників різниться. Деякі проекти можуть мати куплений код, і навіть якщо в коді немає вразливостей, в логіці все ще можуть бути проблеми. Наприклад, деякі проекти виплачують винагороду у фіксований час в залежності від кількості токенів, які тримають власники, але зловмисники можуть використати флеш-кредити для покупки великої кількості токенів, щоб отримати більшу частину винагороди під час їх виплати.
Маніпуляція цінами
Проблема маніпуляції цінами тісно пов'язана з миттєвими кредитами, головним чином через те, що деякі параметри, що використовуються для розрахунку цін, можуть контролюватися користувачами. Існує два поширених типи проблем:
При розрахунку ціни використовуються дані третіх сторін, але спосіб використання неправильний або відсутня перевірка, що призводить до маніпуляцій з ціною.
Використання кількості токенів з певних адрес як обчислювальної змінної, при цьому баланс токенів на цих адресах може тимчасово збільшуватися або зменшуватися.
Атака повторного входу
Атака повторного входу є однією з основних небезпек, з якими можна зіткнутися під час виклику зовнішніх контрактів. Зловмисник може перехопити контрольний потік і внести непередбачувані зміни до даних, викликавши функцію. Наприклад, у функції виведення, якщо баланс користувача встановлюється на 0 лише в кінці функції, зловмисник може неодноразово викликати цю функцію посередині, багаторазово знімаючи баланс.
Щодо атак повторного входу, необхідно звернути увагу на такі моменти:
Не лише запобігає проблемі повторного входу єдиної функції
Дотримуйтесь моделі Checks-Effects-Interactions при кодуванні
Використовуйте перевірений часом модифікатор для захисту від повторних викликів
При вирішенні проблем безпеки слід намагатися використовувати вже перевірені найкращі практики безпеки, а не винаходити колесо заново.
Рекомендації щодо безпеки для проекту
Дотримуйтесь найкращих практик безпеки під час розробки контрактів
Реалізація можливостей оновлення та призупинки контракту
Використання механізму блокування часу
Збільшити інвестиції в безпеку, створити вдосконалену систему безпеки
Підвищення обізнаності про безпеку серед усіх працівників
Запобігання внутрішнім зловживанням, підвищуючи ефективність, одночасно зміцнюючи контроль ризиків
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
21 лайків
Нагородити
21
8
Поділіться
Прокоментувати
0/400
SadMoneyMeow
· 07-18 23:00
Слухаючи так багато років без толку, все одно, якщо потрібно, обдурюватимуть людей, як лохів.
Переглянути оригіналвідповісти на0
DefiPlaybook
· 07-17 00:45
Статистика показує, що термінові позики становлять 43.7% збитків у Децентралізованих фінансах.
Переглянути оригіналвідповісти на0
LiquiditySurfer
· 07-16 23:58
Захистіть свій гаманець, кожен
Переглянути оригіналвідповісти на0
FundingMartyr
· 07-15 23:30
Після того, як зазнаєш невдачі, тільки тоді починаєш запам'ятовувати.
Переглянути оригіналвідповісти на0
alpha_leaker
· 07-15 23:17
Звичний хакер.
Переглянути оригіналвідповісти на0
GateUser-00be86fc
· 07-15 23:10
Стільки вразливостей, як з цим грати?
Переглянути оригіналвідповісти на0
LongTermDreamer
· 07-15 23:03
Знову три роки як один день щоденника годування овець
Децентралізовані фінанси безпеки: аналіз поширених уразливостей та стратегій їх запобігання
Децентралізовані фінанси поширені уразливості безпеки та заходи запобігання
Нещодавно один з експертів з безпеки поділився з членами спільноти уроком з безпеки в Децентралізованих фінансах. Цей експерт переглянув значні події безпеки, які сталися в індустрії Web3 за останній рік, обговорив причини цих подій і способи їх уникнення, підсумував поширені вразливості смарт-контрактів і заходи профілактики, а також дав кілька порад щодо безпеки для проектів і звичайних користувачів.
Звичайні типи вразливостей DeFi в основному включають блискавичні позики, маніпуляції цінами, проблеми з функціональними правами, довільні зовнішні виклики, проблеми з функцією fallback, вразливості бізнес-логіки, витоки приватних ключів та атаки повторного входу. У цій статті буде особливо розглянуто три типи: блискавичні позики, маніпуляції цінами та атаки повторного входу.
Швидкий кредит
Швидкі кредити є інновацією в Децентралізованих фінансах, але їх також часто використовують хакери. Зловмисники беруть в борг великі суми коштів через швидкі кредити, щоб маніпулювати цінами або атакувати бізнес-логіку. Розробники повинні враховувати, чи можуть функції контракту викликати аномалії через великі суми коштів або бути використаними для отримання неправомірної вигоди шляхом взаємодії з кількома функціями в одній транзакції.
Багато проектів у Децентралізованих фінансах виглядають дуже прибутковими, але насправді рівень їхніх розробників різниться. Деякі проекти можуть мати куплений код, і навіть якщо в коді немає вразливостей, в логіці все ще можуть бути проблеми. Наприклад, деякі проекти виплачують винагороду у фіксований час в залежності від кількості токенів, які тримають власники, але зловмисники можуть використати флеш-кредити для покупки великої кількості токенів, щоб отримати більшу частину винагороди під час їх виплати.
Маніпуляція цінами
Проблема маніпуляції цінами тісно пов'язана з миттєвими кредитами, головним чином через те, що деякі параметри, що використовуються для розрахунку цін, можуть контролюватися користувачами. Існує два поширених типи проблем:
Атака повторного входу
Атака повторного входу є однією з основних небезпек, з якими можна зіткнутися під час виклику зовнішніх контрактів. Зловмисник може перехопити контрольний потік і внести непередбачувані зміни до даних, викликавши функцію. Наприклад, у функції виведення, якщо баланс користувача встановлюється на 0 лише в кінці функції, зловмисник може неодноразово викликати цю функцію посередині, багаторазово знімаючи баланс.
Щодо атак повторного входу, необхідно звернути увагу на такі моменти:
При вирішенні проблем безпеки слід намагатися використовувати вже перевірені найкращі практики безпеки, а не винаходити колесо заново.
Рекомендації щодо безпеки для проекту
Як користувачам визначити, чи є смарт-контракт безпечним
За допомогою вищезгаданих заходів, команда проекту та користувачі можуть в певній мірі підвищити безпеку DeFi проектів і знизити ризик атак.