Перевод О сборе метаданных IP злоумышленниками

Тема в разделе "Статьи", создана пользователем Mr. Pickles, 13 дек 2018.

  1. Mr. Pickles

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

    Регистрация:
    11 сен 2017
    Сообщения:
    328
    Симпатии:
    122
    Анализ метаданных IP — проблема отнюдь не новая. Не первый год людей волнует возможность утечки данных их IP, с которого была проведена транзакция. Bitcoin Core предлагает простой механизм соединения через Tor. Несколько форков Bitcoin сделали себе имя за счёт реализации возможностей защиты конфиденциальности данных, обеспечиваемых Tor.

    1.png

    Ясно дело, появилась и монета под названием TorCoin, что совершенно неудивительно. Она не зарегистрирована ни на одной из бирж.

    Tor — это только один из компонентов защиты анонимности криптовалют. В целом гораздо важнее скрыть информацию на уровне блокчейна, так как со временем доступ к ней может получить каждый. В то же самое время информация, которая раскрывается при публикации вашей транзакции, становится доступной всего нескольким лицам, и только злоумышленники (независимые поставщики услуг в сети Internet, национальные государства) или исследователи могут зарегистрировать эту информацию. Если я лично расплачиваюсь в кофейне, используя Bitcoin или другую прозрачную криптовалюту, то Tor никак не может мне помочь, и я не смогу скрыть свой баланс от торговца.

    Кроме того, наблюдается недостаток проверки при просмотре метаданных IP. Предположим, пользователь A проводит транзакцию на узел B, которая затем перенаправляется на узел C. Узел C получает только IP-адрес узла B, и ему не известно, является ли узел B единственным отправителем транзакции. Точно так же узлу B неизвестно, была или нет данная транзакция направлена с другого узла, или же она была получена им напрямую от пользователя.

    Безусловно, ситуация меняется, если вы используете удалённые узлы. В этом случае удалённому узлу, несомненно, известно, что транзакция пришла с вашего IP. Если вас волнует ваша анонимность, но вы при этом используете удалённые узлы, то вам лучше использовать другой метод анонимизации или же доверить удалённому узлу уничтожение ваших данных.

    Я не собираюсь писать о лучших на сегодняшний день механизмах, которые позволят вам защитить метаданные вашего IP Monero от анализа (тут вы можете воспользоваться этим руководством от Whonix, этим руководством от Qubes или этим руководством от fireice_uk). Вместо этого я собираюсь поговорить о количестве узлов, которое необходимо контролировать злоумышленнику, чтобы подсоединиться напрямую к определённому проценту узлов сети. Эти методы предназначены для анализа Monero, но также могут быть использованы в отношении любой криптовалюты. В конце статьи мною прилагается таблица для Bitcoin.

    Как много узлов необходимо злоумышленнику, чтобы подсоединиться к максимальному количеству пользователей?

    На момент написания этой статьи в сети Monero насчитывалось приблизительно 1700 узлов (примечание: «ручное» сканирование даёт число более близкое к 3200 узлам). По умолчанию демон-программа Monero подсоединяется к 8 узлам. Следовательно, нам необходимо решить математическую задачу, чтобы узнать, с каким процентом узлов сможет соединиться злоумышленник, используя определённое количество вредоносных узлов. С точки зрения отдельно взятого пользователя, мы проверим вероятность соединения с 1 или несколькими вредоносными узлами из 8.

    Я использовал следующую формулу Excel. Может, кто-нибудь сможет сделать так, чтобы она выглядела аккуратнее:

    HTML:
    =1-BINOM.DIST(1,8,PROPORTION CONTROLLED BY ATTACKER,TRUE)+BINOM.DIST(1,8,PROPORTION CONTROLLED BY ATTACKER,FALSE)
    2.png

    Вы можете увидеть процент узлов, который необходимо контролировать злоумышленнику (первая колонка), чтобы подсоединиться к общему проценту узлов сети (четвёртая колонка). Во второй колонке указано то количество узлов, которое понадобится злоумышленнику, чтобы проверить, находятся они уже под контролем или нет. В колонке 3 указано количество, которое понадобится, чтобы проверить, нужно ли начинать с нуля (если на тот момент контролируется 0 узлов). Проценты остаются теми же, поэтому по мере разрастания сети, по мере добавления новых узлов злоумышленнику понадобится большее количество узлов для их контроля.

    Так как злоумышленнику нужно «захватить» всего лишь 1 из 8 соединений на узел, он может получить значительное количество информации, используя относительно небольшое количество узлов.

    Как много независимых злоумышленников реально может получить доступ к информации?

    3.png

    Затем я решил провести другую проверку, которая позволила бы определить максимальное количество злоумышленников, способных заполучить определённый уровень контроля над IP данными транзакций. Предположим, двум никак не связанным злоумышленникам захотелось получить максимально возможный доступ к сети, чтобы контролировать тысячи узлов. Ирония заключается в том, что эти два злоумышленника конкурируют друг с другом. Если никто, кроме них, не контролирует никаких узлов, то каждый злоумышленник будет контролировать половину, что позволит им наблюдать за большинством узлов (см. первый рисунок — это более 99%).

    Предположим, 10 равных по своим возможностям злоумышленников конкурируют друг с другом. В этом случае они будут наблюдать примерно за 60% узлов. Только 4 независимых злоумышленника способны напрямую подсоединиться более чем к 90% узлов. В целом, чем мотивированней будут злоумышленники, тем меньшее количество информации сможет увидеть каждый из них. Это интересное явление. Ни одна страна в мире, например, не сможет как следует просматривать метаданные IP, если только такие страны не начнут делиться друг с другом информацией. Активные злоумышленники напрямую конкурируют друг с другом, в то время как пассивные (например, поставщики услуг в сети Internet) смогут контролировать больше узлов.

    Почему бы не сократить количество узлов, с которыми соединяется пользователь?

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

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

    А что насчёт Bitcoin?

    Когда я писал эту статью, в сети Bitcoin насчитывалось около 10 000 узлов. Вторая цифра не меняется, но первая — да.

    4.png

    Так как Bitcoin Core по умолчанию производит 8 исходящих соединений , злоумышленнику понадобится захватить примерно 1000 узлов, чтобы напрямую подсоединиться к половине узлов.

    Заключение

    Это просто небольшой забавный эксперимент, который я провёл сегодня. Пользователям необходимо знать о том, что можно сделать, чтобы заполучить метаданные их IP. Сервера, предоставляющие хостинг для таких компаний, как Amazon и Digital Ocean, вероятно, контролируют заметный процент всех сетевых узлов, поэтому они могут просматривать метаданные IP (даже если они не будут конфигурированы для соединения с таким количеством узлов по умолчанию). Безусловно, необходимо помнить о том, что это только эвристика. Даже если злоумышленник подсоединится к большинству других узлов напрямую, он не сможет узнать, проводится ли транзакция напрямую оператором этого узла, или же она проводится другим узлом и просто ретранслируется. Тем не менее такие атаки становятся более эффективными, если контролируется примерно 20 или более процентов от общего количества узлов. Пользователям следует предпринимать все необходимые меры, чтобы защитить свои IP, если они не хотят, чтобы их метаданные попали в чужие руки.

    Источник: Attacker Collection of IP Metadata

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

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