BIS Journal №3(30)/2018

27 июля, 2018

Безопасность блокчейна

ICO – НОВАЯ ЦЕЛЬ ХАКЕРОВ

В последнее время всё чаще встречается термин «цифровая трансформация», и всё чаще обсуждаются вопросы применения передовых технологий для цифровизации различных сфер жизни общества. Блокчейн является одним из самых ярких примеров всеобщей увлеченности новым технологическим трендом за последние несколько лет. Но давайте взглянем на технологию глазами специалистов по информационной безопасности и попробуем разобраться какие риски скрывает в себе эта технология?

Под блокчейном подразумевают распределенную peer-to-peer сеть для обмена транзакциями. О конечном состоянии сети в каждый момент времени её участники приходят с помощью специальных протоколов к консенсусу. Копия данных сети в виде неразрывной цепочки блоков с информацией о проведенных к настоящему моменту транзакциях хранится у каждого участника. Таким образом достигается высокая степень отказоустойчивости системы и неизменности хранящихся в ней данных.

О блокчейне широко начали говорить на волне популярности криптовалют, в основе которых лежит эта технология. Возможно, если бы не ажиотаж вокруг биткоина – самой популярной криптовалюты, IT-сообщество не обратило бы столь пристального внимания на саму технологию блокчейн.

С появлением в 2014 году платформы Ethereum технология блокчейн стала ассоциироваться не только с криптовалютами. С помощью смарт-контрактов, появившихся в платформе Ethereum, стало возможным реализовывать на блокчейне бизнес-логику, необходимую для проведения ICO (Initial coin offering) – проектов по привлечению инвестиций.

Рост экосистемы Ethereum за 2016 и 2017 годы был действительно впечатляющим. Как видно из диаграммы (Рис. 1), в ICO-проекты вкладываются большие суммы денег.

Рисунок 1. Вложения в Ethereum в 2015-2017 гг.

Фокус хакеров сместился с банковских систем на ICO-проекты, и за последние несколько лет было совершенно множество атак на ICO. Незрелость технологии и возможность относительно легко получить доступ к средствам, собираемым в ходе ICO проектов, привлекли внимание большого числа злоумышленников.

Ключевыми элементами любого ICO являются:

- команда;
- ИТ-инфраструктура: сайт и децентрализованное приложение (decentralized application или DApp);
- коммуникации (социальные сети, white paper, рекламные каналы).

Каждый из приведенных элементов – потенциальный вектор для атаки хакеров. Многие атаки были сделаны без использования уязвимостей самой технологии блокчейн, по «старым» методам:

- фишинг;
- дефейс сайта;
- хищение паролей;
- xss;
- взлом инфраструктуры, связанной с ICO проектом.

УЯЗВИМОСТИ ПЛАТФОРМЫ ETHEREUM

Но наиболее нашумевшие инциденты использовали уязвимости новой технологии.

Первой крупной атакой на блокчейн-проект стал взлом The DAO (decentralized autonomous organization) – проекта по децентрализованному управлению инвестициями. В июне 2016 года хакер, использовав уязвимость в смарт-контракте The DAO, смог вывести из проекта инвестиционные средства в виде криптовалюты Ethereum на сумму более чем 3,6 млн эфиров, что на тот момент было эквивалентно 60 млн долларов.

В 2017 году с интервалом в несколько месяцев произошли два резонансных инцидента с криптовалютным кошельком Parity. В июле 2017 года уязвимость в смарт-контракте кошелька Parity привела к убыткам в 30 млн долларов, а в ноябре 2017 года в результате эксплуатации уже другой уязвимости были заблокированы средства пользователей в размере 300 млн долларов.

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

Исходя из архитектуры блокчейна уязвимости могут возникнуть на одном из трёх уровней:

- Уровень сети блокчейна. В силу открытости блокчейна возникают угрозы конфиденциальности данных. Также большая опасность может исходить от майнеров – участников сети блокчейн, которые при обработке транзакций могут менять их порядок.

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

- Уровень языка Solidity, который используется для программирования смарт-контрактов. Уязвимости в коде Solidity представляют самый широкий класс уязвимостей. Самым распространённым примером уязвимости в смарт-контрактах является уязвимость re-entrancy (именно ее использовали при взломе The DAO).

ИНСТРУМЕНТЫ АУДИТОРА СМАРТ-КОНТРАКТОВ

Для поиска уязвимостей в смарт-контрактах Ethereum применяются различные инструменты.

«Mythril»

