Bitcoin Magazine
Основная проблема: Ваш узел против цифровой пустыни
Спустя более 50 лет после первого межсетевого сообщения, пиринговые сети остаются редкими зверями в джунглях Интернета. Способность Биктоина обеспечивать открытую денежную систему зависит от его пиринговой архитектуры, и на всей его поверхности атаки именно сетевой уровень – как узлы обнаруживают друг друга и подключаются – является наиболее уязвимым. Существуют два основных места, где могут возникнуть проблемы: собственный протокол пиринга Биктоина и интернет-протоколы, от которых зависит протокол Биктоина. В этом свете Core имеет двойной мандат: предотвращать векторы отказа в обслуживании (DOS), которые могут быть использованы между узлами, и позволять узлам безопасно общаться в более широкой враждебной среде, которой является Интернет.
"Правительства хорошо справляются с отсечением голов у централизованно контролируемых сетей, таких как Napster, но чистые P2P-сети, такие как Gnutella и Tor, похоже, держатся."
– Сатоши, 7 ноября 2008 года [1]
Протокол P2P охватывает способ обмена узлами сообщениями о транзакциях, блоках и других узлах. Этот обмен информацией необходим до того, как может произойти любая проверка транзакций или консенсуса, и поэтому является первостепенной заботой.
За эти годы в этой области было несколько ошибок. Например, в 2017 году была исправлена и раскрыта уязвимость вредоносного SOCKS-сервера [2]. Эта уязвимость "переполнения буфера" теоретически могла привести ко многим различным атакам: сбою узла, внедрению вредоносных полезных нагрузок или изменению данных на узле. В 2020 году была зарегистрирована и исправлена уязвимость высокой степени серьезности, при которой удаленный узел мог заблокировать адреса, квадратично увеличивая список блокировки, и, следовательно, является DOS на узле [3]. Уязвимость не раскрывалась до 2024 года. Эта ошибка правильно помечена как "высокой степени серьезности", поскольку атака проста в исполнении, ее эффект приводит к потере функциональности узла, и для ее работы требуется мало предварительных условий. Это те виды ошибок, которые не дают спать разработчикам Core по ночам, и поэтому настоятельно рекомендуется обновить ваш узел до поддерживаемой версии (старые версии Core не поддерживаются/не обновляются активно).
Эта распределенная сеть, которую мы называем Биктоин, остается относительно небольшой: количество узлов в открытой сети колеблется около 20 000 узлов, и даже при условии щедрых 100 000 узлов TOR, у нас все еще есть небольшая, легко отслеживаемая сеть. Недавно Даниэла Броццони и naiyoma показали [4], что если узел работает как с открытой сетью, так и с Tor, тривиально сопоставить адреса IPv4 и Tor узла. Весьма вероятно, что это уже делается разведывательными агентствами и компаниями по анализу цепочек. Тогда становится легко заметить, какие узлы публикуют какие транзакции первыми, выводя исходный IP транзакции и, следовательно, местоположение. Хотя это не является ошибкой как таковой, поскольку узел не падает и не ведет себя неправильно, это можно считать уязвимостью, поскольку она представляет собой метод привязки данного IP-адреса к транзакции.
Как эффективно предотвратить это, в настоящее время остается открытым вопросом.
"Мы строим наши компьютеры так же, как строим наши города. Со временем, без плана, поверх руин." – Эллен Уллман [5]
Биктоин работает в Интернете, и его способность оставаться распределенной и децентрализованной системой зависит от свойств самого Интернета. К сожалению, архитектура Интернета, как мы ее знаем сегодня, остается чрезвычайно небезопасной, с регулярно применяемыми известными атаками. Большинство этих атак проводятся незамеченными до тех пор, пока не будет нанесен ущерб, и это не говоря уже о режимах наблюдения, которые пронизывают Интернет сегодня.
Наиболее известным и практическим вектором атаки, вызывающим беспокойство, является так называемая атака затмения, при которой все узлы узла-жертвы являются вредоносными и передают жертве определенное представление о цепи или сети. Этот класс атак является фундаментальным в распределенных системах, если вы контролируете узлы узла, вы контролируете его осведомленность о сети. Итан Хейлман и его сотрудники представили одну из первых практических атак затмения на Биктоин на USENIX 2015 [6], а в 2018 году статья об атаке Erebus описала "скрытую" атаку затмения через вредоносную автономную систему (AS) [7].
Эти атаки в значительной степени используют слабости в способе взаимодействия сетей Интернета друг с другом, таких как топология маршрутизации AS или через протокол, называемый протоколом пограничного шлюза (BGP). Хотя существуют текущие инициативы по обеспечению безопасности протокола BGP – BGPsec, RPKI – у обоих есть ограничения, которые хорошо понятны, и оставляют управляющих Интернетом тосковать по более сильным решениям. До тех пор Интернет останется диким западом.
Недавний анализ cedarctic в Chaincode Labs показал, что узлы Биктоина размещены всего в 4 551 AS, довольно небольшой подгруппе составляющих сетей, образующих Интернет. Они описывают набор атак, которые могут привести к атакам затмения путем компрометации восходящего AS, в котором работают узлы [8]. Небольшое распределение узлов среди AS и конкретные отношения между этими AS создают уникальный вектор атаки. Хотя существуют меры по исправлению положения, неясно, был ли этот вектор атаки хорошо понят заранее биткойнерами или их противниками.
Любая атака, которая опирается на компрометацию одной или нескольких AS, требует ресурсов, координации и навыков для достижения. Хотя не было сообщений об успешной атаке этого типа на узел Биктоина, такие атаки были успешно проведены против майнеров [9], кошельков [10], платформ обмена [11] и мостов [12]. Хотя мы не собираемся исправлять Интернет, мы можем вооружить узлы инструментами для работы в этой враждебной среде.
Ниже приведены некоторые функции и возможности, которые Bitcoin Core разработал или интегрировал поддержку, чтобы вооружить пользователей против атак на сетевом уровне:
TOR (маршрутизатор Onion) – это самая старая ориентированная на конфиденциальность оверлейная сеть, встроенная в Bitcoin Core. Она создает переходы между случайной сетью узлов для обфускации трафика.
v2transport [13] шифрует соединения между узлами, скрывая трафик от шпионов и цензоров. Цель состоит в том, чтобы помешать пассивным наблюдателям сети шпионить за содержимым ваших сообщений с другими узлами.
I2P (проект невидимого Интернета [14]) – это дополнительная функция Core, которая обеспечивает дополнительный частный зашифрованный уровень для ваших соединений. Это похожая на Tor сеть анонимности, которая опирается на узлы для обфускации трафика между клиентами и серверами.
ASmap [15] – это еще одна дополнительная функция Core, которая реализует смягчение атаки Erebus, которую авторы уже описали в статье, и применяется ко всем атакам на основе AS. Делая механизм пиринга Биктоина осведомленным об AS, откуда приходят узлы, чтобы обеспечить разнообразие среди узлов, затмение становится экспоненциально более сложным, поскольку злоумышленник должен был бы скомпрометировать множество AS, что крайне маловероятно и почти невозможно без обнаружения. Bitcoin Core поддерживает принятие карты IP-сетей в их AS (AS-map) с Core 20.0, а проект Kartograf позволяет любому пользователю легко генерировать такую ASmap.
Учитывая, что Интернет, вероятно, будет продолжать быть уязвимым для многих атак, одна из вещей, которые мы можем сделать, – это наблюдать за поведением наших узлов, чтобы попытаться обнаружить вредоносное поведение. Это является импульсом для проекта peer-observer от 0xb10c [16]. Он предоставляет полную систему регистрации на основе трейспойнтов eBPF (способ наблюдения за мельчайшими действиями в программе, работающей в операционной системе) для наблюдения за активностью узла, включая поведение узлов. Он также дает вам все необходимое для создания собственных систем регистрации.
Обеспечение возможности подключаться к узлам и обмениваться сообщениями является ключевым компонентом того, что заставляет Биктоин работать.
Биктоин работает в многомерной враждебной среде, в которой многие угрозы создаются ограничениями самой архитектуры интернета. Если Биктоин хочет выжить и процветать, его разработчики и пользователи должны научиться ориентироваться в этих странных водах.
Цена открытых сетей – вечная бдительность.
Получите свою копию The Core Issue сегодня!
Не упустите свой шанс стать владельцем The Core Issue — с статьями, написанными многими разработчиками Core, объясняющими проекты, над которыми они работают сами!
Эта статья является письмом от редактора, представленным в последнем печатном издании Bitcoin Magazine, The Core Issue. Мы делимся им здесь в качестве раннего взгляда на идеи, исследованные во всем выпуске.
[0] https://web.mit.edu/gtmarx/www/connect.html
[1] https://satoshi.nakamotoinstitute.org/emails/cryptography/4/
[2] https://bitcoincore.org/en/2019/11/08/CVE-2017-18350/
[3] https://bitcoincore.org/en/2024/07/03/disclose-unbounded-banlist/
[4] https://delvingbitcoin.org/t/fingerprinting-nodes-via-addr-requests/1786/
[5] https://en.wikiquote.org/wiki/Ellen_Ullman
[6] https://www.usenix.org/system/files/conference/usenixsecurity15/sec15-paper-heilman.pdf
[7] https://ihchoi12.github.io/assets/tran2020stealthier.pdf
[8] https://delvingbitcoin.org/t/eclipsing-bitcoin-nodes-with-bgp-interception-attacks/1965
[9] https://www.theregister.com/2014/08/07/bgp_bitcoin_mining_heist/
[10] https://www.theverge.com/2018/4/24/17275982/myetherwallet-hack-bgp-dns-hijacking-stolen-ethereum
[11] https://medium.com/s2wblog/post-mortem-of-klayswap-incident-through-bgp-hijacking-en-3ed7e33de600
[12] www.coinbase.com/blog/celer-bridge-incident-analysis
[13] https://bitcoinops.org/en/topics/v2-p2p-transport/
[14] https://geti2p.net/en/
[15] https://asmap.org
[16] https://peer.observer
[13] https://github.com/asmap/kartograf
Этот пост The Core Issue: Your Node Vs. The Digital Wilderness впервые появился на Bitcoin Magazine и написан Жюльеном Уррака, Фабианом Яром, 0xb10c и CedArctic.


