Децентралізовані фінанси безпеки: поширені вразливості та заходи запобігання
Нещодавно один експерт з безпеки поділився курсом з безпеки DeFi для членів спільноти. Цей експерт переглянув значні події безпеки, з якими стикалася індустрія Web3 за останній рік, обговорив причини цих подій та способи їх запобігання, а також підсумував поширені вразливості смарт-контрактів та заходи запобігання, водночас надавши деякі рекомендації з безпеки для проектів та звичайних користувачів.
Загальні типи вразливостей у Децентралізованих фінансах
У DeFi існують поширені типи вразливостей, такі як миттєвий кредит, маніпуляція цінами, проблеми з правами функцій, довільні зовнішні виклики, проблеми з функцією fallback, вразливості бізнес-логіки, витоки приватних ключів та атаки повторного входу тощо. У цій статті буде зосереджено увагу на трьох типах: миттєвий кредит, маніпуляція цінами та атаки повторного входу.
Швидкий кредит
Хоча блискавичні позики є інновацією в Децентралізованих фінансах, їх також використовують хакери для атак. Зазвичай зловмисники беруть в позикy велику суму коштів через блискавичні позики, маніпулюють цінами або атакують бізнес-логіку. Розробники повинні враховувати, чи може функціональність контракту призвести до аномалій через величезні суми коштів, або чи можливо отримати неналежну винагороду, взаємодіючи з кількома функціями в одній транзакції через великі суми.
Багато проектів DeFi здаються дуже прибутковими, але насправді здатності розробників різняться. Деякі проекти можуть мати код, куплений на стороні, і навіть якщо сам код не має вразливостей, логічно можуть виникати проблеми. Наприклад, деякі проекти виплачують винагороди залежно від кількості токенів у власності, але зловмисники можуть використати флеш-кредити для покупки великої кількості токенів, отримуючи більшу частину винагород.
маніпуляція цінами
Проблема маніпуляції цінами тісно пов'язана з миттєвими кредитами. Ці проблеми в основному виникають через те, що певні параметри, які використовуються для розрахунку ціни, можуть контролюватися користувачами. Існує два основних типи проблем:
При розрахунку ціни використовуються дані з третіх сторін, але неналежне їх використання або відсутність перевірки призводить до маніпуляцій з ціною.
Використання кількості токенів з деяких адрес як обчислювальної змінної, при цьому баланс токенів на цих адресах може тимчасово збільшуватися або зменшуватися.
атака повторного входу
Одним з основних ризиків виклику зовнішніх контрактів є те, що вони можуть перехопити контрольний потік і внести непередбачувані зміни в дані. Наприклад, у функції виведення, якщо баланс користувача встановлюється на 0 лише в кінці функції, то повторний виклик може призвести до багаторазового виведення залишку.
При вирішенні проблеми повторного входу слід звернути увагу на такі моменти:
Потрібно не лише запобігти проблемі повторного входу одного функції.
Дотримуйтеся моделі Checks-Effects-Interactions під час кодування.
Використовуйте модифікатор захисту від повторного входу, перевірений часом.
Слід зазначити, що повторне створення колеса часто підвищує ризик помилок. Використання вже існуючих найкращих практик безпеки в галузі, як правило, є більш надійним, ніж самостійна розробка.
Рекомендації з безпеки
Рекомендації з безпеки для проекту
Дотримуйтесь найкращих практик безпеки під час розробки контрактів.
Реалізувати функції оновлення і призупинення контракту.
Використання механізму часових замків.
Збільшити інвестиції в безпеку, створити вдосконалену систему безпеки.
Підвищення обізнаності всіх співробітників щодо безпеки.
Запобігання внутрішнім зловживанням, одночасно підвищуючи ефективність, зміцнюючи управління ризиками.
Обережно впроваджуйте сторонні послуги, проводьте безпекову перевірку для всіх учасників.
Користувач/LP як визначити безпеку смарт-контракту
Перевірте, чи є контракт відкритим.
Підтвердьте, чи використовує Owner децентралізований мультипідпис.
Переглянути вже існуючу торгову ситуацію контракту.
Досліджуйте, чи є контракт агентським, чи можна його оновити, чи є часовий замок.
Підтвердіть, чи контракт проходив аудит у кількох установах, і оцініть, чи надто великі повноваження Owner.
Зверніть увагу на тип оракула, який використовується в проєкті, та його надійність.
Зосередившись на цих аспектах, користувачі можуть краще оцінити безпеку проекту та знизити ризики участі.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
11 лайків
Нагородити
11
7
Поділіться
Прокоментувати
0/400
NFTArtisanHQ
· 15год тому
фасцинуючий аналіз, але замість запобігання давайте обговоримо естетичну топологію експлуатацій defi...
Переглянути оригіналвідповісти на0
BloodInStreets
· 15год тому
Скорочення втрат – це найнадійніший захист.
Переглянути оригіналвідповісти на0
GateUser-e51e87c7
· 15год тому
Вивчив безпеку, але все ж був обкрадений.
Переглянути оригіналвідповісти на0
mev_me_maybe
· 15год тому
Ай, голова погано пам'ятає.
Переглянути оригіналвідповісти на0
ForumMiningMaster
· 15год тому
Невдахи, перед входом на ринок, обов'язково спершу вивчіть.
Децентралізовані фінанси безпеки: розкриття поширених вразливостей та стратегій захисту
Децентралізовані фінанси безпеки: поширені вразливості та заходи запобігання
Нещодавно один експерт з безпеки поділився курсом з безпеки DeFi для членів спільноти. Цей експерт переглянув значні події безпеки, з якими стикалася індустрія Web3 за останній рік, обговорив причини цих подій та способи їх запобігання, а також підсумував поширені вразливості смарт-контрактів та заходи запобігання, водночас надавши деякі рекомендації з безпеки для проектів та звичайних користувачів.
Загальні типи вразливостей у Децентралізованих фінансах
У DeFi існують поширені типи вразливостей, такі як миттєвий кредит, маніпуляція цінами, проблеми з правами функцій, довільні зовнішні виклики, проблеми з функцією fallback, вразливості бізнес-логіки, витоки приватних ключів та атаки повторного входу тощо. У цій статті буде зосереджено увагу на трьох типах: миттєвий кредит, маніпуляція цінами та атаки повторного входу.
Швидкий кредит
Хоча блискавичні позики є інновацією в Децентралізованих фінансах, їх також використовують хакери для атак. Зазвичай зловмисники беруть в позикy велику суму коштів через блискавичні позики, маніпулюють цінами або атакують бізнес-логіку. Розробники повинні враховувати, чи може функціональність контракту призвести до аномалій через величезні суми коштів, або чи можливо отримати неналежну винагороду, взаємодіючи з кількома функціями в одній транзакції через великі суми.
Багато проектів DeFi здаються дуже прибутковими, але насправді здатності розробників різняться. Деякі проекти можуть мати код, куплений на стороні, і навіть якщо сам код не має вразливостей, логічно можуть виникати проблеми. Наприклад, деякі проекти виплачують винагороди залежно від кількості токенів у власності, але зловмисники можуть використати флеш-кредити для покупки великої кількості токенів, отримуючи більшу частину винагород.
маніпуляція цінами
Проблема маніпуляції цінами тісно пов'язана з миттєвими кредитами. Ці проблеми в основному виникають через те, що певні параметри, які використовуються для розрахунку ціни, можуть контролюватися користувачами. Існує два основних типи проблем:
атака повторного входу
Одним з основних ризиків виклику зовнішніх контрактів є те, що вони можуть перехопити контрольний потік і внести непередбачувані зміни в дані. Наприклад, у функції виведення, якщо баланс користувача встановлюється на 0 лише в кінці функції, то повторний виклик може призвести до багаторазового виведення залишку.
При вирішенні проблеми повторного входу слід звернути увагу на такі моменти:
Слід зазначити, що повторне створення колеса часто підвищує ризик помилок. Використання вже існуючих найкращих практик безпеки в галузі, як правило, є більш надійним, ніж самостійна розробка.
Рекомендації з безпеки
Рекомендації з безпеки для проекту
Користувач/LP як визначити безпеку смарт-контракту
Зосередившись на цих аспектах, користувачі можуть краще оцінити безпеку проекту та знизити ризики участі.