Децентралізовані фінанси Поширені вразливості безпеки та заходи запобігання
Нещодавно експерт з безпеки поділився з членами громади уроком з безпеки в Децентралізованих фінансах. Він переглянув значні інциденти безпеки, з якими зіткнулася індустрія Web3 за останній рік, обговорив причини їх виникнення та способи уникнення, підсумував поширені вразливості смарт-контрактів та заходи профілактики, а також надав кілька порад з безпеки для проектів і звичайних користувачів.
Звичайні типи вразливостей DeFi включають в себе флеш-кредити, маніпуляції з цінами, проблеми з правами функцій, випадкові зовнішні виклики, проблеми з функцією fallback, вразливості бізнес-логіки, витоки приватних ключів та атаки повторного входу тощо. У цій статті буде особливо розглянуто три типи: флеш-кредити, маніпуляції з цінами та атаки повторного входу.
Ломбардний кредит
Швидкі позики є інновацією Децентралізованих фінансів, але їх також легко використовувати хакерам. Зловмисники зазвичай беруть в борг великі суми через швидкі позики, щоб маніпулювати цінами або атакувати бізнес-логіку. Розробники повинні враховувати, чи функції контракту можуть призвести до аномалій через величезні суми коштів, або чи можуть бути використані для отримання неправомірних винагород.
Багато проектів Децентралізовані фінанси виглядають як такі, що приносять високий дохід, але насправді рівень команди проекту може бути різним. Деякі проекти можуть мати код, який було придбано, і навіть якщо сам код не має вразливостей, логічно можуть бути проблеми. Наприклад, деякі проекти виплачують винагороду в залежності від кількості токенів, які мають утримувачі, у фіксований час, але зловмисники можуть скористатися кредитами під заставу, щоб купити велику кількість токенів, і таким чином отримати більшу частину винагороди.
Маніпуляція цінами
Проблема маніпуляції цінами тісно пов'язана з миттєвими кредитами, головним чином через те, що деякі параметри, що використовуються для обчислення ціни, можуть контролюватися користувачем. Існує два основних типи проблем:
При розрахунку цін використовуються дані з третіх сторін, але спосіб використання є неправильним або відсутня перевірка, що призводить до зловмисного маніпулювання цінами.
Використовуйте кількість токенів з певних адрес як змінну для обчислення, при цьому баланс токенів на цих адресах може тимчасово збільшуватися або зменшуватися.
Атака повторного входу
Одним з основних ризиків виклику зовнішніх контрактів є те, що вони можуть взяти під контроль потік виконання та внести непередбачувані зміни в дані. Наприклад, у функції виведення, якщо оновлення балансу користувача відбувається пізніше, ніж виведення коштів, це може призвести до повторного виведення.
Щоб вирішити проблему повторного входу, слід звернути увагу на такі моменти:
Необхідно запобігти не лише проблемі повторного входу одного функції.
Дотримуйтесь моделі Checks-Effects-Interactions при кодуванні.
Використовуйте перевірений часом модифікатор захисту від повторних викликів.
Слід зазначити, що повторне створення колеса часто є непотрібним. Використання добре перевірених зрілих рішень є безпечнішим, ніж розробка власних.
Рекомендації щодо безпеки
Рекомендації з безпеки для проекту
Дотримуйтесь найкращих практик безпеки при розробці контрактів.
Реалізувати можливість оновлення та призупинення контракту.
Використання механізму таймлок.
Збільшити інвестиції в безпеку, створити вдосконалену систему безпеки.
Підвищити обізнаність усіх співробітників про безпеку.
Запобігання внутрішнім зловживанням, підвищуючи ефективність, одночасно зміцнюючи управління ризиками.
Обережно впроваджуйте сторонні компоненти, забезпечуючи їх безпеку.
Як користувачам оцінити безпеку смарт-контрактів
Перевірте, чи є контракт з відкритим кодом.
Підтвердіть, чи використовує Owner механізм багатопідпису в децентралізованому вигляді.
Перегляньте вже здійснені угоди за контрактом.
Підтвердіть, чи є контракт агентським, чи може бути оновлений, чи є часовий замок.
Перевірте, чи контракт проходив аудит у кількох організацій та чи не є надто великими повноваження Owner.
Зверніть увагу на надійність оракула, що використовується в проекті.
Зосередившись на цих аспектах, користувачі можуть краще оцінити безпеку смарт-контрактів і зменшити ймовірність участі в ризикованих проектах.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
11 лайків
Нагородити
11
6
Поділіться
Прокоментувати
0/400
ETHReserveBank
· 5год тому
Ця стара, банальна тема.
Переглянути оригіналвідповісти на0
ThreeHornBlasts
· 17год тому
Слухаючи вас, я вчуся більше, ніж за десять років.
Децентралізовані фінанси безпека 101: Глибина розбору поширених вразливостей та стратегій захисту
Децентралізовані фінанси Поширені вразливості безпеки та заходи запобігання
Нещодавно експерт з безпеки поділився з членами громади уроком з безпеки в Децентралізованих фінансах. Він переглянув значні інциденти безпеки, з якими зіткнулася індустрія Web3 за останній рік, обговорив причини їх виникнення та способи уникнення, підсумував поширені вразливості смарт-контрактів та заходи профілактики, а також надав кілька порад з безпеки для проектів і звичайних користувачів.
Звичайні типи вразливостей DeFi включають в себе флеш-кредити, маніпуляції з цінами, проблеми з правами функцій, випадкові зовнішні виклики, проблеми з функцією fallback, вразливості бізнес-логіки, витоки приватних ключів та атаки повторного входу тощо. У цій статті буде особливо розглянуто три типи: флеш-кредити, маніпуляції з цінами та атаки повторного входу.
Ломбардний кредит
Швидкі позики є інновацією Децентралізованих фінансів, але їх також легко використовувати хакерам. Зловмисники зазвичай беруть в борг великі суми через швидкі позики, щоб маніпулювати цінами або атакувати бізнес-логіку. Розробники повинні враховувати, чи функції контракту можуть призвести до аномалій через величезні суми коштів, або чи можуть бути використані для отримання неправомірних винагород.
Багато проектів Децентралізовані фінанси виглядають як такі, що приносять високий дохід, але насправді рівень команди проекту може бути різним. Деякі проекти можуть мати код, який було придбано, і навіть якщо сам код не має вразливостей, логічно можуть бути проблеми. Наприклад, деякі проекти виплачують винагороду в залежності від кількості токенів, які мають утримувачі, у фіксований час, але зловмисники можуть скористатися кредитами під заставу, щоб купити велику кількість токенів, і таким чином отримати більшу частину винагороди.
Маніпуляція цінами
Проблема маніпуляції цінами тісно пов'язана з миттєвими кредитами, головним чином через те, що деякі параметри, що використовуються для обчислення ціни, можуть контролюватися користувачем. Існує два основних типи проблем:
Атака повторного входу
Одним з основних ризиків виклику зовнішніх контрактів є те, що вони можуть взяти під контроль потік виконання та внести непередбачувані зміни в дані. Наприклад, у функції виведення, якщо оновлення балансу користувача відбувається пізніше, ніж виведення коштів, це може призвести до повторного виведення.
Щоб вирішити проблему повторного входу, слід звернути увагу на такі моменти:
Слід зазначити, що повторне створення колеса часто є непотрібним. Використання добре перевірених зрілих рішень є безпечнішим, ніж розробка власних.
Рекомендації щодо безпеки
Рекомендації з безпеки для проекту
Як користувачам оцінити безпеку смарт-контрактів
Зосередившись на цих аспектах, користувачі можуть краще оцінити безпеку смарт-контрактів і зменшити ймовірність участі в ризикованих проектах.