Одним из широко используемых является инструмент «Mythril» от компании ConsenSys. Это анализатор безопасности, который работает с так называемым байт-кодом, который программа предварительно компилирует из исходного кода. На вход принимается байт-код, который затем анализируется с использованием связки статического анализа, символического анализа и проверки control flow.

В «Mythril» реализована собственная EVM на Python. Внутреннее устройство этой виртуальной машины состоит из глобального состояния, содержащего в себе еще три - Machine State, Environment и World State. Каждое из состояний обозначается буквами, используя которые можно создавать формулы для проверки с помощью инструментов автоматического доказательства теорем. (Рис. 2).

Рисунок 2. Модель состояний «Mythril»

«Mythril» на основе байт-кода строит control-граф выполнения программы.  Все условия в смарт-контракте представляются в виде байт-кода и в виде ограничений путей. Стоит отметить, что такое представление позволяет использовать Z3 solver. Он позволяет визуально представить все возможные состояния контракта для дальнейшего решения прикладных задач.

«Oyente»

Второй инструмент - «Oyente» - начал активно развиваться после взлома The DAO. Это анализатор кода, который также основан на символьном выполнении. Есть его онлайн-версия, которая работает в связке с Remix - самой распространённой IDE для написания смарт-контрактов. 

«Oyente» состоит из нескольких модулей и содержит в том числе builder для построения потока выполнения программы и анализатор путей выполнения программы. Также анализатор дает визуальные отображения и валидирует найденные уязвимости, доказывая, что они действительно «true», а не «false positive». «Oyente», так же как и «Mythril», использует Z3 solver. (Рис. 3).

Рисунок 3. Архитектура «Oyente»

Анализатор автоматически проверяет, нарушаются ли утверждения (assert), а также поддерживает работу с циклами. Кроме того, инструмент позволяет настраивать состояние блокчейн-окружения для анализа внешних контрактов. «Oyente» генерирует тесты для проверки условий пути, которые можно использовать в других фреймворках, например, Truffle. Анализатор для оптимизации и ускорения работы может упрощать символьные переменные. Из плюсов стоит отметить возможность работы с большинством контрактов, однако требует большого числа вычислительных ресурсов

«Manticore»

Изначально создавался как анализатор для Linux, затем к нему добавился анализатор EVM-машины. Он выявляет все функции в смарт-контракте, генерирует наборы транзакций, соответствующих различным путям выполнения смарт-контракта и проверяет наличие ошибок в соответствующих путях.

РЕКОМЕНДАЦИИ

В заключение – несколько рекомендаций по безопасной разработке смарт-контрактов:

При разработке смарт-контрактов необходимо пользоваться уже проверенными библиотеками, кодом и накопленным сообществом Ethereum опытом. Многие типовые задачи уже безопасно реализованы профессиональными разработчиками и компаниями лидерами в области безопасности смарт-контрактов (Zeppelen, ConsenSys).
Обязательно необходимо проводить аудиты блокчейн-проектов силами сторонних аудиторов и реализовывать программу bug-bounty, тем самым мотивировать white-хакеров искать уязвимости в вашем проекте.
Также для безопасной разработки необходимо глубоко погружаться в язык Solidity и платформу Ethereum.

Стать автором BIS Journal

Смотрите также

Подписаться на новости BIS Journal / Медиа группы Авангард

Подписаться
Введите ваш E-mail

Отправляя данную форму вы соглашаетесь с политикой конфиденциальности персональных данных

28.05.2024
Хакеры из Head Mare утверждают, что «положили» системы СДЭК
28.05.2024
СПЧ и МВД — о масштабах потерь от действий скамеров
28.05.2024
Узбекистан откалывается от «Мира»?
28.05.2024
«Росатом»: Регуляторика ИИ с чёткой логикой сегодня отсутствует
28.05.2024
В ходе дискуссии может появиться многогранная программа ИИ
28.05.2024
Существует неопределённость в толковании и применении правовых норм использования ИИ
28.05.2024
«РУССОФТ»: В ИИ-гонке выигрывает не тот, кто придумал, а тот, кто внедрил
28.05.2024
Хакеры грозят опубликовать ПДн клиентов аукционного дома Christie’s
27.05.2024
НКЦКИ запустит сервис бесплатной «скорой помощи» пострадавшим от киберинцидентов
27.05.2024
Банкиры спасли от скамеров два триллиона рублей своих клиентов

Стать автором BIS Journal

Поля, обозначенные звездочкой, обязательные для заполнения!

Отправляя данную форму вы соглашаетесь с политикой конфиденциальности персональных данных