Перевод Краткое описание атаки на сеть Monero

Тема в разделе "Статьи", создана пользователем Mr. Pickles, 5 янв 2021.

  1. Mr. Pickles

    Команда форума Модератор Редактор

    Регистрация:
    11 сен 2017
    Сообщения:
    981
    Симпатии:
    246
    Введение

    Как многие из вас, возможно, знают, одноранговая (p2p) сеть Monero подвергалась нескольким различным типам атак со стороны злоумышленников (возможно, организаций), которые в течение многих лет последовательно и целенаправленно атакуют различные уязвимые места, рассылают спам и пытаются подорвать как сеть, так и сообщество Monero.

    Их последняя атака - это попытка подорвать сеть Monero с помощью атаки Сибиллы (Sybil attack) и Eclipse, которые начались еще задолго до обновления сети 17 октября 2020 года. Известно, что мотивы злоумышленников вполне конкретны, они заинтересованы в деградации развития кода продукта. В свою очередь, это отличный шанс для сообщества и разработчиков Monero поработать вместе, чтобы защитить сеть от этих атак.

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

    Прежде чем приступить, важно отметить, что, хоть все эти атаки и нацелены на сеть Monero, они имеют схожую модель с большинством других криптовалют и поэтому будут полезны для другого криптовалютного сообщества, чтобы быть наготове и, как следствие, попытаться обезопасить себя и предотвратить последствия подобных атак в будущем.

    Два лучших источника информации об этой атаке, которые уже были опубликованы, - это сообщение от u/dEBRUYNE_1 на Reddit и Twitter от @fluffypony.

    Недавно злоумышленник совершил атаку на Monero посредством атаки Сибиллы, пытаясь сопоставить транзакции с IP-адресом узла, который их ретранслирует в сеть. Несмотря на то, что это первая атака такого рода, она оказалась довольно неэффективной.
    Riccardo Spagni (@fluffypony) 10 ноября, 2020

    График событий

    Точная дата атаки неизвестна. Нужно полагать, что до момента внедрения Dandelion++ атака, по-видимому, была безвредной и весьма неэффективной. Ниже я сосредоточу внимание на атаке, которая начались после обновления сети от 17 октября 2020 года:

    • 2020-10-17 - Обновление сети Monero до версии 0.17 через хардфорк, активация Dandelion++ и CLSAG
    • 2020-10-18 - Быстрое увеличение числа пользователей, которые не могут совершить транзакцию из-за того, что вредоносные узлы не ретранслируют транзакции в сеть
    • 2020-10-18 - Реализация PR6916 с увеличением количества out_peers для уменьшения воздействия вредоносных узлов на сеть
    • 2020-10-20 - Продолжают поступать сообщения о невозможности завершить синхронизацию из-за того, что часть одноранговых узлов показывает неправильную высоту
    • 2020-10-27 - Реализация PR6939 для снижения эффективности атаки с нескольких узлов с одного IP-адреса
    • 2020-11-02 - Реализация PR6961, позволяющего задействовать новую команду banlist (файл block.txt от пользователя selsta)
    • 2020-11-03 - Реализация PR6971 для предотвращения DoS-атак с использованием специально созданных скомпрометированных пакетов
    • 2020-11-03 - Реализация PR6973 для смягчения DoS-атаки и отмены транзакций в статусе «ожидаемая»
    • 2020-11-05 - Публичное заявление злоумышленника об атаке на сеть Monero
    • 2020-11-05 - Реализация PR6983 для предотвращения сокрытия IPv4 узлов в IPv6 адресах
    • 2020-11-10 - Добавление уведомления о том, что кошелёк не будет синхронизироваться, поскольку подключённые вредоносные узлы сообщают, что высота блока выше или ниже фактической высоты блока
    • 2020-11-12 - Реализация PR7018 для повышения устойчивости Dandelion++ к вредоносным узлам, сообщающим о неверной высоте, путём использования злоумышленником фазы стебля
    • 2020-12-02 - Реализация PR7055 для снижения некорректного поведения одноранговых узлов в сети
    • 2020-12-04 - Реализация PR7072 для предотвращения рассылки спама в виде некорректных списков подключения
    • 2020-12-05 - Реализован PR7081, чтобы упростить передачу запрещенных узлов из monerod в fail2ban
    • 2020-12-08 - Релиз Monero v0.17.1.6
    • 2020-12-12 - Объединён PR7135, который впоследствии будет использоваться как долгосрочное решение проблемы с ошибкой высоты блокчейна
    • 2020-12-13 - Реализован PR7138, позволяющий использовать черный список вредоносных узлов на основе DNS (аналогично с PR6961)
    • 2020-12-24 - Пользователи впервые замечают DoS-атаку с использованием больших сетевых пакетов, осуществляемую против узлов с открытыми p2p портами, чтобы вызвать сбои узлов из-за нехватки памяти
    • 2020-12-26 - Реализован PR7188 для решения проблемы с высотой блокчейна, пока PR7135 не будет запущен
    • 2020-12-26 - Реализован PR7190 для устранения DoS-атаки на узлы
    Атака

    Центром атаки является кластер вредоносных узлов, размещённых на более чем ~130 IP-адресах в OVH и Digital Ocean. Данные узлы увеличивают свою долю в p2p сети за счёт рассылки однорангового списка подключений, содержащего исключительно адреса вредоносных узлов.

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

    Теперь давайте последовательно разберём каждую известную атаку:

    Непропорционально увеличивающаяся доля злонамеренных узлов в сети

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

    Данная атака была сведена на нет с помощью PR6939

    Внедрение вредоносных узлов в одноранговые списки узлов

    Это еще один метод, используемый злоумышленником для внедрения своих вредоносных узлов в списки актуальных одноранговых узлов. Данная атака заключается в отправке списка вредоносных узлов при запросе пользователем актуального списка узлов из сети.

    Эта атака в сочетании с использованием большого количества вредоносных узлов стала ключом к увеличению эффективности атак, которые мы рассмотрим ниже. Она резко увеличила доступную область атаки без увеличения стоимости (или количества) узлов для атакующего.

    Данная атака была сведена на нет с помощью PR7072

    Некорректное отображение высоты блока

    Это была одна из первых серьёзных атак. Кстати, она тоже очень проста. Злоумышленник отредактировал общедоступный код Monero, чтобы заставить узлы сообщать о неверной высоте. Затем, когда злонамеренный узел запрашивал высоту актуального блока, он в ответ получал информацию, что высота на самом деле не соответствует актуальной высоте блокчейна.

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

    Эта атака была нивелирована и смягчена за счёт увеличения количества исходящих соединений для одноранговых узлов по умолчанию.

    В теории данная атака не так опасна, как может показаться, но требует тщательного контроля со стороны разработчиков и пользователей.

    Слежка за транзакциями

    Данный вид атаки был озвучен самим злоумышленником. Эта попытка связать IP-адреса узлов с определёнными транзакциями путём рассылки спама через списки одноранговых узлов, как мы описывали выше, а затем производилась попытка связать конкретную транзакцию с IP адресом пользователя или узла, с которого она была отправлена.

    Эта атака является наиболее опасной, поскольку она может позволить связать транзакцию с IP-адресом пользователя или узла, если тот не использует Tor/i2p сети. К счастью, в Monero реализован Dandelion++, из-за которого узлам в сети очень сложно детерминировано связывать IP-адреса с транзакциями, поскольку транзакции ретранслируется в сеть с задержкой (проходя через фазу стебля) и отдельной стадией рандомизации, а только затем «передаются» остальной части сети после определённого количества переходов (или тайм-аута) к стадии пуха.

    Использование Dandelion++ резко увеличивает долю сети, которую злоумышленник должен контролировать для связывания IP-адресов с транзакциями.

    Снижение последствий данной атаки возможно путём использования Dandelion ++ и /или Tor/i2p.

    DoS-атака кошелька через высоту блока

    Эта атака представляет собой простую DoS-атаку, которая зависит от ожидаемого поведения кошелька Monero. Такое поведение не позволяет кошельку показывать или отправлять новые транзакций, пока узел не будет полностью синхронизирован.

    Из-за этого поведения, любому кошельку, подключённому к вредоносным узлами, будет всплывать сообщение, что высота не соответствует допустимой высоте блока.

    Данная атака была сведена на нет с помощью PR7055, PR6961, PR7138, PR7188 и PR7135.

    DoS-атака посредством сброса транзакции в фазе стебля

    Эта конкретная атака вызвала у пользователей много головной боли, поскольку любой, кто использовал «Простой режим» в Monero GUI, сталкивался с данной проблемой. Если первый узел, через который была отправлена транзакция, был вредоносным, «Простой режим» не мог правильно ретранслировать транзакцию после тайм-аута Dandelion++ через другие узлы, что приводило к полной ошибки отправки транзакции.

    Данная часть атаки была сведена на нет с помощью PR c изменениями кодовой базы и и использованием Dandelion++.

    Другие способы снижения угроз, которые вы можете использовать
    Большинство из приведённых ниже средств защиты будут уже знакомы более осведомленным или технически подкованным пользователям. Итак, давайте по порядку:
    • Рекомендуем использовать свой собственный узел и постоянно следить за его состоянием/статусом
    • Если вы используете собственный узел, обязательно обновите его до последней версии
    • Старайтесь использовать анонимные сети, такие как Tor или i2p, для ретрансляции транзакций
    • Используйте команду --ban-list, чтобы исключить возможность подключения к узлам злоумышленника (это временная мера, которая больше не нужна после v0.17.1.8, но ее все еще можно использовать для явной блокировки заведомо вредоносных узлов.)
    Заключение

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

    К счастью, в Monero злоумышленники могут получить гораздо меньше данных, чем в большинстве других криптовалют, поскольку транзакции по умолчанию скрывают отправителя, получателя и сумму транзакции. Это снижает влияние большей части атак на сеть, но пользователи не должны пренебрегать своей защитой и должны следовать советам, упомянутым выше.

    Последнее важное замечание: ни одна из этих атак не повлияла на сам протокол Monero - все меры по обеспечению конфиденциальности в сети остаются неизменными. Эти атаки нацелены иной уровень инфраструктуры, который используется большей частью других децентрализованных криптовалют.

    Если у вас есть какие-либо вопросы, касающиеся данного исследования, или вы хотите получить дополнительную информацию о конкретном аспекте любой из атак, свяжитесь с нами через Twitter, Keybase или электронную почту.

    Спасибо за внимание!

    Спасибо, selsta, за то, что помог мне составить хронологический график атак и посвятил меня в некоторые механизмы атак, а также спасибо всем разработчикам Monero, которые продолжают совершенствовать средства защиты от подобных атак на сеть.

    ---

    Источник: A Brief Breakdown of Monero’s Ongoing Network Attacks

    Перевод:
    Mr. Pickles (@v1docq47)
    Редактирование:
    Agent LvM (@LvMi4)
    Коррекция:
    Kukima (@Kukima)
     
    #1 Mr. Pickles, 5 янв 2021
    Последнее редактирование: 6 янв 2021
    Сатошин нравится это.
  • О нас

    Наш сайт является одним из уникальных мест, где русскоязычное сообщество Monero может свободно общаться на темы, связанные с этой криптовалютой. Мы стараемся публиковать полезные мануалы и статьи (как собственные, так и переводы с английского) о криптовалюте Monero. Если вы хорошо владеете английским (или можете писать собственные статьи/мануалы) и хотите помочь в переводах и общем развитии Monero для русскоязычной аудитории - свяжитесь с одним из администраторов.