January 7

Почтовый криптофишинг: как грабят горячие и холодные кошельки

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

Горячие кошельки и попытки получить к ним доступ

Горячий кошелек (hot wallet) — криптовалютный кошелек с постоянным доступом в интернет. По сути, это любой онлайн-сервис, предоставляющий услуги хранения криптовалюты: от криптобирж до специализированных приложений.

Горячие кошельки — очень распространенный способ хранения криптовалют. Их популярность объясняется тем, что, во-первых, создать такой кошелек просто (достаточно зарегистрировать аккаунт в одном из сервисов) и, во-вторых, средства из него легко выводить и конвертировать в другие валюты. В силу своей распространенности и простоты горячие кошельки — основная цель для злоумышленников. Но есть один небольшой нюанс: именно из-за этого, а также из-за того, что горячие кошельки всегда подключены к интернету, на них редко размещают большие суммы. Соответственно, у злоумышленников нет мотивации серьезно вкладываться в подготовку фишинговых кампаний. Поэтому почтовые атаки на такие кошельки не отличаются оригинальными техниками и сложными приемами. Напротив, они выглядят довольно примитивно и рассчитаны преимущественно на плохо подготовленного пользователя.

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

Фишинговое письмо, нацеленное на пользователей Coinbase

Фишинговое письмо, нацеленное на пользователей Coinbase

После перехода по ссылке пользователь попадает на страничку, где его просят ввести сид-фразу. Сид-фраза (seed phrase или recovery phrase) — последовательность из 12 (реже 24) слов, необходимая для восстановления доступа к кошельку. По сути, это главный пароль от кошелька. С помощью сид-фразы можно получить или восстановить доступ к аккаунту пользователя и совершать любые транзакции от его имени. Саму сид-фразу нельзя ни изменить, ни восстановить. Потеряв ее, пользователь рискует лишиться доступа к кошельку насовсем, а выдав ее мошенникам — необратимо скомпрометировать свой аккаунт.

Страница ввода сид-фразы

Страница ввода сид-фразы

Если пользователь вводит сид-фразу на поддельной странице, злоумышленники получают полный доступ к его кошельку и могут вывести все средства на свои адреса.

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

Фишинг, нацеленный на холодные кошельки

Холодный кошелек (cold wallet или cold storage) — кошелек без постоянного подключения к интернету. Это может быть отдельное устройство или даже записанный на бумажку приватный ключ. Самый популярный вид холодных кошельков — аппаратные. Поскольку эти устройства почти все время находятся офлайн и добраться до них удаленно невозможно, пользователи хранят на них значительно большие суммы, чем на горячих кошельках. Однако ошибкой было бы думать, что аппаратный кошелек нельзя скомпрометировать, не украв его или, по меньшей мере, не получив к нему физический доступ. Как и в случае с горячими кошельками, злоумышленники используют социальную инженерию, чтобы добраться до активов пользователя. Например, не так давно мы заметили почтовую рассылку, которая нацелена именно на владельцев аппаратных холодных кошельков.

Начало атаки схоже с массовыми рассылками по теме криптовалюты – пользователю приходит письмо от имени криптобиржи Ripple с предложением поучаствовать в раздаче токенов XRP — внутренней криптовалюты площадки.

Фишинговое письмо от имени криптобиржи Ripple

Фишинговое письмо от имени криптобиржи Ripple

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

Поддельный блог Ripple

Поддельный блог Ripple

Уже на этом этапе мы видим отличия от массовых атак на «горячие» кошельки: вместо того чтобы сразу прислать ссылку на фишинговую страницу, злоумышленники использовали сложную схему с погружением с помощью блога. Кроме того, они тщательно скопировали дизайн сайта Ripple и зарегистрировали домен, практически идентичный официальному домену биржи. Использованный метод подделки доменного имени называется punycode-атакой — на первый взгляд домен второго уровня полностью совпадает с оригинальным, но при более детальном анализе мы видим, что буква r заменена на символ Unicode с использованием знака седиль:

https://app[.]xn--ipple-4bb[.]net -> https://app[.]ŗipple[.]net/

Кроме того, злоумышленники разместили свой ресурс в доменной зоне .net, а не .com, где расположен официальный сайт Ripple. Однако легитимные организации широко используют обе доменные зоны, поэтому домен, выглядящий как ripple.net, может не вызывать подозрений у жертвы.

После того как пользователь переходит по ссылке с «блога» на поддельную страницу Ripple, ему предлагают подключиться к веб-сокету wss://s2.ripple.com.

Подключение к веб-сокету

Подключение к веб-сокету

Следующим шагом пользователю предлагают ввести адрес его XRP-аккаунта.

Пользователя просят ввести адрес XRP-аккаунта

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

Выбор способа авторизации

Выбор способа авторизации

Как мы видим, аппаратные кошельки стоят первыми в списке, и злоумышленники рекомендуют использовать именно их. Если выбрать Trezor, то пользователя переадресуют на официальный сайт trezor.io, на котором есть функция подключения устройства к веб-приложениям через Trezor Connect API. Этот API используется для упрощения транзакций с помощью аппаратного кошелька. Злоумышленники же хотят, чтобы жертва подключилась к их сайту и позволила им вывести деньги с ее счета.

Когда пользователь пытается подключиться к стороннему ресурсу, Trezor Connect запрашивает у него согласие на анонимный сбор данных и подтверждение доступа. При этом адрес мошеннического ресурса, к которому подключается пользователь, показывается в punycode-представлении: https://app[.]xn--ipple-4bb[.]net. Вся надежда злоумышленников — на невнимательность пользователя: адрес страницы указан мелким шрифтом сбоку, поэтому его легко пропустить.

Trezor Connect: подтверждение подключения к мошенническому ресурсу

Trezor Connect: подтверждение подключения к мошенническому ресурсу

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

Что же происходит после того, как пользователь подключил свой аппаратный кошелек? Чтобы ответить на этот вопрос, нам пришлось немного покопаться в коде фишингового сайта. За всю работу сайта отвечает приложение, написанное на Node.js. Оно оперирует двумя API:

  • wss://s2.ripple.com — официальный веб-сокет по работе с транзакциями Ripple;
  • API фишингового сайта (например, app[.]xn--ipple-4bb[.]net/api/v1/action).

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

Запрос о выводе средствОтвет и описание

1

2

3

4

5

{

"command": "get_payment"

"account": victim_address,

"transactionType": "Payment"

}

{

"success": true,

"data": {

"TransactionType": "Payment",

"Account": victim_address,

"Fee": "10",

"Sequence": 391,

"Destination": "rU53pnJzEv2mrtck…"*,

"Flags": 2147483648,

"Amount": "xxx",

"LastLedgerSequence": 79548458

}

}

* Злоумышленники каждый раз генерируют новый адрес.

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

Заключение

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