Menu
in

В смарт-контрактах на Ethereum нашли уязвимости

В ноябре прошлого года пользователь под ником DevOps199 наткнулся на уязвимость в коде библиотеки Ethereum-кошелька Parity и случайно заблокировал $150 млн.

Отчаянное исследование

В настоящее время в блокчейне Ethereum работают сотни тысяч смарт-контрактов, управляющих кошельками, токенами, приложениями или использующихся для хранения средств. Группа исследователей утверждает, что они нашли способ предотвратить негативные последствия таких уязвимостей, обнаруживая их заранее. Более того, они сами смогли идентифицировать 34 200 уязвимых смарт-контрактов и протестировали 3 000 из них, что в теории могло бы им позволить украсть $6 млн в эфире.

«Мы работаем с приложениями, у которых есть две очень неприятных особенности: они используются для управления вашими деньгами и их нельзя исправить», – пояснил помощник профессора из Университетского колледжа Лондона и соавтор исследования.

Смарт-контракт – это самоисполняющийся код в блокчейне Ethereum. Люди взаимодействуют со смарт-контрактами, передавая им инструкции через транзакции. Анализ этого кода сопряжён с особыми трудностями, так как он предназначен для исполнения в блокчейне и не несёт особого смысла для человека. Поэтому уязвимости обычно обнаруживаются, когда бывает слишком поздно.

Учёные хотели провести масштабное исследование и обнаружить все возможные уязвимости. Для этого они рассмотрели Ethereum как торговый автомат.

Чтобы поэкспериментировать с аппаратом, исследователи скачали блокчейн Ethereum, по сути создав его форк для личного пользования, и начали запускать разнообразные сценарии, пытаясь добиться нежелательных последствий. Когда эти последствия наступали, они помечали смарт-контракт «с отслеженной уязвимостью».

Результаты анализа

Проанализировав таким образом около миллиона смарт-контрактов, исследователи обнаружили, что в 34 200 из них содержались критические уязвимости, включая контракт, уничтоженный DevOps199. Они проверили свои предположения на 3 000 смарт-контрактов, и в 89% случаев вызвали те самые нежелательные последствия.

По словам исследователя, они тщетно пытались найти создателей уязвимых смарт-контрактов. Даже если бы им это и удалось, никто не гарантирует, что создатели послушали бы их. Именно это произошло в случае с Parity: компанию известили о проблеме за несколько месяцев до происшествия, однако она решила отложить её решение на более поздний срок.

«Если кто-то захочет воспользоваться нашей идеей, ему, по крайней мере, придётся проделать столько работы, сколько сделали мы».

Поскольку исследователи не сообщают, в каких именно смарт-контрактах были обнаружены уязвимости, условно их можно считать безопасными.

Leave a Reply

Exit mobile version