У пользователей Atomic Wallet украли $35 млн. Что мешает расследованию

В начале июня пользователи популярного криптокошелька Atomic Wallet столкнулись с массовыми кражами криптовалюты. Первая произошла еще 2 июня. С тех пор несколько аналитиков отследили хищения на сумму более $35 млн. Команда кошелька заявила, что расследует взлом, но на момент публикации не сообщала никаких деталей инцидента. Atomic — это некастодиальный криптокошелек. В отличие от бирж такие кошельки позволяют пользователям хранить средства независимо от третьей стороны. Сервис изначально запущен в 2017 году как обменник криптовалют под названием Atomic Swap. По данным официального сайта, кошелек Atomic Wallet насчитывает более 5 млн пользователей. Несмотря на то что стандартом в криптовалютах считается открытый исходный код, Atomic Wallet всегда держал свой код закрытым, в том числе от независимых аудиторов. Некоторые криптовалютные проекты предпочитают не раскрывать программный код, чтобы избежать копирования конкурентами. Однако пользователи, поскольку не могут просмотреть код, не могут проверить, действительно ли тот работает так, как должен, и не содержит уязвимостей. Вместо этого они вынуждены доверять разработчикам.
«Подробности тщательно скрываются»
Прозрачность блокчейна как публичного реестра переводов в криптовалютах позволяет идентифицировать адреса пострадавших кошельков и дальнейшее перемещение средств. Согласно анализу известного в криптосообществе онлайн-детектива под псевдонимом ZachXBT, хакеры украли порядка $35 млн в разных криптовалютах. С исследователем также связывались пострадавшие, предоставляя ему данные о транзакциях на кошельке. В ходе взлома были похищены средства в криптовалютах Ethereum (ETH), Dogecoin (DOGE), Litecoin (LTC), BNB (BNB) и Polygon (MATIC), а один из пострадавших лишился криптоактивов на сумму $8 млн. Как сообщили блокчейн-аналитики Elliptic, взломщик использовал для отмывания похищенных средств популярный у хакеров из Северной Кореи криптомиксер Sinbad.io. По результатам прошлых крупных взломов расследователи подсчитали, что северокорейская хакерская группировка Lazarus Group отмыла через него более $100 млн. Аналитики не назвали сумму проведенных через миксер средств пользователей Atomic, но сообщили, что Sinbad.io — это, вероятно, переделанная версия Blender.io, сервиса, активно используемого Lazarus Group, и первого микшера, на который были наложены санкции Министерства финансов США. Как рассказали «РБК-Крипто» представители компании MatchSystems, которая также занимается расследованиями, связанными с криптовалютами, использование микшера — единственный аргумент, связывающий северокорейских хакеров со взломом кошелька. Однако сервис публично доступен для всех желающих, а его популярность, вероятно, только возросла среди других злоумышленников после упоминаний в СМИ и блогах компаний. «По имеющейся у нас информации, в ходе расследования со стороны руководства Atomic Wallet обратилась к нескольким компаниям, занимающимся отслеживанием криптовалют и цифровых активов. Содействие с их стороны направлено на разметку похищенных активов, но любые подробности технической стороны инцидента тщательно скрываются», — сообщил СEO компании Match Systems Андрей Кутьин. По его словам, это не позволяет провести независимую оценку взлома. Кроме того, ни одна из компаний не заявила о том, что занимается расследованием технической стороны, а команда Atomic Wallet никак не комментирует предложения о безвозмездном расследовании инцидента. Для расследования необходимо получить так называемые логи сервера — журнал активности, в котором протоколируются все действия пользователей на сайте. По словам Кутьина, в Atomic Wallet отказываются предоставить необходимые файлы как его компании, так и другим, несмотря на многочисленные запросы. Команда Atomic Wallet «делает все возможное», чтобы вернуть украденные средства, но создание конкретного плана возможно только после окончания расследования, заявил в комментарии для Cointelegraph директор по маркетингу Atomic Wallet Роланд Седе. По его словам, отслеживание жертвами атаки незаконных переводов и сообщение о них криптобиржам могло бы помешать мошенникам выводить средства. Со своей стороны, площадка так и делает, ведь «чем больше внимания уделяется хакерам, тем сложнее им их [средства] переместить», сказал Седе. Представители кошелька не ответили «РБК-Крипто» на запрос о комментарии.
Не первый раз
8 июня представители Atomic Wallet заявили, что расследовать инцидент помогает компания Chainalisys. По информации команды, в результате взлома пострадали «менее 1%» ежемесячно активных пользователей сервиса и атака была прекращена еще в субботу, 3 июня. Но пользователи в Twitter (соцсеть заблокирована в России) в ответ на это сообщение опубликовали скриншоты, показывающие, что их средства похищали и после указанного времени. В комментариях социального форума Reddit пользователи также пишут о пропаже средств. Один из них рассказал, что некто, представившись сотрудником технической поддержки кошелька, написал на анонимном форуме 4chan, что команда отключила уведомления на мобильной версии кошелька перед взломом и опубликовал две фотографии монитора (одна, вторая), на которых якобы открыт интерфейс службы поддержки кошелька, где накапливаются заявки пользователей в момент инцидента. Подтвердить подлинность заявленной информации не удалось, а автора публикации заблокировали модераторы сайта. На том же Reddit на протяжении нескольких лет появляются сообщения о пропаже средств в криптовалюте с кошелька Atomic Wallet, однако при детальном рассмотрении выясняется, что зачастую пользователи обнаруживают в компьютерах вирусы или становятся жертвами фишинга, предоставляя мошенникам данные для доступа к кошельку. Но собственный подход Atomic Wallet к безопасности также критикуют эксперты из криптосообщества. Среди них, например, исследователь кибербезопасности и разработчик криптокошелька с открытым исходным кодом MyEtherWallet Тейлор Монахан. Еще в феврале прошлого года он критиковал Atomic Wallet за бездействие в отношении уязвимостей, выявленных в ходе аудита кошелька со стороны компании Least Authority, написав, что разработчики «отказываются слушать других». В Least Authority тогда заявили, что «система Atomic Wallet недостаточно продумана с точки зрения безопасности и подвергает пользователей кошелька значительному риску». По словам Монахана, выявленные Least Authority недостатки в системе безопасности означают, что Atomic Wallet, вероятно, «непреднамеренно сохранял» закрытые ключи пользователей, которые используются для доступа к средствам на кошельке.
«РБК-Крипто» запустил мониторинг криптовалютных обменников. Выбирайте надежный обменный сервис с выгодным курсом на yourcryptoex.ru.
Atomic CSS здорового человека. UnoCSS

