Рубрика:
Наука и технологии
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
РЕПИН М.М., преподаватель, Московский политехнический университет, направление «Информационная безопасность», e-mail: bmstu.iu8@gmail.com
ПШЕХОТСКАЯ Е.А., к.ф.н., доцент факультета информационных технологий, руководитель образовательной программы «Безопасность перспективных информационных систем», Московский политехнический университет, e-mail: pshehotskaya@gmail.com
Обеспечение информационной безопасности смарт-контрактов в системах на основе технологии распределенных реестров
В данной статье рассмотрены базовые уязвимости, характерные для смарт-контрактов, реализуемых в системах на основе распределенных реестров. Проведен их анализ и выявлены ключевые особенности. Предложена классификация угроз информационной безопасности для смарт-контрактов. Сформированы рекомендации и предложен базовый набор организационных и технических мер по минимизации рисков возникновения угроз, связанных с смарт-контрактами
Введение
В течение периода с момента создания протокла Bitcoin в 2008 году Сатоши Накамото и до сегодняшнего дня сама идея применения технологии распределенных реестров претерпела множественные метаморфозы, а также спады и падения в части надежд, возлагаемых на возможности, предоставляемые данной технологией. От первоначальной задачи, связанной с обеспечением надежности транзакций и достоверности и неизменности информации о платежах путем развития смежных технологий, современные системы перешли к реализации целого стека прикладных направлений, включающих [1]:
- виртуальные валюты – применение: осуществление переводов и платежей, комиссионные выплаты, краудфандинг, микрофинансовые операции вне цепочек транзакций;
- удостоверение юридически значимых обстоятельств – применение: идентификация пользователя (к примеру, при проведении общих собраний в организациях), подтверждение вещественных прав, подтверждение прав участия (корпоративных прав), голосование, отслеживание расходов, ведение кадастрового учета, цифровая подпись с автоматическим указанием даты;
- «умные» контракты – применение: эскроу, выплата обусловленного вознаграждения по трудовому договору, регистрация доверительного управления (оформление наследственных трастов), автоматическая арбитражная оговорка, страхование;
- децентрализованные автономные организации (ДАО) – применение: оформление глобальных цепочек создания ценности (global value chains), распределение корпоративных прав, логистика, управление пулом активов.
Особое внимание следует уделить вопросу использования «умных» контрактов (смарт-контрактов), так как в настоящее время остаются открытыми вопросы обеспечения их юридической значимости и информационной безопасности.
Смарт-контракты в системах на основе распределенных реестров
Впервые термин смарт-контракт был предложен юристом и специалистом в области криптографии Ником Сабо. В качестве определения смарт-контракта можно рассмотреть следующее.
Под смарт-контрактом понимается компьютерная программа, автоматическое исполнение которой соответствует закрепленным в программном коде условиям, содержащимся в распределенном реестре. Такие, составленные в виде программного кода, инструкции автоматически исполняются при наступлении оговоренных контрактом событий.
Следовательно, отступления от договора невозможны даже технически. Код наделяется юридической силой и работает на фундаментальный для права принцип: «Договоры должны соблюдаться» [2]. Данные о наступлении юридически значимых событий фиксируются в распределенном реестре, что служит сигналом к исполнению прописанной в смарт-контракте транзакции. Автоматическое исполнение условий смарт-контракта и независимость исполнения от внешних факторов, недобросовестных и субъективных оценок позволяет считать смарт-контракт мощным, с правовой точки зрения, инструментом.
Применение смарт-контрактов целесообразно в тех случаях, когда допустим отказ от участия посредников и наступление оговоренного события однозначно приводит к исполнению транзакции.
Исполнение смарт-контракта происходит в заранее зафиксированном пользователями порядке.
Однако, несмотря на логичность и однозначность условий, при выполнении которых можно рассматривать смарт-контракт как инструмент, избавляющий стороны сделки от подготовки юридических документов в печатном виде и использовании небезопасных способов передачи данных, остается ряд вопросов, делающих применение смарт-контрактов неоднозначным и сомнительным с точки зрения информационной безопасности. Рассмотрим некоторые из них.
Обзор типовых уязвимостей смарт-контрактов
Уязвимости смарт-контрактов можно разделить на несколько категорий:
- Уязвимости, связанные с ошибками реализации (программирования) – данный тип уязвимостей связан непосредственно с профессиональными навыками у разработчиков, реализующих код смарт-контракта. Из-за отсутствия должного опыта в написании смарт-контрактов, разработчик может допустить большое количество ошибок, связанных с синтаксисом программы, с нецелесообразным использованием той или иной функции, из-за чего возникают недекларируемые возможности и уязвимости кода, которые могут быть использованы потенциальным нарушителем для реализации атаки;
- Уязвимости, связанные с ошибками при построении архитектуры системы на основе распределенных реестров, – данный тип уязвимостей связан с несколькими факторами, в том числе с попытками реализации классических процессов, в том числе зарегулированных в рамках законодательства, что выражается в искажении классических принципов функционирования и построения систем на основе распределенных реестров, с недостатком опыта у архитекторов, проектирующих подобные системы и в связи с этим применяющих решения, создающие инфраструктурные уязвимости;
- Уязвимости, связанные с логикой смарт-контракта, – один из самых ключевых видов уязвимостей. Данный тип уязвимостей тесно переплетается как с юридическим аспектом, так и с ошибками в разработке. Кроме того, особенности языков программирования, на которых реализованы смарт-контракты, имеют внутренние уязвимости, позволяющие существенно изменить заложенные в смарт-контракт алгоритмы;
- Уязвимости, связанные с недостаточной проработкой юридической стороны смарт-контракта, – данный тип уязвимостей связан с устоявшейся практикой исполнительного производства. Кроме того, существует проблема легитимного вмешательства в цепочки транзакций с целью исполнения судебных решений. Однозначность и безусловная исполнимость программного кода, а также необратимость транзакций в системе на основе распределенных реестров налагают на процедуру пересмотра судебных решений определенные ограничения. Возникает множество вопросов по обеспечению судебной защиты со стороны государства, поквалификации судей и наличию у них возможностей получения доступа к распределенным реестрам, а также по возможности и корректности исполнения решений по сделкам в криптовалюте или с использованием цифровых активов с учетом разницы курсов по отношению к национальной валюте, штрафных санкций, ограничений и т.д.;
- Уязвимости, связанные с реализацией алгоритма консенсуса, – являются фундаментальными уязвимостями, так как именно на основе работы данного алгоритма принимается решение о легитимности новых блоков. Отдельным вопросом является доказательство стойкости алгоритмов к различным видам атак [3, 4]. Схема классификации уязвимостей представлена на рис. 1.
Рисунок 1. Схема классификации уязвимостей смарт-контрактов
Формирование базовых мер нейтрализации угроз
Для минимизации наиболее из критичных угроз, связанных с уязвимостями смарт-контрактов целесообразно сформировать базовый состав организационных и технических мер.
Для удобства их применения сгруппируем их на основе предложенной классификации уязвимостей.
С целью нейтрализации угроз, реализуемых через уязвимости, связанные с ошибками реализации (программирования) или программными закладками, необходимо применять следующие организационные и технические меры:
- описание и регламентация процесса разработки системы на основе распределенных реестров;
- формирование требований к опыту и квалификации разработчиков;
- формирование детального описания бизнес-процессов системы на основе распределенных реестров, в рамках которых функционирует смарт-контракт;
- обеспечение модульности кода для смарт-контрактов и функций;
- использование актуальных версий стандартных библиотек при осуществлении разработки;
- выделение в коде смарт-контракта небезопасных вызовов внешних смарт-контрактов путем соответствующего наименования функций и переменных;
- регламентирование процедур доработки смарт-контрактов при выявлении ошибок и уязвимостей;
- использование автоматических прерываний выполнения кода смарт-контракта при обнаружении ошибок;
- использование механизмов, позволяющих приостанавливать выполнение смарт-контракта;
- регламентирование этапов тестирования смарт-контракта:
- разработка тестов;
- тестирование изменений состояния смарт-контрактов;
- тестирование событий;
- тестирование ошибок;
- проверка отправки сообщений;
- формирование тестовых сценариев на существующие векторы атак и в случае появления новых векторов атак;
- формирование отчетов об ошибках, начиная с альфа-версий;
- поэтапное развертывание с повышением уровня тестирования на каждом этапе;
- тестирование возвращающих значений из методов, которые изменяют состояние контракта;
- создание истории изменения состояния смарт контрактов, используемых для создания информационного репозитория.
С целью нейтрализации угроз, реализуемые через уязвимости, связанные с ошибками при построении архитектуры системы на основе распределенных реестров, необходимо применять следующие организационные и технические меры:
- проведение анализа стойкости алгоритма достижения консенсуса участников системы на основе распределенных реестров при валидации факта внесения записи в распределенный реестр;
- учет особенностей языка программирования, применяемого для создания системы на основе распределенных реестров и ее окружения;
- контроль наличия временных меток в критичных участках кода и целостность исполнения смарт-контракта в период исполнения;
- проверка смарт-контрактов на стойкость к атакам класса «отказ в обслуживании».
С целью нейтрализации угроз, реализуемых через уязвимости, связанные с логикой функционирования смарт-контракта, необходимо применять следующие организационные и технические меры:
- подготовка спецификации/документации смарт-контракта;
- документирование процесса развертывания смарт-контракта;
- контроль за соответствием функций, исполняемых смарт-контрактом функциям, отраженным в документации на данный смарт-контракт;
- введение ограничений на контроль и управление исполнения смарт-контрактов посредством внешних вызовов и функций;
- ограничение на возможность внесения изменений в результаты исполнения смарт-контракта;
- введение принципа «минимально и достаточно» для функций, реализуемых смарт-контрактом;
- при реализации двусторонних и многосторонних контрактов необходимо предусмотреть способ разрешения ситуации, когда один из участников избегает действий по контракту или отключается от системы;
- реализация мониторинга исполнения смарт-контрактов и регламентация мер по реакции на инциденты.
С целью нейтрализации угроз, реализуемых через уязвимости, связанные с недостаточной проработкой юридической стороны смарт-контракта, необходимо применять следующие организационные и технические меры:
- юридическое закрепление функционала, реализуемого смарт-контрактом, путем подписания договора между сторонами, которыми предполагается использование смарт-контракта с фиксацией всех условий, реализуемых смарт-контрактом и последствий исполнения условий;
- регламентирование процедуры хард-форка (расщепление цепочки распределенного реестра) в случае выявления несанкционированных операций.
Отдельного рассмотрения требуют уязвимости, связанные с реализацией алгоритмов консенсуса, так как они являются фундаментальными и, как правило, остаются в системе на всех этапах ее жизненного цикла.
В качестве таких уязвимостей можно рассмотреть:
- уязвимости, связанные с логикой функционирования алгоритма консенсуса;
- уязвимости, связанные с атаками на инфраструктуру системы на основе распределенных реестров с целью нарушения логики работы алгоритма консенсуса.
С целью нейтрализации угроз, реализуемых через уязвимости, связанные с логикой функционирования алгоритма консенсуса, необходимо применять следующие организационные и технические меры:
- формирование модели угроз и нарушителей применяемого алгоритма консенсуса;
- проведение оценки стойкости применяемого алгоритма консенсуса;
- использование гибридных алгоритмов консенсуса, позволяющие минимизировать недостатки базовых алгоритмов.
С целью нейтрализации угроз, реализуемых через уязвимости, связанные с атаками на инфраструктуру системы на основе распределенных реестров с целью нарушения логики работы алгоритма консенсуса, необходимо применять следующие организационные и технические меры:
- увеличение количества полнофункциональных узлов сети, подконтрольных доверенным участникам;
- реализация системы мониторинга инцидентов и анализа трафика;
- установление минимального размера транзакции для записи в распределенный реестр системы.
Таким образом, можно сделать заключение, что для систем на основе распределенных реестров целесообразно применять меры защиты, характерные для классических, централизованных систем, однако их применение должно тщательно анализироваться на предмет учета специфики технологии распределенных реестров.
Заключение
В статье рассмотрены основные уязвимости систем на основе распределенных реестров. Проанализированы угрозы, порождаемые данными уязвимостями, и предложен комплекс организационных и технических мер для их нейтрализации. Отдельное внимание при формировании модели угроз стоит уделить следующим рискам функционирования системы на основе распределенных реестров.
Классическое верховенство права замещается верховенством кода, подразумевающим безусловное исполнение условий. Однако предсказуемость и определенность программного кода не работает там, где для учета интересов участников рынка требуются гибкость и отступление от условий договора для достижения баланса интересов сторон.
Ликвидация роли посредника, зачастую являющегося высококвалифицированным специалистом в области ценных бумаг и платежных технологий, гарантирует повышение уровня рисков для всех участников системы. В то же время использование распределенного реестра не приводит к распределению операционного риска между участниками, а концентрирует их на самом слабом, с точки зрения защиты информации, узле.
Если существует возможность фальсификации данных, мошенники смогут применить новые способы выведения активов, принадлежащих участникам распределенного реестра. Так же следует изначально определить баланс между анонимностью, являющейся фундаментальным свойством систем на основе распределенных реестров и необходимой для всех финансовых систем идентификацией клиентов в соответствии с законодательством.
Таким образом, обеспечение информационной безопасности систем на основе распределенных реестров является абсолютно неизученным вопросом, требующим долгой и детальной проработки.
- Галкова Е. В. Блокчейн на пике хайпа. Правовые риски и возможности. М. : Изд-во «Высшая Школа Экономики (ВШЭ)», 2017. 153 с.
- Gilot B. /. Code! = Law // CryptoIQ. 2016. [Электронный ресурс] – Режим доступа:URL: http://blog.cryptoiq.ca/?p=534.
- Колесников П., Бекетнова Ю., Крылов Г. Технология блокчейн. Анализ атак, стратегии защиты. Изд-во LAP LAMBERT Academic Publishing RU, 2017. 77 c.
- Репин М. М., Пшехотская Е. А., Простов И. А., Амфитеатрова С. С. Использование платформы на основе распределенных реестров Ripple в банковских платежных системах // Системный администратор. 2019. № 3(196). С. 86-89. URL: http://samag.ru/archive/article/3841.
Ключевые слова: система на основе распределенных реестров, смарт-контракт, консенсус.
Ensuring information security of smart contracts in systems based on distributed registry technology
Repin M.M., Department of Information Security, Moscow Polytechnic University, Moscow, Russia, bmstu.iu8@gmail.com
Pshehotskaya E.A., Department of Information Technology, Moscow Polytechnic University, Moscow, Russia, pshehotskaya@gmail.com
Abstract: This article describes the basic vulnerabilities characteristics of smart contracts implemented in systems based on distributed ledger technology. They were analyzed and key features identified. A classification of information security threats for smart contracts is proposed. The recommendations were formulated and a basic set of organizational and technical measures was proposed to minimize the risks of threats associated with smart contracts.
Keywords: systems based on distributed ledger technology, smart contracts, consensus.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|