
Кошелёк в виде браузерного расширения удобен: он всегда в одном клике, подписывает транзакции прямо на странице и подключается к dapps через встроенный провайдер или WalletConnect. У этого удобства есть цена. Расширение — это код, работающий внутри вашего браузера с правом видеть и изменять посещаемые вами страницы, и злоумышленники об этом знают. Если вы храните средства самостоятельно, браузер — часть вашей модели угроз, а гигиена расширений — одна из самых дешёвых и эффективных привычек, которые вы можете выработать.
В этом руководстве разбирается, почему расширения — столь привлекательная цель, несколько правил, сокращающих поверхность атаки, что делает LavaMoat и почему расширение SSP построено на нём, а также как multisig SSP 2 из 2 подстраховывает даже полностью скомпрометированное расширение. Впервые в этой теме? Начните с материала Браузерные кошельки-расширения: разбираемся, а затем возвращайтесь сюда.
Почему браузерное расширение — лакомая цель
Расширения работают с широкими правами. Типичное расширение-кошелёк может читать и изменять содержимое загружаемых вами страниц, отслеживать ввод с клавиатуры и обращаться к буферу обмена. Именно эти возможности нужны кошельку, чтобы внедрить провайдер и показать запрос на подпись, — и именно их хочет получить злоумышленник.
Подумайте, что вредоносное или скомпрометированное расширение может сделать, ни разу не прикоснувшись к вашей сид-фразе:
- Подменить скопированный адрес. Вы копируете адрес для получения средств; расширение переписывает буфер обмена, и вставленный адрес принадлежит злоумышленнику. Эта схема перехвата буфера обмена стара, надёжна и незаметна.
- Внедрить скрипты в dapp. Оно может изменить страницу, которую вы видите, подменив сумму или адрес назначения транзакции, при этом показывая ожидаемые вами значения.
- Прочитать то, что на вашем экране. Балансы, адреса и всё остальное на странице доступно для чтения. В сочетании с фишинговой страницей эти сведения делают приманку гораздо убедительнее — см. Фишинговые атаки на криптопользователей.
Экономика беспощадна: одно популярное расширение может одновременно охватить миллионы пользователей, поэтому компрометация одного издателя стоит огромных усилий. Самый опасный вариант — не подделка, которую вы устанавливаете по ошибке, а легитимное расширение, которому вы уже доверяете и которое становится враждебным после обновления.
Правила гигиены
Сделать браузер идеально безопасным невозможно, но можно сделать его невыгодной целью. Принцип — минимум привилегий: меньше расширений, уже права и чёткое разделение между вашим криптобраузером и всем остальным.
Сводите к минимуму то, что устанавливаете
Каждое расширение — это поверхность атаки и зависимость в цепочке поставок, которую написали не вы. Устанавливайте как можно меньше расширений, отдавайте предпочтение известным проектам с долгой историей и удаляйте всё, чем перестали пользоваться. Кошелька и моста для аппаратного кошелька достаточно; десяток дополнений для продуктивности в одном браузере с вашими средствами — нет.
Используйте отдельный профиль браузера
Создайте отдельный профиль браузера — или отдельный браузер — используемый только для криптовалют, с установленным только вашим расширением-кошельком. Поисковик купонов, инструмент для скриншотов и случайная «ИИ»-боковая панель пусть живут в вашем повседневном профиле, где они не смогут читать страницу, пока вы подписываете транзакцию. Одно это изменение убирает большую часть повседневного риска почти без усилий.
Проверяйте права и обновления
Устанавливая или обновляя расширение, прочитайте запрос на разрешения, а не пролистывайте его. «Чтение и изменение всех ваших данных на всех сайтах» — это нормально для кошелька и тревожно для калькулятора. Автообновление — настоящий риск цепочки поставок: сборка, которую вы проверили в понедельник, — не та сборка, что выходит в четверг, а скомпрометированный сопровождающий или зависимость могут отправить вредоносный код прямо в ваш браузер. Проверять каждое обновление вручную невозможно, поэтому отдавайте предпочтение расширениям, чья модель безопасности исходит из того, что их собственные зависимости могут оказаться вредоносными, — именно это и обеспечивает LavaMoat. О более широкой закономерности читайте в материале Атаки на цепочку поставок и детерминированные сборки.
Распознавайте поддельные расширения-кошельки
Магазины полны двойников: правильное название, скопированный логотип, сфабрикованные отзывы и издатель, о котором вы никогда не слышали. Единственная задача поддельного расширения-кошелька — заполучить вашу сид-фразу или подменить транзакцию. Перед установкой убедитесь, что издатель совпадает с официальным сайтом проекта, проверьте число установок и историю, и переходите по ссылке для скачивания с самого проекта, а не из поиска по магазину. Правила программы Chrome Web Store запрещают выдачу себя за других, но контроль отстаёт от публикации — относитесь к магазину как к отправной точке, а не как к гарантии. И никогда не вводите свою сид-фразу во всплывающее окно расширения.
Что делает LavaMoat (и почему SSP его использует)
Современные веб-приложения собираются из сотен сторонних пакетов, любой из которых может быть скомпрометирован. LavaMoat — это набор инструментов с открытым исходным кодом, который защищает JavaScript именно от этого: он помещает каждую стороннюю зависимость в собственную изолированную среду и применяет явную политику того, к чему каждый пакет может обращаться. Один отравленный пакет больше не может дотянуться через всё приложение, чтобы прочитать ваши ключи, вмешаться в транзакцию или похитить данные, — он ограничен той узкой областью, которую разрешает его политика.
Это важно, потому что атаки на цепочку поставок нацелены на зависимость, а не на сам известный проект. Браузерное расширение SSP построено на LavaMoat, поэтому даже если транзитивная зависимость скомпрометирована выше по цепочке, радиус поражения ограничивается, а не передаёт ключи от вашего кошелька. Это эшелонированная защита, применённая к единственному риску, который вы не можете проверить лично: к коду, написанному другими людьми. О том, почему этот класс атак заслуживает отдельного руководства, OWASP описывает риски цепочки поставок и инъекций в своих рекомендациях на owasp.org.
Где SSP 2 из 2 подстраховывает плохое расширение
Вот честный и ключевой тезис. Предположим, худшее всё-таки случилось, и ваше браузерное расширение полностью скомпрометировано. Оно всё равно может выполнить лишь половину работы.
SSP — это multisig 2 из 2. Каждая транзакция требует двух независимых подписей — одной от браузерного расширения и одной от SSP Key на вашем телефоне, отдельном устройстве с собственным экраном. Скомпрометированное расширение может построить вредоносную транзакцию, но не может создать вторую подпись. Когда запрос приходит на ваш телефон, вы видите настоящий адрес назначения и сумму на поверхности, которую расширение не контролирует, и отклоняете его. Злоумышленнику остаётся одна подпись на транзакции, которая никогда не будет отправлена в сеть.
Это настоящая, структурная подстраховка, а не маркетинговая фраза — и именно поэтому две независимые поверхности подтверждения лучше одной. Но это не повод работать с «грязным» браузером. Второй ключ защищает момент подписания; он не остановит подмену буфера обмена, которую вы подтверждаете вручную, и не исправит дурные привычки в других местах. Считайте его последней линией обороны, а не единственной. Чтобы увидеть, где даже у multisig есть пределы, прочитайте Сценарии отказа multisig и как SSP их смягчает и Что произойдёт, если один из ваших ключей скомпрометирован.
Быстрый аудит расширений
Сделайте это за пять минут сегодня, а затем раз в квартал:
- Откройте страницу расширений вашего браузера и составьте список всего установленного.
- Удалите все расширения, которыми вы не пользовались в последний месяц.
- Для каждого оставшегося убедитесь, что издатель совпадает с официальным сайтом проекта.
- Проверьте права каждого и удалите всё, что имеет избыточные права для своих задач.
- Переместите кошелёк в отдельный профиль только для криптовалют, если он ещё не там.
- Убедитесь, что ваше расширение-кошелёк получено из официального источника и, где это применимо, защищено с помощью LavaMoat.
Продолжайте в том же духе
Гигиена браузера — это один слой защиты. Сочетайте её с осведомлённостью о фишинге, разумным хранением сид-фразы и ясным пониманием того, как разделены ключи вашего кошелька. Крепкие привычки плюс архитектура SSP 2 из 2 означают, что одно плохое расширение — это неудобство, а не катастрофа, но привычки всё же должны быть вашими.


