Недавно в известном проекте цифровых коллекционных предметов были обнаружены два серьезных уязвимости в смарт-контрактах, что привлекло широкое внимание в отрасли. Команда безопасности обнаружила эти потенциальные риски при анализе контрактов данного проекта.
Первый уязвимость связана с механизмом возврата средств. Функция возврата в смарт-контракте использует циклический способ возврата средств пользователям, но этот дизайн имеет серьезный недостаток. Если адрес, получающий возврат, является злонамеренным контрактом, он может отказать в приеме и привести к сбою транзакции, что повлияет на процесс возврата средств для всех остальных пользователей. К счастью, эта уязвимость не была фактически использована.
!
В таких случаях эксперты по безопасности рекомендуют проектным командам предпринять следующие меры для обеспечения безопасности возвратов:
Ограничение только для обычных пользовательских аккаунтов для участия в проекте
Используйте такие токены ERC20, как WETH, а не нативные активы.
Разработать механизм, позволяющий пользователям самостоятельно запрашивать возврат, чтобы избежать массовых возвратов.
Второй уязвимость вызвана логической ошибкой в коде. В функции извлечения средств проекта существует условное выражение, которое должно сравнивать две определенные переменные, но по ошибке сравнивается с другой переменной. Это приводит к тому, что условие никогда не может быть выполнено, и сторона проекта не может извлечь активы из контракта. По оценкам, в настоящее время более 34 миллионов долларов активов навсегда заблокированы в контракте.
!
Это событие еще раз подчеркивает, что даже у известных проектов могут возникать фундаментальные ошибки. Оно напоминает нам, что в процессе разработки полные тестовые случаи и базовая безопасность являются незаменимыми. Хотя в области DeFi безопасность аудита стала обычной практикой, на проектах цифровых коллекционных предметов этот этап, похоже, все еще игнорируется. Эти огромные потери являются прямым следствием отсутствия аудита безопасности.
Это событие должно стать предупреждением для всей отрасли, напоминая всем участникам о важности безопасности смарт-контрактов, необходимости усиления аудита кода и процессов тестирования, чтобы предотвратить повторение подобных крупных убытков.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
13 Лайков
Награда
13
4
Поделиться
комментарий
0/400
HodlKumamon
· 4ч назад
Конец игры, вероятность логической ошибки при извлечении пользователя составляет сто процентов.
Посмотреть ОригиналОтветить0
shadowy_supercoder
· 10ч назад
Чем занимаются аудиторские компании?
Посмотреть ОригиналОтветить0
BlockchainWorker
· 07-20 20:31
Смарт-контракты снова провалились? Ждем, чтобы посмотреть на это.
Известный проект цифровых коллекционных предметов, уязвимость смарт-контрактов привела к блокировке 34 миллиона долларов
Недавно в известном проекте цифровых коллекционных предметов были обнаружены два серьезных уязвимости в смарт-контрактах, что привлекло широкое внимание в отрасли. Команда безопасности обнаружила эти потенциальные риски при анализе контрактов данного проекта.
Первый уязвимость связана с механизмом возврата средств. Функция возврата в смарт-контракте использует циклический способ возврата средств пользователям, но этот дизайн имеет серьезный недостаток. Если адрес, получающий возврат, является злонамеренным контрактом, он может отказать в приеме и привести к сбою транзакции, что повлияет на процесс возврата средств для всех остальных пользователей. К счастью, эта уязвимость не была фактически использована.
!
В таких случаях эксперты по безопасности рекомендуют проектным командам предпринять следующие меры для обеспечения безопасности возвратов:
Второй уязвимость вызвана логической ошибкой в коде. В функции извлечения средств проекта существует условное выражение, которое должно сравнивать две определенные переменные, но по ошибке сравнивается с другой переменной. Это приводит к тому, что условие никогда не может быть выполнено, и сторона проекта не может извлечь активы из контракта. По оценкам, в настоящее время более 34 миллионов долларов активов навсегда заблокированы в контракте.
!
Это событие еще раз подчеркивает, что даже у известных проектов могут возникать фундаментальные ошибки. Оно напоминает нам, что в процессе разработки полные тестовые случаи и базовая безопасность являются незаменимыми. Хотя в области DeFi безопасность аудита стала обычной практикой, на проектах цифровых коллекционных предметов этот этап, похоже, все еще игнорируется. Эти огромные потери являются прямым следствием отсутствия аудита безопасности.
Это событие должно стать предупреждением для всей отрасли, напоминая всем участникам о важности безопасности смарт-контрактов, необходимости усиления аудита кода и процессов тестирования, чтобы предотвратить повторение подобных крупных убытков.
!