Безопасность
Начни с безопасности
Узнай, как защитить криптокошелёк с помощью 2FA, резервных копий и экспертов. Читай наши инструкции и выбери надёжное хранилище активов.
Главная > Новости > Как WalletProbe раскрывает уязвимости браузерных криптокошельков — главные выводы

Как WalletProbe раскрывает уязвимости браузерных криптокошельков — главные выводы

Как WalletProbe раскрывает уязвимости браузерных криптокошельков — главные выводы

С ростом популярности Web3 и DeFi браузерные криптокошельки становятся всё более распространённым инструментом для управления цифровыми активами. Однако вместе с удобством они привлекают внимание злоумышленников — даже мелкая уязвимость может привести к потере средств миллиардного масштаба. Исследователи из Huazhong University и Hong Kong Polytechnic University представили WalletProbe — фреймворк для глубинного анализа безопасности расширений кошельков в браузерах.

В их работе обнаружено 13 потенциальных атакующих векторов и предложено множество методик их эксплуатации. Мы разберём ключевые выводы отчёта, покажем, где именно слабые места браузерных кошельков, и какие уроки могут извлечь пользователи и разработчики.

Почему браузерные кошельки под ударом: контекст и архитектура

WalletProbe начинает с того, что рассматривает кошельки как расширения браузера (browser extensions), взаимодействующие с dApp через API, интерфейс пользователя (UI), модуль симуляции транзакций и предупреждения безопасности.

Исследователи абстрагируют архитектуру кошелька в три слоя:

  1. Слой интерфейса и взаимодействия с пользователем (UI / пользовательский ввод),

  2. Слой обработки транзакций / сообщений / симуляции,

  3. Слой фонового процесса / доступа к ключам и внутренним данным.

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

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

Ключевые находки WalletProbe: векторы атак и реальные стратегии

WalletProbe раскрывает 13 атакующих векторов, применимых к различным уровням расширения, и описывает 21 конкретную стратегию эксплуатации.

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

Мутации и визуальные предикаты

WalletProbe строит входные сценарии (транзакции, сообщения) и «мутациями» изменяет параметры (адреса, суммы, формат, префиксы, типы данных). Затем фреймворк анализирует, как визуально отображается интерфейс, как реагирует модуль предупреждений, и сравнивает с тем, что фактически выполняется.

Например, можно изменить префикс 0x, убрать префикс, поменять порядок аргументов — всё это может обмануть систему предупреждений, если она строго парсит вход. Или подменить имя токена на визуально нормальное, скрыв истинную целевую сеть или адрес.

Атаки на модуль предупреждений безопасности

Раздел модуля предупреждений (security alert) часто рассчитывает на строгое соответствие шаблонам. Но при небольших мутациях форматирования (например, отсутствие префикса 0x, использование неправильной капитализации, изменение порядка полей) сообщение может не распознаваться как опасное и не вызвать предупреждение. 

Также исследователи выявили случаи, когда кошельки позволяют игнорировать предупреждения через расширенные параметры — то есть пользователь может дать разрешение, не увидев всю опасность.

Атаки на модуль симуляции / эмуляции транзакций

Многие кошельки используют встроенную симуляцию (preview) транзакций, чтобы показать пользователю, что произойдет в блокчейне. Однако симулятор может быть несовершенным: он может не учитывать зависимости между транзакциями в одном блоке, не предсказать изменения состояния переменных (gasPrice, внутренние переменные контракта), или работать по усечённой логике. Злоумышленник может подстроить транзакцию так, чтобы симуляция выглядела «безопасной», но фактически блокчейн исполнит что-то другое.

Один из векторов (V1) связан с взаимозависимыми транзакциями в одном блоке: симулятор может не учесть, что другая транзакция, включённая в тот же блок, изменит состояние. 

Контроль межкомпонентных сообщений и подделка источника

Кошельки разделяют компоненты: интерфейс (UI), content script, background script. Сообщения между ними часто передаются через postMessage или chrome.runtime.sendMessage. Исследователи показали, что злоумышленник может подделать поле isDev:true или другие параметры, чтобы убедить background script, что сообщение исходит от UI, а не от внешнего сайта — и тогда выполнить привилегированную операцию, например подписание транзакции, без запроса у пользователя. 

Водитель этих атак — смешение каналов сообщений и недостаток разграничения доверенных источников. 

