Атака информационного затмения - это нападение на сеть блокчейна, во время которого её участниками манипулируют, чтобы поставить операции в сети под угрозу. Атаки затмения нацелены на узлы блокчейна, они отрезают их от остальной сети, чтобы принимать и обрабатывать данные, выгодные нападающему.
Атака затмения в Блокчейне: что это такое?
Блокчейн - это одноранговая (P2P) сеть, состоящая из узлов, передающих друг другу информацию об активности блокчейна. Эта сеть часто крайне децентрализована и включает в себя узлы из огромного количества разных локаций. Чтобы блокчейн работал, узлам нужно достичь консенсуса о производящихся данных, чтобы создавать подтверждённые блоки.
Биткойн (BTC) - первая криптовалютная сеть, создатели которой справились с этой задачей, известной под названием задачи византийских генералов, и смогли масштабировать сеть с помощью алгоритма Proof-of-Work (PoW, доказательство выполнения работы); благодаря этому узлы, которые не могут следить за операциями друг друга и настраивать надёжные связи с каждым другим узлом, всё равно могут подтверждать транзакции.
Однако именно благодаря такой ограниченной видимости и становится возможно отрезать узел от остальной системы и манипулировать им для поставки подложной информации. Один из способов сделать это - с помощью так называемой атаки затмения.
Во время атаки затмения хакер заставляет узел связаться с фальшивыми участниками, находящимися под его контролем. Они могут контролировать получаемую узлом информацию, и по итогу узел подтверждает фальшивые данные вместо "настоящих" данных, которые отправляет вся остальная сеть. Обычно жертва и не подозревает о происходящем, так что атаки затмения часто используются как плацдарм для более масштабной атаки на одноранговый блокчейн.
Как работают атаки затмения на блокчейн?
Атака затмения начинается, когда выбирается целевой узел в сети блокчейна. Тогда хакер создаёт фальшивые узлы, которые подключаются к сети - это могут быть бот-сети или фантомные сети, - и затем отправляют много запросов на выбранный узел, отсекая его от остальной сети.
Атакующий может использовать распределённую атаку типа «отказ в обслуживании» (Distributed Denial of Service, DDoS), так что жертва нападения подключается к его "фальшивым" узлам вместо обычных узлов, используемых ранее.
Когда с этим покончено, выбранный узел получает огромное количество ложных данных из узлов, используемых хакером. В итоге узел подтверждает эти данные, что ставит под удар целостность всего блокчейна.
Всё это возможно из-за того, что в сети блокчейн не все узлы могут взаимодействовать со всеми остальными узлами в режиме реального времени. У каждого узла есть свой кружок других узлов, с которыми он и взаимодействует, так что замена этого небольшого количества узлов ложными знаменует начало атаки затмения.
Название этого типа атаки, таким образом, довольно понятно, ведь для отдельно взятого узла происходит "затмение", или подмена остальной сети.
Какими могут быть последствия атаки затмения?
Атаки затмения часто проходят незамеченными для участников сети, и их незаметность делает их идеальным трамплином для более сложных атак на блокчейн.
Например, если помешать работе нескольких майнер-узлов, можно заставить их проводить незаконные транзакции, которые в противном случае были бы заблокированы. Таким образом, эти "слепые" майнеры допускают двойной расход - когда одни и те же токены в блокчейне прокручиваются в нескольких транзакциях, - ведь майнеры и не подозревают, что работают с незаконными операциями.
Другим результатом атак затмения могут быть так называемые атаки 51%. В этом случае группа злоумышленников захватывает контроль над чуть более чем половиной хэш-мощностей и использует их в своих интересах. С помощью атаки затмения можно заставить часть сети майнить недействительную цепь для её подготовки.
В то же время атака затмения может нацелиться на отдельный узел, чтобы тот подтверждал незаконные транзакции. Учитывая, что продавцы могут принимать транзакции с нулевым подтверждением вместо ожидания их подтверждения, повышается риск принятия транзакций с повторно прокрученными монетами.
Как и атака с нулевым подтверждением, атака с n-подтерждением нацелена и на продавцов, и на майнеров: их заставляют подтверждать незаконные транзакции в блоках, которые по факту не подтверждены.
В подобных ситуациях майнеры просто используют свои ресурсы и не получают награды, из-за чего впустую тратятся ресурсы и энергия.
Как можно предотвратить атаки затмения на блокчейн-сети?
С тех пор, как в 2010-х годах стало впервые известно о атаках затмения, блокчейн-сети сделали исполнение более сложным - как по безопасности, так и по стоимости.
Система идентификации участников
При выборе узла для связи в сети блокчейн, риск связаться с неизвестным и потенциально мошенническим участником снижается, если у каждого узла будет свой id-номер.
Процесс выбора участника
При атаке затмения расчёт состоит в том, что узлы блокчейна связываются со случайными участниками при каждом подключении к сети. Однако это не обязательно, и можно настроить сеть так, чтобы узлы иначе взаимодействовали с конкретными участниками сети - так атаковать будет сложнее.
Есть два основных варианта. Узлы могут связываться со случайными участниками, а не со знакомой группой, или же вводить определённые известные IP-адреса - этот процесс называется детерминистский выбор узла.
Контролировать входящие и исходящие связи
Можно дополнительно снизить эффективность потенциальной атаки затмения, увеличив количество исходящих связей с другими узлами. Как показано в научной работе на эту тему, опубликованной в 2015 году, в сети Биткойн возможно совершать достаточно операций, не опасаясь перегрузить её.
В той же статье предлагается концепция атаки затмения в связи с Биткойном и подчёркивается, что слишком высокое количество входящих связей с одного и того же IP-адреса - порочная практика. Вместо этого их следует диверсифицировать, то есть сделать так, чтобы "узел принимал ограниченное количество подключений от одного и того же IP-адреса".
Разница между атакой затмения и атакой Сивиллы
На заре криптовалют атаки затмения называли атаками Сивиллы, но на самом деле эти два феномена отличаются.
Термин "атака затмения" на Биткойн зародился в упомянутой выше статье 2015 года. До этого, по утверждению разработчика Bitcoin Core Питера Вулле, они назывались атаками Сивиллы.
Однако теперь этот термин относится к мошенникам, рассылающим запросы по всей сети блокчейн в попытке изменить её суть или отдельные функции. Это не то же самое, что атаки затмения, те выбирают отдельные узлы и стараются проводить блокчейн-операции, например, повторно прокручивать одни и те же токены в разных транзакциях.
В таких сильно децентрализованных сетях как Биткойн, атаки Сивиллы не представляют большой опасности для участников сети. Это возможно благодаря принципу PoW - один или несколько узлов, ведущих себя странно, моментально выделяются и исключаются из консенсуса.
Как не стать жертвой атаки затмения?
Отчасти то, что атаки затмения так распространены, объясняется тем, как сложно узлу понять, что он стал жертвой атаки. Также маловероятно, что участник сети заподозрит угрозу для своих транзакций из-за такой атаки.
Есть несколько способов, как снизить вероятность успешной атаки.
- Управлять независимым узлом. Таким образом, ответственность будет на вас как на управляющем узла, а не на каком-то третьем лице. Независимые полные узлы также могут увеличить общую безопасность сети.
- Используйте собственный кошелёк. При управлении узлом не стоит надеяться на широко распространённые кошельки, ведь тогда контроль будет отдан в жертву удобству и проблемам хоста.
- Не доверяйте транзакциям на блокчейне бездумно. К примеру, принятие транзакций с нулевым подтверждением увеличивает вероятность стать жертвой атаки двойного расходования.
- Как упоминалось раньше, проверяйте и управляйте входящими и исходящими связями узла, по возможности ограничивайте входящие и исходящие связи.
FAQ по атакам затмения
Что такое атака затмения?
Атака затмения - это такой вид атаки на сеть блокчейн, при котором хакер атакует отдельные узлы, отрезая их от остальной сети, чаще всего с целью заставить их одобрять поддельные данные.
Что такое атака Сивиллы на Блокчейн?
Атака Сивиллы относится к массовому поражению узлов в сети блокчейн, в отличие от более узко направленных атак затмения. В зависимости от типа атаки, хакер может достичь разных целей.
Как может навредить атака затмения?
Атаки затмения можно использовать для того, чтобы заставить узлы подтверждать подложную информацию, которую иначе не приняли бы в остальной сети - например, повторно прокручивать одни и те же монеты. Хакеры зачастую используют атаки затмения как трамплин для более масштабного нападения, например, атаки 51%.
Как избежать атаки затмения?
Есть несколько способов, как снизить вероятность стать жертвой такой атаки, которую сложно распознать в процессе. К примеру, можно проверять входящие связи для узлов, а также ждать нескольких подтверждений, прежде чем признавать транзакцию совершённой.