Logo
Share this article

Как приложения Ethereum получают рейтинг безопасности A+

Более 1,2 миллиона приложений Ethereum использовали малоизвестный инструмент безопасности от Amberdata, чтобы избежать дорогостоящих ошибок в смарт-контрактах.

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

Запущенный Технологии Amberdata в октябре, бесплатный инструмент доступен любому человеку в широкой публике для интерпретации безопасности активных приложений на блокчейне Ethereum . Смарт-контракты с ошибками, которые были использованы , привели к огромным потерям, даже в размересотни миллионов.

STORY CONTINUES BELOW
Don't miss another story.Subscribe to the Crypto Daybook Americas Newsletter today. See all newsletters

Автоматизированная служба сканирует код смарт-контракта на наличие распространенных уязвимостей и генерирует буквенный рейтинг (например, A, B или C) безопасности децентрализованного приложения (dapp).

Эта функция является ONE из многих инструментов, поощряющих внедрение передового опыта и повышение прозрачности между разработчиками dapp и конечными пользователями в экосистеме Ethereum .

Более того, эта функция уже давно существует в более широком веб-пространстве. Браузер DuckDuckGo, ориентированный на конфиденциальность, недавно запустил расширение для браузера Chrome, используемое для оценки веб-сайтов (не dapps) с помощью буквенной оценки, что дает пользователям легкое представление о том, насколько хорошо или плохо администраторы сервисов защищают Политика конфиденциальности пользователей.

«Наша цель — повысить уровень доверия в Интернете», — пишет DuckDuckGo взапись в блогес января 2017 года.

Аналогичным образом, как подчеркнул в пресс-релизе генеральный директор Amberdata Шон Дугласс, видение инструмента оценки безопасности Amberdata заключается в обеспечении «более широкого доступа и улучшенной прозрачности смарт-контрактов».

Он добавил:

«Мы надеемся, что, предоставив сообществу эти инструменты, мы сможем сократить внешнюю зависимость и дать сообществу возможность развиваться быстрее и безопаснее».

Рейтинги

Но как именно эти приложения на Ethereum оцениваются на Amberdata?

Указывая на 13 типов уязвимостей, автоматически сканируемых программой, технический директор Amberdata Джоанес Эспаньол сравнил каждый из них с «лампами двигателя на приборной панели [автомобиля]».

«Это просто означает, что мне нужно проверить, что происходит с автомобилем. Любое из этого может привести к ошибке безопасности», — объяснил Эспаньол CoinDesk.

И чем больше ошибок безопасности будет обнаружено сканированием безопасности Amberdata, тем ниже будет оценка алфавита dapp. Эти оценки варьируются от A+ до F.

Но они T зависят строго от количества ошибок безопасности. Каждая из 13 уязвимостей имеет различную степень серьезности, объясняет Эспаньол, которая повлияет на окончательную оценку dapp. Две распространенные уязвимости низкой серьезности, отмеченные Эспаньол, включают «вызов делегата на указанный пользователем адрес» и «вызов сообщения внешнему контракту».

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

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

«Это хорошая часть этих делегатских звонков. Но плохая часть в том, что теперь, как владелец контракта, я могу начать делать плохие вещи. Так, я могу начать заменять контракты, которые меняют поведение исходного [приложения]», — объяснил Эспаньол.

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

Действительно, ONE из таких приложений, в настоящее время использующее вызов сообщения и ранее развернувшее обновление смарт-контракта с использованием обратного вызова делегата в январе, — это TrueUSD. Созданная стартапом блокчейна TrustToken, стейблкоин на базе Ethereum , обеспеченный долларами США, в настоящее время занимает позицию Оценка «С».

Хотя это звучит не T хорошо, глядя на уязвимости, отмеченные для TrueUSD, инженер по безопасности TrustToken Уильям Моррис сказал CoinDesk в предыдущем интервью, что все выявленные проблемы на самом деле не были «критическими».

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

Подробно останавливаясь на вопросе звонков, Моррис добавил, что для TrueUSD все внешние контракты принадлежат самим компаниям и управляются ими, а не третьими лицами с потенциально более низкими стандартами безопасности.

Как получить оценку A+

Ошибки «высокой» степени серьезности сильнее повлияют на рейтинг безопасности приложения, поскольку они указывают на большую вероятность возникновения ошибок кода и уязвимостей.

ONE из самых распространенных ошибок — «целочисленное переполнение» — указывает на то, что операции, выполняемые в рамках смарт-контракта, могут генерировать значения, превышающие ограничения кода, что приводит к странному, непредсказуемому поведению, которое в худшем случае может привести к потере средств.

Обратная сторона — «целочисленное переполнение» — еще одна уязвимость «высокой» степени серьезности, из-за которой может произойти ровно наоборот, и значение ниже определенного диапазона также приведет к ошибочному выводу.

В Solidity также есть некоторые функции, которых разработчикам dapp следует просто избегать, согласно системе оценок Amberdata, включая «suicide()» и «tx.origin». Последний описывается Espanol как «устаревший код», который может быть полностью удален из языка Solidity в будущем, в то время как первый несет риск перехвата третьими лицами для заморозки средств пользователей, которые они никогда не смогут вернуть.

Поскольку у него T ни одной из этих четырех уязвимостей, позорно популярное приложение Ethereum CryptoKitties в настоящее время имеет А+Рейтинг безопасности на Amberdata. Инженер-программист CryptoKitties Фабиано Сориани объясняет это «реализацией как можно большего количества тестов».

Добавив, что «пассивных ресурсов», таких как письменная документация и видеоуроки по разработке dapp, недостаточно для создания безопасных приложений на Ethereum, Сориани сказал CoinDesk:

«Когда кто-то проводит аудит, он указывает Для вас на некоторые вещи. Это очень хороший дополнительный ресурс [к пассивным ресурсам], потому что разработчики, имеющие более традиционный опыт, T знакомы с блокчейном».

«Это новый набор проблем»

Действительно, когда дело доходит до создания dapps, важность герметичного, непроницаемого кода нельзя недооценивать. CORE причина этого двояка.

Во-первых, в отличие от традиционных приложений, dapps, как правило, представляют собой компьютерные программы с открытым исходным кодом, и, как объясняет Моррис, при запуске «публичного» кода требуется «повышенный уровень осторожности».

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

Во-вторых, dapps на Ethereum работают исключительно на смарт-контрактах. Специально закодированы на языке программирования Solidity и выполняются в нервном центре блокчейна, называемом Виртуальная машина Ethereum (EVM)Главное преимущество dapps в том, что их T изменить.

Недостаток этого очевиден. Программистам нелегко исправлять ошибки или баги в программном обеспечении после его развертывания на блокчейне.

Назвав «серьезной ошибкой» пропуск стороннего аудита безопасности или сканирования по этим причинам, Моррис сказал CoinDesk , что разработчикам важно не становиться жертвами собственной «высокомерности» и убедиться, что «тесты охватывают каждую ветвь вашего кода».

«С Ethereum возник новый набор проблем, о которых люди T знают, когда пишут код на Solidity», — подчеркнул Эспаньол в интервью CoinDesk.

Программирование изображениячерез Shutterstock

Christine Kim

Кристина — аналитик-исследователь CoinDesk. Она фокусируется на создании аналитических данных о Криптовалюта и блокчейн-индустрии. До того, как стать аналитиком-исследователем, Кристина была техническим репортером CoinDesk , в основном освещая разработки в области блокчейна Ethereum . Криптовалюта активы: отсутствуют.

Christine Kim