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

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

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

Атака затмения — относительно простая атака, которую злоумышленник может осуществить для вмешательства в работу узлов сети. Как можно догадаться из названия, целью атаки является исказить информацию участника о состоянии одноранговой сети, чтобы вызвать общие нарушения или подготовить сеть для более сложных атак.
При поверхностном рассмотрении атака затмения может показаться похожей на атаку Сивиллы. Хотя у них и есть определенное сходство – злоумышленник будет распространять в сети поддельные пиры – конечные цели разные. Цель атаки затмения – единичный узел (по причинам, которые будут объяснены в следующем разделе), в то время как атака Сивиллы общесистемная, предназначенная для использования недостоверных сведений в системе репутации протокола.
Такая концепция подробно рассматривается в исследовании 2015 года под названием «Eclipse Attacks on Bitcoin’s Peer-to-Peer Network», в котором исследователи из Бостонского и Еврейского университетов сообщили о результатах экспериментов по эмулированию атак затмения, а также о возможных способах борьбы с такими атаками.

Принцип работы атаки информационного затмения

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

Ограничивающим фактором для многих узлов является пропускная способность. Несмотря на то, что существует колоссальное количество устройств, работающих с программным обеспечением, в среднем устройство не может подключиться ко многим из них в связи с ограничениями, установленными для Биткоина программно (максимум 125 соединений).

При атаке затмения злоумышленник стремится к тому, чтобы все соединения жертвы выполнялись по контролируемым злоумышленником узлам. Он окружает цель подконтрольными IP-адресами, к которым жертва с большой вероятностью подключится при перезапуске программного обеспечения. Перезапуск может быть либо принудительным (например, с помощью DDoS-атаки на цель), либо в связи с произвольными обстоятельствами, тогда злоумышленник просто ждет.

В сети блокчейн одноранговые узлы используют протокол сплетен для установки начального соединения и обмена информацией. Каждый узел узнает об одноранговых узлах в сети от подключенных узлов. В атаке затмения злоумышленник не дает жертве узнать об остальной части сети, не сплетничая о других узлах. Узел злоумышленника напрямую подключен к узлу-жертве, как показано на рисунке 1. Атака похожа на атаку «человек посередине», выполняемую между клиентом и сервером в централизованной сети. Мы предположим, что атака происходит в экосистеме Bitcoin Proof of Work, чтобы понять и проанализировать атаку eclipse в следующих разделах.

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

Последствия атаки затмения

Если злоумышленник расходует ресурсы для отчуждения узла от сети, вероятнее всего, у него есть причины для этого. После разрушения узла легче запустить другие атаки.

Нулевое подтверждение двойного расходования

Если отдельный узел принимает транзакцию без подтверждений, то подвергается риску двойных трат. Транзакция может быть транслирована, но до тех пор, пока она не включена в блок (и затем не включена в блокчейн), отправитель может с легкостью создать новую транзакцию, которая использует эти же средства где-то еще. Если новая транзакция имеет комиссию больше, майнер, вероятно, включит ее перед настоящей, тем самым аннулируя предыдущую.
Некоторые компании и трейдеры принимают транзакции с нулевым подтверждением. Рассмотрим Боба, который продает дорогой автомобиль. Он не знает, что Алиса затмила его узел, и ничего не подозревает, когда она размещает заказ на покупку роскошного спортивного автомобиля. Она создает транзакцию, которую Боб затем транслирует в сеть. Довольный оплатой, он передает ключи от машины, и Алиса уезжает.

Конечно, транзакция не была транслирована в сети – Боб просто передал ее зараженным узлам Алисы, которые не передадут ее «честным» узлам. Пока эта транзакция ожидает в лимбо, Алиса тратит средства в другой («честной») сети, будь то другая сторона или адрес, которым она владеет. Даже если начальная транзакция с Бобом будет рассмотрена, она отклонится, так как монеты уже были потрачены.

N-подтверждение двойного расходования

N-подтверждение двойного платежа похоже на 0-подтверждение, но требует большей подготовки. Многие сети предпочитают дождаться определенного количества подтверждений, прежде чем считать сделку действительной. Чтобы обойти это условие, атакующий должен «затемнить» как майнеров, так и участника сделки. Как только атакующий реализовал транзакцию с участником сделки, он должен распространить ее («затемненным») майнерам. Транзакция подтверждена и включена в блокчейн, но эта цепь не является главной для большинства узлов сети. так как майнер был отделен.
Из отделенной части сети атакующий передает эту версию блокчейна продавцу, который освобождает товар на том основании, что сделка была подтверждена. После того, как «затемненные» узлы заново присоединятся к основной сети, блоки, которые они ошибочно считали верным, будут брошены узлами из основной сети (в этом наблюдается сходство с атакой 51%).

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

