Тяжелый недостаток контроля доступа в контракте Superrare на стабилизацию – тот, который базовые модульные тесты или CHATGPT могли бы поймать – позволил бы поймать кражу в 731 000 долларов в редких токенах.
Superrare NFT Trading Platform Superrare перенесла эксплуатацию в размере 730 000 долларов в понедельник из -за основной ошибки с интеллектуальным контрактом, которая, по словам экспертов, можно было легко предотвратить при стандартной практике тестирования.
По данным фирмы Cyberrency Cyberrens Cyvers, контракт на выступление SuperRare (редкое) сжатие было использовано в понедельник, и у него были украдены редкие токены на сумму около 731 000 долларов.
Уязвимость проистекает из функции, предназначенной для того, чтобы позволить только конкретным адресам модифицировать корень Меркл, критическую структуру данных, которая определяет баланс становления пользователя. Однако логика была ошибочно написана, чтобы позволить любому адресу взаимодействовать с функцией.
0xaw, ведущий разработчик на базовой децентрализованной базе инопланетян обмена, отметил, что рассматриваемая ошибка была достаточно очевидна, чтобы быть пойманным CHATGPT. Cointelegraph независимо проверил, что модель O3 O3 успешно определила недостаток при тестировании.
Соответствующий код в контракте с токеном SuperRare. Источник: Cointelegraph
«Чатгпт поймал бы это, любая половина компетентной солидности поймал бы это. В основном кто -то, если бы они выглядели. Скорее всего, никто не сделал», – сказал 0XAW Cointelegraph.
Соучредитель Superrare Джонатан Перкинс сказал Cointelegraph, что никакие основные фонды протокола не потеряны, и затронутые пользователи будут становятся целыми. Он сказал, что кажется, что 61 кошелек поражаются.
«Мы узнали из этого, и теперь будущие изменения пройдут гораздо более надежный обзорный трубопровод», – сказал он.
Связанный: Криптовалюта Хакеры превышают 3,1 млрд. Долл. США в 2025 году, поскольку недостатки доступа сохраняются: Хакен
Содержание
- Анатомия уязвимости
- Важность модульного тестирования
- Большинство уязвимостей – это упущение
Содержание:
Анатомия уязвимости
Чтобы определить, следует ли разрешить изменение корня Меркл, смарт -контракт проверил, если взаимодействующий адрес не был конкретным адресом или владельцем контракта. Это противоположная логика к тому, что было предназначено для применения, позволяя кому -либо просеивать статуру, редкие из контракта.
Линия, содержащая соответствующую проверку. Источник: Cointelegraph
Старший инженер в страховой компании Cryptocurrency Nexus Mutual сказал Cointelegraph, что «единичные тесты поймали бы эту ошибку».
Майк Тиутин, архитектор блокчейна и директор по технологиям фирмы Amlbot, сказал: «Это глупая ошибка разработчика, которая не была покрыта тестами (поэтому важно полное покрытие)».
Генеральный директор Amlbot Slava Demchuk также пришел к тому же выводу, отметив, что «не было никаких обширных испытаний (или программы наградных закусок), которые могли бы найти его предварительное развертывание». Он подчеркнул важность тестирования, отметив, что это «классический пример, почему логика интеллектуального контракта должна быть тщательно проверена». Он добавил:
«Это является резким напоминанием: в децентрализованных системах даже ошибка с одним символом может иметь серьезные последствия».
В то время как Перкинс настаивал на том, что контракты были проверены и проверены на единицу, он признал, что ошибка была введена в конце процесса, и не было освещено в последних сценариях тестирования:
«Это болезненное напоминание о том, как даже небольшие изменения в сложных системах могут иметь непреднамеренные последствия».
Связанный: Индийская обмена криптовалют Coindcx взломан, 44 миллиона долларов
Важность модульного тестирования
Модульные тесты представляют собой небольшие автоматизированные тесты, которые проверяют, работают ли отдельные детали («единицы») программы – обычно функции или методы – работают, как и ожидалось. Каждый тест предназначен для конкретного поведения или вывода на основе данного ввода, помогая рано поймать ошибки.
В этом случае, тесты, которые подтверждают, могут ли адреса или не могут вызвать функцию для изменения корня Меркл, были бы не удалось.
«Благодаря надзору или неадекватному тестированию эффект был таким же: уязвимость, которую можно избежать, стоимостью значительно», – сказал Демхук Cointelegraph.
0xaw аналогично сказал, что «проблема была, конечно, явно полным отсутствием тестирования». Он сказал, что «это даже не какой -то код, который хорошо работает в нормальных условиях, и терпит неудачу, если вы толкуте его в нужных местах».
«Этот код просто противоположна тому, что вы ожидаете», – добавил он.
Перкинс сказал Cointelegraph, что продвигаясь вперед, Superrare ввел новые рабочие процессы, которые требуют повторных автоматов для любых пост-аудитных изменений, независимо от того, насколько незначительным.
Большинство уязвимостей – это упущение
0xaw сказал, что ошибка – «нормальная человеческая ошибка». Вместо этого он рассматривает как «монументальную ошибку», так это то, что она «добралась до производства и остался там».
0xaw подчеркнул, что подавляющее большинство серьезных уязвимостей происходят из «действительно глупых и легко предотвратимых ошибок». Тем не менее, он признал, что «их обычно немного сложнее заметить, чем это».
Глава ответа Хакена по инциденту, Йехор Рудица, согласился с тем, что тщательный тестовый охват поймал бы недостаток.
«Если просмотреть эту функцию, это довольно очевидная ошибка», – сказал он.