February 3

Взлом AdsPower - как это могло произойти? Разбор от белого хакера

Привет, друг! Мы билдим сайт researched.xyz, который помогает выбрать те или иные расходники для крипты по огромному количеству критериев. Ниже скриншот с нашего сайта...

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

И для написания данного материала мы пригласили особого человека. Встречайте...

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

Содержание статьи:

  1. Что произошло?
  2. Разбор взлома с технической стороны
  3. Причём тут open-source и почему это риск?
  4. Как избежать подобных ситуаций?

Начинаем!

Что произошло?

25 января, в 5:45 всё криптопространоство озарила не самая приятная новость. AdsPower заявили в своём канале о взломе - https://t.me/adspowerru/509.

Наша команда сделала оперативный ресёрч и спустя некоторое время выпустила пост со всей информацией по данному инциденту - https://t.me/researchedxyz/12.

В общем было затронуто более 30 тысяч кошельков и украдено более 3 миллионов долларов в крипте.

Разбор взлома с технической стороны

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

Идея атаки заключалась в замене легитимных расширений браузера на вредоносные версии. Эти поддельные расширения были настроены так, чтобы перехватывать пользовательские данные, включая приватные ключи и пароли. Все полученные данные отправлялись злоумышленникам на сервер по адресу: https://logcollection.info/log/

Если объяснить коротко: вместо того чтобы хранить ваши данные в безопасности, поддельные расширения незаметно передавали их хакерам.

Для понимания механизма атаки важно разобраться в том, как работают браузерные расширения и криптокошельки.

Где хранятся данные расширений

Расширения браузера устанавливаются в специальную директорию браузера (например, в Chrome или Firefox). Вся их приватная информация, включая настройки и данные пользователя, сохраняется локально на устройстве в хранилище браузера.

Как работают кошельки

Криптокошельки, такие как MetaMask, хранят приватные ключи и seed-фразы в зашифрованном виде. Для шифрования используется пароль, который вы задаете при настройке кошелька. Эти данные также хранятся локально и временно расшифровываются только при вводе пароля.

Шаги атаки

На основе анализа схемы работы расширений можно выделить два ключевых шага, которые сделали злоумышленники:

  • Подмена расширений. Модифицированные кошельки были настроены так, чтобы сразу после ввода пароля к кошельку перехватывать приватную информацию (seed-фразу и приватные ключи). Это значит, что как только пользователь разблокировал кошелек, данные стали доступны злоумышленникам.
  • Передача данных. После захвата данных они мгновенно отправлялись на сервер по адресу https://logcollection.info/log/. Этот URL стал тем, что искали многие пострадавшие в своих логах AdsPower.

Почему эта схема так эффективна?

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

Причём тут open-source и почему это риск?

Многие компании гордятся тем, что их проекты являются open-source. Для тех, кто не знаком с этим термином: open-source означает, что исходный код приложения доступен в открытом доступе. Каждый человек может скачать этот код, проанализировать его, и, самое важное, изменить локально под свои нужды.

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

Идея заключается в том, что благодаря открытости кода злоумышленники получают возможность модифицировать приложения, такие как MetaMask или Rabby Wallet, под свои цели. Они могут внести изменения, которые будут выглядеть как легитимные, и внедрить вредоносный функционал. Это и произошло в случае с атакой на AdsPower.

Когда код публичен:

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

Решение лежит в изменении подхода к разработке и безопасности. Вот несколько из них:

  • Переход от интерпретируемых языков к компилируемым. Большинство расширений браузера написаны на JavaScript, который является интерпретируемым языком. Это значит, что исходный код можно легко открыть, проанализировать и изменить. Компилируемые языки, такие как Rust, Go или C++, позволяют создавать бинарные файлы, которые сложнее разобрать и модифицировать.
  • Микросервисная архитектура. Разделение функциональности приложения на микросервисы, выполненные в виде бинарных файлов, делает анализ и модификацию кода сложнее. Даже если злоумышленник скомпрометирует один из компонентов, ему будет сложнее повлиять на всю систему.
  • Отказ от полной открытости кода. Open-source проекты хороши для сообщества, но не всегда безопасны для критически важных приложений, таких как криптокошельки. Важно использовать подходы с ограниченным доступом к исходному коду и обязательной проверкой со стороны третьих лиц.
  • Ответственность за чистоту кода. Вместо того чтобы полагаться на сообщество или пользователей, ответственность за аудит и чистоту кода должна возлагаться на профессиональные компании. Аудиторские организации, специализирующиеся на безопасности, обязаны проводить регулярные проверки кода и предоставлять отчеты. Это особенно важно для приложений, работающих с финансами.

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

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

Эти плагины станут дополнительным барьером на пути злоумышленников и сделают работу с криптовалютными кошельками и другими расширениями браузеров более безопасной. Главное — двигаться в сторону автоматизации проверки безопасности и развития новых стандартов.

Подмена расширения

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