В августе 2016 года из кошельков Bitfinex было украдено около 120 000 биткойнов. Bitfinex сократил биткойн-средства всех своих клиентов на 36%, включая клиентов, кошельки которых не были взломаны. Недавно выпущенные токены BFX были зачислены на счета клиентов пропорционально их убыткам. Поскольку эти токены не имели внутренней стоимости на других биржах, они пообещали выкупить эти распределенные токены в конечном итоге.

Биткойн имеет два разных набора сегментов, в которых хранится информация о партнерах: набор новых сегментов и набор проверенных сегментов. Новые сегменты состоят из адресов вновь доступных одноранговых узлов, тогда как проверенные корзины хранят адреса уже подключенных одноранговых узлов. Когда узел впервые подключается к одноранговому узлу, он добавляет информацию об этом узле вместе с меткой времени в проверенный сегмент. Подключенный одноранговый узел передает известную одноранговую информацию узлу, и узел сохраняет ее в новом сегменте. Когда узел подключается к устройству злоумышленника, он отправляет информацию о вредоносных одноранговых узлах, чтобы узел сохранял эти адреса в новом сегменте.

Когда узел успешно установит новое соединение, он добавит IP-адрес в одну из 256 проверенных корзин. Он случайным образом выбирает один сегмент, но рандомизирует выбор на основе идентификатора сети и полного IP-адреса. То же самое и в случае добавления IP-адресов в новую корзину. Можно использовать различные уязвимости узла Биткойн, чтобы убедиться, что большинство адресов в корзине являются адресами злоумышленника. Некоторые уязвимости узла Биткойн указаны в разделе «Уязвимости и меры противодействия».

Поскольку атака eclipse выполняется на сетевом уровне, она также может нарушить безопасность консенсусного уровня. Любая атака на консенсусном уровне может быть более эффективной, когда одноранговый протокол узла скомпрометирован. Атака 51%, когда злоумышленник не владеет большей частью вычислительной мощности, или атака с двойным расходом даже после нескольких подтверждений блока, могут быть выполнены при выполнении атаки затмения.

Злоумышленник может дважды потратить транзакцию даже после n-подтверждения, просто затмив часть майнеров и узел жертвы. Злоумышленник может потратить деньги и отправить их затмевшему майнеру. Когда майнер включает это в блок, злоумышленник показывает этот блокчейн узлу жертвы. Жертва убеждена, посмотрев на подтвержденную транзакцию. Злоумышленник также пересылает транзакцию, чтобы дважды потратить один и тот же фонд. Когда злоумышленник завершает свою покупку у жертвы, он раскрывает фактический блокчейн как затмевшему майнеру, так и жертве, таким образом делая свой блокчейн устаревшим.

Злоумышленник затмевает майнера, который контролирует 30 процентов мощности майнинга, и жертву. Злоумышленник тратит средства и отправляет транзакцию затменному майнеру. Затменная жертва просматривает только эту версию блокчейна. Затем злоумышленник тратит те же средства и создает транзакцию, которую просматривает остальная часть сети. Поскольку эта сеть контролирует большую часть (70 процентов) мощности майнинга, она создаст более длинный блокчейн, что сделает блокчейн затмевшего майнера устаревшим:

Атака с двойным расходом

Если злоумышленник является майнером, он может запустить атаку 51%, не владея 51% вычислительной мощности сети. Этого можно добиться, не давая честным майнерам контролировать большую часть вычислительной мощности. Злоумышленник может затмить несколько майнеров из остальной сети, что не позволит майнерам строить блоки на основе созданных блоков друг друга. Это помешает честным майнерам владеть большей частью власти для создания блоков. Это увеличит шансы того, что злоумышленник с менее чем 51% майнинговых мощностей запустит атаку 51%. На рисунке внизу показано, что злоумышленник с 40 процентами мощности майнинга затмевает двух майнеров, каждый из которых контролирует только 30 процентов мощности майнинга в сети.

Теперь этот злоумышленник владеет большей частью майнинговых мощностей; у них больше шансов получить более длинную цепочку, чем у других майнеров, которые изолированы друг от друга. Каждый майнер, не знающий об остальной части сети, будет продолжать создавать свою собственную версию блокчейна. Злоумышленник может опубликовать свой блокчейн в сети в любое время, что сделает другие версии блокчейна устаревшими.

