Децентралізовані фінанси. Загальні вразливості безпеки та запобіжні заходи
Нещодавно безпековий експерт поділився знаннями про безпеку Децентралізовані фінанси з членами спільноти. Він оглянув основні події безпеки, які сталися в індустрії Web3 за останній рік, обговорив причини їх виникнення та способи уникнення, підсумував поширені вразливості безпеки смарт-контрактів та заходи запобігання, а також надав кілька порад з безпеки.
Звичні типи вразливостей у Децентралізованих фінансах включають миттєвий кредит, маніпуляцію цінами, проблеми з правами функцій, довільні зовнішні виклики, проблеми з функцією fallback, вразливості бізнес-логіки, витік приватних ключів, повторні виклики тощо. У цій статті особливу увагу буде приділено трьом типам: миттєвим кредитам, маніпуляції цінами та атакам повторного виклику.
Швидкий кредит
Швидкі кредити є інновацією в Децентралізованих фінансах, але можуть бути використані хакерами для безкоштовного запозичення великої кількості коштів для атаки. Зазвичай атаки супроводжуються швидкими кредитами, коли зловмисники запозичують велику кількість коштів, після чого маніпулюють цінами або атакують бізнес-логіку.
Розробники повинні врахувати, чи не призведе велика сума коштів до аномалій у функціях контракту, або чи не буде використана в одній транзакції для взаємодії з кількома функціями для отримання неналежного доходу.
Деякі проекти виплачують винагороди на основі утримуваних активів у фіксований час, але зловмисники використовують швидкі кредити для покупки великої кількості токенів, щоб отримати більшу частину винагороди. Інші проекти розраховують ціну токена, яка може бути під впливом швидких кредитів. Команди проектів повинні підвищити обізнаність щодо цих проблем.
Маніпуляція цінами
Проблема маніпуляцій з цінами тісно пов'язана з闪电贷, основні типи:
При розрахунку ціни використовуються дані третьої сторони, але неправильне використання або відсутність перевірки призводять до маніпуляцій з ціною.
Використання кількості токенів з певних адрес як обчислювальної змінної, при цьому баланс токенів на цих адресах може тимчасово збільшуватися або зменшуватися.
Атака повторного входу
Основний ризик виклику зовнішніх контрактів полягає в тому, що вони можуть взяти контроль над потоком виконання і випадково змінити дані. Наприклад:
солідність
відображення (address => uint) private userBalances;
функція withdrawBalance() публічна {
uint amountToRemove = userBalances[msg.sender];
(bool успіху ) = msg.sender.call.value(amountToWithdraw)("" );
require(успіх);
userBalances[msg.sender] = 0;
}
Оскільки баланс до останньої функції залишається 0, повторні виклики все ще можуть успішно виконати виведення.
Методи атаки повторного входу різноманітні, можуть включати кілька функцій або контрактів. Для вирішення проблеми повторного входу слід звернути увагу на:
Не тільки запобігає повторному виклику єдиної функції
Дотримуйтесь моделі Checks-Effects-Interactions під час кодування
Використовуйте перевірений модифікатор захисту від повторних викликів
Слід якомога більше використовувати зрілі практики безпеки, уникати повторного винаходження колеса.
Рекомендації з безпеки для проектів
Розробка контрактів відповідає найкращим практикам безпеки
Контракти можуть бути оновлені та призупинені: вчасно виявляти та зменшувати збитки
Використання тайм-лока: надання часу для перевірки та реагування
Створення досконалої системи безпеки: всебічне уникнення ризиків
Підвищення обізнаності всіх співробітників щодо безпеки
Запобігання внутрішнім зловживанням, підвищуючи ефективність, одночасно зміцнюючи контроль ризиків
Обережно вводьте третіх осіб: перевіряйте безпеку вгору і вниз по ланцюгу.
Як користувачам оцінити безпеку смарт-контрактів
Чи є контракт відкритим вихідним кодом
Чи використовує власник децентралізований мультипідпис?
Перевірте наявність торгових операцій за контрактом
Чи може контракт бути оновлений, чи є таймер блокування
Чи приймають аудит кількох установ, чи не є надмірними права власника?
Зверніть увагу на надійність оракулів
Отже, у сфері Децентралізовані фінанси безпека має вирішальне значення. Як команди проєктів, так і користувачі повинні бути пильними та вжити необхідних заходів для зниження ризиків.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
13 лайків
Нагородити
13
2
Поділіться
Прокоментувати
0/400
StableGeniusDegen
· 16год тому
Знову потрібно починати вчити безпеку з нуля, голова болить.
Переглянути оригіналвідповісти на0
DAOplomacy
· 16год тому
театр безпеки в найкращому вигляді... ті ж самі вразливості, ті ж самі невідповідності між зацікавленими сторонами, якщо чесно
Аналіз трьох основних вразливостей безпеки в Децентралізованих фінансах: Термінові позики, маніпуляції з цінами та повторні атаки
Децентралізовані фінанси. Загальні вразливості безпеки та запобіжні заходи
Нещодавно безпековий експерт поділився знаннями про безпеку Децентралізовані фінанси з членами спільноти. Він оглянув основні події безпеки, які сталися в індустрії Web3 за останній рік, обговорив причини їх виникнення та способи уникнення, підсумував поширені вразливості безпеки смарт-контрактів та заходи запобігання, а також надав кілька порад з безпеки.
Звичні типи вразливостей у Децентралізованих фінансах включають миттєвий кредит, маніпуляцію цінами, проблеми з правами функцій, довільні зовнішні виклики, проблеми з функцією fallback, вразливості бізнес-логіки, витік приватних ключів, повторні виклики тощо. У цій статті особливу увагу буде приділено трьом типам: миттєвим кредитам, маніпуляції цінами та атакам повторного виклику.
Швидкий кредит
Швидкі кредити є інновацією в Децентралізованих фінансах, але можуть бути використані хакерами для безкоштовного запозичення великої кількості коштів для атаки. Зазвичай атаки супроводжуються швидкими кредитами, коли зловмисники запозичують велику кількість коштів, після чого маніпулюють цінами або атакують бізнес-логіку.
Розробники повинні врахувати, чи не призведе велика сума коштів до аномалій у функціях контракту, або чи не буде використана в одній транзакції для взаємодії з кількома функціями для отримання неналежного доходу.
Деякі проекти виплачують винагороди на основі утримуваних активів у фіксований час, але зловмисники використовують швидкі кредити для покупки великої кількості токенів, щоб отримати більшу частину винагороди. Інші проекти розраховують ціну токена, яка може бути під впливом швидких кредитів. Команди проектів повинні підвищити обізнаність щодо цих проблем.
Маніпуляція цінами
Проблема маніпуляцій з цінами тісно пов'язана з闪电贷, основні типи:
При розрахунку ціни використовуються дані третьої сторони, але неправильне використання або відсутність перевірки призводять до маніпуляцій з ціною.
Використання кількості токенів з певних адрес як обчислювальної змінної, при цьому баланс токенів на цих адресах може тимчасово збільшуватися або зменшуватися.
Атака повторного входу
Основний ризик виклику зовнішніх контрактів полягає в тому, що вони можуть взяти контроль над потоком виконання і випадково змінити дані. Наприклад:
солідність відображення (address => uint) private userBalances;
функція withdrawBalance() публічна { uint amountToRemove = userBalances[msg.sender]; (bool успіху ) = msg.sender.call.value(amountToWithdraw)("" ); require(успіх); userBalances[msg.sender] = 0; }
Оскільки баланс до останньої функції залишається 0, повторні виклики все ще можуть успішно виконати виведення.
Методи атаки повторного входу різноманітні, можуть включати кілька функцій або контрактів. Для вирішення проблеми повторного входу слід звернути увагу на:
Слід якомога більше використовувати зрілі практики безпеки, уникати повторного винаходження колеса.
Рекомендації з безпеки для проектів
Розробка контрактів відповідає найкращим практикам безпеки
Контракти можуть бути оновлені та призупинені: вчасно виявляти та зменшувати збитки
Використання тайм-лока: надання часу для перевірки та реагування
Створення досконалої системи безпеки: всебічне уникнення ризиків
Підвищення обізнаності всіх співробітників щодо безпеки
Запобігання внутрішнім зловживанням, підвищуючи ефективність, одночасно зміцнюючи контроль ризиків
Обережно вводьте третіх осіб: перевіряйте безпеку вгору і вниз по ланцюгу.
Як користувачам оцінити безпеку смарт-контрактів
Чи є контракт відкритим вихідним кодом
Чи використовує власник децентралізований мультипідпис?
Перевірте наявність торгових операцій за контрактом
Чи може контракт бути оновлений, чи є таймер блокування
Чи приймають аудит кількох установ, чи не є надмірними права власника?
Зверніть увагу на надійність оракулів
Отже, у сфері Децентралізовані фінанси безпека має вирішальне значення. Як команди проєктів, так і користувачі повинні бути пильними та вжити необхідних заходів для зниження ризиків.