Файл: Образовательная программа Программирование и системная интеграция итрешений отчет о прохождении учебной практики.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 42
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
В зависимости от блокчейн-сети смарт-контракт может быть разработан либо на специализированном языке программирования (например, язык программирования Solidity, использующийся в самой распространенной платформе для реализации смарт-контрактов Ethereum), либо на языках общего назначения (JavaScript, Golang, Rust и т.д.). Примечательно, что термин “умный контракт” неоднократно подвергался критике, так как фактически это самоисполняющийся код, алгоритмически описывающий конкретные условия. В публичном блокчейне этот код виден всем участникам сети, знающим адрес контракта. Следовательно, любая ошибка в контракте, ведущая к его уязвимости, может быть использована третьей стороной. При этом сторона, отвечающая за корректную работу смарт-контракта часто не может оперативно исправить уязвимость, так как контракт уже находится в неизменном реестре в состоянии исполнения. Эти условия усугубляются тем, что контракты, написанные на Тьюринг-полных языках программирования типа Solidity, не могут быть формально верифицированы (т.е. правильность кода контракта в отношении спецификации не может быть математически доказана и гарантирована). К слову, некоторые блокчейн-проекты дают возможность разрабатывать контракты на не полных по Тьюрингу языках, но даже при таком подходе очень сложно верифицировать инварианты самого блокчейн окружения, в котором исполняется контракт. Тем не менее, некоторые блокчейны, заявляют о возможности нативной формальной верификации.
Один из самых громких инцидентов, связанных с взломом смарт-контрактов произошел в 2016 году. Была проэксплуатирована ошибка в контракте, описывающем работу первого автоматического инвестиционного фонда The DAO в сети Ethereum. Злоумышленники использовали уязвимость в функции, предназначенной для создания дочерних версий проекта, и смогли многократно получить эфир (криптовалюту Ethereum) при исполнении одной транзакции, в итоге получив криптовалюты в эквиваленте более 50 млн долларов. Поскольку смарт-контракты DAO размещались непосредственно в блокчейне Ethereum, инициативной группе, представляющей интересы платформы, пришлось пойти на спорное решение – запустить новую версию всего реестра на основе определенного момента предыдущей версии (так называемый форк). Данная версия позволила откатиться к статусу сети до взлома смарт-контракта The DAO, вернуть инвесторам деньги и исправить уязвимость. При этом были нарушены декларируемые принципы публичного блокчейна – неизменяемость, отсутствие цензуры и децентрализованное управление.
Через год случился другой громкий инцидент, связанный уже с уязвимостью приложения на Ethereum - из-за уязвимости в смарт-контракте мультиподписи кошелька Parity хакер вывел эфир в эквиваленте 30 млн долларов.
Череда этих и более мелких взломов смарт-контрактов, продолжающихся по сей день, делает эту технологию самой незащищенной частью большинства блокчейн-сетей. Ошибки в программировании, логике контракта, специфичное блокчейн окружение, в котором исполняется контракт – все это может стать причиной его уязвимости. Учитывая прозрачную и неизменяемую среду публичных блокчейнов, лучшей защитой остается качественная разработка и тестирование кода контракта до его запуска. На рынке уже существуют специализированные сервисы по аудиту кода умных контрактов. Подобные дополнительные меры защиты могут быть актуальны не только для контрактов, исполняемых в публичных блокчейнах, но и в приватных сетях (подробнее от этом в следующей главе).
Другие вызовы
Архитектура, криптографические функции и алгоритмы консенсуса децентрализованной блокчейн-сети также могут быть потенциально проэксплуатированы, тем самым подвергая угрозе базовый принцип блокчейна – неизменность данных. Ниже перечислены основные виды атак на инфраструктуру публичных блокчейн-сетей. Многие из них существуют пока в теории и обсуждаются как концептуальные.
Атака 51%
Концепция, при которой контроль над более 50% ресурсами блокчейн-сети, позволяет создать свой форк, который заменит текущий реестр блокчейна (блоки других участников тогда перестанут подтверждаться) и станет актуальным. При этом можно будет откатить предыдущие транзакции или смарт-контракты или провести «двойную трату» – провести в блокчейне несколько транзакций с использованием одних и тех же цифровых активов. Отдельным подвидом является атака дальнего действия (англ. Long-range attack), смысл которой в том, чтобы начать собирать ложный форк задолго до актуального блока. В некоторых видах консенсуса это будет стоить меньше ресурсов. В зависимости от алгоритма консенсуса, реализация атаки будет отличаться. На текущий момент выделяется две основные группы алгоритмов: на основе доказательства работы (англ. Proof-of-Work) и на основе подтверждения доли (англ. Proof-of-Stake). В случае первого алгоритма (напр., Bitcoin и Ethereum) атакующему требуется завладеть 51% вычислительных ресурсов сети. В случае с Proof-of-Stake (напр., Tezos и Waves), для реализации атаки 51% атакующему требуется завладеть 51% основного актива сети. Стоит отметить, что для развитых и действительно децентрализованных сетей, таких как Bitcoin и Ethereum, подобная атака остается очень дорогостоящей – для ее успешной реализации требуется огромная вычислительная мощность, сравнимая с сотнями суперкомпьютеров. Однако в менее масштабных сетях такие атаки вполне реальны. В частности, летом 2020 года были проведены две атаки 51% на блокчейн Ethereum Classic – форк оригинального Ethereum, произошедший после взлома the DAO в 2016 году.
Блокчейн-сеть | Объем рынка валюты сети (доллары США) | Криптографический алгоритм | Хешрейт | Стоимость 1 часа проведения атаки 51% (доллары США) |
Bitcoin | 200 млрд | SHA-256 | 127,624 Петахеш/сек | 460,783 |
Ethereum | 41 млрд | Ethash | 241 Терахеш/сек | 378,047 |
Стоимость атаки 51% в час на популярные блокчейн-сети Bitcoin и Ethereum, сентябрь 2020 г. Источник: https://www.crypto51.app/
Атака Сивиллы (англ. Sybil Attack)
Вид атаки в одноранговых сетях, при которой злоумышленник наполняет сеть подконтрольными ему узлами, к которым подключаются узлы других участников. Атакующий окружает узел жертвы так, чтобы иметь контроль над всеми исходящими и входящими транзакциями. В крупных децентрализованных сетях такую атаку реализовать крайне сложно, так как узел участника для подтверждения транзакции выбирает другой узел сети практически случайно. Хотя процесс соединения практически рандомизирован, можно взломать журнал доверенных адресов жертвы – он будет содержать адреса узлов злоумышленника. Атака Сивиллы позволяет отключать других пользователей от сети, наблюдать за их транзакциями или реализовывать «двойную трату».
Взлом подписей и хеш-функций
В блокчейн-сетях используются различные криптографические механизмы, многие из них (например, алгоритмы SHA-256 и ECDSA) считаются крайне стойкими ко взлому текущим поколением вычислительных мощностей. Но появление квантовых компьютеров позволит преодолевать нынешнюю стойкость, и в результате взламывать механизмы, лежащие в основе блокчейна, в первую очередь, ЭП. К слову, уже начинает разрабатываться постквантовая криптография. Например, команда Quantum Resistant Ledger создает блокчейн-систему, криптостойкую к квантовым атакам.
Конечно, это не все виды потенциальных атак на инфраструктуру блокчейн-сетей. Можно отдельно говорить об атаке Р+Epsilon, DDoS атаках и замедлении времени, эксплуатации уязвимостей в ПО узлов сети и других угрозах. Однако большинство из них пока не было реализовано.
Суммируя виды угроз для публичных блокчейн-сетей можно говорить о следующих уязвимых составляющих блокчейн-стека и решений на его базе:
Интерфейсные компоненты, пользовательские приложения (например, кошельки) и централизованные решения (например, биржи).
Взлом этих систем в большинстве случаев приводит к захвату приватного ключа;
Смарт-контракты;
Алгоритмы консенсуса;
Узлы сети;
Ключи и криптографические функции.
Многие из описанных выше угроз также могут быть актуальны и для приватных блокчейнов, но корпоративные сценарии имеют собственные особенности обеспечения информационной безопасности. Об этом пойдет речь в следующей главе.
3.2.2 Приватный блокчейн и гибридные модели
Публичные блокчейн-сети в целом хорошо себя зарекомендовали в качестве инфраструктуры для электронных платежных систем. По сей день продолжаются попытки адаптировать публичный блокчейн под корпоративные нужды, но для большинства государственных и бизнес-заказчиков публичный блокчейн с его независимостью и открытостью данных по-прежнему является неподходящей концепцией. Именно это привело к появлению приватных блокчейн-сетей с контролем доступа и множества корпоративных блокчейн-проектов на их основе. Рассмотрим основные аспекты безопасности приватных блокчейн-сетей.
Как упоминалось в начале статьи, в приватных блокчейн-сетях контроль доступа обычно распространяется на подключение к сети и чтение данных. Приватный блокчейн как правило распределен (но в силу очевидных причин никогда не децентрализован), а узлы сети расположены в нескольких организациях или офисах одной компании. Рассмотрим такую схему на примере блокчейн-платформы Федеральной налоговой службы Российской Федерации, запущенной в 2020 году. Узлы сети установлены в самой службе, а также во всех банках, подключенных к платформе. Задача решения на первом этапе – автоматизировать процесс обработки документов по заявкам малого и среднего бизнеса на получение льготного кредита в рамках поддержки МСП во время пандемии коронавируса.
Блокчейн в этой системе обеспечивает защиту данных от любых несанкционированных изменений и исключает возможность дублирования заявлений от одной и той же организации. ФНС является оператором сети и выдает разрешения на подключение новых кредитных организаций. Разрешение на чтение данных могут выдаваться участникам, которые непосредственно не участвуют в процессе обработки заявок и кредитования – например, органам власти, осуществляющим наблюдение за процессом.
Очевидно, что приватный блокчейн обеспечивают лучший контроль над инфраструктурой со стороны организации или группы компаний. Это относится как к общим ИТ-аспектам (например, возможность быстро обновить функциональность), так и к аспектам ИБ.
Модель угроз для решений, работающих на приватном блокчейне, уже не включает в себя ряд атак, актуальных для публичного блокчейна. Так, несмотря на сравнительно малый размер распределенной блокчейн-сети, атака 51% или атака Сивиллы становятся трудными для выполнения – все узлы находятся под контролем в доверенных зонах. Гипотетически злоумышленник может получить доступ и к подконтрольному узлу, но в таком случае стоимость атаки многократно возрастает из-за необходимости преодоления корпоративного периметра различных организаций и используемых ими средств ИБ.
Контроль доступа является базовой функцией приватной блокчейн-сети, без разрешения оператора сети в ней не появится новый участник. Это обеспечивает доступность информации в классическом понимании ИБ – доступ к информации будут иметь только авторизованные участники.
Другой особенностью приватных сетей является возможность использования алгоритмов консенсуса, адаптированных для доверенной сети. Оптимизируя консенсус с помощью облегченных протоколов взаимодействия между аутентифицированными участниками сети, можно добиться большей пропускной способности и масштабируемости. Пропускная способность блокчейн-сетей и распределенных баз данных измеряется транзакциями в секунду (англ. Transaction per Second). Для сравнения, в публичных сетях на основе алгоритма консенсуса доказательства работы в секунду обрабатываются десятки транзакций, тогда как в алгоритмах быстрого консенсуса это сотни и тысячи транзакций. К ним относятся Byzantine/Crash Fault Tolerance, Raft, консенсус на основе подтверждения полномочий (англ. Proof-of-Authority) и другие. Консенсусы, применяемые в приватных сетях, не подходят для сложных экономических моделей, но обеспечивают целостность и доступность информации за счет быстрой и надежной синхронизации в доверенной сети.
Принципиально по-другому в приватных блокчейнах обстоят дела и с конфиденциальностью данных - это свойство реализовывается с контролем прав чтения записей реестра. Более того, некоторые приватные блокчейн-платформы позволяют использовать дополнительные инструменты защиты данных. Можно представить сценарий, в котором несколько участников приватной блокчейн-сети должны совершить транзакции так, чтобы остальные участники этой сети не могли их видеть, даже в зашифрованном виде.