Утечка seed-фразы / шифрованной фразы восстановления

В некоторых кошельках были обнаружены ошибки, позволяющие вытянуть зашифрованную seed-фразу (даже при заблокировании кошелька) или напрямую показать её через неправильную обработку API. Например, кошелёк Frontier имел уязвимость, при которой его Provider API возвращал внутреннее состояние, включая зашифрованную seed-фразу, что могло быть извлечено удалённо. 

Подобные ошибки позволяют атакующим получить копию seed-фразы без взаимодействия пользователя. 

Примеры реальных кошельков и инцидентов

  • В кошельке Stellar Freighter была обнаружена уязвимость CVE-2023-40580, при которой crafted-сообщения могли вызвать функции, предназначенные для UI, и вернуть seed-фразу напрямую веб-странице без взаимодействия с пользователем.
  • В Coin98 Wallet через подделку isDev:true можно было обмануть background script и вызвать подписание и broadcast транзакции без согласия пользователя.
  • В Frontier Wallet API позволял вернуть внутреннее состояние, включая зашифрованные данные, даже если кошелёк был закрыт.

Такие кейсы иллюстрируют, что уязвимости WalletProbe далеко не теоретические — они перекликаются с обнаруженным в индустрии на практике.

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

Кошелёк / расширение Обнаруженный главный вектор атаки Описание уязвимости Статус исправления*
Stellar Freighter UI → seed-фраза (CVE) crafted-сообщения вызывают UI-функцию раскрытия seed Исправлено (версии ≥ 5.3.1)
Frontier Wallet API раскрытие зашифрованной seed-фразы API возвращает внутреннее состояние даже при заблокированном кошельке Исправлено (11/2024)
Coin98 Wallet Подмена isDev:true Background script обманут и подписывает транзакции без запроса Исправлено после репорта
Другие 36 расширений Векторы мутаций, сообщения, симуляция Различные комбинации атак Частичные исправления (26 багов устранены)

* Статус на момент публикации отчёта WalletProbe.

Ниже — список ключевых классических слабостей, которые проявились в ходе экспериментов WalletProbe:

  • недостаточная строгая фильтрация полей (например, префиксов 0x)
  • смешение доверенных каналов сообщений между компонентами
  • визуальное несоответствие (UI показывает безопасное, а backend делает другое)
  • несовершенная симуляция транзакций при сложных зависимостях
  • недоработки в модуле предупреждений безопасности.

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

Уроки для пользователей и разработчиков

WalletProbe даёт массу ценных инсайтов — и не только для исследователей. Вот несколько ключевых уроков, которые стоит усвоить:

Что должны делать пользователи

  • Никогда не игнорировать обновления расширений. Многие из выявленных уязвимостей уже исправлены в новых версиях.
  • Не держать крупные суммы в “рабочем” кошельке — выносите главный баланс в холодное хранилище.
  • Ограничить периодическое подключение кошелька к сайтам — активируйте его только в момент нужной транзакции.
  • Проверять permissions и запрашиваемые операции вручную, особенно если предупреждения нестандартны.
  • Использовать кошельки с открытым исходным кодом и хорошей историей безопасности, следить за аудиторскими отчётами и публикациями о найденных багах.

Что могут улучшить разработчики

  • Разграничивайте каналы сообщений чётче: UI → contentScript → background, с проверкой источника и origin.
  • При проверке полей (адресов, параметров) учитывайте разные форматы (без 0x, альтернативные формы), чтобы не было обхода через мутацию.
  • Улучшайте симулятор транзакций: учитывайте межтранзакционные зависимости, внешние изменения состояния, переменные модификации.
  • Следите за визуальной консистентностью: визуальное предупреждение должно быть точным отражением того, что произойдёт.
  • Комплексно тестируйте с мутациями: подавайте разные комбинации входных данных, чтобы ловить “пограничные” случаи.
  • Быстрая реакция на баг-репорты и публичное раскрытие, чтобы уязвимости не оставались в продакшене долго.

Заключение

Отчёт WalletProbe — важный шаг к осознанию того, что критические уязвимости криптокошельков могут крыться в деталях логики, визуального слоя и связей между внутренними компонентами. Даже крупнейшие расширения оказались подвержены атакам, когда разработчики не предусмотрели “гибкость” входов, смешение контекстов сообщений или несовершенную симуляцию транзакций.

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

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

Не является инвестиционной рекомендацией
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии