Выявлена лёгкая в реализации атака на P2P-сеть криптовалюты Ethereum
3 марта 2018 года
Исследователи из бостонского и питсбургского университетов опубликовали несколько новых методов атаки "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).
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.