Расширения браузера могут иметь доступ ко всем вашим веб-данным. Узнайте, как оценить их безопасность и защитить приватность.
Да, расширение браузера может читать и изменять практически всё, что вы делаете в интернете, если вы предоставите ему широкие разрешения. Дополнение с доступом ко «всем вашим данным на всех сайтах» видит страницы, которые вы посещаете, текст, который вы вводите в формы, ваши cookie и историю просмотров. Большинство расширений честны, но решающее значение имеет модель разрешений: самый безопасный подход — устанавливать как можно меньше расширений, предоставлять минимально возможный доступ и периодически их проверять.
Что расширение действительно может делать
Когда вы устанавливаете расширение, вы предоставляете ему набор разрешений, объявленных в его манифесте. Эти разрешения определяют, какую часть вашего просмотра расширение может видеть и изменять. Люди часто нажимают «Добавить в браузер», не читая запрос, поэтому полезно понимать, что на самом деле означают эти категории.
Расширение с широкими разрешениями к хостам обычно может:
- Читать содержимое страниц — полный текст, ссылки и структуру каждой открытой вами страницы
- Читать и заполнять поля форм — включая поисковые строки, формы входа и платёжные поля
- Получать доступ к cookie — которые могут содержать сессионные токены, поддерживающие ваш вход в систему
- Читать историю просмотров — список сайтов и URL, которые вы посещаете
- Внедрять скрипты — запускать свой собственный JavaScript внутри других сайтов
- Выполнять сетевые запросы — отправлять собранные данные на удалённый сервер
Ключевая мысль в том, что расширение работает внутри вашего браузера с вашей активной сессией. Это не удалённый сайт, подчиняющийся политике одного источника; это доверенное лицо изнутри. Именно поэтому небольшая ошибка с разрешениями может серьёзно повлиять на приватность. Это предоставление разрешений на уровне манифеста — совершенно другое, гораздо более широкое понятие, чем разрешение уровня страницы, которое может проверить сам сайт через navigator.permissions.query() — о том, как работает этот отдельный, более узкий механизм, читайте в статье Фингерпринтинг Permissions API.
Модель разрешений простыми словами
Современные браузеры (Manifest V3 в Chrome, WebExtensions в Firefox) описывают возможности расширения через файл манифеста. Вот упрощённый пример секции разрешений, которую вы неявно одобряете:
{
"name": "Example Extension",
"permissions": ["cookies", "tabs", "storage"],
"host_permissions": ["<all_urls>"],
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["content.js"]
}
]
}
Именно за значением <all_urls> стоит следить. Оно означает, что расширение может запускать свой content script на каждом посещаемом вами сайте, читать эти страницы и действовать на них. Сравните это с расширением, ограниченным одним доменом, которое может затрагивать только этот сайт.
Разрешения к хостам и <all_urls>
Разрешения к хостам определяют, на каких сайтах расширение может работать. Шаблон вроде https://*.example.com/* ограничивает его одним сервисом. Шаблон <all_urls> или *://*/* даёт доступ ко всему вебу. Широкий доступ к хостам — это самый важный фактор, влияющий на приватность расширения.
activeTab и доступ по клику
Разрешение activeTab гораздо безопаснее: оно предоставляет временный доступ только к текущей вкладке и только когда вы нажимаете на значок расширения, а при переходе на другую страницу доступ отзывается. Расширение, построенное на activeTab, не может незаметно следить за вами в фоновом режиме. Там, где браузер это предлагает, доступ к сайтам «запускать при клике» превращает широкие расширения в работающие по требованию.
Content scripts
Content script — это код, который расширение внедряет в посещаемые вами страницы. Он может читать DOM, отслеживать ваш ввод и переписывать страницу. Content scripts — это механизм как полезных функций (сравнение цен, проверка грамматики), так и злонамеренного сбора данных. Широта их шаблона matches говорит о том, какую часть вашего просмотра они могут видеть.
Когда хорошие расширения становятся плохими
Риск исходит не только от вредоносных расширений, выпущенных с дурными намерениями. К тому же результату ведут несколько менее очевидных путей.
- Заброшенные расширения. Разработчик перестаёт поддерживать дополнение. Код всё ещё работает, но уязвимости остаются неустранёнными, и расширение становится устаревшей точкой входа с широкими разрешениями.
- Купленные и затем монетизированные расширения. Популярное, надёжное расширение продаётся новому владельцу, который тихо выпускает обновление, внедряющее рекламу, партнёрские ссылки или трекинг. Ваш браузер обновляет его автоматически, а разрешения, выданные вами годы назад, всё ещё действуют.
- Компрометация цепочки поставок. Расширение легально использует стороннюю библиотеку или удалённую конфигурацию; если эта зависимость или сервер скомпрометированы, вредоносная нагрузка достигает всех, кто установил расширение.
Опасный момент — это редко день установки. Это тихое автоматическое обновление спустя месяцы, опирающееся на разрешения, которые вы уже одобрили и забыли.
Вот почему «всё было в порядке, когда я устанавливал» — не гарантия. Широкие разрешения — это постоянная угроза, которую может активировать любое будущее обновление.
Расширения и фингерпринтинг
Помимо прямого чтения ваших данных, расширения могут облегчить отслеживание вас на разных сайтах — а отдельно от этого ещё и облегчить обнаружение вас как автоматизации. Конкретный набор установленных у вас расширений и изменения, которые они вносят в страницы, могут стать частью отпечатка вашего браузера.
Как страница определяет, какие расширения у вас установлены
Страница не может просто запросить у браузера список ваших расширений. Ближе всего к такому списку выглядит navigator.plugins, но в современных браузерах он описывает лишь встроенную в сам браузер обработку PDF и никогда — установленные пользователем дополнения. Обнаружение расширений идёт другим путём: по побочным следам, которые расширение оставляет на странице.
- Проверка ресурсов. Многие расширения включают файлы — иконки, внедрённые стили, пакет content script — которые они раскрывают веб-страницам, чтобы их собственные скрипты могли их загружать. Расширение объявляет их как веб-доступные ресурсы по адресу вида
chrome-extension://<extension-id>/<file>. Отслеживающий скрипт, зная ID и имя файла популярного расширения, может запросить этот адрес и проверить, загружается ли он: успех означает, что расширение установлено, неудача — что нет. Проверив так список известных ID расширений, можно построить бинарный (да/нет) отпечаток вашего набора установленных дополнений. Именно из-за этой техники в Manifest V3 ужесточилиweb_accessible_resources: ресурс теперь открыт только тем origin, которые перечислены в его шаблонеmatches, а расширение может включитьuse_dynamic_url— тогда вместо постоянного ID Chrome подставляет ID, который заново генерируется в каждой сессии, то есть при перезапуске браузера или перезагрузке расширения. Firefox делает это по умолчанию: каждому экземпляру браузера он выдаёт случайный UUID в адресеmoz-extension://вместо настоящего ID расширения — именно затем, чтобы сайты не могли определить по нему набор ваших дополнений. Но ни одна из этих мер не действует задним числом: расширение, которое не включило динамический URL, по-прежнему отвечает по своему опубликованному постоянному ID, поэтому проверка до сих пор работает на практике. - Поведенческие побочные каналы. Даже расширение без напрямую проверяемых ресурсов всё равно воздействует на страницу. Content script, который внедряет элементы, добавляет классы CSS или удаляет узлы, подпадающие под список фильтров, оставляет структурный след, который страница может отследить — удаления блокировщика рекламы, внедрённую кнопку менеджера паролей, размеченное текстовое поле проверки грамматики. Время выполнения тоже сигнал: скрипт, запускающийся на этапе
document_start, выполняется до собственного кода страницы, а запускающийся наdocument_idle— после, и обе эти точки жизненного цикла расширения измеримы со стороны самой страницы. Блокировщики рекламы — самый наглядный пример: страница не может напрямую спросить, установлен ли блокировщик, поэтому она подставляет элемент-приманку или следит за заблокированным запросом и делает вывод по результату — подробнее о том, как на самом деле работает обнаружение блокировщика рекламы, какие три проверки лежат в основе и что результат раскрывает, а чего нет.
Редкий набор расширений может сделать вас более узнаваемым
Это напрямую связано с описанным выше парадоксом фингерпринтинга: редкое расширение для приватности может сделать ваш браузер более узнаваемым, а не менее, потому что мало кто из других пользователей имеет именно такую конфигурацию. Обнаруженные расширения ведут себя как любой другой сигнал фингерпринтинга — см. нашу статью об энтропии отпечатка и множестве анонимности о том, что именно редкость, а не сам факт использования инструмента, сужает круг, в котором вы растворяетесь. EFF Cover Your Tracks измеряет тот же компромисс уникальности для браузера в целом, и необычное сочетание из трёх-четырёх обнаруженных расширений сдвигает показатель точно так же, как необычный шрифт или строка GPU.
Может ли расширение привести к тому, что вас примут за бота?
Обнаружение расширений подпитывает и другой вид оценки: обнаружение ботов. Фреймворки автоматизации нередко работают в связке с расширениями «для удобства» — менеджером прокси, помощником для решения CAPTCHA, забытым включённым инструментом разработчика — поверх в остальном обычного профиля браузера. Обнаружение одного из них, особенно вместе с navigator.webdriver, установленным в true, добавляется к той же оценке риска, которая отмечает headless-браузеры и скриптовый трафик; о том, как объединяются такие сигналы, читайте в статье техники обнаружения ботов. Это может сработать и против реальных пользователей — расширение разработчика или для специальных возможностей, которым действительно пользуются каждый день, иногда способно подтолкнуть обычную сессию просмотра за порог автоматизации сайта, что делает гигиену расширений важной даже вне контекста отслеживания приватности. Разбор по категориям — какие расширения ломают какие сигналы — см. в статье могут ли расширения браузера выдать вас за бота.
Чтобы увидеть, как выглядит ваш отпечаток в целом, прочитайте наше руководство по фингерпринтингу браузера, а чтобы сравнить подходы к защите, посмотрите наше сравнение инструментов приватности.
Как оценить расширение перед установкой
Относитесь к каждому расширению как к предоставлению приложению доступа к вашим аккаунтам, потому что функционально это близко к тому, что вы делаете. Пройдитесь по этому контрольному списку.
| Сигнал | Меньший риск | Больший риск |
|---|---|---|
| Объём разрешений | activeTab, шаблон одного хоста | <all_urls>, широкие разрешения к хостам |
| Издатель | Известная компания или авторитетный разработчик | Анонимный или совсем новый аккаунт |
| База пользователей и отзывы | Большое число установок, стабильные отзывы | Мало пользователей или внезапные всплески отзывов |
| Последнее обновление | Обновляется недавно и регулярно | Не трогалось годами (заброшено) |
| Исходный код | Открытый, поддающийся аудиту | Закрытый, обфусцированный, только минифицированный |
| Работа с данными | Понятное, минимальное раскрытие приватности | Расплывчатая политика или её отсутствие |
Ни один отдельный сигнал не является решающим, но их сочетание рассказывает историю. Расширение с открытым кодом, ограниченное activeTab, от активного разработчика — это совсем не то же самое, что закрытое дополнение с <all_urls>, к которому не прикасались три года.
Вы также можете проверить, что в данный момент активно в вашем собственном браузере. Проверка плагинов и расширений от BrowserInsight помогает увидеть обнаружимые дополнения и понять их след, а проверка отпечатка показывает, как ваша конфигурация в целом влияет на отслеживаемость.
Практические шаги для снижения риска
Вам не нужно отказываться от расширений — вам нужно управлять ими осознанно.
1. Применяйте принцип минимальных привилегий
Отдавайте предпочтение расширениям, запрашивающим самые узкие разрешения. Если два дополнения выполняют одну и ту же задачу, выбирайте то, что ограничено activeTab или конкретными хостами, а не то, что требует доступа ко всем сайтам.
2. Используйте доступ к сайтам «при клике»
Для расширений, которые это поддерживают, установите доступ к сайтам «при клике», чтобы они запускались только когда вы их вызываете. Это нейтрализует большую часть фонового сбора данных, не теряя функциональности.
3. Регулярно проводите аудит
Раз или два в год открывайте страницу расширений вашего браузера и удаляйте всё, чем вы больше не пользуетесь. Каждое установленное расширение — это поверхность атаки; неиспользуемое — это чистый минус.
4. Следите за обновлениями и сменой владельцев
Будьте насторожены, если ранее простое расширение начинает запрашивать новые, более широкие разрешения — браузеры обычно вас предупреждают. Внезапное расширение разрешений может сигнализировать о смене владельца или намерений.
5. Используйте корпоративные политики там, где это уместно
В управляемых средах администраторы могут включать одобренные расширения в белый список и блокировать всё остальное через политику браузера. Это самый надёжный механизм контроля в масштабе, полностью устраняющий необходимость решения на стороне каждого пользователя.
6. Предпочитайте встроенную функцию расширению, если она уже есть
Multi-Account Containers в Firefox когда-то была единственным способом развести разные идентичности внутри одного браузера — теперь эта возможность становится встроенной, без расширения. Там, где браузер сам предлагает такую же функциональность нативно, использование встроенного варианта означает на одно расширение с широкими разрешениями к хостам меньше, которому нужно доверять. О том, что именно покрывает и чего не покрывает эта изоляция, читайте в статье про контейнерные вкладки и слежку — это граница на уровне хранилища, а не замена аудита расширений, которыми вы всё ещё пользуетесь.
Часто задаваемые вопросы
Может ли расширение браузера читать мои пароли?
Если у расширения есть разрешение работать на сайтах, где вы входите в систему, и читать поля форм, оно технически может отслеживать то, что вы вводите, включая пароли, до их отправки. Именно поэтому предоставление широкого доступа к хостам ненадёжным расширениям рискованно. Поля паролей не являются каким-то волшебным образом недоступными для content script, работающего на странице.
Всегда ли безопасны расширения из официального магазина?
Нет. Официальные магазины проводят автоматическую и частично ручную проверку, которая отсеивает много откровенного вредоносного ПО, но проверка несовершенна. Заброшенные расширения, передачи прав владения и обновления, добавляющие трекинг, — всё это может проскользнуть. Присутствие в магазине снижает риск, но не устраняет его.
Делают ли расширения для приватности меня менее отслеживаемым?
Иногда да, а иногда наоборот. Блокировщики содержимого могут остановить многих трекеров, но характерный набор используемых вами расширений и вносимые ими изменения в страницы могут добавиться к вашему отпечатку. Стремитесь к широко используемым, хорошо поддерживаемым инструментам, а не к редким, экзотическим, и проверяйте итоговый эффект с помощью проверки отпечатка.
Сколько расширений — это слишком много?
Фиксированного числа нет, но каждое расширение добавляет разрешения, поверхность атаки и потенциальный сигнал для фингерпринтинга. Хорошее правило — оставлять только то, чем вы активно пользуетесь, предпочитать узкие разрешения и удалять остальное. Меньшее число хорошо подобранных расширений лучше длинного списка забытых.
Рекомендуем прочитать
- Фингерпринтинг браузера простыми словами: как защитить свою приватность
- Сравнение инструментов приватности: как выбрать правильную защиту
- Контейнерные вкладки и слежка: что не скрывает изоляция cookie
- navigator.plugins: что выдаёт зашитый список плагинов
- Обнаружение ботов: как выявляют ботов и краулеров
- Cover Your Tracks: что не доказывает оценка уникальности
- Энтропия отпечатка браузера и множество анонимности
- Почему блокировщик рекламы заблокировал страницу целиком


