Что такое атака затмения

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

Как работает атака Eclipse

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

Схема одноранговой сети (P2P) из 6 компьютеров
Схема одноранговой сети (P2P) из 6 компьютеров

Но каждая система имеет максимальную пропускную способность. Поэтому результат поиска хеша проверяют не все участники сети, а только соседние ноды. Биткоин-узлы имеют 117 входящих и 8 исходящих TCP-соединений. Это позволяет злоумышленнику взять ноду под контроль. 

Задача хакера — изолировать майнера от основной сети. Для этого нужно направить все его исходящие соединения к IP-адресам атакующего. Действия злоумышленника:

  1. Окружить жертву собственными узлами. Каждый из них должен иметь разный IP-адрес. 

  2. Соединить жертву с созданными нодами. Для этого потребуется перезапустить его процесс майнинга. Это приводит к сбросу прошлых TCP-соединений. Чаще в данных целях используют DDoS-атаку. Другой способ — выждать обновление софта для майнинга или сбой питания. 

  3. Начать манипулировать нодой при ее полной изоляции от общей сети. 

Скорость выполнения всей процедуры зависит от количества зловредных IP-адресов. Впервые ее продемонстрировал Итан Хейлман — ученый, описавший атаку затмения. Он использовал армию ботов из 4600 IP-адресов. На полную изоляцию майнинг-узла ему потребовалось 5 часов. 

Также Итан Хейлман в 2018 году тестировал систему Ethereum. Она использует 13 исходящих TCP-соединений, но из-за протокола Kademlia оказалась более уязвимой, чем Bitcoin. 

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

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

Двойная трата с нулевым подтверждением

Когда пользователь отправляет монеты BTC, транзакция помещается в мемпул. Это список неподтвержденных операций. Далее она отправляется на обработку майнерам. Чтобы транзакция завершилась, нужно получить до 6 подтверждений от узлов. Но это займет 60-70 минут. Поэтому большинству магазинов достаточно 2-4 подтверждения для установки факта оплаты.

Однако часть компаний отдает товар сразу после отправки биткоинов. Злоумышленник способен использовать это для проведения двойного расходования. Данная процедура подразумевает трату монет более 1 раза. 

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

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

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

Атака 51%

Bitcoin работает на алгоритме консенсуса Proof-of-Work (PoW). Он основан на мнении большинства майнеров. При поиске новых блоков результат отправляется на проверку другим нодам. Если с ним согласны больше 50% майнеров, то найденный хеш записывается в блокчейн-сеть. 

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

Организовать кибер-нападение 51% поможет атака затмения. Достаточно изолировать крупные майнинг-узлы. Это снизит их влияние на хешрейт в блокчейн-сети. Например, на 8 июня 2022 года пропускная способность Биткоин составляла 205,72 EH/s. Около 104,79 EH/s приходилось на 3 майнинг-пула: Foundry USA, AntPool и F2Pool. Если хакер изолирует их от основной системы, то в ней останется 100,93 EH/s. Тогда для проведения атаки 51% понадобится примерно 51 EH/s мощности.

Вклад майнинг-пулов в хешрейт Биткоин
Вклад майнинг-пулов в хешрейт Биткоин

Как предотвратить 

Идея децентрализованных систем заключается в прозрачности. Большинство из них имеют открытый исходный код. Это позволяет злоумышленникам искать уязвимости. Их другая проблема — сложно внести изменения в работающий блокчейн. Поэтому обезопасить его от атаки Eclipse необходимо до запуска. Есть 4 метода увеличить защиту:

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

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

  • Добавить поддержку большего количества TCP-соединений. Решение повысит время для изолирования майнинг-узла или сделает это невозможным. Однако данная мера снизит производительность блокчейна.


ссылка на оригинал статьи https://habr.com/ru/post/680848/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *