Изначально блокчейн использовался для создания криптовалют, но сегодня сфера его применения расширилась. Блокчейн используется в финансовой отрасли, смарт-контрактах, здравоохранении, игровой индустрии, изобразительном искусстве, музыке, недвижимости, страховании, логистике, государственном управлении и т. д., ведь он позволяет хранить практически любую информацию. Вместе с распространением технологии выросли и риски блокчейна, связанные с безопасностью. Злоумышленники активно ищут уязвимости блокчейна, чтобы получить доступ к данным пользователей. Примерами такой деятельности являются задержка работы цепочки, отмена транзакций, выполненных в блокчейне, кража закрытых ключей пользователей и многое другое.
Чтобы понять, как технология блокчейна может лучше всего помочь в защите идентификационных данных, необходимо разобраться в принципах ее работы.
Что такое Блокчейн?
Блокчейн, или дословно «цепочка блоков», — это цифровая база данных, содержащая информацию, которую можно совместно использовать в большой децентрализованной общедоступной сети.
Блокчейн состоит из блоков с информацией, которые следуют друг за другом в строго определенном порядке. Каждый блок содержит записи о предыдущем блоке (контрольные суммы), а также данные, которые в него записаны. Примерами таких данных могут быть:
- информация о транзакциях;
- сведения о том, сколько криптовалюты принадлежит определенному пользователю;
- данные о собственнике активов и многое другое.
Таким образом, блокчейн — это технология хранения информации. Ее главная особенность в том, что копий цепочки блоков может быть много, и хранятся они одновременно на разных компьютерах (так называемых нодах).
Информацию, хранящуюся в блокчейне, невозможно изменить. Злоумышленники могут взломать 1 ноду и внести изменения в блокчейн. Другие ноды не примут эти изменения, если они не будут одобрены 51% нод. Невозможно взломать сразу сотни тысяч нод. Однако злоумышленники используют другие проблемы безопасности в технологии блокчейн.
Принцип технологии блокчейн
Принцип работы блокчейна проще всего понять на примере криптовалютных транзакций. Именно они часто становятся целью хакеров, которые хотят завладеть чужими средствами.
Блокчейн расположен на компьютерах по всему миру. Доступ к нему могут получить все, у кого есть подключение к интернету. Для создания и хранения блоков используются компьютеры майнеров (для блокчейнов типа PoW) и валидаторов (для блокчейнов PoS). Эти компьютеры отвечают за обнаружение запросов транзакций от пользователей, их объединение, проверку и добавление в блокчейн в виде новых блоков.
Право собственности в блокчейне определяется 2 ключами: открытым (публичным) и закрытым (приватным). Публичный ключ хранится в блокчейне в открытом виде. Второй, приватный, ключ хранится у владельца. Эти ключи используются для шифрования и подписи. Транзакции подписываются закрытыми ключами, соответствующими открытым ключам.
Чтобы обеспечить необратимость транзакций, у всех майнеров и валидаторов в сети должна быть одинаковая копия блокчейна. При добавлении нового блока майнер или валидатор предоставляет криптографическое доказательство транзакции. Чтобы получить доказательство, майнер или валидатор проводит блок через несколько раундов хэш-функции.
7 типов атак на блокчейн
Как указано выше, блокчейн использует распределенный неизменяемый реестр. Взломать его довольно сложно, но все же есть уязвимости блокчейна, которые могут поставить под угрозу всю работу технологии. Используя их, злоумышленники могут организовать такие 7 распространенных атак:
Атаки 51%
Представьте, что необходимый 51% сети попал под контроль злоумышленников. Они могут использовать свое большинство для отмены транзакций или проведения мошеннических операций. Возможным становится даже изменение некоторых блоков, хотя переписать всю цепочку хакерам вряд ли удастся.
В технологии блокчейн для одобрения блоков необходима поддержка 51% сети (консенсус). Иногда возникает ситуация, когда обрабатывается 2 блока с конфликтующими транзакциями. В цепочке останется только блок, который получил одобрение консенсуса. Второй будет признан устаревшим.
Молодые блокчейны особенно подвержены атакам 51%. Когда в сети еще мало участников, получить контроль над большей частьюсети значительно проще, чем в развитой сети с тысячами участников.
В 2019 году атаке 51% подвергся гигант криптовалютного рынка Ethereum Classic. За 3 дня цена криптовалюты упала на 16,4%, а мошенникам атака принесла более 1 млн USD.
Атаки Сивиллы
Название выбрано в честь главной героини книги-бестселлера Флоры Риты Шрайбер «Сивилла» о лечении диссоциативного расстройства личности. Это способ атаки одноранговой сети. Злоумышленники создают поддельные узлы, к которым подключается жертва. Благодаря этому хакер может получить необходимый консенсус большинства (51%) и нарушить транзакции в блокчейне. По своей сути атака Сивиллы — это атака 51%.
Простой пример атаки Сивиллы — создание множества учетных записей в сети, которые принадлежат одному лицу. Для других участников они будут выглядеть как независимые, однако все их контролирует мошенник (или группа). Подконтрольные мошеннику ноды способны склонять другие сетевые узлы к одобрению искаженных данных.
Атаки с двойной тратой
Двойная трата проходит, когда мошенник тратит одни и те же коины два раза: пользователь 1 одновременно отправляет одни и те же 10 монет пользователю 2 и пользователю 3. При правильной работе блокчейна только одна транзакция получит одобрение большинства. В большинстве случаев так и бывает. В блокчейн встроены механизмы для предотвращения подобных атак. Например, если монета отправлена пользователю 2 в первом блоке, транзакция пользователю 3 будет проигнорирована в последующих блоках.
Типы атак с двойной тратой:
- Атака Race подразумевает одновременную отправку 2 противоположных транзакций с одинаковыми средствами, но подтверждается только одна из них. Цель в том, чтобы отправить украденные монеты на нужный адрес, а другой платеж аннулировать. Атака возможна только, если данный блокчейн поддерживает транзакции с нулевым подтверждением.
- Атака Финни возможна только при поддержке проведения транзакций с нулевым подтверждением. Одна из транзакций записывается в блок, который хранится у майнера-злоумышленника. Впоследствии те же монеты тратятся в другой транзакции. Ранее записанный блок транслируется в сеть, и вторая транзакция признается недействительной. Однако продажа товара уже состоялась, а значит, мошенники получили свою выгоду.
- Атака Brute force требует мощного оборудования. Она работает даже в случаях, когда для подтверждения транзакций используется более 1 подтверждения. Мошенник самостоятельно проверяет блоки, в которых записаны транзакции, включая его собственную. В итоге продавец получает нужное количество подтверждений и передает товар. После этого мошенник может разветвить сеть и признать транзакцию недействительной.
В случае с наличными деньгами вы расплачиваетесь банкнотой и отдаете ее другому человеку. Невозможно дважды потратить одну и ту же купюру. С цифровыми валютами все иначе. Криптовалюта — это запись в цепочке блоков, поэтому теоретически ее можно воспроизвести.
Маршрутизирующие атаки
Маршрутизирующие атаки напрямую не связаны с проблемами безопасности в технологии блокчейн. Они используют уязвимости в протоколах подключения интернет-провайдеров. Блокчейн использует сеть для работы, поэтому зависит от провайдеров. Они подключаются друг к другу с помощью протокола пограничного шлюза (BGP).
Злоумышленники, получившие доступ к этому протоколу, могут опубликовать ложные маршруты. Это приведет к запрету части транзакций и даже разделению сети блокчейна на две. Обычно это неравномерные части с разным количеством участников.
Хакеры выступают связующим звеном между 2 половинами сети, и все данные проходят через них. После остановки атаки блоки в меньшей половине сети будут сброшены. Это приведет к затоплению транзакций и возможности получать любые вознаграждения за майнинг.
Атаки маршрутизации используются также для задержки доставки новых блоков. Пока длится атака, блок остается незаметным в сети, и это позволяет провести атаку с двойной тратой.
Атаки маршрутизации могут иметь серьезные последствия. Использование безопасных протоколов маршрутизации поможет предотвратить атаки этого типа на блокчейн.
Атаки на закрытый ключ
Как технология асимметричного шифрования, которая также используется в блокчейне, может помочь в защите конфиденциальных данных? Для этого используется криптография с публичными (открытым) и приватными (закрытым) ключами. Эта технология обеспечивает конфиденциальную связь в открытых каналах. Зная открытый ключ пользователя, другой участник может зашифровать сообщение для него. Пользователь сможет прочитать его, расшифровав своим закрытым ключом. Другие закрытые ключи не позволят открыть сообщение.
Открытый и закрытый ключи соединены между собой. Если у вас есть приватный ключ, то можно восстановить публичный ключ. Однако в обратном направлении эта схема не работает.
Злоумышленники иногда получают доступ к закрытому ключу по неосторожности его владельца. Примером такой ситуации может быть хранение закрытого ключа на компьютере, который подвергся хакерской атаке. Фишинг также используется для получения закрытых ключей. В результате ключ попадает к мошенникам, а с ним они легко могут завладеть всей криптовалютой пользователя.
Эгоистичные майнинг-атаки
Эгоистичный майнинг преследует цель получить большее вознаграждение. Понять принцип такого майнинга проще всего на примере.
Хешрейт равномерно распределен по 25% между 4 майнерами: первым, вторым, третьим и четвертым. Первые трое играют по правилам: как только блок найден, они добавляют его в цепочку. Но четвертый майнер хочет получить больше выгоды. Когда он находит блок (или два), то удерживает его.
Первые трое майнеров нашли 10 000 блоков и хотят предложить 10 001-й. Четвертый майнер уже нашел 10 002-й, но держит его втайне. При определенной удаче он может всегда опережать публичную цепочку на 1–2 блока. Таким образом, публичная цепочка четвертого майнера будет длиннее, а более длинная цепочка всегда признается корректной. Чем дольше четвертый майнер будет вести такую игру, тем большее вознаграждение он получит. Когда его цепочка станет основной, он получит награду за все блоки, начиная с 10 001-го.
Объединяясь в пулы, эгоистичные майнеры могут получать серьезные мощности и предпринимать попытки атак 51%.
Уязвимые смарт-контакты
Смарт-контракты используются в блокчейне для заключения сделок. Например, одалживая криптовалюту под проценты, вы можете заключить смарт-контракт и внести соответствующую запись в блокчейн. Такие записи хранятся в закодированном виде, однако недостатки в коде могут привести к тому, что хакеры получат доступ к контракту.
Основные уязвимости смарт-контрактов:
- reentrancy;
- управление доступом;
- арифметические особенности;
- отсутствие проверки возвращаемых значений низкоуровневых вызовов;
- отказ в обслуживании;
- проблема псевдослучайных чисел;
- опережение;
- зависимость от времени;
- манипулирование длиной адреса.
Самые известные и крупные хищения: 30 миллионов USD из Parity и 53 миллиона USD из DAO.
Предотвращение проблем с безопасностью блокчейна
Следующие действия помогут повысить безопасность блокчейна:
- Использование Proof of Stake вместо Proof of Work станет надежной защитой от атак 51%. Принятие решения перейдет к пользователям, которые владеют большей частью монет.
- Существует несколько алгоритмов для предотвращения атак Сивиллы. Proof of Work используется в большинстве криптовалют.
- Контроль над пулами майнеров поможет бороться с эгоистичным майнингом. Как только пул получает более 40% мощности, он должен перевести часть майнеров в другой пул. Это способствует децентрализации сети.
- Безопасные протоколы помогут защититься от атак маршрутизации.
- Перед внедрением смарт-контракты должны проходить аудит.
Также не следует забывать о надежном хранении закрытых ключей, использовании надежной почты и двухфакторной аутентификации.
Заключение
Чтобы сделать блокчейн безопасным, требуется тщательный аудит. С ростом финансовой ценности увеличиваются и риски блокчейна. Стоимость аудита может показаться высокой, но это небольшие затраты в сравнении с потерями, которые могут возникнуть из-за хакерских атак. Регулярные углубленные аудиты от H-X Technologies помогут поддерживать безопасность блокчейна на высоком уровне.