Вероятно, браузер не проверял целостность обновлений и их подлинность. Обычно такие проверки включают в себя:

  • Проверку цифровой подписи обновления.
  • Сравнение с ранее установленной версией.

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

Как же могла произойти подмена? К сожалению, я не знаю как устроена архитектура AdsPower и откуда брались скачивались/обновлялись расширения, но у меня есть пару предположений:

  • Самое банальное. Но, суть проста, была хакнута одна из машин, отвечающая за хранение расширений в сторе ADS, подменены расширения, вы автоматически обновились, результат на лицо 😱.
  • Не хочу вешать ярлыки, но вероятно, что подмена расширений была произведена кем-то из команды ADS.
  • Уязвимость в зависимостях. Это более сложная концепция, заключающаяся в том, что при разработке никто не пишет код с 0, всегда используются различные бибилиотеки/фреймворки для ускорения производства продукта. Так вот эти зависимости и могут хранить ряд уязвимостей. Как следствие, хранящаяся узявимость могла привести к дыркам в безопасности у ADS.

Как избежать подобных ситуаций?

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

Идеальным сценарием было бы разворачивать виртуальные машины для каждого отдельного процесса. Что я имею в виду? Советую посмотреть в сторону VMware Fusion для MacOS или Hyper-V для Windows. Далее накатываем ту же Ubuntu или Windows и разворачиваем виртуальную машину.

Что нам это даст? Считайте что у вас Винда в Винде, чтобы ты мог гонять монетки, когда гоняешь монетки. В этой изолированной среде можно будет, развернуть прокси, установить экстеншн и уже работать. Этот подход будет обеспечивать вам гарантию того, что все что вы делаете зависит только от вас, а не от стороннего сервиса о типу адс, долфин, и тд. Но у подобной схемы есть и минусы. Данных механизм требует большого количества ресурсов вашего устройства. По хорошему собирать бы десктоп на китайском серверном Xeon и отдавать по пару потоков на каждую вируталку, в таком случае 10-12 кошельков вы сможете гонять.

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

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

Тем не менее, стоит уяснить для себя 2 основных правила:

  • Не держи все яйца в одной корзине. Для всех операций с дропами и мультиаккаунтами необходимо использовать отдельные криптокошельки, которые не связаны с вашими основными средствами.
  • Никогда не храните на таких кошельках крупные суммы. Ну тут тоже спорно ведь да?) Часто от баланса зависит попадешь ты под дроп или нет. В любом случае, риск-менеджмент должен быть при выше всего.

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

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

Вопросы из чата

Перед выпуском данной статьи мы попросили вас задать интересующие вас вопросы по данной теме.

Вопрос: Интересно было бы понять к каким данным у злоумышленников есть доступ. Условно если повылезали восклицательные знаки, есть ли угроза для социалок, поможет ли смена пароля в них? И как быть сейчас, переустановки расширения метамаска хватит ли уже с новой сид-фразой, чтобы нормально пользоваться сейчас? (если все таки я выберу оставаться на адс)

Ответ: везде поможет 2fa по типу Google Authenticator. Большинство сервисов используют куки либо jwt ключи для того, чтобы тебе не приходилось логиниться каждый раз, если их украдут, считай ты отдал доступ до своего сервиса без логина и пароля, при 2fa же у человека может быть доступ, но при этом критических изменений он без пароля и 2fa сделать не сможет, будь то перевод с биржи средств и т.д. Если же уже нарвался, то да, смена пароля поможет.

По поводу AdsPower. Вряд ли в ближайшее время с ним что-то произойдет. Реинсталляция расширения + новая сидка должны обезопасить тебя. Но до следующего такого апдейта)) Я бы на месте AdsPower после этого реализовал проверку версий расширений с официальными, а в случае, если есть расхождения, то кидал бы warning.

Вопрос: Есть ли какие-то кеш файлы метамаска которые следует удалить в папках?

Ответ: Есть локальное хранилище, но из него так просто ничего не удалить. Все в формате ldb. Какой-то компроментирующий информации там нет. Только сид-фраза, зашифрованная твоим паролем.

Вопрос: Как узнать, какой анти-фрод системной пользуется сайт?

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

Вопрос: Можно ли закрыть накат обновлений на антидетекты? Пресловутая строчка logcollection половину юзеров зацепила. Или они силой накатят такого рода обновы?

Можно ли накатить какие-то методы шифрования поверх ADS, как это сделали хакеры? Условно, есть какой-то logcollection, можем ли сами наваять код на JS и накинуть его в кеш антидетекта, чтобы любые отправки на сервер уходили в зашифрованом виде, а не в чистом? Причём сделать это поверх самого ADS, чтобы он с внезапной обновой не снёс наш код?

Ответ: Вопрос странный. Если ты будешь шифровать, то как обратная сторона будет расшифровать? Нужно передавать ключ? А смысл в таком шифровании тогда?

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

Всем спасибо за прочтение! С вами были:

  • Евгений, белый хакер - @lhavebeen
  • researched, сравнение крипторасходников - @researchedxyz