Недавно Curve, сверхстабильный валютный протокол, подвергся реентерабельной атаке, что привело к серьезным потерям. Ниже приводится анализ безопасности MetaTrust Labs и рекомендации по безопасности для этой атаки.
Обзор события
Согласно официальному твиттеру Curve Finance, 31 июля 2023 года некоторые стабильные пулы (alETH/msETH/pETH), написанные с использованием Vyper версии 0.2.15, подверглись реентерабельной атаке. Curve Finance заявила, что атака была вызвана неисправностью блокировок повторного входа в Vyper версии 0.2.15 и затронула только пулы, использующие чистый ETH. В настоящее время Curve оценивает ущерб, и другие бассейны в безопасности.
Согласно анализу MetaTrust Labs, уязвимость появилась в период с августа по октябрь 2021 года, в основном из-за компилятора Vyper версии 0.2.15/0.2.16/0.3.0. Причина уязвимости в том, что логика повторного входа в сгенерированном байт-коде не должна сработать из-за ошибки в компиляторе.
Согласно статистике сети, инцидент со взломом пула стейблкоинов Curve Finance привел к совокупным потерям в размере 52 миллионов долларов США в пулах Alchemix, JPEG'd, CRV/ETH и т. д. Токен Curve Finance CRV также сильно пострадал, упав более чем на 15% за день.
Анализ причин
Причина, по которой Curve Finance подверглась атаке на этот раз, заключается в том, что когда Curve использовала язык Vyper для написания смарт-контрактов, она использовала Vyper версии 0.2.15.В этой версии есть уязвимость, называемая неисправностью блокировок повторного входа (сбой блокировки повторного входа). повторная атака, вызывающая потери. На этот раз уязвимость Curve Finance связана с конкретным языком.
Под специфичными для языка уязвимостями понимаются уязвимости, вызванные дефектами или несовместимостью определенного языка программирования или самого компилятора. Такие уязвимости часто трудно найти и предотвратить, потому что они вызваны не халатностью разработчиков или логическими ошибками, а проблемами с базовой технологической платформой. Эти типы уязвимостей также имеют тенденцию затрагивать несколько проектов или контрактов, поскольку все они используют один и тот же язык или компилятор.
Vyper — это язык программирования смарт-контрактов на основе Python, разработанный для большей безопасности и удобства чтения. Vyper утверждает, что является языком «безопасность прежде всего» и не поддерживает некоторые функции, которые могут создавать риски для безопасности, такие как классы, наследование, модификаторы, встроенный ассемблер и т. д. Однако Vyper не идеален, и в нем все еще есть некоторые ошибки или лазейки, которые могут повлиять на безопасность контракта. Например, в дополнение к сбою повторной блокировки, с которым на этот раз столкнулась Curve Finance, Vyper также столкнулся с такими проблемами, как выход за пределы массива, целочисленное переполнение и ошибки доступа к хранилищу.
Меры безопасности
На этот раз для повторной атаки Curve Finance были приняты или предложены некоторые контрмеры. Вот некоторые контрмеры безопасности, которые вы можете предпринять:
Снятие ликвидности: для затронутых пулов пользователи могут выбрать снятие ликвидности, чтобы избежать дальнейших потерь. Curve Finance предусмотрела кнопку для вывода ликвидности на своем официальном сайте, что удобно для пользователей.
Обновите компилятор: для контрактов, использующих компилятор версии Vyper 0.2.15/0.2.16/0.3.0, рекомендуется выполнить обновление до последней версии Vyper 0.3.1, в которой устранена проблема сбоя блокировки повторного входа. В то же время также рекомендуется использовать другие инструменты или методы для проверки безопасности контракта, такие как формальная проверка, аудит кода и т. д.
Будьте бдительны: для контрактов, написанных на Vyper или других языках, рекомендуется проявлять бдительность, обращать внимание на обновления языка или компилятора и исправления ошибок, а также своевременно принимать необходимые меры для защиты ваших активов. В то же время также рекомендуется при использовании нового языка или новой технологии тщательно оценивать их зрелость и стабильность и избегать слепой погони за новизной или эффективностью.
Подведем итог
Инцидент с повторным входом в Curve Finance был досадным инцидентом с безопасностью и уроком, заставляющим задуматься. В сфере децентрализованных финансов (DeFi) безопасность всегда является главным приоритетом. Стороны проекта должны постоянно повышать свою осведомленность и возможности в области безопасности. Любая деталь может стать прорывом для злоумышленников.
Подписывайтесь на нас
Твиттер: @MetaTrustLabs
Сайт: metatrust.io.
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Черная дыра проглочена: уязвимость Vyper заставляет Curve основательно перевернуться
Недавно Curve, сверхстабильный валютный протокол, подвергся реентерабельной атаке, что привело к серьезным потерям. Ниже приводится анализ безопасности MetaTrust Labs и рекомендации по безопасности для этой атаки.
Обзор события
Согласно официальному твиттеру Curve Finance, 31 июля 2023 года некоторые стабильные пулы (alETH/msETH/pETH), написанные с использованием Vyper версии 0.2.15, подверглись реентерабельной атаке. Curve Finance заявила, что атака была вызвана неисправностью блокировок повторного входа в Vyper версии 0.2.15 и затронула только пулы, использующие чистый ETH. В настоящее время Curve оценивает ущерб, и другие бассейны в безопасности.
Согласно анализу MetaTrust Labs, уязвимость появилась в период с августа по октябрь 2021 года, в основном из-за компилятора Vyper версии 0.2.15/0.2.16/0.3.0. Причина уязвимости в том, что логика повторного входа в сгенерированном байт-коде не должна сработать из-за ошибки в компиляторе.
Согласно статистике сети, инцидент со взломом пула стейблкоинов Curve Finance привел к совокупным потерям в размере 52 миллионов долларов США в пулах Alchemix, JPEG'd, CRV/ETH и т. д. Токен Curve Finance CRV также сильно пострадал, упав более чем на 15% за день.
Анализ причин
Причина, по которой Curve Finance подверглась атаке на этот раз, заключается в том, что когда Curve использовала язык Vyper для написания смарт-контрактов, она использовала Vyper версии 0.2.15.В этой версии есть уязвимость, называемая неисправностью блокировок повторного входа (сбой блокировки повторного входа). повторная атака, вызывающая потери. На этот раз уязвимость Curve Finance связана с конкретным языком.
Под специфичными для языка уязвимостями понимаются уязвимости, вызванные дефектами или несовместимостью определенного языка программирования или самого компилятора. Такие уязвимости часто трудно найти и предотвратить, потому что они вызваны не халатностью разработчиков или логическими ошибками, а проблемами с базовой технологической платформой. Эти типы уязвимостей также имеют тенденцию затрагивать несколько проектов или контрактов, поскольку все они используют один и тот же язык или компилятор.
Vyper — это язык программирования смарт-контрактов на основе Python, разработанный для большей безопасности и удобства чтения. Vyper утверждает, что является языком «безопасность прежде всего» и не поддерживает некоторые функции, которые могут создавать риски для безопасности, такие как классы, наследование, модификаторы, встроенный ассемблер и т. д. Однако Vyper не идеален, и в нем все еще есть некоторые ошибки или лазейки, которые могут повлиять на безопасность контракта. Например, в дополнение к сбою повторной блокировки, с которым на этот раз столкнулась Curve Finance, Vyper также столкнулся с такими проблемами, как выход за пределы массива, целочисленное переполнение и ошибки доступа к хранилищу.
Меры безопасности
На этот раз для повторной атаки Curve Finance были приняты или предложены некоторые контрмеры. Вот некоторые контрмеры безопасности, которые вы можете предпринять:
Подведем итог
Инцидент с повторным входом в Curve Finance был досадным инцидентом с безопасностью и уроком, заставляющим задуматься. В сфере децентрализованных финансов (DeFi) безопасность всегда является главным приоритетом. Стороны проекта должны постоянно повышать свою осведомленность и возможности в области безопасности. Любая деталь может стать прорывом для злоумышленников.
Подписывайтесь на нас
Твиттер: @MetaTrustLabs
Сайт: metatrust.io.