UnoCSS — мгновенный (instant) атомарный CSS‑движок с максимальной производительностью и гибкостью.
Все началось с нескольких случайных экспериментов во время моих национальных праздников. С мыслью о том, что все делается по требованию (on‑demand), и гибкостью, которую я ожидаю как пользователь, эксперименты оказались очень полезными для меня во многих отношениях.
Двигатель
UnoCSS — это движок, а не фреймворк, поскольку в нем нет ядерных утилит — все функциональные возможности предоставляются через предустановки или встроенные конфигурации.
Мы представляем себе, что UnoCSS сможет имитировать функциональность большинства существующих атомарных CSS‑фреймворков. И, возможно, будет использован в качестве движка для создания новых атомарных CSS‑фреймворков! Например:
import UnocssPlugin from '@unocss/vite' // the following presets do not exist at this moment, // contribution welcome! import PresetTachyons from '@unocss/preset-tachyons' import PresetBootstrap from '@unocss/preset-bootstrap' import PresetTailwind from '@unocss/preset-tailwind' import PresetWindi from '@unocss/preset-windi' import PresetAntfu from '@antfu/oh-my-cool-unocss-preset' export default < plugins: [ UnocssPlugin(< presets: [ // PresetTachyons, PresetBootstrap, // PresetTailwind, // PresetWindi, // PresetAntfu // pick one. or multiple! ] >) ] >
Давайте посмотрим, как это стало возможным.
Интуитивный и полностью настраиваемый
Основные цели UnoCSS — интуитивность и настраиваемость. Он позволяет создавать собственные утилиты буквально за считанные секунды.
Далее вы найдете краткое руководство:
Статические правила
Атомарный CSS может оказаться огромным по объему. Важно, чтобы определение правил было простым и легко читаемым. Чтобы создать пользовательское правило для UnoCSS, вы можете написать его следующим образом:
rules: [ ['m-1', < margin: '0.25rem' >] ]
Когда m-1 будет обнаружен в кодовой базе пользователя, будет сгенерирован следующий CSS:
Динамические правила
Чтобы сделать его динамическим, измените matcher на RegExp, а body на функцию:
rules: [ [/^m-(\d+)$/, ([, d]) => (< margin: `$rem` >)], [/^p-(\d+)$/, match => (< padding: `$rem` >)], ]
Первым аргументом функции body является результат совпадения, поэтому вы можете деструктурировать его, чтобы получить группы совпадений RegExp.
Например, при использовании:
Соответствующий CSS будет сгенерирован:
.m-100 < margin: 25rem; >.m-3 < margin: 0.75rem; >.p-5
Вот и все. Осталось только добавить другие утилиты, использующие тот же шаблон, и теперь у вас есть свой собственный атомарный CSS!
Варианты (Variants)
Варианты в UnoCSS также просты и в то же время мощны. Вот несколько примеров:
variants: [ // support `hover:` for all rules < match: s =>s.startsWith('hover:') ? s.slice(6) : null, selector: s => `$:hover`, >, // support `!` prefix to make the rule important < match: s =>s.startsWith('!') ? s.slice(1) : null, rewrite: (entries) => < // append ` !important` to all css values entries.forEach(e =>e[1] += ' !important') return entries >, > ]
Конфигурации вариантов могут быть немного расширены. Из‑за большого объема статьи я опущу подробное объяснение здесь, вы можете обратиться к документации за более подробной информацией.
Пресеты (presets)
Сейчас вы можете упаковать свои пользовательские правила и варианты в пресеты и поделиться ими с другими — или создать даже свой собственный атомарный CSS‑фреймворк поверх UnoCSS!
Кроме того, мы поставляем несколько пресетов, чтобы вы могли быстро освоить их.
Однако стоит упомянуть, что стандартный @unocss/preset-uno пресет (все еще экспериментальный) является общим суперсетом популярных фреймворков, включая Tailwind CSS, Windi CSS, Bootstrap, Tachyons и т. д.
Например, оба ml-3 (Tailwind), ms-2 (Bootstrap), ma4 (Tachyons), mt-10px (Windi CSS) являются валидными.
.ma4 < margin: 1rem; >.ml-3 < margin-left: 0.75rem; >.ms-2 < margin-inline-start: 0.5rem; >.mt-10px
Гибкость
До сих пор мы показывали, как можно использовать UnoCSS для имитации поведения Tailwind — хотя мы сделали так, что имитировать Tailwind своими силами очень легко, это само по себе, вероятно, не будет иметь большого значения для пользователей.
Давайте раскроем истинную силу UnoCSS:
Режим атрибутирования (Attributify Mode)
Режим атрибутирования — одна из любимых функций Windi CSS. Он помогает вам лучше организовать и сгруппировать ваши утилиты с помощью атрибутов.
Вот так преобразуется ваш код Tailwind:
Это не только обеспечивает лучшую организацию по категориям, но и избавляет вас от повторного ввода одних и тех же префиксов.
В UnoCSS мы реализовали режим Attributify Mode, используя только один вариант и один экстрактор с менее чем 100 строками кода в общей сложности! Что еще более важно, он напрямую работает для любых пользовательских правил, которые вы определили!
В дополнение к режиму Windi’s Attributify Mode мы также поддерживаем атрибуты без значений с помощью нескольких строк изменений:
Режим атрибутирования предоставляется через пресет @unocss/preset-attributify , подробное использование смотрите в его документации.
Чистые CSS-иконки
Если вы читали мой предыдущий пост Journey with Icons Continues, то должны знать, что я очень увлечен иконками и активно ищу решения для иконок. На этот раз, благодаря гибкости UnoCSS, у нас даже могут быть чисто CSS‑иконки! Да, вы не ослышались, только на CSS и ноль JavaScript! Давайте посмотрим, как это выглядит:
Комбинируя варианты, вы можете даже переключать иконки на основе состояния наведения курсора или даже цветовой схемы. Поиграйте с демонстрацией выше и убедитесь в этом (демонстрация доступна в оригинальной статье — прим. переводчика). Благодаря потрясающему проекту Iconify у вас есть доступ к более чем 10 000 иконок из более чем 100 популярных наборов иконок по требованию.
И снова эта функция написана менее чем на 100 строк кода. Ознакомьтесь с реализацией пресета @unocss/preset-icons , чтобы узнать, как это работает!
Обновление: Читайте мой новый пост Иконки в чистом CSS, чтобы узнать об этом больше!
Я надеюсь, что эти пресеты дадут вам общее представление о том, насколько гибким является UnoCSS. Учитывая, что он все еще находится на очень ранней стадии, нам еще предстоит исследовать множество возможностей.
Область видимости (scoping)
Еще одна проблема, с которой я столкнулся при использовании Tailwind/Windi, — это префлайт (preflight). Preflight сбрасывает нативные элементы и обеспечивает некоторый откат для переменных CSS. Это замечательно при разработке нового приложения, использующего исключительно Tailwind/Windi, но когда вы хотите заставить их работать с другими фреймворками пользовательского интерфейса или совместно использовать некоторые компоненты с помощью утилит Tailwind, префлайт часто вносит множество конфликтов, которые ломают существующий пользовательский интерфейс.
Поэтому UnoCSS сделал еще один агрессивный шаг, отказавшись от поддержки префлайтов. Вместо этого он оставил контроль над сбросом CSS полностью на усмотрение пользователей (или фреймворков поверх UnoCSS), которые могут использовать то, что соответствует их потребностям (Normalize.css, Reset.css, сброс UI‑фреймворков и т. д.)
Это также позволяет UnoCSS иметь больше возможностей для CSS Scoping. Например, у нас есть экспериментальный режим scoped‑vue в плагине Vite для генерации scoped‑стилей для каждого компонента, чтобы вы могли безопасно поставлять их как библиотеку компонентов, используя атомарный CSS, не беспокоясь о конфликте с CSS пользователей. Например:
.m-2 .rounded
Производительность
При всей гибкости и воображении, которые дает UnoCSS, я бы, честно говоря, подумал, что производительность может быть не столь важной вещью, о которой стоит заботиться. Просто из любопытства я написал простой бенчмарк, чтобы сравнить производительность. И, как ни странно, вот результат:
10/21/2021, 2:17:45 PM 1656 utilities | x50 runs none 8.75 ms / 0.00 ms unocss v0.0.0 13.72 ms / 4.97 ms (x1.00) windicss v3.1.9 980.41 ms / 971.66 ms (x195.36) tailwindcss v3.0.0-alpha.1 1258.54 ms / 1249.79 ms (x251.28)
Оказывается, UnoCSS может быть 200x быстрее, чем JIT Tailwind и Windi CSS. Честно говоря, при подходе «по требованию» и Windi, и Tailwind JIT уже очень быстры, поэтому прирост производительности UnoCSS может быть не очень ощутимым. Однако практически нулевые накладные расходы означают, что вы можете интегрировать UnoCSS в существующий проект для работы с другими фреймворками в качестве дополнительного решения, не беспокоясь о снижении производительности.
Глубоко в UnoCSS было сделано множество оптимизаций производительности. Если вам интересно, вот несколько из них, которые можно взять на заметку:
Нет парсинга, нет AST
Внутренне Tailwind полагался на модификацию AST PostCSS, в то время как Windi написал собственный парсер и AST. Учитывая тот факт, что изменения в утилитах не часто ожидаются во время разработки, UnoCSS генерирует утилиты с помощью очень дешевой конкатенации строк, вместо того чтобы внедрять целый процесс парсера и генерации. При этом UnoCSS агрессивно кэширует имена классов с их сгенерированной CSS‑строкой, что позволяет обойти весь процесс подбора и генерации при повторной встрече с теми же утилитами.
Одиночное прохождение
Как уже упоминалось в предыдущем разделе, и Windi CSS, и Tailwind JIT полагаются на предварительное сканирование файловой системы и используют fs watcher для HMR. Файловый ввод‑вывод неизбежно влечет за собой некоторые накладные расходы, в то время как ваши инструменты сборки фактически должны загрузить их еще раз. Так почему бы нам не использовать содержимое, которое уже было прочитано инструментами разработки, напрямую?
Помимо независимого ядра генератора, UnoCSS намеренно предоставляет только плагин Vite, что позволяет ему сосредоточиться на наилучшей интеграции с Vite.
В Vite хук transform будет итерироваться по всем файлам с их содержимым. Поэтому мы можем написать плагин, который будет собирать их, например:
export default < plugins: [ < name: 'unocss', transform(code, id) < // filter out the files you don't want to scan if (!filter(id)) return // scan the code (also handles invalidate on dev) scan(code, id) // we just want the content, so we don't transform the code return null >, resolveId(id) < return VIRTUAL_CSS_ID ? id : null >, async load(id) < // generated css is provide as a virtual module if (id === VIRTUAL_CSS_ID) return < code: await generate() >> > ] >
Поскольку Vite также обрабатывает HMR и будет снова задействовать хук transform при изменении файла, это позволяет UnoCSS завершить все за один проход без дублирования файлового ввода‑вывода и fs watcher. Кроме того, при таком подходе сканирование опирается на граф модулей, а не на глобализацию файлов. Это означает, что только те модули, которые были включены в ваше приложение, будут влиять на генерируемый CSS, а не любые файлы в ваших папках.
Есть еще несколько трюков, которые мы использовали, чтобы добиться еще большей производительности. Возможно, позже я напишу о них еще один пост, но до этого вы можете прочитать код, чтобы разобраться:)
Можно ли использовать это сейчас?
Короткий ответ: Да, но с осторожностью.
UnoCSS все еще находится в стадии экспериментов. Но, учитывая его простоту, результат генерации уже достаточно надежен. Одна вещь, о которой вам следует помнить, — API еще не доработаны. Мы действительно будем следовать за semver при выпуске, но, пожалуйста, ожидайте изменений.
Он не предназначен для замены Windi CSS или Tailwind (лучше подождать Windi CSS v4). Мы не рекомендуем полностью переводить существующие проекты на UnoCSS. Вы можете попробовать его в новых проектах или использовать в качестве дополнения к существующему CSS‑фреймворку (например, отключить предустановки по умолчанию и использовать предустановку иконок исключительно для иконок с чистым CSS или создать свои собственные правила).
О, кстати, сайт, который вы читаете, теперь исключительно на UnoCSS, чтобы вы могли ссылаться:P.
В то же время, пожалуйста, не стесняйтесь делиться пресетами, которые вы создаете, или помогайте внести свой вклад в наши стандартные пресеты. Нам не терпится увидеть, что вы можете придумать!
Завершение
Большое спасибо за то, что дочитали до конца! Если это вас заинтересовало, не забудьте заглянуть в репозиторий unocss/unocss за подробностями и поиграть с ним в Online Playground.
Дополнение (от переводчика)
На данный момент UnoCSS давно уже находится в стабильном состоянии, стал довольно популярен и может быть использован для рабочих проектов. Его сайт — unocss.dev.
Чем UnoCSS отличается от Windi CSS?
UnoCSS был создан одним из членов команды Windi CSS, при этом многое было взято из работы, которую мы проделали в Windi CSS.Хотя Windi CSS больше активно не поддерживается (по состоянию на март 2023 года), вы можете рассматривать UnoCSS как «духовного наследника» Windi CSS. UnoCSS унаследовал от Windi характер работы по требованию, режим атрибутирования, ярлыки, группы вариантов, режим компиляции и многое другое.
Кроме того, UnoCSS создан с учетом максимальной расширяемости и производительности, что позволяет нам внедрять такие новые возможности, как чистые CSS‑иконки, атрибутирование без значений, tagify, веб‑шрифты и т. д. Самое главное, UnoCSS создан как атомарный CSS‑движок, где все функции являются необязательными, что позволяет легко создавать собственные конвенции, собственную систему дизайна и собственные пресеты — с теми комбинациями функций, которые вы хотите.
Чем UnoCSS отличается от Tailwind CSS?
И Windi CSS, и UnoCSS черпали вдохновение в Tailwind CSS.Так как UnoCSS создан с нуля, мы можем получить отличный обзор того, как атомарный CSS был разработан с учетом предшествующих искусств и абстрагирован в элегантный и мощный API. Поскольку цели разработки UnoCSS совершенно разные, сравнивать его с Tailwind CSS не совсем корректно. Но мы постараемся перечислить несколько отличий.
Tailwind CSS — это плагин для PostCSS, в то время как UnoCSS — это изоморфный движок с кучей первоклассных интеграций с инструментами сборки (включая плагин для PostCSS).Это означает, что UnoCSS может быть гораздо более гибким для использования в различных местах (например, CDN Runtime, который генерирует CSS на лету) и иметь глубокие интеграции с инструментами сборки для обеспечения лучшего HMR, производительности и опыта разработчика (например, Inspector).
Если не принимать во внимание технические компромиссы, UnoCSS также разработан как полностью расширяемый и настраиваемый, в то время как Tailwind CSS намного менее гибок (opinionated). Создать собственную систему дизайна (или маркеры дизайна) поверх Tailwind CSS может быть сложно, и вы не сможете отойти от условностей Tailwind CSS.С UnoCSS вы можете создавать практически все, что захотите, с полным контролем.
Например, мы реализовали все утилиты, совместимые с Tailwind CSS, в одном пресете, и есть множество замечательных пресетов сообщества, в которых реализованы другие интересные философии.
Благодаря гибкости, которую обеспечивает UnoCSS, мы можем экспериментировать с множеством инновационных функций, например:
«Недостатком» UnoCSS по сравнению с Tailwind CSS можно назвать то, что он не поддерживает систему плагинов и конфигураций Tailwind, что может затруднить миграцию с сильно настроенного проекта Tailwind CSS. Это решение было принято для того, чтобы сделать UnoCSS высокопроизводительным и расширяемым, и мы считаем, что этот компромисс того стоит.
Узнать интересную и полезную информацию о Vue.js и фронтенде в целом, а также изучить фреймворк по переводу лучшего учебника по данной теме «Vue.js 3 — Шаблоны проектирования и Лучшие практики» можно на нашем сайте: Vue‑FAQ.org.
Казанские разработчики выпустили компьютерную игру, похожую на Atomic Heart

Казанские разработчики выпустили в Steam хоррор Noch. Игра напоминает популярный шутер Atomic Heart, сообщили они «Реальному времени».
— Мы посвятили созданию этой дюжины часов геймплея 3,5 года нашей жизни. И это были не самые простые годы, — рассказали разработчики.
По сюжету игры геймерам нужно будет отыскать девочку, которая уничтожила мир. Создатели обещают игрокам «немного веселых багов».
Российская компания Mundfish выпустила Atomic Heart 21 февраля 2023 года. Сюжет шутера переносит игрока в альтернативную версию CCCР, где революционные научные достижения привели к глобальным, катастрофическим последствиям для человечества.
Elliptic: Atomic Wallet взломали хакеры из Северной Кореи и вывели средства на биржу Garantex, украдено более $100 млн
Убытки, понесенные пользователями Atomic Wallet в результате хакерской атаки, выросли до более чем $100 млн, полагают эксперты аналитической компании Elliptic. Они также считают, что за взломом стоят хакеры из Северной Кореи.
2 июня, Atomic Wallet, децентрализованный криптовалютный кошелек, подвергся масштабному взлому. Продукт является некастодиальным кошельком, то есть хранением своих средств занимаются сами пользователи, не прибегая к услугам кастодина – третьей стороны, которая обязуются хранить средства клиентов (так, например, осуществляется хранение средств в банке или даже криптовалюты на счетах криптовалютной биржи).
Данные обстоятельства не на шутку взволновали всё криптовалютной сообщество, не говоря уже о самих пользователях, многие из которых потеряли всё своё состояние.
Изначально сообщалось, что убытки от действий хакеров составляли как минимум 35 млн долл. США. После нескольких дней изучения ситуации аналитики компании Elliptic констатируют, что данная сумма, на самом деле, в 3 раза больше – по их подсчётам было украдено более 100 млн долл. США.
Эксперты также сообщили, что атака затронула более 5000 кошельков, в то время десять из них потеряли больше $1 млн каждый.
«Мы отслеживаем более 5000 криптовалютных кошельков, которые, предположительно, были взломаны в результате атаки. По меньшей мере десять криптоадресов потеряли более $1 млн, и по меньшей мере 164 – более $100 000. Средний размер потерь составляет $2 800», — сообщается в публикации Elliptic, размещенной в официальном блоге компании.
Прозрачность блокчейна как публичного реестра переводов в криптовалютах позволяет идентифицировать адреса пострадавших кошельков и дальнейшее перемещение средств. Проанализировав движение украденных активов, в Elliptic посчитали, что взломщиками скорее всего являются хакеры из ставшей известной за последние годы группировки Lazarus Group, которую связывают с Северной Кореей. На такой вывод их натолкнул тот факт, что украденные средства были перемещены на криптомиксер Sinbad.io.
Несмотря на то, что криптовалюты считаются конфиденциальными, прозрачность блокчейна, как уже упоминалось, позволяет проследить за цифровым следом транзакций и узнать, где, когда, откуда и куда произошли те или иные криптовалютные переводы. При достаточном наличии дополнительной информации и мощных специализированных аналитических средств можно отследить к кому ушли монеты.
Криптовалютные миксеры – это сервисы, которые позволяют пользователям скрывать происхождение и назначение транзакций. Пользователи отправляют свою криптовалюту в сервис, где их монеты хаотично перемешиваются с другими монетами или токенами, а затем получают эквивалентное количество уже «смешанных» монет на указанный адрес получения. Таким образом, запутывается связь между отправителем и получателем.
Предыдущий анализ Elliptic показывает, что Sinbad с высокой степенью вероятности управляется тем же людьми, которые стояли за Blender. Так, исследователи обнаружили, что на «служебный» адрес Sinbad поступали биткоины из кошелька, который, как считается, принадлежит операторам Blender, которым активно пользовались Lazarus Group в прошлом, и который стал первым подобным сервисом, на который были наложены санкции Министерства финансов США.
Данный инцидент также прокомментировали в беседе с изданием «РБК-Крипто» представители компании MatchSystems, которая также занимается расследованиями, связанными с криптовалютами. Они отметили, что использование микшера — единственный аргумент, связывающий северокорейских хакеров со взломом кошелька, добавив, при этом, что сервис публично доступен для всех желающих, а его популярность, вероятно, только возросла среди других злоумышленников после упоминаний в СМИ и блогах компаний.
Помимо этого, согласно анализу Elliptic, часть похищенных средств была переведена хакерами на зарегистрированную в Эстонии и ориентированную на российских клиентов криптобиржу Garantex, находящуюся под санкциями США. На сайте платформы в разделе «контакты» указан ее адрес в «Москва-Сити», башня «Федерация».
В ответ директор по коммуникациям Garantex Евгения Бурова сообщила «РБК-Крипто», что все связанные с инцидентом аккаунты сейчас заблокированы и биржа готова сотрудничать с правоохранительными органами. При этом, она посетовала на контрпродуктивное поведение специалистов Elliptic, которые, по её словам, если бы действительно хотели предотвратить проведение дальнейших транзакций выявленной ими высокорисковой криптовалюты, то уведомили бы Garantex до публикации пресс-релиза.
«Мы призываем международные аналитические сервисы сотрудничать с нами в рамках пресечения подобных транзакций на самых ранних этапах. Увы, сейчас подобной практики нет: российским компаниям прямо отказывают либо игнорируют их предложения сотрудничества», — говорит Бурова.
По ее словам, бирже удалось заблокировать часть похищенных средств, которые после запроса от правоохранительных органов могут вернуться законным владельцам.
Несмотря на масштабы инцидента, Atomic Wallet пока не предоставил никаких объяснений, которые бы пролили свет на данную атаку. Это вызвало беспокойство у разочарованных пользователей, которые с тревогой ожидают разъяснений и заверений от компании. Между тем, на момент публикации последняя публикация компании в Twitter была размещена 8 июня.
«Компания Atomic стремится помочь как можно большему числу жертв взлома. Мы привлекли Chainlysis, ведущую [аналитическую] компанию в сфере расследования инцидентов, связанных с криптовалютами для того, что отследить похищенные средства, а также сотрудничаем с биржами и властями», — говорится в сообщении.
«По имеющейся у нас информации, в ходе расследования со стороны руководства Atomic Wallet обратилась к нескольким компаниям, занимающимся отслеживанием криптовалют и цифровых активов. Содействие с их стороны направлено на разметку похищенных активов, но любые подробности технической стороны инцидента тщательно скрываются», — сообщил СEO компании Match Systems Андрей Кутьин.
По его словам, это не позволяет провести независимую оценку взлома. Кроме того, ни одна из компаний не заявила о том, что занимается расследованием технической стороны, а команда Atomic Wallet никак не комментирует предложения о безвозмездном расследовании инцидента.
Редкие публикации в Твиттере и в целом отсутствие достаточной связи с общественностью возмущают разгневанных пользователей.
«Atomic Wallet почему вы не даёте мне прямой ответ, почему вы не предупредили меня, прекрасно зная, что вас взламывают, что использовать кошелёк небезопасно на прошлой неделе, прежде чем я сделал перевод на свой кошелек, который затем был взломан».
«Atomic Wallet последнее сообщение от вас было пять дней назад – СЕРЬЕЗНО. »
Для расследования необходимо получить так называемые логи сервера — журнал активности, в котором протоколируются все действия пользователей на сайте. По словам Кутьина, в Atomic Wallet отказываются предоставить необходимые файлы как его компании, так и другим, несмотря на многочисленные запросы.
Усугубляет ситуацию то, что, Atomic Wallet всегда держал свой код закрытым, в том числе от независимых аудиторов. Некоторые криптовалютные проекты предпочитают не раскрывать программный код, чтобы избежать копирования конкурентами. Однако пользователи, поскольку не могут просмотреть код, не могут проверить, действительно ли тот работает так, как должен, и не содержит уязвимостей.
В комментариях социального форума Reddit пользователи также делятся информацией о пропаже средств. Один из них рассказал, что некто, представившись сотрудником технической поддержки кошелька, написал на другом форуме, 4chan, что команда отключила уведомления на мобильной версии кошелька перед взломом и опубликовал две фотографии монитора, на которых якобы открыт интерфейс службы поддержки кошелька, где накапливаются заявки пользователей в момент инцидента. Подтвердить подлинность заявленной информации не удалось, а автора публикации заблокировали модераторы сайта.
Подход Atomic Wallet к безопасности также критикуют эксперты из криптосообщества.
Среди них, например, Тейлор Монахан, основательница менеджера Ethereum-кошельков MyCrypto и исследовательница в области кибербезопасности. Еще в феврале прошлого года она критиковала Atomic Wallet за бездействие в отношении уязвимостей, выявленных в ходе аудита кошелька со стороны компании Least Authority, написав, что разработчики «отказываются слушать других». В Least Authority тогда заявили, что «система Atomic Wallet недостаточно продумана с точки зрения безопасности и подвергает пользователей кошелька значительному риску».
По словам Монахан, выявленные Least Authority недостатки в системе безопасности означают, что Atomic Wallet, вероятно, «непреднамеренно сохранял» на своих серверах закрытые ключи пользователей, которые используются для восстановления доступа к кошельку, а затем эти сервера взломали хакеры.
«Скорее всего, они непреднамеренно сохраняли [приватные ключи] из-за плохой кибергигиены и самонадеянности, а затем их сервер был взломан, и таким образом все пострадали», — написала она.
В свою очередь, Atomic Wallet, в лице директора по маркетингу Роланда Сэде сообщил Cointelegraph, что команда «делает все возможное, чтобы вернуть эти средства», добавив, что создание конкретного плана возможно только после окончания расследования.
«Конечно, команда опустошена, так как мы очень гордимся нашей безопасностью. Мы нон-стоп работаем над тем, чтобы все уладить и выйти из этого кризиса сильнее, чем раньше», — заявил он.