Хотя атака затмения может показаться нереальной, на самом деле это не так. Умная атака с помощью ботнетов может легко скомпрометировать узел, который не реализует дополнительный уровень сетевой безопасности. Опубликованная статья «Атаки затмения на одноранговую сеть Биткойна» объясняет вероятность того, что атака затмения произойдет при различных сценариях. Эксперимент, проведенный с ботнетами, дал следующие результаты:

  • Наихудший сценарий был создан путем заполнения пробных слотов корзин адресами честных узлов. Атака была проведена с 4600 IP-адресов в течение 5 часов. Хотя проверенные слоты корзины изначально были в основном заполнены адресами честных узлов, 98,8% из них были заменены адресами злоумышленника после атаки. Атака имела 100-процентный успех.
  • Атака была проведена на действующих биткойн-узлах, у которых только 7 процентов проверенных адресных слотов были заполнены законными адресами. Атака была смоделирована атакой с 400 IP-адресов и всего 1 час, потраченный на атаку. В проверенной таблице после атаки было заполнено около 57% адресов злоумышленников. Эта атака имела успех 84 процента.

Уязвимости и контрмеры

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

Некоторые из уязвимостей в узлах Биткойн, которые могут быть использованы, следующие:

  • Узел выбирает IP-адреса из проверенного сегмента с недавними отметками времени, что увеличивает вероятность того, что злоумышленник будет выбран, даже если злоумышленник владеет небольшой частью адресов проверенного сегмента. Атакующий может увеличить шансы, увеличив время атаки.
  • Каждый раз, когда ведро адреса заполняется, один из адресов удаляется случайным образом. Поскольку удаленный адрес является случайным, если IP-адрес злоумышленника удаляется из корзины, его можно в конечном итоге вставить, повторно отправив его на узел.
  • Злоумышленник может воспользоваться указанными уязвимостями. Однако этих уязвимостей можно избежать, изменив поведение узла

Биткойн во время сплетен с коллегами:

  • Выбор IP-адреса из проверенной таблицы может быть случайным, что снизит шансы выбора атакующего партнера, даже если он был недавно подключен. Злоумышленник не добьется успеха даже после того, как потратит много времени на атаку, если одноранговый выбор будет случайным.
  • Если для вставки адреса однорангового узла в фиксированный слот используется детерминированный подход, это уменьшит шансы вставки адреса злоумышленника в другой слот после его удаления из корзины. Детерминированная вставка гарантирует, что повторная вставка адресов не добавит ценности атаке.
  • Большинство уязвимостей в биткойне исправлено. Но из-за общедоступных сетей блокчейнов и культуры открытого исходного кода, которой придерживается большинство организаций, основанных на блокчейнах, злоумышленники быстро обнаруживают уязвимости.

Ослабление конкурирующих майнеров

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

Теоретически масштабная атака затмения на крупных майнеров может привести к атаке 51%. Для того вида, в котором сеть существует сейчас, цена получения большинства хэшрейта для Биткоина просто слишком высока даже для наиболее изобретательных злоумышленников – примерно 80 Th/s, в то время как для осуществления подобной атаки необходимо более 40 Th/s.
По гипотетическому сценарию, когда хэшрейт распределяется между 10 сторонами (у каждой из которых 8TH/s), атакующий может значительно облегчить условия для атаки 51%, отрезав эти части от сети. Если затемнены пять узлов, 40 TH/s больше не нужны, и атакующему нужно немногим больше 20 TH/s, чтобы получить контроль.

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

Ликвидация последствий

Имея достаточное количество IP-адресов, злоумышленник может «затемнить» любой узел. Самый очевидный способ предотвратить это — блокировать входящие соединения, а исходящие соединения производить только с опредененными узлами (занесенными другими пирами в белый список). Однако, как отмечается в исследовании, этот подход не может быть масштабируемым, если такой тактики будут придерживаться все участники, новые узлы не смогут подключиться к сети.

Авторы предлагают несколько исправлений для кода Биткоина, некоторые из которых были рассмотрены в whitepaper. Эти изменения делают атаки затмения более дорогостоящими за счёт незначительных изменений кода, каких как случайный выбор новых соединений или увеличенный объем памяти для хранения адресов.

Вывод

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

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

Видео

Ru
Что такое атака информационного затмения, а также Ликвидация последствий.

0 0 votes
Рейтинг статьи