Децентрализованные финансы безопасность: распространенные типы уязвимостей и меры предосторожности
Недавно один из экспертов по безопасности провел для членов сообщества урок по безопасности в Децентрализованных финансах. Он обсудил значительные инциденты безопасности в индустрии Web3 за последний год, исследовал причины их возникновения и способы их предотвращения, подытожил распространенные уязвимости смарт-контрактов и меры предосторожности, а также дал некоторые рекомендации по безопасности для разработчиков проектов и обычных пользователей.
Распространенные типы уязвимостей в DeFi в основном включают в себя флеш-кредиты, манипуляции с ценами, проблемы с правами доступа к функциям, произвольные внешние вызовы, проблемы с функцией fallback, уязвимости бизнес-логики, утечку приватных ключей и атаки повторного входа. В данной статье будет акцентировано внимание на трех типах: флеш-кредиты, манипуляции с ценами и атаки повторного входа.
Мгновенный кредит
Flash loans являются инновацией в Децентрализованных финансах, но также часто используются хакерами. Злоумышленники берут в долг большие суммы через flash loans, чтобы манипулировать ценами или атаковать бизнес-логику. Разработчики должны учитывать, приведет ли огромная сумма средств к аномалиям в функционале контракта, или будет использоваться для взаимодействия с несколькими функциями в одной сделке для получения неправомерных вознаграждений.
Многие проекты Децентрализованные финансы выглядят как высокодоходные, но на самом деле уровень команд различен. Даже если в коде нет уязвимостей, логически могут существовать проблемы. Например, некоторые проекты выплачивают вознаграждения в фиксированное время в зависимости от количества токенов у держателей, но злоумышленники могут использовать флеш-кредиты для покупки большого количества токенов и получать большую часть вознаграждения в момент его распределения.
Манипуляция ценами
Проблема манипуляции ценами тесно связана с флеш-заемами, в основном из-за того, что некоторые параметры, используемые для расчета цен, могут контролироваться пользователями. Существует два основных типа проблем:
При расчете цены используются данные третьих лиц, но способ использования неправильный или отсутствует проверка, что приводит к злонамеренному манипулированию ценами.
Используйте количество токенов на некоторых адресах в качестве расчетной переменной, при этом баланс токенов на этих адресах может временно увеличиваться или уменьшаться.
Атака повторного входа
Одним из основных рисков вызова внешних контрактов является то, что они могут перехватить поток управления и внести непредвиденные изменения в данные. Типичный пример атаки повторного входа заключается в том, что баланс пользователя устанавливается в 0 только в конце функции вывода, что позволяет несколько раз успешно выводить средства.
Для решения проблемы повторного входа необходимо обратить внимание на следующие моменты:
Необходимо предотвратить проблему повторного входа в одну функцию.
Следуйте модели Checks-Effects-Interactions при кодировании
Используйте проверенный временем модификатор защиты от повторного входа
В практике безопасности следует по возможности использовать уже проверенные и зрелые решения, а не изобретать колесо заново.
Рекомендации по безопасности от проекта
Следуйте лучшим практикам безопасности при разработке контрактов
Реализовать возможность обновления и приостановки контрактов
Использование механизма таймлоков
Увеличить инвестиции в безопасность и создать完善ную систему безопасности
Повышение осведомленности всех сотрудников о безопасности
Предотвращение внутреннего злодейства, повышение эффективности и улучшение управления рисками
Осторожно вводите сторонние компоненты, обеспечьте их безопасность
Как пользователю определить безопасность смарт-контракта
Подтвердите, является ли контракт открытым
Проверьте, использует ли владелец децентрализованный мультиподписной механизм.
Посмотреть текущую торговую ситуацию по контракту
Подтвердите, является ли контракт агентским, можно ли его обновить, есть ли временная блокировка
Проверьте, был ли контракт проверен несколькими учреждениями, и нет ли у владельца чрезмерных прав.
Обратите внимание на использование оракулов, предпочтительно выбирайте оракулы с высокой известностью.
Обратив внимание на вышеперечисленные моменты, пользователи могут лучше оценить безопасность проекта Децентрализованные финансы, что позволит им принимать более обоснованные инвестиционные решения.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
10 Лайков
Награда
10
4
Поделиться
комментарий
0/400
MidnightSeller
· 6ч назад
Опять проводятся аудиты, команда проекта это воспринимает?
Посмотреть ОригиналОтветить0
UncommonNPC
· 07-22 05:57
Все еще много методов атаки...
Посмотреть ОригиналОтветить0
NeverPresent
· 07-22 05:54
Снова говорят об аудите, как будто ничего и не сказали.
Полное руководство по безопасности DeFi: Глубина анализа распространенных уязвимостей и стратегий предотвращения
Децентрализованные финансы безопасность: распространенные типы уязвимостей и меры предосторожности
Недавно один из экспертов по безопасности провел для членов сообщества урок по безопасности в Децентрализованных финансах. Он обсудил значительные инциденты безопасности в индустрии Web3 за последний год, исследовал причины их возникновения и способы их предотвращения, подытожил распространенные уязвимости смарт-контрактов и меры предосторожности, а также дал некоторые рекомендации по безопасности для разработчиков проектов и обычных пользователей.
Распространенные типы уязвимостей в DeFi в основном включают в себя флеш-кредиты, манипуляции с ценами, проблемы с правами доступа к функциям, произвольные внешние вызовы, проблемы с функцией fallback, уязвимости бизнес-логики, утечку приватных ключей и атаки повторного входа. В данной статье будет акцентировано внимание на трех типах: флеш-кредиты, манипуляции с ценами и атаки повторного входа.
Мгновенный кредит
Flash loans являются инновацией в Децентрализованных финансах, но также часто используются хакерами. Злоумышленники берут в долг большие суммы через flash loans, чтобы манипулировать ценами или атаковать бизнес-логику. Разработчики должны учитывать, приведет ли огромная сумма средств к аномалиям в функционале контракта, или будет использоваться для взаимодействия с несколькими функциями в одной сделке для получения неправомерных вознаграждений.
Многие проекты Децентрализованные финансы выглядят как высокодоходные, но на самом деле уровень команд различен. Даже если в коде нет уязвимостей, логически могут существовать проблемы. Например, некоторые проекты выплачивают вознаграждения в фиксированное время в зависимости от количества токенов у держателей, но злоумышленники могут использовать флеш-кредиты для покупки большого количества токенов и получать большую часть вознаграждения в момент его распределения.
Манипуляция ценами
Проблема манипуляции ценами тесно связана с флеш-заемами, в основном из-за того, что некоторые параметры, используемые для расчета цен, могут контролироваться пользователями. Существует два основных типа проблем:
Атака повторного входа
Одним из основных рисков вызова внешних контрактов является то, что они могут перехватить поток управления и внести непредвиденные изменения в данные. Типичный пример атаки повторного входа заключается в том, что баланс пользователя устанавливается в 0 только в конце функции вывода, что позволяет несколько раз успешно выводить средства.
Для решения проблемы повторного входа необходимо обратить внимание на следующие моменты:
В практике безопасности следует по возможности использовать уже проверенные и зрелые решения, а не изобретать колесо заново.
Рекомендации по безопасности от проекта
Как пользователю определить безопасность смарт-контракта
Обратив внимание на вышеперечисленные моменты, пользователи могут лучше оценить безопасность проекта Децентрализованные финансы, что позволит им принимать более обоснованные инвестиционные решения.