Что такое Eclipse атака (Атаки Затмения)? Как она работает? Как ее предотвратить?
Атаки Eclipse (Атаки Затмения) - это особый тип кибератаки, при котором злоумышленник создает искусственную среду вокруг одного узла или пользователя, что позволяет злоумышленнику манипулировать затронутым узлом для совершения неправомерных действий (заблокировать или даже изменить информацию, которую узел получает из сети).
Важно отметить, что атаки Eclipse крайне редки в реальном мире: сама структура децентрализованного блокчейна обычно исключает их. В этой статье мы расскажем, как могут происходить атаки Eclipse, и возможные способы снижения связанных рисков.
Что такое атака Eclipse (Атаки Затмения)?
Атаки Eclipse (Атаки Затмения) предполагают, что злоумышленник изолирует определенного пользователя или узел в одноранговой (P2P) сети. При выполнении атаки eclipse злоумышленник пытается перенаправить входящие и исходящие соединения целевого пользователя с его законных соседних узлов на узлы, контролируемые злоумышленником, тем самым блокируя цель в среде, которая полностью отделена от реальной сетевой активности.
Изолируя целевой узел от его легитимных соседних узлов, атаки eclipse могут производить незаконные подтверждения транзакций, среди прочего, воздействовать на сеть. В то время как эти типы атак изолируют отдельные узлы, эффективность атак eclipse при нарушении работы сетевых узлов и трафика во многом зависит от структуры самой базовой сети.
Поскольку атаки eclipse основаны на использовании соседних узлов, цели, легкость, с которой эти атаки могут быть успешно выполнены, во многом зависит от базовой структуры целевой сети блокчейна.
Как выполняются атаки Eclipse в криптосреде? Как работает?
Атаки Eclipse в криптосреде возможны, потому что узлы в децентрализованной сети не могут одновременно подключаться ко всем узлам из-за ограничений пропускной способности и должны вместо этого подключаться к ограниченному набору соседних узлов.
В результате злоумышленнику нужно только скомпрометировать соединение цели с этим ограниченным набором узлов, а не атаковать всю сеть, как в случае атаки Сибиллы.
Чтобы заблокировать и скомпрометировать узел, злоумышленник обычно использует ботнет или фантомную сеть, созданную из узлов хоста, чтобы заполнить целевой узел шквалом IP-адресов, с которыми цель может синхронизироваться при следующем повторном подключении к сети блокчейна.
Оттуда злоумышленник будет ждать, пока цель успешно повторно подключится к вредоносным узлам, или использует атаку распределенного отказа в обслуживании (DDoS), чтобы заставить цель повторно подключиться к сети.
Хотя может потребоваться несколько попыток, прежде чем целевой узел будет успешно скомпрометирован: как только жертва подключится к узлам, контролируемым злоумышленником, злоумышленник может передать ложные данные часто ничего не подозревающей жертве.
Наиболее частые последствия атаки eclipse в криптовалютных проектах – это:
- Атаки с двойным расходом: после того, как жертва отключена от сети, злоумышленник может направить жертву для принятия транзакции, которая использует либо недопустимый ввод, либо тот же ввод, что и другая транзакция, которая уже была проверена в законной сети. Существует несколько типов атак с двойным расходом, которые использовались злоумышленниками с момента появления технологии блокчейн, и эта проблема уникальна для цифровых валют.
- Нарушение питания майнера: злоумышленники могут скрыть тот факт, что блок был добыт у майнера, подвергшегося атаке Eclipse, тем самым вводя жертву в заблуждение, заставляя тратить время и вычислительную мощность на добычу бесхозных блоков - блоков, которые были исключены из законного блокчейна. Таким образом, злоумышленник может увеличить свою относительную скорость хеширования в сети и склонить гонку майнинга в свою пользу. Кроме того, поскольку майнер, подвергшегося атаке Eclipse, по существу заблокирован от легитимной сети, злоумышленники могут запускать атаки Eclipse на несколько майнеров в сети, чтобы снизить порог, необходимый для запуска успешной атаки 51% во всей сети.
Злоумышленник может выполнить множество опасных операций, таких как:
- Предоставление ложной информации: злоумышленник может отправить недействительные транзакции или предоставить фальсифицированную информацию о состоянии сети блокчейна. Это может привести к тому, что узел подвергнется проверочным атакам или выполнит ложные транзакции, что приведет к потере активов.
- Задержка новых блоков. Другая стратегия — замедлить или заблокировать информацию о новых блоках. Это помогает злоумышленнику создать «вилку» в блокчейне, из которой могут быть осуществлены другие атаки, такие как двойное расходование.
- Манипулирование рынком. Если злоумышленники нацелены на узлы, связанные с биржами или приложениями DeFi, они могут исказить данные, задержать транзакции и манипулировать рыночной стоимостью монет.
Как предотвратить атаку Eclipse в криптосреде?
Узлы можно атаковать, если злоумышленник имеет доступ к достаточному количеству IP-адресов. Самый простой способ избежать этого - ограничить входящие соединения узлом и обдумать любые соединения, сделанные с другими узлами.
Однако это может затруднить присоединение новых узлов к сети блокчейна, если этот подход будет использоваться всеми узлами.
Из-за того, что большинство блокчейн-проектов являются общедоступными и имеют открытый исходный код, злоумышленникам относительно легко оценить технические условия функционирования сети в поисках уязвимостей, которые можно использовать.
Поскольку структурные изменения сложнее утвердить и реализовать на полпути жизненного цикла сети блокчейн, лучший способ избежать атаки Eclipse для криптовалюты - это спроектировать конфигурацию узла сети блокчейн, чтобы противостоять атакам Eclipse с самого начала.
Можно выделить общие подходы к противостоянию атакам Eclipse:
- Случайный выбор узла: структурируя одноранговую сеть таким образом, чтобы каждый узел подключался к рандомизированному набору IP-адресов каждый раз, когда он синхронизируется с сетью, а не придерживал один и тот же набор адресов. Архитектор сети может значительно снизить вероятность подключения узла блокчейна к узлу, контролируемому злоумышленником, даже если он был подключен недавно.
- Детерминированный выбор узла: используя подход, противоположный случайному выбору узлов, детерминированный выбор узла включает в себя вставку конкретных IP-адресов узлов в соответствующие им заранее определенные фиксированные интервалы каждый раз, когда они подключаются к сети. Исправляя соединения узлов сети, злоумышленнику будет труднее маневрировать вредоносными узлами в сети и сходиться вокруг цели, а повторная вставка адресов, контролируемых злоумышленником, не обязательно будет способствовать успеху попытки атаки eclipse. Аналогичным образом блокчейн может включать идентификаторы узлов в критерии сетевого подключения, чтобы упростить повторное подключение к легитимным одноранговым узлам с более высокими показателями доверия. Устанавливая соединения узлов с использованием идентифицирующей информации, а не косвенных данных, таких как отметки времени и доступность, сеть блокчейна будет более безопасной и менее уязвимой для сторонних влияний, которые отклоняются от законной сетевой активности. Однако, если соединения могут быть выполнены только с определенными узлами, которые были предварительно одобрены другими одноранговыми узлами, сеть может столкнуться с проблемами масштабируемости.
- Увеличение количества соединений между узлами: увеличивая необходимое количество соединений между узлами, сеть сможет повысить вероятность того, что узел подключится к легитимному пользователю. Однако существуют ограничения пропускной способности, которые ограничивают степень, в которой сеть может увеличивать количество узловых соединений без ущерба для производительности, ограничивая эффективность этого подхода как автономного решения для защиты от атак eclipse.
- Ограничения для новых узлов: делая более дорогостоящим или сложным создание новых узлов в сети, архитектор блокчейна может установить более высокую планку для содержания узлов, чтобы не допустить заполнения сети узлами, контролируемыми злоумышленником. Часто этот подход включает ограничение количества узлов на каждый IP-адрес или устройство, хотя эту защитную меру можно обойти, если злоумышленник развернет ботнет, состоящий из устройств, которые имеют свои собственные уникальные IP-адреса.
Как смягчить атаки затмения
Операторы могут уменьшить этот риск, заблокировав входящие соединения. Кроме того, они должны устанавливать исходящие подключения только к определенным узлам, которым они доверяют, например, к узлам, включенным в белый список другими одноранговыми узлами в сети.
Исследователи, однако, указали, что если все участники примут эти меры, новые узлы, возможно, не смогут присоединиться, что делает этот подход неприменимым в масштабе.
Однако авторы «Атак Eclipse на одноранговую сеть Биткойн» предлагают внести несколько изменений в программное обеспечение Биткойн. Некоторые из этих настроек уже были реализованы с момента выхода документа. Они работают над тем, чтобы сделать атаки eclipse более дорогостоящими за счет незначительных изменений в коде.
Различия между атакой Затмения и атакой Сивиллы (eclipse vs. Sybil)
Обе атаки происходят на уровне сети P2P. Так какая разница?
При атаке eclipse большинство одноранговых узлов целевого пользователя являются злонамеренными и поэтому не позволяют целевому пользователю подключиться к законной сети. Атака затмения особенно полезна в тех случаях, когда отправитель отправляет кому-то некоторое количество Биткойнов, а затем также дважды тратит эти Биткойны.
Затем отправитель использует атаку, чтобы целевой пользователь не узнал о двойной трате.
При атаке Sybil злоумышленник пытается рассылать спам по сети с узлами, находящимися под его контролем, в попытке обмануть систему репутации сети. Это включает в себя ложную сигнализацию о поддержке с использованием битов версии. Таким образом, атака eclipse нацелена на одного пользователя или группу, а атака Sybil нацелена на всю сеть.
В контексте Биткойна атаки Сивиллы менее опасны, поскольку узлы работают по правилам консенсуса. Согласно этим правилам, любое отклонение приведет к DoS-запрету того же узла.
Что разработчики блокчейна могут извлечь из атак Eclipse?
Разработчики могут ознакомиться с уязвимостями в узлах Биткойн, которые можно использовать для замены законных одноранговых адресов своими собственными.
-
Технически, когда узел выбирает IP-адреса из проверенной корзины с отметками времени, это увеличивает вероятность выбора злоумышленника. Это верно, даже если злоумышленнику принадлежит лишь небольшая часть этих адресов. Шансы быть выбранным также можно увеличить, увеличив время атаки.
-
Когда адресная корзина заполнена, один адрес удаляется случайным образом. Если IP-адрес злоумышленника удален, то его можно в конечном итоге вставить, если он неоднократно отправляется на узел.
Как видите, злоумышленники могут использовать указанные выше уязвимости. Тем не менее, есть также несколько способов избежать их:
-
Выбор IP-адреса из проверенной таблицы может быть сделан случайным образом. Это уменьшит вероятность того, что выбранный одноранговый узел является злоумышленником. Если выбор пиров рандомизирован, то злоумышленник не добьется успеха даже после того, как потратит много времени на атаку.
-
Используйте детерминированный подход для вставки адресов одноранговых узлов в фиксированные слоты. Это уменьшит вероятность вставки адреса злоумышленника в другой слот после того, как он был исключен из корзины адресов. Детерминистический подход гарантирует, что повторная вставка адресов не увеличивает ценность атаки.
Как мы уже упоминали, многие уязвимости в Биткойне уже устранены. Однако атаки на блокчейн по-прежнему могут осуществляться, когда злоумышленники находят другие уязвимости. Это связано с тем, что сети блокчейнов являются общедоступными.
Культура открытого исходного кода, которой придерживаются многие блокчейн-организации, также может уступить место дополнительным уязвимостям.
Вывод
В то время как атаки Eclipse в криптосреде обычно затрагивают только одного пользователя или ограниченный набор целей, повторные атаки могут подорвать доверие в сети блокчейна и в конечном итоге разрушить сеть без надлежащей защиты.
Поэтому, помимо понимания потенциальных вариантов использования и токеномики ваших любимых проектов блокчейнов, важно также найти время, чтобы понять основные механизмы консенсуса, лежащие в основе сетей.
В целях безопасности всегда изучайте архитектуру механизма консенсуса!
В то время, как каждому проекту криптовалюты требуется конкретное реальное приложение, чтобы выжить в долгосрочной перспективе, без надежных и защищенных от несанкционированного доступа узловых соединений, сеть вряд ли останется неповрежденной достаточно долго, чтобы полностью реализовать свой потенциал.