Блог / Руководство

Как оценить приватность и разрешения расширения для скачивания видео

Как оценить приватность и разрешения расширения для скачивания видео

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

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

Возможности, заявления и поведение – разные доказательства

Что это говорит Чего это не говорит
Разрешения (манифест и окно установки) Максимум, к чему расширение имеет доступ Пользуется ли оно этим доступом и что делает с данными
Страница в магазине и политика конфиденциальности Что, по словам разработчика, собирается и зачем Делает ли код только это. Это заявление, а не аудит
Поведение (что код делает на самом деле) Истину Из окна разрешений не видно; нужны разбор кода или анализ трафика

Если держать их раздельно, можно избежать двух ошибок: принимать пугающее разрешение за доказательство злоупотребления и принимать успокаивающую политику за доказательство безопасности.

Как Chrome описывает разрешения

В документации Chrome о разрешениях выделено несколько категорий: разрешения API вроде storage или downloads, разрешения на хосты, дающие доступ к сайтам по шаблону, шаблоны content-скриптов и необязательные версии, запрашиваемые во время работы. Многие мощные возможности требуют разрешения и доступа к хостам вместе. Среди того, что позволяют разрешения на хосты, в документации указаны наблюдение за сетевыми запросами через webRequest, доступ к cookie через cookies API, внедрение скриптов и запросы от имени расширения.

Из этого следуют два вывода, и оба поправляют распространённые советы:

  • Оценивайте сочетания, а не отдельные разрешения. Специальный cookies API требует разрешения "cookies" вместе с разрешениями на хосты нужных сайтов. Но этот API – не единственное место, где могут оказаться данные cookie: API webRequest может отдавать расширению заголовок запроса Cookie и заголовок ответа Set-Cookie, если у него есть нужный доступ к хостам и оно запрашивает extraHeaders. Так что «нет разрешения cookies» не значит, что расширение никогда не увидит значения cookie, а доступ «ко всем сайтам» сам по себе не значит, что оно их видит. Спрашивайте, что позволяет весь набор разрешений, доступ к хостам и заявленные функции расширения и соответствует ли это его задаче. Разрешения на наблюдение за сетью вместе с широким доступом к хостам – более сильная возможность, чем каждое по отдельности, а загрузчику, который находит потоки на произвольных страницах, нужно именно такое сочетание; поэтому важно, объясняет ли расширение это и доверяете ли вы издателю.
  • Кражу нельзя проверить, разглядывая собственные cookie. Проверка значений cookie или заголовков запросов на сайтах, где вы вошли в аккаунт, ненадёжна как способ для обычного пользователя, к тому же вы сами выводите на экран токены сессий. Не копируйте их никуда и не проверяйте расширения на важных аккаунтах.

Список проверок, который можно пройти безопасно

1. Прочитайте разрешения и их область действия

Откройте страницу расширения в магазине, посмотрите разрешения и доступ к хостам. Отметьте, какие из них – разрешения API, какие – шаблоны хостов и есть ли необязательные. Узкий список проще оценивать; широкий требует объяснения.

2. Спросите, соответствует ли доступ задаче

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

3. Сверьте политику конфиденциальности с разрешениями

Ищите конкретику: какие данные собираются, покидают ли они устройство, что отправляется при обращении в поддержку, сроки хранения, аналитика. Требования Chrome к политике конфиденциальности в Web Store говорят, что продукт, обрабатывающий данные пользователей, обязан опубликовать точную политику конфиденциальности, раскрывающую, как данные собираются, используются и передаются. Расплывчатые формулировки, отсутствие упоминания запрашиваемых разрешений или политика, противоречащая описанию, – поводы подождать. Помните, что проверка магазином не гарантирует, что конкретное расширение безопасно.

4. Проверьте ответственность и историю изменений

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

5. Реагируйте соразмерно

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

Реальный пример: MAX

MAX – наш продукт, поэтому воспринимайте это как заявление издателя, а не как независимый аудит. В политике конфиденциальности MAX сказано, что обнаружение медиа, настройки и история загрузок обрабатываются локально в вашем браузере и при обычной работе расширения на сайт не отправляются, а расширение не использует вашу активность в браузере для рекламы, перепродажи или стороннего профилирования. Там же сказано, что всё же покидает устройство: если вы отправляете отчёт, отзыв или обращение в поддержку, передаются присланные вами диагностические сведения, в том числе URL страницы, сведения о браузере, настройки, данные об обнаруженном медиа, сведения о загрузке или журналы ошибок.

Таблица разрешений в политике – пример того, какое соответствие стоит искать. В ней перечислены tabs, webRequest, declarativeNetRequest, webNavigation, downloads, nativeMessaging, storage, notifications и разрешение на хосты <all_urls> с указанной целью для каждого: например, наблюдение за сетевыми запросами для обнаружения потоков HLS и DASH и использование разрешения на хосты для обнаружения медиа на разных сайтах. Это хороший пример широкого разрешения с соответствующим объяснением. Он не доказывает, что код никогда не делает ничего другого, и к любому расширению применим один и тот же тест: объяснение должно соответствовать функции, а доверять ли издателю, решаете вы.

Если хотите попробовать, MAX Video Downloader бесплатен и не требует аккаунта.