В смарт-контрактах на блокчейне Ethereum обнаружено свыше 34 тысяч уязвимостей
В настоящее время в блокчейне Ethereum работают сотни тысяч смарт-контрактов, управляющих кошельками, токенами, приложениями или использующихся для хранения средств. Группа британских исследователей самостоятельно смогла идентифицировать 34 200 уязвимых смарт-контрактов, пишет Motherboard.
Помощник профессора из Университетского колледжа Лондона Илья Сергей и его коллеги провели масштабное исследование для обнаружения всех возможных уязвимостей смарт-контрактов на блокчейне Ethereum. Для этого они скачали блокчейн Ethereum, по сути создав его форк для личного пользования, и начали запускать разнообразные сценарии, пытаясь добиться нежелательных последствий. Когда эти последствия наступали, они помечали смарт-контракт «с отслеженной уязвимостью».
Проанализировав таким образом около миллиона смарт-контрактов, исследователи обнаружили, что в 34 200 из них содержались критические уязвимости. Они проверили свои предположения на 3000 смарт-контрактах, и в 89% случаев вызвали те самые нежелательные последствия. В теории это могло бы позволить им украсть $6 млн в Ethereum.
По словам экспертов, раннее обнаружение уязвимостей позволяет предотвратить
возможные негативные последствия. Так, например, в ноябре 2017 года пользователь под псевдонимом DevOps19 нашел уязвимость в коде библиотеки Ethereum-кошелька Parity и случайно заблокировал $150 млн.
«Мы работаем с приложениями, у которых есть две очень неприятных особенности: они используются для управления вашими деньгами и их нельзя исправить», — пояснил Илья Сергей.
Попытки найти создателей уязвимых смарт-контрактов оказались тщетными. Но поскольку исследователи не сообщают, в каких именно смарт-контрактах были обнаружены уязвимости, условно их можно считать безопасными.
«Если кто-то захочет воспользоваться нашей идеей, ему, по крайней мере, придется проделать столько работы, сколько сделали мы», — подытожил исследователь.
Напомним, в январе подразделение Cisco обнаружило ряд уязвимостей в Ethereum-клиенте Parity. В первую очередь, речь шла об операционном коде create2, неправильная работа которого могла привести к широкомасштабной DoS-атаке на поддерживающие его ноды. Более того, ряд «лазеек» в программном обеспечении кошелька позволяли получать доступ к закрытой информации.
Несколько дней спустя представители Parity Technologies заявили, что указанные уязвимости были исправлены в новых версиях программного обеспечения Ethereum-клиента.