• BTC ETH
  • Новость
  • Источник: ff.ru

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

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

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

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

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

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

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

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

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

Добавил он:

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

Рейтинги

Но как именно эти приложения на ethereum оценены на Amberdata?

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

«Это просто означает, что мне нужно проверить, что происходит с машиной.Что угодно может привести к ошибке безопасности», - объяснил Espanol в CoinDesk.

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

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

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

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

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

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

Действительно, одним из таких приложений, использующих в настоящее время вызов сообщения и ранее внедрявшим интеллектуальное обновление контракта с использованием обратного вызова делегата в январе, является TrueUSD. Созданная стартапом BlockTain TrustToken, стабильная монета на Эфириуме, поддерживаемая долларами США, в настоящее время оценивается буквой С.

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

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

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

Как получить А +

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

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

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

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

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

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

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

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

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

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

Dapps на ethereum работают исключительно по смарт-контрактам. Специально написанные на языке программирования Solidity, ключевая сила dapps заключается в том, что их нельзя изменить.

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

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

«С ethereum это новый набор проблем, о которых люди не знают при программировании в Solidity», - подчеркнул Espanol.

Комментарии 0
tt_banner