source
Анализ уязвимостей, зафиксированных NIST (National Institute of Standards and Technology) в 2020 г., показывает устойчивый тренд роста в сравнении с предыдущими годами. В среднем, в прошлом году каждый день фиксировалось 50 новых уязвимостей, 57% которых относились к критическому либо к высокому уровню серьезности последствий. Развитие технологии блокчейн, речь о безопасности которой пойдет в данной статье, не является исключением с точки зрения подверженности киберугрозам. Подход, который изначально создавался, как альтернатива недостаткам существующей банковской системы и должен быть открыть новые возможности для бизнеса, не избежал рисков, присущих финансовым онлайн операциям. С 2012 по 2020 гг. блокчейн-индустрия лишилась более $13,6 млрд в результате 330 хакерских атак. В статье мы рассмотрим, в чем заключаются причины уязвимости решений на базе блокчейн.
По мере развития финансовых инструментов и сервисов, основанных на технологии блокчейн, растет количество атак, направленных на несанкционированное внесение данных в реестр, блокировку работы систем или на получение злоумышленниками контроля над ресурсами. В качестве объектов атак могут быть рассмотрены:
- криптографические алгоритмы;
- ключи (кошельки);
- алгоритмы консенсуса;
- смарт-контракты;
- ноды (узлы) сети;
- компоненты пользовательского интерфейса и приложений.
Подробный анализ уязвимостей технологии блокчейн представлен в таблице ниже, где каждому из компонентов сопоставлены возможные уязвимости и приведены примеры осуществленных атак.
Уязвимые компоненты | Возможные уязвимости | Примеры атак |
---|---|---|
Криптографические алгоритмы | Bitcoin и Etherium используют криптографический алгоритм Elliptic Curve Digital Signature Algorithm (ECDSA). В случае некорректной реализации генератора случайных чисел, используемого для подписи, при наблюдении за публично доступными транзакциями может быть восстановлен закрытый ключ, используемый для подписания транзакции. Некорректной реализацией может быть, например, использование константы в качестве случайного числа или повторное использование одного и того же случайного числа | В 2018 г. злоумышленники похитили более $4 млн с кошельков пользователей IOTA. Все пострадавшие пользовались услугами вредоносного сайта для генерации секретных фраз |
Ключи (кошельки) | В случае потери ключа пользователю невозможно предоставить доступ к своему аккаунту. При компрометации ключа невозможно перезаписать цепочку блоков. Возможна атака по словарю на закрытый ключ (полный перебор паролей) | Распространена практика генерации закрытого ключа из какого-либо текста путем получения значения хэш-функции от данного текста. В этом случае, атака может быть совершена путем анализа цепочки транзакции блокчейна и поиска таких адресов, закрытые ключи которых совпадает с полученными по заранее подготовленному списку фраз |
Алгоритмы консенсуса | Proof of work (PoW) подвержен атаке 51%. Если в руках злоумышленника находится больше половины всех вычислительных мощностей в сети, то он получает контроль над ее ресурсами, включая переписывание истории, проведение транзакций с двойным расходованием, блокировку чужих транзакций, подтверждение своих блоков и т.п. Консенсус Proof of Stake (PoS) подвержен атаке Long Range, в ходе которой злоумышленник с незначительным минорным количеством средств может создать большое альтернативное количество блоков, которые по длине превзойдут основной блокчейн. Основной блокчейн может быть после этого подменен. В случае использования алгоритма консенсуса Byzantine Fault Tolerance (BFT) атака возможна, если скомпрометирована одна треть вычислительных ресурсов сети | Реорганизация блокчейна и двойное расходование токенов Ethereum Classic на сумму $460 тыс. (2019 г.) |
Смарт-контракты | Смарт-контракт по сути является компьютерной программой, которая может содержать ошибки и уязвимости. Особенностью является сложность внесения исправлений после распространения смарт-контракта в сети. Источниками уязвимостей являются: несоответствие стандарту ERC20 (токен Ethereum), некорректная генерация случайных чисел, неверное определение области видимости, некорректная верификация отправителя транзакции, целочисленное переполнение (integer overflow), ошибки в бизнес-логике, использования уязвимых внешних библиотек | Инцидент с проектом DAO в 2016 г., в результате которого была похищена криптовалюта на сумму $50 млн |
Ноды (узлы) сети | Ошибки, допущенные при настройке инфраструктуры, развертывании блокчейн платформы, удаленном вызове процедур, настройке политики безопасности могут привести к эксплуатации известных злоумышленнику уязвимостей с последующим несанкционированным добавлением транзакций в блокчейн | Возможность проведения атаки DNS rebinding |
Компоненты пользовательского интерфейса и приложений | Блокчейн реализуется в веб среде и подвержен всем уязвимостям, присущим десктопным, мобильным и веб приложениям. При проведении Initial Coin Offering (ICO) возможны дополнительные уязвимости, позволяющие провести атаку на организаторов ICO и уязвимости, позволяющие провести атаку на инвесторов | Злоумышленниками практикуется выполнение действий от имени пользователя, кража учетных данных, подмена информации о ценах, подбор PIN-кода приложения, проведение фишинговых атак. При выполнении операций на трейдинговых платформах возможно выполнение операций от имени пользователя, кража учетных данных для авторизации в приложении, ввод пользователя в заблуждение путем подмены отображаемых цен |
Блокчейн, как и любая веб технология подвержен влиянию человеческого фактора, а также уязвимостям, присущим мобильным и веб приложениям. Проблемой является и нехватка опытных разработчиков, имеющих опыт запуска проектов блокчейн. С одной стороны, блокчейн совершенствуется, и новые проекты, подобные FreeTON или Ethereum 2.0, заявляют о новых качествах, таких как снижение энергопотребления, повышение скорости обработки транзакций, повышение эффективности протоколов консенсуса и т.д.
Решит ли это все вопросы с безопасностью? Полностью точно нет. Но от части может. Во-первых, на сегодняшний день популярны методы формального анализа и аудита безопасности смарт-контрактов, которые дают очень высокий уровень защиты от проблем, подобных взлому Ethereum DAO в 2016 году. Во-вторых, для более сложных случаев, где тяжело формализовать все цепочки взаимодействий смарт-контрактов, часто применяются баг баунти программы с приличными призами до сотен тысяч долларов для тех, кто сможет найти уязвимость в коде или алгоритмах работы смарт-контрактов на определенном блокчейне. Безусловно, блокчейны нового поколения, такие как FreeTON благодаря невысокой стоимости и высокой скорости работы дают бОльшие возможности для тестирования на стрессоустойчивость смарт-контрактов, нод и консенсуса в целом, чем пользуются в настоящий момент разработчики смарт-контрактов и валидаторы нод.
Что касается уязвимостей в компонентах пользовательских интерфейсов, увы, это проблема остается за пределами возможностей современных блокчейнов. Однако, со временем, по мере роста количества и качества средств разработки ПО (SDK) и best practices, а также, с ростом возможностей современных UI/UX библиотек взаимодействовать напрямую с блокчейном (без серверной части приложения, см. рисунок), количество атак на внешние системы будет снижаться. И конечно, стоит помнить о таких базовых организационных приемах обеспечения безопасности, как обучение персонала, аудит и анализ приложений, пентестинг, мониторинг и анализ защищенности инфраструктуры, применение SIEM-систем для обнаружения и предотвращения атак.
Источник статьи: https://habr.com/ru/post/557926/