Pull to refresh
114.19

Как крадут деньги, которых нет. Или кое-что новенькое о криптовалютах

Reading time 7 min
Views 44K
Привет, Хабр!

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

Обнаружили мы его в ходе программы непрерывного мониторинга безопасности сети Интернет и тут же разобрали на запчасти несколько семплов вредоноса. Таких комбайнов по автоматизированному уводу криптокошельков у владельцев пока мало, но будет больше, мы уверены.

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

Кстати, финансовые регуляторы считают биткойн и всех его друзей валютными суррогатами, и мы ни в коем случае не пропагандируем их использование, а наоборот, призываем пользоваться фиатными деньгами как надёжным и стабильным платёжным инструментом. (Тут мог бы быть смайл)

А что за криптовалюты такие?

Криптовалюты в привычном нам виде появились в 2009-м году, когда некто Сатоши Накамото после 2 лет разработки запустил децентрализованную сеть обмена платёжными данными и опубликовал клиент для работы с валютой «Биткойн».

Стоит отметить, что и личность Сатоши до сих пор не является стопроцентно подтверждённой, и идея криптовалюты принадлежит вовсе не ему. Впервые подобные идеи были высказаны в 1998 году в тематических рассылках энтузиастов криптографии, а уже в 1999-м писатель Нил Стивенсон поместил идею криптовалюты в головы персонажей своего культового романа «Криптономикон» (Очень рекомендуем к прочтению. Прим. авт.). Известны и первые попытки создания подобных платёжных систем, имевшие все предпосылки к успешной работе задолго до анонса сети Bitcoin.

Однако именно детище Накамото, будь он реальным физическим лицом или псевдонимом группы авторов, стало коммерчески успешным. «Инфомонеты», поднялись в цене в миллионы раз с десятых долей цента в 2009-м до тысячи долларов и выше в 2013-м году. Это особенно интересно, учитывая, что валюта не обеспечена ничем, кроме доверия пользователей к криптографической сложности алгоритма и вложений в вычислительную мощь компьютеров, необходимых для добычи «майнинга» биткойнов.

Существенная коррекция стоимости криптовалюты произошла в конце 2013-го года, затем биткойны возобновили свой рост до следующего падения во второй половине 2014-го. Что ожидает «монетки» в будущем нам неведомо и прогнозами заниматься мы не станем, однако, предположим, что развитие вредоносов подобных описываемому способно лишить криптовалюту доверия и привести к оттоку пользователей.

К особенностям криптовалют, рассматриваемых нами на примере биткойна относятся, в том числе, следующие:
• Анонимность текущего владельца;
• Отсутствие централизованного регулятора;
• Хранение всех данных кошелька в едином файле.

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

Где хранятся монеты?


Представлением Bitcoin-кошелька, на машине владельца является файл wallet.dat, содержащий приватный ключ пользователя системы. Этот файл создаётся во время первого запуска Bitcoin-клиента и сохраняется в каталоге %AppData%/Bitcoin. Злоумышленнику достаточно скопировать файл кошелька чтобы получить полный доступ к счетам пользователя.

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

Исходный код модуля работы с шифрованием кошелька Bitcoin



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

