Журнал "Information Security/ Информационная безопасность" #4, 2022
Вопрос комиссии за вычисления в смарт-конт- рактах тесно связан с без- опасностью, ведь ситуация, когда средства навсегда застряли в контракте, с практической точки зрения мало отличается от ситуа- ции, когда их украли. В качестве ответной меры на возможные риски довольно распространенной услугой стал аудит смарт- контрактов. информации, персональных дан- ных или больших суммах денег. Но в реальности очень боль- шой процент ошибок вызван человеческим фактором и уязвимый код является причи- ной многочисленных рисков. Одна из причин, провоцирую- щих уязвимости, заключается в сложности проектирования, разработки и тестирования смарт-контрактов. И если для простых смарт-контрактов веро- ятность ошибки относительно мала, то в сложных смарт-конт- рактах ошибки встречаются часто. А последствием может быть хищение средств, их замо- розка или даже уничтожение смарт-контракта. Распространенные уязвимо- сти вызваны давно известны- ми чисто программными ошиб- ками. 1. Рекурсивный вызов: смарт- контракт совершает вызов к дру- гому внешнему контракту до того, как изменения были зафик- сированы. После этого внешний контракт может рекурсивно взаимодействовать с исходным смарт-контрактом недопусти- мым способом, так как его баланс еще не обновлен. 2. Целочисленное перепол- нение: смарт-контракт выпол- няет арифметическую опера- цию, но значение превышает емкость хранилища (обычно 18 знаков после запятой). Это может привести к неправиль- ному расчету сумм. 3. Опережение: плохо струк- турированный код содержит данные о будущих транзакциях, которые могут быть использо- ваны третьими лицами в своих интересах. Эффективность смарт-контрактов Оптимизация производитель- ности смарт-контрактов являет- ся показателем мастерства раз- работчика. Некоторые контрак- ты для выполнения своей функ- ции производят сложные серии транзакций, и комиссия за про- изводимые операции становит- ся высокой. Эффективные контракты могут значительно сократить комиссию за тран- закции. Вопрос комиссии за вычис- ления в смарт-контрактах тесно связан с безопасностью, ведь ситуация, когда средства навсе- гда застряли в контракте, с практической точки зрения мало отличается от ситуации, когда их украли. Виртуальная машина Ethereum EVM (Ethereum Virtual Machi- ne) – это единый глобальный 256-битный "компьютер", в кото- ром все транзакции хранятся локально на каждом узле сети и исполняются с относительной синхронностью. EVM может выполнять про- извольные команды, и в этом кроется его уязвимость: можно подобрать программный код, который приведет к непредви- денным последствиям. Понятно, что уязвимости в EVM могут привести к сбою в работе смарт- контрактов. Еще одна проблема заклю- чается в том, что можно прак- тическим либо техническим способом подобрать код смарт- контракта, операции которого нагрузят виртуальную машину и замедлят ее непропорцио- нально той комиссии, которая была оплачена за выполнение этих операций. Исследователи борются с такого рода злоупо- треблениями, но проблема по- прежнему остается актуаль- ной. Аудит защищенности смарт-контрактов В качестве ответной меры на возможные риски довольно рас- пространенной услугой стал аудит смарт-контрактов. Аудит безопасности предо- ставляет подробный анализ смарт-контрактов проекта для защиты вложенных средств. Так как все транзакции в блокчейне являются конечными, вернуть средства в случае кражи невоз- можно. Единого подхода к ауди- ту нет, и каждая аудиторская компания выполняет его по своему усмотрению. Детерминизм исполнения кода смарт-контракта позволяет тестам работать везде, быть крайне простыми в поддержке и делает расследование инци- дентов надежным и неоспори- мым. Аудиторы изучают код смарт- контрактов, составляют отчет и предоставляют его команде проекта. Затем выпускается окончательный отчет с подроб- ным описанием всех оставших- ся ошибок и работы, проделан- ной для решения проблем с производительностью и без- опасностью. Помимо общих выводов, отчет обычно содер- жит рекомендации, примеры избыточного кода и полный ана- лиз ошибок кодирования. Команде проекта дается время, чтобы исправить ошибки, преж- де чем будет выпущен оконча- тельный отчет. Большая часть аудита вклю- чает проверку контрактов на наличие уязвимостей в системе безопасности. Хотя некоторые проблемы лежат на поверхно- сти, многие ошибки могут быть устранены только с помощью сложных инструментов и стра- тегий. Например, слабый смарт- контракт может подвергнуться атаке в сочетании с рыночными манипуляциями. Чтобы обнару- жить эти проблемы, аудиторы проводят пентесты. Аудит безопасности смарт- контрактов широко распростра- нен в экосистеме децентрали- зованных финансов (DeFi). Решение инвестировать в блок- чейн-проект может быть частич- но основано на результатах про- верки кода смарт-контракта. Заключение Несомненно, смарт-контракты оказали большое влияние на мир криптовалют и, безусловно, произвели революцию в области блокчейн-технологий. Совмест- ный потенциал смарт-контрактов и блокчейна может оказать значительное влияние практи- чески на все сферы жизни обще- ства. Но только время покажет, смогут ли эти инновационные технологии преодолеть барьеры на пути к широкомасштабному внедрению. Поскольку транзакции блок- чейна необратимы, очень важно убедиться в безопасности кода смарт-контрактов. Особенности технологии "блокчейн" затруд- няют возврат средств и реше- ние проблем постфактум, поэто- му лучше заранее определить потенциальные уязвимости про- ектов. l • 47 БЕЗОПАСНАЯ РАЗРАБОТКА www.itsec.ru Ваше мнение и вопросы присылайте по адресу is@groteck.ru
Made with FlippingBook
RkJQdWJsaXNoZXIy Mzk4NzYw