Что такое атака информационного затмения?

Поделиться
Copied to clipboard!
Что такое атака информационного затмения?

Содержание


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

При поверхностном рассмотрении атака затмения может показаться похожей на атаку Сивиллы. Хотя у них и есть определенное сходство – злоумышленник будет распространять в сети поддельные пиры – конечные цели разные. Цель атаки затмения – единичный узел (по причинам, которые будут объяснены в следующем разделе), в то время как атака Сивиллы общесистемная, предназначенная для использования недостоверных сведений в системе репутации протокола.

Такая концепция подробно рассматривается в исследовании 2015 года под названием «Eclipse Attacks on Bitcoin’s Peer-to-Peer Network», в котором исследователи из Бостонского и Еврейского университетов сообщили о результатах экспериментов по эмулированию атак затмения, а также о возможных способах борьбы с такими атаками.


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

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

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

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

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


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

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


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

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

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

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


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

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

Из отделенной части сети атакующий передает эту версию блокчейна продавцу, который освобождает товар на том основании, что сделка была подтверждена. После того, как "затемненные" узлы заново присоединятся к основной сети, блоки, которые они ошибочно считали верным, будут брошены узлами из основной сети (в этом наблюдается сходство с атакой 51%).


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

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

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

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

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


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

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

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


В заключение

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

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

Loading