Однако, уникальными возможностями исследуемого образца вредоносного ПО являются не только скрытное копирование кошельков Bitcoin и 80 других криптовалют (форков Bitcoin'a) но и извлечение паролей для зашифрованных кошельков без использования каких-либо кейлоггеров (клавиатурных шпионов) с помощью внедрения непосредственно в служебные процессы клиентского ПО. Разберёмся в процессе получения вирусом данных, необходимых для кражи биткойн-кошельков.

Что такое CryptoStealer?


PE-заголовок перехваченного и изученного файла содержит время компиляции и отладочную информацию, говорящую об оригинальном имени проекта, из которого был скомпилирован файл. Так мы и установили, что его название CryptoStealer, а время создания изучаемого образца – конец января 2014-го года.

Заголовок файла с датой компиляции семпла и отладочной информацией



Как происходит кража?


Скрытное копирование файлов кошелька выполняется следующим образом:
• CryptoStealer проверяет наличие каталога %APPDATA%\[Название криптовалюты] и % COMMON_APPDATA%\[Название криптовалюты] для всех 80 поддерживаемых криптовалют, например «C:\Documents and Settings\Owner\Application Data\Bitcoin\»;
• Если путь существует, проверяется существование файла wallet.dat, который, при наличии, копируется во временную папку;
• Файл кошелька отправляется на сервер злоумышленников.

Примечательно, что на профильных форумах о безопасности Bitcoin даются советы не хранить файлы кошелька в местах, принятых по умолчанию, предлагается размещать их на съёмных носителях, а Bitcoin-клиент запускать командой вида bitcoin-qt.exe –datadir=X:\wallet, таким образом явно указывая клиентскому ПО на место хранения файла кошелька. Но даже в этом случае могут быть считаны параметры запуска Bitcoin-клиента, а из каталога -datadir скопирован заветный файл wallet.dat.

Псевдокод функции отправки файла wallet.dat



А если файл кошелька зашифрован?



Еще одна важная функция CryptoStealer — перехват паролей шифрования кошельков. Она основана на следующем алгоритме:
• Выполняется поиск процессов программ для работы с криптовалютой, например «bitcoin-qt.exe», «litecoin-qt.exe» и т.д. Перечисляются все активные процессы, а их имена последовательно сравниваются с заранее сгенерированной базой из 8 десятков bitcoin-форков, к названию которых добавляется подстрока "-qt.exe".
• Производится внедрение кода в найденный процесс и запуск в нем удаленного потока(CreateRemoteThread).

Псевдокод функции перечисления процессов и внедрения кода



Псевдокод функции сплайсинга




• Выполняется сплайсинг (перехват) функции strlen из библиотеки msvcrt.dll. Данная функция проверяет длину вводимой парольной строки и, соответственно, оперирует самой парольной фразой.
• Новый код-обработчик перехватываемой функции strlen ищет активные окна ввода пароля шифрования к кошельку (класс QWidget, заголовок «Unlock wallet», «Encrypt wallet» и т.д.) и перехватывает ввод в них, фильтруя вызовы функции подсчета длины строки для «служебных» строк приложения Bitcoin.

Псевдокод функции-обработчика хука



Отладка кода перехвата пароля





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

Перехват и декодирование трафика приложения





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

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

Тем не менее, существует ряд рекомендаций, способных существенно снизить риск заражения ПК вирусным ПО, в том числе, рассматриваемым в исследовании образцом:
• Для проведения любых финансовых транзакций и прочих чувствительных операций необходимо использовать отдельный компьютер. Допустимо использование виртуальной машины, изолированной от воздействий внешней операционной системы, но выделенное устройство лучше;
• Компьютер или виртуальная машина должны использоваться исключительно для означенных операций, посещение несвязанных с описанными целями сайтов и подключение недоверенных внешних носителей информации следует исключить;
• Данный компьютер должен быть оснащён антивирусным ПО с последними обновлениями сигнатурных баз и средствами межсетевого экранирования с актуальными правилами фильтрации;
• Межсетевая фильтрация к «финансовому» ПК применима только в разрешительном формате. Реджектим всё, кроме белого списка необходимых адресов. Лучше делать это с помощью внешнего устройства;
• Следует перепроверять адреса, по которым совершаются переходы в сети интернет на предмет фишинга (подмены символов в имени узла сети на похожие знаки для увода пользователя на мошеннический ресурс).

Список криптовалют, попадающих в группу риска


Bitcoin, Litecoin, 42Coin, Alphacoin, Americancoin, AndroidsTokens, Anoncoin, Argentum, AsicCoin, avingCoin, BBQCoin, BeaoCoin, BitBar, bitgem, bits, Blakecoin, Bottlecaps, BountyCoin, Bytecoin, CasinoCoin, CHNCoin, Cloudcoin, Colossuscoin, Copper Bars, CosmosCoin, CPU2coin, Craftcoin, Crimecoin, CryptogenicBullion, CryptogenicBullionC, Devcoin, Diamond, DigitalCoin, Dogecoin, DollarPounds, Dragoncoin, EagleCoin, Earthcoin, ElephantCoin, Extremecoin, EzCoin, Fastcoin, FeatherCoin, FerretCoin, Florincoin, Franko, FrankoCoin, FreeCoin, Freicoin, Galaxycoin, Gamecoin, GlobalCoin, Goldcoin, Grain, GrandCoin, Growthcoin, HoboNickels, infinitecoin, ItalyCoin, Ixcoin, Joulecoin, Jupitercoin, KingCoin, krugercoin, last Coin, Lebowskis, Liquidcoin, Lucky7Coin, LuckyCoin, Maples, mastercoin, MasterCoin, Mavro, Megacoin, MEMEcoin, MemoryCoin, Mincoin, NaanaYaM, Namecoin, NanoTokens, Neocoin, NetCoin, NovaCoin, Nuggets, NXTCoin, Onecoin, OpenSourcecoin, Orbitcoin, Paycoin, PEERCoin, Pennies, PeopleCoin, PhenixCoin, Philosopherstone, PlayToken, PPcoin, PrimeCoin, ProtoShares, ProtoSharesCoin, QuarkCoin, RealCoin, Redcoin, RichCoin, RoyalCoin, Sauron Rings, Secondscoin, SecureCoin, Sexcoin, SHITcoin, Sifcoin, Skycoin, Spots, supercoin, TagCoin, TEKcoin, Terracoin, TicketsCoin, tumcoin, UnitedScryptCoin, Unobtanium, UScoin, ValueCoin, Worldcoin, XenCoin, YACoin, Ybcoin, ZcCoin, ZenithCoin, Zetacoin
Only registered users can participate in poll. Log in, please.
Пользуетесь ли Вы криптовалютами?
5.4% Да, пользуюсь и крайне взволнован прочитанным 31
20.91% Да, пользуюсь, но уверен, что вне опасности 120
33.97% Нет, не пользуюсь, но хочу попробовать 195
17.42% Нет, не пользуюсь, а после прочитанного и тем более не буду 100
16.55% Только валюты, обеспеченные ценностями. Ну и доллар) 95
5.75% Не понимаю о чём Вы, а под спойлер не заглядывал 33
574 users voted. 138 users abstained.
Tags:
Hubs:
+15
Comments 30
Comments Comments 30

Articles

Information

Website
www.facct.ru
Registered
Founded
Employees
501–1,000 employees
Location
Россия