Эксперты обнаружили баги в 34200 смарт-контрактах на Ethereum

В ноябре прошлого года пользователь, известный под псевдонимом «DevOps199», наткнулся на критическую уязвимость в коде кошельков для эфириума Parity. Произошло то, что считалось невозможным,  удалив ошибку из кода DevOps199 заблокировал средства пользователей на кошельках эфириума на сумму около $ 150 млн.

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

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

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

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

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

«Представьте, что ваша цель это взаимодействие с торговым автоматом не стандартным образом, а попытаться взломать его и заставить обслуживать вас бесплатно», – пояснил исследователь. «Предположим, вы вносите несколько монет и начинаете нажимать на кнопки в случайном порядке в надежде, что внутренний механизм автомата – вы не знаете его устройства – в конце концов откроется, и в заберёте конфету».

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

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

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

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

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

Обсудить эту новость, задать вопросы можно в Telegram чате
Подписывайтесь на наши новости в Telegram

 


Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (Пока оценок нет)
Загрузка...

Редактор. Маркетолог. Криптоинвестор с 2014 года.