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

·6 мин. чтения·Автор: SSP Editorial Team
Обложка по безопасности SSP с иконками кошелька, ключа, щита и чипа на тему гигиены браузерных расширений

Кошелёк в виде браузерного расширения удобен: он всегда в одном клике, подписывает транзакции прямо на странице и подключается к 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 их смягчает и Что произойдёт, если один из ваших ключей скомпрометирован.

Быстрый аудит расширений

Сделайте это за пять минут сегодня, а затем раз в квартал:

  1. Откройте страницу расширений вашего браузера и составьте список всего установленного.
  2. Удалите все расширения, которыми вы не пользовались в последний месяц.
  3. Для каждого оставшегося убедитесь, что издатель совпадает с официальным сайтом проекта.
  4. Проверьте права каждого и удалите всё, что имеет избыточные права для своих задач.
  5. Переместите кошелёк в отдельный профиль только для криптовалют, если он ещё не там.
  6. Убедитесь, что ваше расширение-кошелёк получено из официального источника и, где это применимо, защищено с помощью LavaMoat.

Продолжайте в том же духе

Гигиена браузера — это один слой защиты. Сочетайте её с осведомлённостью о фишинге, разумным хранением сид-фразы и ясным пониманием того, как разделены ключи вашего кошелька. Крепкие привычки плюс архитектура SSP 2 из 2 означают, что одно плохое расширение — это неудобство, а не катастрофа, но привычки всё же должны быть вашими.

Поделиться статьёй

Похожие статьи