Исследователи выявили 34 200 смарт-контрактов с уязвимостями
Совместное исследование ученых из Национального университета Сингапура (NUS), Yale-NUS колледжа в Сингапуре и Университетского колледжа Лондона продемонстрировало уязвимости 34200 из проанализированных смарт-контрактов.
Исследователи ставили своей задачей обнаружить максимальное число уязвимостей в смарт-контрактах и внедрили новый подход к поиску багов. В результате анализа миллиона смарт-контрактов, команда обнаружила 34200 критических уязвимостей.
На выборке в 3000 контрактов команде удалось подтвердить и воспроизвести уязвимости с коэффициентом результативности в 89%, что, теоретически, позволяет похитить, в среднем, 6 млн $ в результате эксплуатации этих уязвимостей.
Опубликованный на прошлой неделе отчет проходит процесс рецензирования коллег.
«Мы имеем дело с приложениями, у которых есть 2 неприятные особенности: они управляют вашими деньгами, и они не могут быть изменены», – объяснил Илья Сергей, ассистент профессора в Университетском колледже Лондона и соавтор публикации.
Сергей и его коллеги ставили целью провести масштабное исследование смартконтрактов для обнаружения таких уязвимостей до того, как ими кто-то мог воспользоваться. Анализ смарт-контрактов усложняется тем, что для полноценного анализа необходим доступ к исходному коду, который не всегда доступен, и поэтому обычно уязвимости обнаруживаются уже после того, как случилась катастрофа. Исследователи объясняют свой метод, используя пример с вендинговой машиной:
«Представьте, что ваша цель – не взаимодействовать с вендинговой машиной как положено, а сломать ее или получить товар бесплатно. Допустим, мы опустили несколько монет в автомат, и просто начали нажимать все подряд кнопки в надежде, что внутренние механизмы автомата, о которых мы не имеем никакого представления, будут подскакивать и, в конце концов, замки автомата сломаются, и мы сможем взять ту конфетку».
На практике это означало скачивание копии всего блокчейна Эфириум до определенного момента (фактически создание личного форка) и прогон программ локально с запуском множества различных комбинаций взаимодействий со всеми смарт-контрактами на блокчейне, в момент форка. Когда появлялся непредвиденный эффект, исследователи помечали это как «признак уязвимости». В дальнейшем, команда уже анализировала отмеченные уязвимости.
По словам Сергея, исследователи также попытались найти создателей уязвимых смарт-контрактов, но в этом не преуспели. Однако нет гарантий, что создатели прислушались бы к исследователям. Так, например, компания Parity, которая стояла за уязвимым кодом кошелька, который уничтожил DevOps199, была оповещена о проблеме за месяцы до катастрофы, но руководство приняло решение не принимать немедленных мер, выбрав обновление с «повышением удобства».
Тем не менее, так как исследователи не опубликовали список уязвимых контрактов, можно предположить, что на данный момент, деньги хранятся в условной безопасности:
«Если кто-то захочет воспользоваться идеей, они должны будут проделать, как минимум, тот же объем работ, что проделали мы», – утверждает исследователь.
Делитесь вашим мнением об этой новости в комментариях ниже.
Подписывайтесь на CoinHunt в телеграмм