D2
Администратор
- Регистрация
- 19 Фев 2025
- Сообщения
- 4,380
- Реакции
- 0
Отслеживание транзакций wannacry 2.0 Monero
Недавно появились утечки слайдов, принадлежащих компании Chainalysis. В них утверждается, что транзакции Monero, связанные с вымогательством WannaCry 2.0, были отслежены, поскольку они были конвертированы обратно в прозрачные блокчейны BTC и BCH. Здесь я показываю, как можно было отследить средства WannaCry 2.0, используя общедоступную информацию.
Coindesk более подробно рассказал о содержании слайдов и новой информации, содержащейся в них. Здесь я сосредоточусь на одном конкретном утверждении, связанном с Monero. Согласно переводу этих слайдов, который был опубликован в Twitter, Chainalysis превозносит свою способность отслеживать транзакции Monero, ссылаясь на атаку вымогателей WannaCry 2.0. Перевод гласит: "Wannacry 2.0: средства отслеживаются от BTC к XMR и обратно к BTC и BCH через 3 месяца". Здесь я покажу, как можно отследить транзакции BTC - XMR - BCH с помощью общедоступных блокчейн-исследователей и API.
Насколько мне известно, это первый публичный пример реального отслеживания Monero с транзакциями ringCT. Ранее примеры реального отслеживания Monero были опубликованы в 2017 году Мёзером М. и другими [1]. Однако в этой работе рассматривались транзакции Monero до внедрения кольцевых конфиденциальных транзакций (RingCT) - технологического достижения, которое значительно улучшило конфиденциальность транзакций Monero, скрыв количество XMR в транзакции.[2] Этот метод использует атаку "Ева-Алиса-Ева" (EAE), которая была хорошо описана [3], и частично была облегчена криптовалютной биржей, которая слила данные о входящих и исходящих транзакциях.
Поскольку статья носит технический характер, ее целевой аудиторией являются люди, знакомые с тем, как отслеживаются другие криптовалюты, такие как биткоин.
В мае 2017 года вымогательская программа WannaCry 2.0 заразила сотни тысяч компьютеров по всему миру, нанеся ущерб на сумму от сотен миллионов до миллиардов долларов.[4] Вымогатель требовал от владельцев зараженных компьютеров отправить биткойны на один из трех биткойн-адресов, чтобы расшифровать их файлы. По предварительным данным, фирмы, занимающиеся кибербезопасностью, приписывают
северокорейской "Группе Лазаря". В этой статье я буду называть "Lazarus" тех, кто осуществлял эти транзакции.
Многие знакомы с вредоносной программой WannaCry не только из-за масштабов атаки, но и благодаря истории британского исследователя вредоносного ПО Маркуса Хатчинса, который смог остановить атаку, зарегистрировав "воронку", выполнявшую функцию killswitch. Позже он был арестован ФБР и обвинен в деле, которое озадачило многих наблюдателей, но в итоге признал себя виновным и был приговорен к отбыванию срока и одному году освобождения под надзором. [5] Люди, следящие за киберпреступлениями, до сих пор периодически спорят, был ли WannaCry 2.0 выпущен намеренно, или же ему удалось сбежать во время разработки, как это обычно бывает с червями.
Отслеживание биткоина WannaCry до Monero
Вредоносная программа WannaCry впервые появилась в мае 2017 года и за первые 2 с половиной месяца после своего появления вымогала около 52 BTC выкупов. 3 августа 2017 года BTC начали перемещаться через множество различных биткоин-адресов. В сентябре 2017 года компания Neutrino (позже приобретенная Coinbase) опубликовала статью, в которой описала, как Neutrino использовала свои "возможности P-Flow" для отслеживания BTC WannaCry, поскольку они были конвертированы в Monero месяцем ранее, 3 августа 2017 года. [5] Эта форма обфускации криптовалюты известна в индустрии как "перепрыгивание цепочки", когда кто-то пытается скрыть источник или место назначения криптовалютных токенов, конвертируя их в криптовалюту, ориентированную на конфиденциальность (почти всегда Monero). [6] Некоторые конвертации BTC→XMR осуществлялись через криптовалютную биржу ShapeShift, которая в то время не требовала от пользователей указывать электронную почту или любую другую личную информацию (хотя, судя по всему, ShapeShift также регистрировала IP-адрес и данные User-Agent). [7]
Используя данные из статьи Нейтрино, а также API ShapeShift, я смог получить список всех депозитов WannaCry 2.0 в BTC и соответствующих исходящих транзакций XMR. Повторение части этого анализа, касающейся BTC, "оставлено читателю в качестве упражнения".
Как отследить WannaCry 2.0 Monero
Шаг 1: Отметить выходы для трассировки
На данном этапе анализа у нас есть список транзакций Monero, которые были отправлены ShapeShift организации, разместившей BTC WannaCry, - Lazarus.
Давайте подробнее рассмотрим первую исходящую транзакцию ShapeShift XMR на скриншоте xmrchain.info ниже. Как и в биткоине, в Monero используется модель UTXO. Каждая транзакция использует неизрасходованные транзакционные выходы (UTXO) в качестве входов и отправляет выходы. Не существует никакой конвенции о том, как называть выходы транзакций Monero. Я называю их "TXOs", когда они используются как существительное, и "output", когда они используются как глагол.
В отличие от прозрачного блокчейна Биткойна, где можно легко узнать публичный адрес, на который поступают средства, в Monero невозможно достоверно определить адрес получателя транзакции, используя только общедоступные данные блокчейна. Однако можно получить некоторую полезную информацию. В данном случае я сосредоточился на целочисленных идентификаторах TXO. Как видно на рисунке ниже, мы знаем, что транзакция имеет 3 TXO: [1823678, 1823679, 1823680]. Как и в большинстве транзакций Биткойна, большинство транзакций XMR посылают 2 или более TXO. Один из этих TXO обычно является "выходом изменений (TXO)", который возвращается к отправителю транзакции. Другой TXO (ы) отправляется получателю - в данном случае Lazarus.*
Шаг 2: Определите транзакции, которые расходуют отмеченные TXO
В отличие от транзакций Bitcoin, транзакции Monero RingCT генерируют "кольцевую подпись", которая скрывает реальный вход транзакции среди нескольких ложных входов-"приманок", любой из которых может оказаться "настоящим" TXO. Количество приманок, включенных в транзакцию в дополнение к реальному вводу, называется "размером кольца", и в то время, когда эти транзакции проводились, отправитель транзакции мог выбрать размер кольца (позже он был жестко закодирован на 11, то есть 10 приманок и 1 настоящий TXO). На рисунке ниже показана часть скриншота транзакции на xmrchain.info. Невозможно потратить TXO, не включив его в кольцо, и один из членов кольца в каждом кольце обязательно контролируется отправителем транзакции. Остальные члены кольца являются приманками. На скриншоте показан "стелс-адрес" каждого TXO - однако эти TXO также имеют соответствующий целочисленный идентификатор или "индекс" (Таблица 1).
Затем я просто искал каждую транзакцию, которая включала отмеченные TXO в качестве членов кольца. Ниже приведен примерный список некоторых из этих транзакций:
Мой код выявил 4 транзакции, которые включали более 1 отмеченного TXO в своих кольцах. Три из этих транзакций произошли примерно в одно и то же время 17 августа - примерно через две недели после транзакций BTC →ShapeShift →XMR 8/3/17. В этом анализе использовалась разновидность ранее описанной "эвристики объединения вывода".[9] Эти транзакции могут быть ShapeShift, консолидирующим TXO, могут быть Lazarus, тратящим отмеченные TXO, или они могут быть совершенно несвязанными и чисто случайными.† На самом деле, одна из 4 выявленных транзакций, скорее всего, была нецелевым попаданием.‡ Три положительных попадания показаны в таблице 2. В одном из положительных совпадений было потрачено 2 отмеченных TXO, а также два входа, которые мы не отметили. Вторая транзакция потратила 5 помеченных TXO и два не помеченных TXO. Неизвестные TXO могли быть получены с биржи Changelly, которую актеры Lazarus использовали в дополнение к ShapeShift. В отличие от ShapeShift, API Changelly не позволяет легко получить данные об исходящих транзакциях, хотя вполне вероятно, что правоохранительные органы располагают этими TXID.
Точная статистика, используемая для определения того, действительно ли транзакция тратит отмеченные TXO или это просто нецелевое попадание, "выходит за рамки этой статьи" и не нужна в данном случае. Вот пример "математики на салфетке" о вероятности случайного включения этих транзакций:
Короче говоря, хотя это и "вероятностный" анализ, вероятность того, что 7 отмеченных TXO будут случайно выбраны в качестве приманки в транзакции с 7 входами, астрономически мала.
Я называю транзакции в таблице 2 "транзакциями консолидации", поскольку они объединили все ShapeShift TXO в то, что, возможно, было новым кошельком. Возможно, это также была неудачная попытка "оттока". Транзакции консолидации примечательны тем, что содержат более 2 TXO; в то время, когда эти транзакции происходили, два самых популярных кошелька, Monero GUI Wallet и Cake Wallet, генерировали только транзакции с ровно 2 TXO (1 TXO для смены и 1 TXO для получателя транзакции, сейчас они допускают до 15 получателей). Поскольку консолидационные транзакции содержат более 2 TXO, они, скорее всего, были сделаны с помощью кошелька командной строки "Monero Wallet CLI", который недоступен для начинающих пользователей.
3. Мы выявили несколько транзакций, связанных с Лазарем, что теперь?
Я не знаю, почему консолидационные транзакции Lazarus выводили 4 или 8 TXO, а не 2, как по умолчанию. Это значительно упрощает отслеживание средств, поскольку теперь у нас есть 20 TXO, связанных с Lazarus, - по сравнению с 6, если бы они совершили 3 транзакции оттока с 2 TXO каждая. Как и на предыдущем этапе, я искал в блокчейне транзакции, включающие отмеченные TXO из транзакций консолидации.
Я просмотрел транзакции, в которых были отмечены TXO, и заметил скопление транзакций, которые произошли примерно в одно и то же время 2 ноября 2017 года - примерно через 3 месяца после первоначальных транзакций BTC→ShapeShift→XMR.
Ранее я обещал читателю атаку EAE - первым шагом "Евы" было получение исходящих TXID от ShapeShift. Затем мы определили транзакции консолидации Лазаря (Алисы). Теперь настало время для второго трюка "Евы":
API ShapeShift не требует аутентификации и позволяет любому человеку запросить статус депозита в ShapeShift, просто предоставив уникальный адрес депозита, созданный для пользователя ShapeShift. (См. примечание §: ShapeShift устранила утечку данных в результате этой статьи). Некоторые читатели, возможно, сейчас подумают: "Минуточку, разве вы не говорили, что невозможно идентифицировать скрытые адреса депозитов Monero с помощью данных блокчейна?". Ответ на этот вопрос - "да". Однако до ноября 2019 года API ShapeShift не использовал адреса Monero для своего API. Вместо этого они использовали уже вышедшие из употребления 32-байтовые платежные идентификаторы. Эти платежные идентификаторы прозрачны и легко доступны из блокчейна. Это означает, что все депозиты XMR в ShapeShift, в которых использовались 32-байтовые платежные идентификаторы, и связанные с ними транзакции вывода средств на прозрачный блокчейн были легко доступны, и эту информацию следует считать открытой. §
Ниже показан пример одной из таких транзакций XMR-депозита и API-запроса с выделенным идентификатором платежа. Если сделать запрос в API ShapeShift, то выяснится, что отправитель (в данном примере Lazarus) пополнил счет ShapeShift на 60 XMR и вывел около 8,55 BCH на адрес 13tz3oD75Y4jcGds6rPJawnxHjXduTmpap.
Если вы нажмете на член кольца, который тратится на xmrchain.info, это приведет вас к транзакции консолидации, которая произвела этот TXO. К сожалению, в настоящее время xmrchain.info показывает только стелс-адрес, связанный с TXO, а не человекочитаемый целочисленный идентификатор.
В общей сложности мне удалось найти 9 депозитов, которые потратили XMR из консолидационных транзакций, отправив в общей сложности 536 XMR в ShapeShift в обмен на 78.39291766 BCH на тот же адрес. Эти 9 транзакций - единственные 9, полученные этим адресом BCH. Транзакции XMR также сформировали "пилинговую цепочку" на блокчейне Monero, где транзакции тратили некоторые изменения TXO от предыдущих транзакций XMR → ShapeShift → BCH. Ниже приведена таблица со всеми транзакциями XMR →ShapeShift →BCH, а также график, показывающий все описанные здесь транзакции.
Резюме и выводы
3 августа 2017 года Lazarus конвертировал BTC в 820.79942522 XMR через ShapeShift и неизвестное количество монет Monero (XMR) через Changelly (еще одна обменная платформа, не имеющая почтовых инстансов). Лазарь консолидировал XMR, полученные от Shapeshift, в трех транзакциях 17 августа 2017 года, около 06:20 UTC. Затем, 2 ноября 2017 года, Лазарь конвертировал 536 XMR в BCH с помощью ShapeShift.io посредством 9 транзакций.
Для трассировки использовался код собственной разработки, который выполнял RPC-вызовы Monero Daemon, и дополнялся данными с сайта xmrchain.info и API ShapeShift.
Несколько факторов сделали трассировку в этом примере особенно простой. Во-первых, ShapeShift ограничивал количество валюты, которое можно было конвертировать в одной транзакции, что означало, что Lazarus должен был совершить несколько транзакций BTC→ShapeShift→XMR. Это давало больше заметных TXO и облегчало идентификацию транзакций консолидации. Во-вторых, транзакции консолидации Lazarus имели больше, чем стандартные 2 выхода, что опять же создавало больше флаговых TXO. В-третьих, Lazarus отправлял все свои XMR на один и тот же BCH-адрес, что дает нам дополнительную уверенность в том, что все транзакции XMR→ShapeShift→BCH связаны между собой и были проведены Lazarus.
В 2019 году Monero отказалась от прозрачных 32-байтовых идентификаторов платежей, которые делали этот анализ возможным. Сегодня Monero использует зашифрованные платежные идентификаторы или субадреса, которые невозможно использовать для идентификации адресов депозитов. Кроме того, Monero заставила все транзакции использовать ровно 10 приманок, что снижает степень достоверности, получаемую с помощью этих методов, по сравнению с транзакциями с использованием всего 4 приманок.
Cake Wallet и Monero GUI Wallet теперь позволяют нетехническим пользователям отправлять несколько TXO в одной транзакции, поэтому теперь невозможно отследить Monero Wallet CLI или пользовательское программное обеспечение кошелька на основе количества TXO.
Тем не менее, этот пример показывает, что "вероятностный" анализ может привести к очень высокой достоверности при отслеживании Monero. Он показывает, что даже спонсируемые государством субъекты могут быть отслежены при ненадлежащем использовании Monero. Хотя большинство бирж не предоставляют информацию обо всех своих депозитах и снятиях Monero, этот пример служит демонстрацией того, что отслеживание Monero иногда возможно при утечке, краже или получении законным путем данных на уровне биржи.
Информация из этой утечки также может быть использована наряду с другими атаками на Monero, такими как недавно описанная флуд-атака [10], для повышения надежности атак EAE.
Представленная здесь информация об отслеживании является неполной и служит лишь для демонстрации того, как может быть осуществлена такая EAE-атака.
По состоянию на февраль 2021 года Минюст США предъявил обвинения в причастности к атакам WannaCry трем северокорейским хакерам. [11]
Примечания
Еще один человек внес вклад в это исследование на уровне авторства, но в настоящее время по уважительным причинам не назван. Авторство может быть обновлено в будущем.
Некоторые дополнительные данные представлены на сайте https://github.com/nickbax/wannacry_monero_tracing. Они могут быть обновлены в будущем.
*ShapeShift немного необычен тем, что иногда он отправлял транзакции с 3 выходами, а иногда только с 2.
†Есть еще несколько необычных крайних случаев, но я не думаю, что какой-либо из них имеет место в данном примере.
‡https://xmrchain.info/tx/9e0476aa390a8d91668d28aa27bcf7da721c73a07529f56ae49381af6d940a1e - это транзакция с 14 входами и абсурдно большим размером кольца в 220, что означает, что выбрано 3 066 приманок, что увеличивает вероятность случайного выбора 2 помеченных TXO в качестве приманок.
§ Некоторые люди считают это утечкой данных, поэтому я ответственно сообщил об этом ShapeShift через их программу bug bounty. В результате моего раскрытия эта ошибка была исправлена 9/24/2021. По моим оценкам, пострадали примерно 100 000 депозитов XMR и еще 250 000 снятий XMR. API все еще сливает небольшое количество информации о том, был ли депозит отправлен в ShapeShift, но не сливает никакой информации о сумме или исходящем адресе.
Суть моего разоблачения заключалась в следующем:
*Я ошибочно использовал термин "скрытый адрес" вместо термина "субадрес" в этом раскрытии.
Благодарности
Спасибо моим друзьям и всем членам сообществ Stanford и Monero, которые помогли мне в рецензировании этой рукописи.
Ссылки
Финансовая информация: Ник Бакс владеет BTC, XMR и другими криптовалютами. Компания Ника Бакса, Five I's LLC, предоставляет консалтинговые услуги по различным темам, связанным с криптовалютами, включая криминалистику.
=============================================================================
Переведено S3VE7N по просьбе admin
оригинал статьи: https://medium.com/@nbax/tracing-the-wannacry-2-0-monero-transactions-d8c1e5129dc1
Недавно появились утечки слайдов, принадлежащих компании Chainalysis. В них утверждается, что транзакции Monero, связанные с вымогательством WannaCry 2.0, были отслежены, поскольку они были конвертированы обратно в прозрачные блокчейны BTC и BCH. Здесь я показываю, как можно было отследить средства WannaCry 2.0, используя общедоступную информацию.
Coindesk более подробно рассказал о содержании слайдов и новой информации, содержащейся в них. Здесь я сосредоточусь на одном конкретном утверждении, связанном с Monero. Согласно переводу этих слайдов, который был опубликован в Twitter, Chainalysis превозносит свою способность отслеживать транзакции Monero, ссылаясь на атаку вымогателей WannaCry 2.0. Перевод гласит: "Wannacry 2.0: средства отслеживаются от BTC к XMR и обратно к BTC и BCH через 3 месяца". Здесь я покажу, как можно отследить транзакции BTC - XMR - BCH с помощью общедоступных блокчейн-исследователей и API.
Wannacry 2.0: средства отслеживаются от BTC к XMR и обратно к BTC и BCH через 3 месяца.
Нажмите, чтобы раскрыть...
Насколько мне известно, это первый публичный пример реального отслеживания Monero с транзакциями ringCT. Ранее примеры реального отслеживания Monero были опубликованы в 2017 году Мёзером М. и другими [1]. Однако в этой работе рассматривались транзакции Monero до внедрения кольцевых конфиденциальных транзакций (RingCT) - технологического достижения, которое значительно улучшило конфиденциальность транзакций Monero, скрыв количество XMR в транзакции.[2] Этот метод использует атаку "Ева-Алиса-Ева" (EAE), которая была хорошо описана [3], и частично была облегчена криптовалютной биржей, которая слила данные о входящих и исходящих транзакциях.
Поскольку статья носит технический характер, ее целевой аудиторией являются люди, знакомые с тем, как отслеживаются другие криптовалюты, такие как биткоин.
Вредоносная программа WannaCryПереведенный текст из утечки слайдов упоминает отслеживание средств WannaCry 2.0 от BTC до XMR и обратно до Bitcoin Cash (BCH).
Нажмите, чтобы раскрыть...
В мае 2017 года вымогательская программа WannaCry 2.0 заразила сотни тысяч компьютеров по всему миру, нанеся ущерб на сумму от сотен миллионов до миллиардов долларов.[4] Вымогатель требовал от владельцев зараженных компьютеров отправить биткойны на один из трех биткойн-адресов, чтобы расшифровать их файлы. По предварительным данным, фирмы, занимающиеся кибербезопасностью, приписывают
северокорейской "Группе Лазаря". В этой статье я буду называть "Lazarus" тех, кто осуществлял эти транзакции.
Многие знакомы с вредоносной программой WannaCry не только из-за масштабов атаки, но и благодаря истории британского исследователя вредоносного ПО Маркуса Хатчинса, который смог остановить атаку, зарегистрировав "воронку", выполнявшую функцию killswitch. Позже он был арестован ФБР и обвинен в деле, которое озадачило многих наблюдателей, но в итоге признал себя виновным и был приговорен к отбыванию срока и одному году освобождения под надзором. [5] Люди, следящие за киберпреступлениями, до сих пор периодически спорят, был ли WannaCry 2.0 выпущен намеренно, или же ему удалось сбежать во время разработки, как это обычно бывает с червями.
Отслеживание биткоина WannaCry до Monero
Вредоносная программа WannaCry впервые появилась в мае 2017 года и за первые 2 с половиной месяца после своего появления вымогала около 52 BTC выкупов. 3 августа 2017 года BTC начали перемещаться через множество различных биткоин-адресов. В сентябре 2017 года компания Neutrino (позже приобретенная Coinbase) опубликовала статью, в которой описала, как Neutrino использовала свои "возможности P-Flow" для отслеживания BTC WannaCry, поскольку они были конвертированы в Monero месяцем ранее, 3 августа 2017 года. [5] Эта форма обфускации криптовалюты известна в индустрии как "перепрыгивание цепочки", когда кто-то пытается скрыть источник или место назначения криптовалютных токенов, конвертируя их в криптовалюту, ориентированную на конфиденциальность (почти всегда Monero). [6] Некоторые конвертации BTC→XMR осуществлялись через криптовалютную биржу ShapeShift, которая в то время не требовала от пользователей указывать электронную почту или любую другую личную информацию (хотя, судя по всему, ShapeShift также регистрировала IP-адрес и данные User-Agent). [7]
Используя данные из статьи Нейтрино, а также API ShapeShift, я смог получить список всех депозитов WannaCry 2.0 в BTC и соответствующих исходящих транзакций XMR. Повторение части этого анализа, касающейся BTC, "оставлено читателю в качестве упражнения".
Как отследить WannaCry 2.0 Monero
Шаг 1: Отметить выходы для трассировки
На данном этапе анализа у нас есть список транзакций Monero, которые были отправлены ShapeShift организации, разместившей BTC WannaCry, - Lazarus.
Скриншот части файла wannashift.json, представленного на github, который показывает количество XMR, отправленных с ShapeShift, а также идентификатор исходящей транзакции.
Нажмите, чтобы раскрыть...
Давайте подробнее рассмотрим первую исходящую транзакцию ShapeShift XMR на скриншоте xmrchain.info ниже. Как и в биткоине, в Monero используется модель UTXO. Каждая транзакция использует неизрасходованные транзакционные выходы (UTXO) в качестве входов и отправляет выходы. Не существует никакой конвенции о том, как называть выходы транзакций Monero. Я называю их "TXOs", когда они используются как существительное, и "output", когда они используются как глагол.
В отличие от прозрачного блокчейна Биткойна, где можно легко узнать публичный адрес, на который поступают средства, в Monero невозможно достоверно определить адрес получателя транзакции, используя только общедоступные данные блокчейна. Однако можно получить некоторую полезную информацию. В данном случае я сосредоточился на целочисленных идентификаторах TXO. Как видно на рисунке ниже, мы знаем, что транзакция имеет 3 TXO: [1823678, 1823679, 1823680]. Как и в большинстве транзакций Биткойна, большинство транзакций XMR посылают 2 или более TXO. Один из этих TXO обычно является "выходом изменений (TXO)", который возвращается к отправителю транзакции. Другой TXO (ы) отправляется получателю - в данном случае Lazarus.*
[В отличие от биткойна] невозможно точно определить адрес получателя транзакции Monero, используя только общедоступные данные блокчейна.
Нажмите, чтобы раскрыть...
Я собрал TXO для всех транзакций из ShapeShift (Таблица 1). Опять же, Monero, представленные этими TXO, контролируются либо ShapeShift, либо Lazarus.Одна из транзакций, отправленных из ShapeShift в группу Lazarus после конвертации украденных BTC в XMR. На данный момент мы знаем, что XMR, отправленные на выходы в пурпурном квадрате, контролируются либо ShapeShift (изменяют TXO), либо Lazarus.
Нажмите, чтобы раскрыть...
Исходящие транзакции XMR из ShapeShift. На данный момент мы считаем, что как минимум 1 TXO из каждой транзакции в колонке "Выходы" отправился в Lazarus и 1 TXO отправился в ShapeShift в качестве TXO изменений. В большинстве случаев имеется 3-й TXO, который мог попасть либо в Lazarus, либо в ShapeShift (позже мы узнаем, что он всегда попадал в Lazarus).
Нажмите, чтобы раскрыть...
Шаг 2: Определите транзакции, которые расходуют отмеченные TXO
В отличие от транзакций Bitcoin, транзакции Monero RingCT генерируют "кольцевую подпись", которая скрывает реальный вход транзакции среди нескольких ложных входов-"приманок", любой из которых может оказаться "настоящим" TXO. Количество приманок, включенных в транзакцию в дополнение к реальному вводу, называется "размером кольца", и в то время, когда эти транзакции проводились, отправитель транзакции мог выбрать размер кольца (позже он был жестко закодирован на 11, то есть 10 приманок и 1 настоящий TXO). На рисунке ниже показана часть скриншота транзакции на xmrchain.info. Невозможно потратить TXO, не включив его в кольцо, и один из членов кольца в каждом кольце обязательно контролируется отправителем транзакции. Остальные члены кольца являются приманками. На скриншоте показан "стелс-адрес" каждого TXO - однако эти TXO также имеют соответствующий целочисленный идентификатор или "индекс" (Таблица 1).
Следующий шаг в этом анализе - выявление транзакций, которые расходуют TXO, отмеченные нами как принадлежащие ShapeShift или Lazarus. Для этого я создал базу данных всех TXO RingCT в блокчейне Monero и всех транзакций/колец, включающих TXO в качестве члена кольца. Упрощенная версия этой базы данных имеет следующий формат: TXO,[Список TXID].Скриншот транзакции, которая проводит в общей сложности 7 входов. Показаны первые два входа и их кольца. Каждый вход имеет отдельное "кольцо", состоящее из 1 тратящегося TXO и 4 приманок. Один из членов кольца обязательно является настоящим тратящимся TXO. Предположительно, вероятность того, что каждый член кольца является настоящим TXO, используемым в качестве входа, одинакова.
Нажмите, чтобы раскрыть...
Затем я просто искал каждую транзакцию, которая включала отмеченные TXO в качестве членов кольца. Ниже приведен примерный список некоторых из этих транзакций:
В транзакциях, выделенных жирным шрифтом, было потрачено 2 и более TXO, отмеченных в транзакциях Lazarus BTC →ShapeShift →XMR. Выделенный жирным шрифтом TXID, начинающийся с '9e0476', является примером ложного срабатывания (см. сноски).
Нажмите, чтобы раскрыть...
Мой код выявил 4 транзакции, которые включали более 1 отмеченного TXO в своих кольцах. Три из этих транзакций произошли примерно в одно и то же время 17 августа - примерно через две недели после транзакций BTC →ShapeShift →XMR 8/3/17. В этом анализе использовалась разновидность ранее описанной "эвристики объединения вывода".[9] Эти транзакции могут быть ShapeShift, консолидирующим TXO, могут быть Lazarus, тратящим отмеченные TXO, или они могут быть совершенно несвязанными и чисто случайными.† На самом деле, одна из 4 выявленных транзакций, скорее всего, была нецелевым попаданием.‡ Три положительных попадания показаны в таблице 2. В одном из положительных совпадений было потрачено 2 отмеченных TXO, а также два входа, которые мы не отметили. Вторая транзакция потратила 5 помеченных TXO и два не помеченных TXO. Неизвестные TXO могли быть получены с биржи Changelly, которую актеры Lazarus использовали в дополнение к ShapeShift. В отличие от ShapeShift, API Changelly не позволяет легко получить данные об исходящих транзакциях, хотя вполне вероятно, что правоохранительные органы располагают этими TXID.
3 транзакции, которые провели несколько отмеченных выходов, известных как связанные с транзакциями ShapeShift Лазаруса, а также выходы (TXO) этих транзакций.
Нажмите, чтобы раскрыть...
Точная статистика, используемая для определения того, действительно ли транзакция тратит отмеченные TXO или это просто нецелевое попадание, "выходит за рамки этой статьи" и не нужна в данном случае. Вот пример "математики на салфетке" о вероятности случайного включения этих транзакций:
Приманки выбираются из пула, насчитывающего более 100 000 выходов. Вероятность того, что конкретный вывод Lazarus будет выбран в качестве приманки, составляет не более 1 к 100 000. Мы следим за 23 выходами, чтобы убедиться, что они потрачены, поэтому вероятность того, что один из этих выходов будет выбран, составляет не более 23 из 100 000. В каждом кольце 5 членов, поэтому 5 шансов включить выход Lazarus (5*23)/100 000 или 0,00115. Вероятность того, что
того, что 7 выходов будут выбраны в качестве приманки в одной и той же транзакции, составляет примерно 0,00115^7 или, что составляет 2,6 × 10^-21 или 0,00000000000000000026%.
Нажмите, чтобы раскрыть...
Короче говоря, хотя это и "вероятностный" анализ, вероятность того, что 7 отмеченных TXO будут случайно выбраны в качестве приманки в транзакции с 7 входами, астрономически мала.
Я называю транзакции в таблице 2 "транзакциями консолидации", поскольку они объединили все ShapeShift TXO в то, что, возможно, было новым кошельком. Возможно, это также была неудачная попытка "оттока". Транзакции консолидации примечательны тем, что содержат более 2 TXO; в то время, когда эти транзакции происходили, два самых популярных кошелька, Monero GUI Wallet и Cake Wallet, генерировали только транзакции с ровно 2 TXO (1 TXO для смены и 1 TXO для получателя транзакции, сейчас они допускают до 15 получателей). Поскольку консолидационные транзакции содержат более 2 TXO, они, скорее всего, были сделаны с помощью кошелька командной строки "Monero Wallet CLI", который недоступен для начинающих пользователей.
3. Мы выявили несколько транзакций, связанных с Лазарем, что теперь?
Я не знаю, почему консолидационные транзакции Lazarus выводили 4 или 8 TXO, а не 2, как по умолчанию. Это значительно упрощает отслеживание средств, поскольку теперь у нас есть 20 TXO, связанных с Lazarus, - по сравнению с 6, если бы они совершили 3 транзакции оттока с 2 TXO каждая. Как и на предыдущем этапе, я искал в блокчейне транзакции, включающие отмеченные TXO из транзакций консолидации.
Я просмотрел транзакции, в которых были отмечены TXO, и заметил скопление транзакций, которые произошли примерно в одно и то же время 2 ноября 2017 года - примерно через 3 месяца после первоначальных транзакций BTC→ShapeShift→XMR.
Ранее я обещал читателю атаку EAE - первым шагом "Евы" было получение исходящих TXID от ShapeShift. Затем мы определили транзакции консолидации Лазаря (Алисы). Теперь настало время для второго трюка "Евы":
API ShapeShift не требует аутентификации и позволяет любому человеку запросить статус депозита в ShapeShift, просто предоставив уникальный адрес депозита, созданный для пользователя ShapeShift. (См. примечание §: ShapeShift устранила утечку данных в результате этой статьи). Некоторые читатели, возможно, сейчас подумают: "Минуточку, разве вы не говорили, что невозможно идентифицировать скрытые адреса депозитов Monero с помощью данных блокчейна?". Ответ на этот вопрос - "да". Однако до ноября 2019 года API ShapeShift не использовал адреса Monero для своего API. Вместо этого они использовали уже вышедшие из употребления 32-байтовые платежные идентификаторы. Эти платежные идентификаторы прозрачны и легко доступны из блокчейна. Это означает, что все депозиты XMR в ShapeShift, в которых использовались 32-байтовые платежные идентификаторы, и связанные с ними транзакции вывода средств на прозрачный блокчейн были легко доступны, и эту информацию следует считать открытой. §
Ниже показан пример одной из таких транзакций XMR-депозита и API-запроса с выделенным идентификатором платежа. Если сделать запрос в API ShapeShift, то выяснится, что отправитель (в данном примере Lazarus) пополнил счет ShapeShift на 60 XMR и вывел около 8,55 BCH на адрес 13tz3oD75Y4jcGds6rPJawnxHjXduTmpap.
Пример запроса API ShapeShift для одного из депозитов Lazarus в XMR показывает, что на счет 13tz3oD75Y4jcGds6rPJawnxHjXduTmpap было внесено 60 XMR и выведено 8,5513396 BCH. Поле "адрес" (желтое) на самом деле является идентификатором платежа, а не адресом депозита.
Нажмите, чтобы раскрыть...
Если вы нажмете на член кольца, который тратится на xmrchain.info, это приведет вас к транзакции консолидации, которая произвела этот TXO. К сожалению, в настоящее время xmrchain.info показывает только стелс-адрес, связанный с TXO, а не человекочитаемый целочисленный идентификатор.
Транзакция на блокчейне Monero, в которой Lazarus отправил 60 XMR в ShapeShift в обмен на BCH. Реальный вход (выход одной из транзакций консолидации) выделен красным цветом. Идентификатор платежа выделен желтым. Нажав на хэш члена кольца, пользователь перейдет к транзакции, которая вывела TXO.
Нажмите, чтобы раскрыть...
В общей сложности мне удалось найти 9 депозитов, которые потратили XMR из консолидационных транзакций, отправив в общей сложности 536 XMR в ShapeShift в обмен на 78.39291766 BCH на тот же адрес. Эти 9 транзакций - единственные 9, полученные этим адресом BCH. Транзакции XMR также сформировали "пилинговую цепочку" на блокчейне Monero, где транзакции тратили некоторые изменения TXO от предыдущих транзакций XMR → ShapeShift → BCH. Ниже приведена таблица со всеми транзакциями XMR →ShapeShift →BCH, а также график, показывающий все описанные здесь транзакции.
Таблица, показывающая все транзакции Lazarus в формате XMR→ShapeShift→BCH
Нажмите, чтобы раскрыть...
График транзакций, показывающий транзакции Monero в Lazarus. Большие точки - это транзакции. Маленькие точки обозначают TXO для транзакций, с которыми они связаны. TXO также связаны с транзакциями, которые использовали их в качестве входов. [Вверху] Синие транзакции показывают все выходы XMR, полученные Lazarus от ShapeShift. Большинство TXO ушло в Lazarus, но в каждой транзакции было как минимум 1 TXO, который предположительно является TXO изменений. Три транзакции консолидации (розовый цвет) потратили 14 TXO, которые, как известно, пришли из ShapeShift. Три консолидации сгенерировали 20 TXO. Многие из TXO были потрачены 3 цепочками пиринга (фиолетовый, красный, желтый), состоящими из 2-4 транзакций, все из которых отправили 60 XMR в ShapeShift в обмен на BCH, за исключением двух, которые отправили 58 XMR.
Нажмите, чтобы раскрыть...
Резюме и выводы
3 августа 2017 года Lazarus конвертировал BTC в 820.79942522 XMR через ShapeShift и неизвестное количество монет Monero (XMR) через Changelly (еще одна обменная платформа, не имеющая почтовых инстансов). Лазарь консолидировал XMR, полученные от Shapeshift, в трех транзакциях 17 августа 2017 года, около 06:20 UTC. Затем, 2 ноября 2017 года, Лазарь конвертировал 536 XMR в BCH с помощью ShapeShift.io посредством 9 транзакций.
Для трассировки использовался код собственной разработки, который выполнял RPC-вызовы Monero Daemon, и дополнялся данными с сайта xmrchain.info и API ShapeShift.
Несколько факторов сделали трассировку в этом примере особенно простой. Во-первых, ShapeShift ограничивал количество валюты, которое можно было конвертировать в одной транзакции, что означало, что Lazarus должен был совершить несколько транзакций BTC→ShapeShift→XMR. Это давало больше заметных TXO и облегчало идентификацию транзакций консолидации. Во-вторых, транзакции консолидации Lazarus имели больше, чем стандартные 2 выхода, что опять же создавало больше флаговых TXO. В-третьих, Lazarus отправлял все свои XMR на один и тот же BCH-адрес, что дает нам дополнительную уверенность в том, что все транзакции XMR→ShapeShift→BCH связаны между собой и были проведены Lazarus.
В 2019 году Monero отказалась от прозрачных 32-байтовых идентификаторов платежей, которые делали этот анализ возможным. Сегодня Monero использует зашифрованные платежные идентификаторы или субадреса, которые невозможно использовать для идентификации адресов депозитов. Кроме того, Monero заставила все транзакции использовать ровно 10 приманок, что снижает степень достоверности, получаемую с помощью этих методов, по сравнению с транзакциями с использованием всего 4 приманок.
Cake Wallet и Monero GUI Wallet теперь позволяют нетехническим пользователям отправлять несколько TXO в одной транзакции, поэтому теперь невозможно отследить Monero Wallet CLI или пользовательское программное обеспечение кошелька на основе количества TXO.
Тем не менее, этот пример показывает, что "вероятностный" анализ может привести к очень высокой достоверности при отслеживании Monero. Он показывает, что даже спонсируемые государством субъекты могут быть отслежены при ненадлежащем использовании Monero. Хотя большинство бирж не предоставляют информацию обо всех своих депозитах и снятиях Monero, этот пример служит демонстрацией того, что отслеживание Monero иногда возможно при утечке, краже или получении законным путем данных на уровне биржи.
Информация из этой утечки также может быть использована наряду с другими атаками на Monero, такими как недавно описанная флуд-атака [10], для повышения надежности атак EAE.
Представленная здесь информация об отслеживании является неполной и служит лишь для демонстрации того, как может быть осуществлена такая EAE-атака.
По состоянию на февраль 2021 года Минюст США предъявил обвинения в причастности к атакам WannaCry трем северокорейским хакерам. [11]
Примечания
Еще один человек внес вклад в это исследование на уровне авторства, но в настоящее время по уважительным причинам не назван. Авторство может быть обновлено в будущем.
Некоторые дополнительные данные представлены на сайте https://github.com/nickbax/wannacry_monero_tracing. Они могут быть обновлены в будущем.
*ShapeShift немного необычен тем, что иногда он отправлял транзакции с 3 выходами, а иногда только с 2.
†Есть еще несколько необычных крайних случаев, но я не думаю, что какой-либо из них имеет место в данном примере.
‡https://xmrchain.info/tx/9e0476aa390a8d91668d28aa27bcf7da721c73a07529f56ae49381af6d940a1e - это транзакция с 14 входами и абсурдно большим размером кольца в 220, что означает, что выбрано 3 066 приманок, что увеличивает вероятность случайного выбора 2 помеченных TXO в качестве приманок.
§ Некоторые люди считают это утечкой данных, поэтому я ответственно сообщил об этом ShapeShift через их программу bug bounty. В результате моего раскрытия эта ошибка была исправлена 9/24/2021. По моим оценкам, пострадали примерно 100 000 депозитов XMR и еще 250 000 снятий XMR. API все еще сливает небольшое количество информации о том, был ли депозит отправлен в ShapeShift, но не сливает никакой информации о сумме или исходящем адресе.
Суть моего разоблачения заключалась в следующем:
Уязвимость: В документации API ShapeShift указано, что "Статус депозита по адресу" доступен по адресу http://shapeshift.io/txstat/[address].
Однако в случае с транзакциями Monero в период примерно с апреля 2015 года по ноябрь 2019 года API ShapeShift не использует адрес депозита, а вместо этого использует прозрачный 32-байтовый идентификатор платежа, который можно соскоблить с блокчейна. Я разговаривал с многочисленными пользователями и экспертами Monero, которые не знали, что ShapeShift использует для API платежные идентификаторы, а не стелс-адреса*. Это означает, что пользователи полагали, что только они могут видеть статус своих депозитов XMR в ShapeShift (поскольку стелс-адреса Monero не могут быть публично определены), и могут быть удивлены, узнав, что их транзакции могут быть отслежены кем-то с помощью атаки EAE.
Нажмите, чтобы раскрыть...
*Я ошибочно использовал термин "скрытый адрес" вместо термина "субадрес" в этом раскрытии.
Благодарности
Спасибо моим друзьям и всем членам сообществ Stanford и Monero, которые помогли мне в рецензировании этой рукописи.
Ссылки
- Мёзер, М., и др. Эмпирический анализ отслеживаемости в блокчейне Monero. PPET. (2017). https://arxiv.org/pdf/1704.04299/
- Эренхофер, Дж., Ответ на "Эмпирический анализ отслеживаемости в блокчейне Monero", версия 2. Monero Research Labs. (2018). https://www.getmonero.org/2018/03/29/response-to-an-empirical-analysis-of-traceability.html
- Эренхофер, Я., Ноэтер, С. 09: Отравленные выходы (атака EAE). Breaking Monero. (2019). https://www.monerooutreach.org/breaking-monero/poisoned-outputs.html
- Берр, Дж. Убытки от атаки вымогателей "WannaCry" могут достичь 4 миллиардов долларов. MoneyWatch. (2017). https://www.cbsnews.com/news/wannacry-ransomware-attacks-wannacry-virus-losses/
- Гринберг, А. Исповедь Маркуса Хатчинса, хакера, спасшего Интернет. Wired. (2020). https://www.wired.com/story/confessions-marcus-hutchins-hacker-who-saved-the-internet/
- Команда исследователей нейтрино. WannaShift to Monero. (2017). https://www.neutrino.nu/Research_WannaShift_to_Monero.html
- Продвинутые техники обфускации: Смешивание, объединение монет, прыжки по цепочке и конфиденциальные монеты. Chainalysis. (2020). https://go.chainalysis.com/advanced-obfuscation-techniques-webinar-recording.html
- https://www.justice[.]gov/opa/press-release/file/1092091/download (pdf стр. 114.)
- Хинтереггер, А. Хазельхофер, Б., Эмпирический анализ кросс-цепной отслеживаемости Monero. Международная конференция по финансовой криптографии и безопасности данных. (2019). https://arxiv.org/pdf/1812.02808.pdf
- Krawiec-Thayer, M.P., et al. Fingerprinting a flood: судебно-статистический анализ аномального объема транзакций Monero в середине 2021 года. Medium. (2021). https://mitchellpkt.medium.com/fing...d-2021-monero-transaction-volume-a19cbf41ce60
- https://www.justice[.]gov/opa/pr/th...d-wide-ranging-scheme-commit-cyberattacks-and
Финансовая информация: Ник Бакс владеет BTC, XMR и другими криптовалютами. Компания Ника Бакса, Five I's LLC, предоставляет консалтинговые услуги по различным темам, связанным с криптовалютами, включая криминалистику.
=============================================================================
Переведено S3VE7N по просьбе admin
оригинал статьи: https://medium.com/@nbax/tracing-the-wannacry-2-0-monero-transactions-d8c1e5129dc1