Выявлена лёгкая в реализации атака на P2P-сеть криптовалюты Ethereum Печать
03.03.18 19:55

Исследователи из бостонского и питсбургского университетов опубликовали несколько новых методов атаки "Eclipse" на P2P-сеть Ethereum, второй по размеру капитализации криптовалюты. Методы атаки позволяют организовать подключение жертвы к подконтрольным атакующему P2P-узлам и получить контроль за представлением блокчейна для жертвы. Возможность совершения атаки вызвана недоработками в процессе определения соседних узлов в P2P-сети Ethereum, базирующемся на протоколе Kademlia.

Атака может быть проведена с использованием всего двух оконечных хостов с отдельными IP-адресами, без необходимости получения контроля за привилегированными элементами сети между жертвой и остальной сетью Ethereum. В ходе атаки можно получить контроль над всеми входящими и исходящими соединениями жертвы. Изолировав жертву от остальной P2P-сети атакующий может отфильтровать представление блокчейна для жертвы или вовлечь систему жертвы в проведение более изощрённой атаки на алгоритм вычисления консенсуса при выполнении майнинга. Для сравнения, выявленная в 2015 году похожая атака на P2P-сеть Bitcoin требовала получения контроля за сотнями или тысячами хостов с отдельными IP-адресами.

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

Исследователями разработано три метода атаки:

  • Простейший метод, для которого требуется всего два узла с разными IP-адресами, основан на генерации данными узлами большого числа криптографических ключей, которые протокол Ethereum использует для назначения P2P-узлов (пир назначается по ключу, а не по хосту). Атакующий добивается переподключения жертвы к P2P-сети, дождавшись перезагрузки компьютера жертвы или через эксплуатацию DoS-уязвимостей, приводящих к краху системы, после чего сразу инициирует со своих узлов большое число входящих соединений до того, как узел жертвы попытается установить исходящее соединение.
  • Второй метод реализуется через создание большого числа узлов, подконтрольных атакующему, которые отправляют на узел жертвы специальные пакеты, засоряющие базу доступных узлов. После перезагрузке в базе с определённой вероятностью остаются только сведения об узлах атакующего к которым и подключается жертва;
  • Третий метод требует, чтобы часы на узле жертвы были установлены на 20 или более секунд вперёд, по сравнению с другими узлами P2P-сети. Так как протокол Ethereum для защиты от повторной отправки старых аутентифицированных сообщений не принимает сообщения отстающие от текущего времени более чем на 20 секунд, атакующий на своих узлах также переводит часы на 20 секунд вперёд и жертва начинает отбрасывать сообщения с легитимных узлов и принимает их только с узлов атакующего.

До публикации деталей в открытом доступе исследователи предварительно информировали организацию Ethereum Foundation и предложили ряд методов для противодействия атаке, которые были включены в состав Ethereum-клиента geth 1.8, выпущенного 14 февраля. Для защиты реализованы меры для блокирования первого и второго методов атаки путем обязательного создания исходящих соединений всегда к другим пирам и ограничения числа соединений в рамках одной подсети (/24). Данные меры полностью не устраняют возможность атаки, но существенно её усложняет - для проведения атаки теперь требуется получение контроля за тысячами узлов в разных подсетях, а не двух с любыми разными IP. Защита от третьего метода атаки не реализована, но данный метод требует получения контроля за трафиком (MiTM) или получения доступа к компьютеру жертвы.

Отмечается, что до включения рекомендованных изменений, P2P-сеть Ethereum была существенно менее безопасной, чем P2P-сеть Bitcoin, несмотря на сложившееся обратное мнение (ранее считалось, что для атаки на Ethereum потребуется значительно больше ресурсов, так как в Ethereum применяется надежный механизм криптографической аутентификации сообщений и по умолчанию устанавливается 13 исходящих соединений с пирами, вместо 8 для Bitcoin).

Read more http://www.opennet.ru/opennews/art.shtml?num=48191