Децентрализованные финансы безопасность уязвимости и меры предосторожности
Недавно один эксперт по безопасности провел для членов сообщества урок по безопасности в Децентрализованных финансах. Он обсудил недавние значительные инциденты безопасности в индустрии Web3, рассмотрел причины этих событий и методы их предотвращения, обобщил общие уязвимости смарт-контрактов и меры по их предотвращению, а также дал некоторые советы по безопасности для разработчиков проектов и пользователей.
Распространённые типы уязвимостей DeFi включают в себя флеш-кредиты, манипуляции с ценами, проблемы с правами функций, произвольные внешние вызовы, проблемы с функцией fallback, уязвимости бизнес-логики, утечку приватных ключей, атаки повторного входа и др. Ниже мы особенно рассмотрим три типа: флеш-кредиты, манипуляции с ценами и атаки повторного входа.
Мгновенный кредит
Мгновенные займы сами по себе являются инновацией в области Децентрализованные финансы, но их использование хакерами может привести к огромным потерям:
Нападающий заимствует большие суммы денег через кредитование с помощью флеш-займов, манипулируя ценами или атакуя бизнес-логику
Разработчики должны учитывать, может ли функциональность контракта быть нарушена из-за больших объемов средств.
Некоторые проекты используют количество токенов для расчета вознаграждений или используют количество токенов в торговых парах DEX для участия в расчетах. Эти переменные легко поддаются манипуляциям через Flash Loan.
За последние два года многие высокодоходные Децентрализованные финансы проекты подверглись атакам с использованием флеш-кредитов из-за проблем с кодом или логикой. Например, некоторые проекты выплачивают награды в фиксированное время в зависимости от объема держания, злоумышленники используют флеш-кредиты для покупки большого количества токенов, чтобы получить большую часть награды.
Манипуляция ценами
Проблема манипуляции ценами тесно связана с.flash-кредитами, в основном существует два типа:
При расчете цены используются данные третьих сторон, но способ их использования некорректен или отсутствуют проверки.
Использование баланса токенов определенных адресов в качестве расчетного переменного, при этом эти балансы могут временно увеличиваться или уменьшаться.
Атака повторного входа
Основной риск вызова внешних контрактов заключается в том, что они могут захватить контрольный поток и произвести неожиданные изменения данных. Например:
Поскольку баланс пользователя обнуляется только в конце функции, повторные вызовы все равно будут успешно извлекать баланс.
Решение проблемы повторного входа требует внимания:
Не только предотвращение повторного входа одной функции
Следуйте модели Checks-Effects-Interactions
Используйте проверенный модификатор для защиты от повторного входа
Формы атаки повторного входа разнообразны и могут затрагивать несколько функций или контрактов. Рекомендуется использовать проверенные методы безопасности, чтобы избежать повторного изобретения колеса.
Рекомендации по безопасности
Рекомендации по безопасности от команды проекта
Следуйте лучшим практикам безопасности при разработке контрактов
Реализовать возможность обновления и приостановки контракта
Использование механизма временной блокировки
Увеличить инвестиции в безопасность, создать完善ную систему безопасности
Повышение безопасности всех сотрудников
Предотвращение внутренних злоупотреблений при повышении эффективности и усилении управления рисками.
Осторожно вводите третьих лиц, по умолчанию верхние и нижние потоки небезопасны.
Использует ли владелец децентрализованное мультиподписание
Проверьте существующую торговую ситуацию по контракту
Можно ли обновить контракт, есть ли таймлок?
Принимает ли контракт аудит от нескольких учреждений, не слишком ли велики полномочия владельца?
Обратите внимание на надежность оракулов
В общем, в области Децентрализованные финансы существует множество рисков безопасности, поэтому как разработчики проектов, так и пользователи должны повышать бдительность, принимать многоуровневые меры защиты и совместно поддерживать безопасность экосистемы.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
19 Лайков
Награда
19
4
Поделиться
комментарий
0/400
TokenCreatorOP
· 07-28 02:54
Если бы я знал это раньше, у меня не было бы USDT.
Посмотреть ОригиналОтветить0
RooftopReserver
· 07-28 02:53
Снова неудачники хотят подняться на крышу.
Посмотреть ОригиналОтветить0
consensus_failure
· 07-28 02:53
Снова играет спектакль о том, как выйти из игры с наживой~
Безопасность DeFi: руководство по предотвращению срочных займов, манипуляций с ценами и повторных атак.
Децентрализованные финансы безопасность уязвимости и меры предосторожности
Недавно один эксперт по безопасности провел для членов сообщества урок по безопасности в Децентрализованных финансах. Он обсудил недавние значительные инциденты безопасности в индустрии Web3, рассмотрел причины этих событий и методы их предотвращения, обобщил общие уязвимости смарт-контрактов и меры по их предотвращению, а также дал некоторые советы по безопасности для разработчиков проектов и пользователей.
Распространённые типы уязвимостей DeFi включают в себя флеш-кредиты, манипуляции с ценами, проблемы с правами функций, произвольные внешние вызовы, проблемы с функцией fallback, уязвимости бизнес-логики, утечку приватных ключей, атаки повторного входа и др. Ниже мы особенно рассмотрим три типа: флеш-кредиты, манипуляции с ценами и атаки повторного входа.
Мгновенный кредит
Мгновенные займы сами по себе являются инновацией в области Децентрализованные финансы, но их использование хакерами может привести к огромным потерям:
За последние два года многие высокодоходные Децентрализованные финансы проекты подверглись атакам с использованием флеш-кредитов из-за проблем с кодом или логикой. Например, некоторые проекты выплачивают награды в фиксированное время в зависимости от объема держания, злоумышленники используют флеш-кредиты для покупки большого количества токенов, чтобы получить большую часть награды.
Манипуляция ценами
Проблема манипуляции ценами тесно связана с.flash-кредитами, в основном существует два типа:
Атака повторного входа
Основной риск вызова внешних контрактов заключается в том, что они могут захватить контрольный поток и произвести неожиданные изменения данных. Например:
солидность отображение (address => uint) private userBalances;
функция withdrawBalance() публичная { uint amountToWithdraw = userBalances[msg.sender]; (bool успех, ) = msg.sender.call.value(amountToWithdraw)("" ); require(успех); userBalances[msg.sender] = 0; }
Поскольку баланс пользователя обнуляется только в конце функции, повторные вызовы все равно будут успешно извлекать баланс.
Решение проблемы повторного входа требует внимания:
Формы атаки повторного входа разнообразны и могут затрагивать несколько функций или контрактов. Рекомендуется использовать проверенные методы безопасности, чтобы избежать повторного изобретения колеса.
Рекомендации по безопасности
Рекомендации по безопасности от команды проекта
Пользователь оценивает безопасность смарт-контрактов
В общем, в области Децентрализованные финансы существует множество рисков безопасности, поэтому как разработчики проектов, так и пользователи должны повышать бдительность, принимать многоуровневые меры защиты и совместно поддерживать безопасность экосистемы.